KDE and proxy configuration script
Serguei Miridonov
mirsev at cicese.mx
Fri Nov 26 16:36:40 UTC 2010
Replying to myself... Just in case if someone has similar problem.
The proxy configuration script did not work because myIpAddress()
incorrectly returned IPv4 localhost address: "127.0.0.1" (in google-
chrome) or IPv6 "::1" (in firefox). I don't know if this is a bug in
myIpAddress(), or the reason was in /etc/hosts file which was
overwritten by NetworkManager as follows:
# Do not remove the following line, or various programs
# that require network functionality will fail.
192.168.1.66 realhostname # Added by NetworkManager
127.0.0.1 localhost.localdomain localhost
::1 realhostname localhost6.localdomain6 localhost6
The workaround is to add the following script in
/etc/NetworkManager/dispatcher.d:
************ cut here **********
#!/bin/sh
export PATH=/sbin:/usr/sbin:$PATH
rewrite_hosts ()
{
tmphosts="/tmp/02-nm-tmp.hosts"
cp /etc/hosts "$tmphosts"
cat "$tmphosts" | sed \
's/^::1\t.*$/::1\tlocalhost6.localdomain6\tlocalhost6/' > /etc/hosts
}
if [ "$2" = "up" ]
then
rewrite_hosts
fi
************ cut here **********
On Tuesday 23 November 2010, Serguei Miridonov wrote:
> Hello,
>
> Is there any way to trace how KDE sets proxy from the PAC
> configuration file? For me it seems not working...
>
> Here is a sample file proxy_config.pac:
>
> function FindProxyForURL(url, host)
> {
> if (shExpMatch(url, "https:*")) return "DIRECT";
> if (isInNet(host, "127.0.0.0", "255.0.0.0")) return "DIRECT";
> if ( shExpMatch(host, "localhost") ) return "DIRECT";
> if ( shExpMatch(host, "localhost.*") ) return "DIRECT";
> if ( shExpMatch(host, "127.0.0.*") ) return "DIRECT";
> if ( isPlainHostName(host) ) return "DIRECT";
>
> var resolved_ip = dnsResolve(host);
>
> if (isInNet(myIpAddress(),"xxx.xxx.0.0", "255.255.0.0")) {
> if (isInNet(resolved_ip, "xxx.xxx.0.0", "255.255.0.0"))
> return "DIRECT";
> if (dnsDomainIs(host, ".xxx.xx"))
> return "DIRECT";
> return "PROXY xxx.xxx.xxx.xxx:3128";
> }
> return "DIRECT";
> }
>
> The KDE is set to "Use proxy configuration URL"
> file:///home/XXXXX/proxy_config.pac
>
> When at home and I have direct connection to Internet, everything
> works. However, when at work and my IP address is within specified
> xxx.xxx.0.0 network, I can not see any web page. It seems like KDE
> is still set to direct connection but these are blocked by a
> firewall, only proxy connections are allowed. KDE (konqueror and
> plasma applets) does not even try to connect to proxy server.
>
> Does anybody have the same problem?
>
> Any help would be appreciated.
>
> By the way, testing PAC file with pactester shows no error, so it
> seems OK but KDE does something wrong...
>
> System: Fedora 12, KDE 4.4.5.
>
> Thank you.
>
> Serguei.
More information about the users
mailing list