Il giorno dom, 26/04/2009 alle 09.48 +0200, Mike Hommey ha scritto:
> On Sun, Apr 26, 2009 at 09:46:15AM +0200, Giuseppe Sacco wrote:
> > Il giorno sab, 25/04/2009 alle 10.15 +0200, Mike Hommey ha scritto:
> > > On Sat, Apr 25, 2009 at 09:56:54AM +0200, Giuseppe Sacco wrote:
> > > > Hi Mike,
> > > > 
> > > > Il giorno ven, 24/04/2009 alle 22.30 +0200, Mike Hommey ha scritto:
> > > > [...]
> > > > > I'm not sure iceweasel uses gnome settings, but uses what gnome 
> > > > > exports
> > > > > in the *_proxy environment variable. Can you check what they look 
> > > > > like?
> > > > 
> > > > giuse...@scarafaggio:~/src/django/mberi$ env | grep prox
> > > > http_proxy=http://192.168.1.53:3128/
> > > > no_proxy=localhost,127.0.0.0/8,192.168.0.0/16,scarafaggio
> > > 
> > > I'm pretty sure iceweasel doesn't support the CIDR notation (e.g.
> > > 127.0.0.0/8).
> > 
> > I think iceweasel completely ignore the no_proxy variable, since this
> > does not work either:
> > 
> > $ killall iceweasel
> > $ env no_proxy=127.0.0.1,localhost,127.0.0.0/8,192.168.0.0/16,scarafaggio \
> >       iceweasel http://127.0.0.1/
> > 
> > still load the web page via proxy server.
> 
> What about no_proxy=127.0.0.1?

nope. I just checked sources for debian package 3.0.9-1.

I found two different ways of checking the proxy settings. The first one
uses all environment variable, the second one use gconf.

If using env vars, the problem is in file
toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp, function
IsInNoProxyList(...) where this comparison is used:

    if (port == -1 || port == aPort) {
      nsDependentCSubstring hostStr(pos, colon);
      // By using StringEndsWith instead of an equality comparator, we can 
include sub-domains
      if (StringEndsWith(aHost, hostStr, nsCaseInsensitiveCStringComparator()))
        return PR_TRUE;
    }

so, since this is a string comparison, this is not working for CIDR.
I don't know why it is using the proxy for http://127.0.0.1/ when
no_proxy is just 127.0.0.1. Maybe the proxy

If using gconf, as I think it is my case, is uses *GConf* functions in
the same source. In this case it accept exclusion lists like
hostname
ipv4address
CIDR
*.domain.tld

To check for CIDR, it convert both addresses (the proxy specified one
and the url) to ipv6 and then it use memcmp.


I do believe, it uses gconf, since this command still get the page via
proxy:

$ env no_proxy= http_proxy= iceweasel http://127.0.0.1/

my proxy setting, via gconf, are:
$ for i in /system/proxy/mode /system/proxy/autoconfig_url \
           /system/http_proxy/use_http_proxy \
           /system/http_proxy/ignore_hosts \
           /system/http_proxy/use_same_proxy ;
  do echo -n $i:; gconftool-2 --get $i; done
/system/proxy/mode:manual
/system/proxy/autoconfig_url:
/system/http_proxy/use_http_proxy:true
/system/http_proxy/ignore_hosts:[localhost,127.0.0.0/8,192.168.0.0/16,scarafaggio]
/system/http_proxy/use_same_proxy:true

Bye,
Giuseppe




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to