Join the AMA (Ask Me Anything) with the Firefox leadership team to celebrate Firefox 20th anniversary and discuss Firefox’s future on Mozilla Connect. Mark your calendar on Thursday, November 14, 18:00 - 20:00 UTC!

Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

Proxy.pac file syntax is not correctly recognized in Firefox 4 final.

  • 5 replies
  • 66 have this problem
  • 1 view
  • Last reply by Velnias

more options

We are using a proxy.pac file to determine a proxy server based on subnet the user is in. (each subnet has its ISP and proxy server.)

here is the script:

function FindProxyForURL(url, host)
{
if (isInNet(host, "10.0.0.0", "255.0.0.0"))
        return "DIRECT";
if (isInNet(host, "127.0.0.1", "255.255.255.0"))
        return "DIRECT";
if (shExpMatch(url, "feed:*"))
        return "DIRECT" ;
if (shExpMatch(url, "ftp:*"))
        return "DIRECT" ;
if (shExpMatch( host, "localhost" ))
        return "DIRECT";
if (isInNet(myIpAddress(), "10.10.11.0", "255.255.255.0") || isInNet(myIpAddress(), "10.10.11.0", "/24"))
        return "PROXY 10.10.11.100:3128; DIRECT";
else if (isInNet(myIpAddress(), "10.10.12.0", "255.255.255.0") || isInNet(myIpAddress(), "10.10.12.0", "/24"))
        return "PROXY 10.10.12.100:3128; DIRECT";
else if (isInNet(myIpAddress(), "10.10.10.0", "255.255.255.0") || isInNet(myIpAddress(), "10.10.10.0", "/24"))
        return "PROXY 10.10.10.100:3128; DIRECT";
else
	return "DIRECT";
}

it seems like FF4 always pick the first proxy in "if" clause, and ignores the "else if" (i have tries to switch the proxies around.)

It was working correctly in FF3.6 and is still working in IE8.

System is Win 7 Ent. x64 bit. FF4 final.

We are using a proxy.pac file to determine a proxy server based on subnet the user is in. (each subnet has its ISP and proxy server.) here is the script: <pre><nowiki>function FindProxyForURL(url, host) { if (isInNet(host, "10.0.0.0", "255.0.0.0")) return "DIRECT"; if (isInNet(host, "127.0.0.1", "255.255.255.0")) return "DIRECT"; if (shExpMatch(url, "feed:*")) return "DIRECT" ; if (shExpMatch(url, "ftp:*")) return "DIRECT" ; if (shExpMatch( host, "localhost" )) return "DIRECT"; if (isInNet(myIpAddress(), "10.10.11.0", "255.255.255.0") || isInNet(myIpAddress(), "10.10.11.0", "/24")) return "PROXY 10.10.11.100:3128; DIRECT"; else if (isInNet(myIpAddress(), "10.10.12.0", "255.255.255.0") || isInNet(myIpAddress(), "10.10.12.0", "/24")) return "PROXY 10.10.12.100:3128; DIRECT"; else if (isInNet(myIpAddress(), "10.10.10.0", "255.255.255.0") || isInNet(myIpAddress(), "10.10.10.0", "/24")) return "PROXY 10.10.10.100:3128; DIRECT"; else return "DIRECT"; } </nowiki></pre> it seems like FF4 always pick the first proxy in "if" clause, and ignores the "else if" (i have tries to switch the proxies around.) It was working correctly in FF3.6 and is still working in IE8. System is Win 7 Ent. x64 bit. FF4 final.

Modified by cor-el

All Replies (5)

more options

Hi,

I have encountered the same issue and I have bypassed it as follow:

  1. about:config
  2. Search and set the option "network.dns.disableIPv6" to true

For my side, the options "use a PAC file" or "use system proxy settings" work with this change.

Bye. Francois

more options

Well it did not worked for me. Still have the same problem.

more options

Do you have multiple IP addresses on your client machine? If so, the myIpAddress() function returns only the IP of the first adapter it looks at. If you have wired, wireless, IPv6, etc addresses on your client, the myIPAddress() function will only return the first one it finds.

For example, if you are looking for an IP on a wired subnet, and your first adapter is wireless, the function will return the address of your wireless adapter, and the "else if" criteria will not apply.

more options

This is still not working. And after upgrading to Firefox 6.0 the pac file does not work at all.

more options

And no, i do not have multiple IP's. And use only IP4