diff options
author | Senthil Kumaran <orsenthil@gmail.com> | 2009-10-11 02:00:07 (GMT) |
---|---|---|
committer | Senthil Kumaran <orsenthil@gmail.com> | 2009-10-11 02:00:07 (GMT) |
commit | 274686631ac8cd31250db6c402fda382350a6337 (patch) | |
tree | 10da341b3d49b82eb8067be090722e447098a306 /Lib/urllib2.py | |
parent | 723fb3adc8ea0d45a70a93bcdb9d142afb8d2221 (diff) | |
download | cpython-274686631ac8cd31250db6c402fda382350a6337.zip cpython-274686631ac8cd31250db6c402fda382350a6337.tar.gz cpython-274686631ac8cd31250db6c402fda382350a6337.tar.bz2 |
Fixed Issue6894, urllib2 doesn't respect "no_proxy" environment
Diffstat (limited to 'Lib/urllib2.py')
-rw-r--r-- | Lib/urllib2.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Lib/urllib2.py b/Lib/urllib2.py index 7ccf14b..a6c3e29 100644 --- a/Lib/urllib2.py +++ b/Lib/urllib2.py @@ -111,7 +111,7 @@ from urllib import (unwrap, unquote, splittype, splithost, quote, splitattr, ftpwrapper, splituser, splitpasswd, splitvalue) # support for FileHandler, proxies via environment variables -from urllib import localhost, url2pathname, getproxies +from urllib import localhost, url2pathname, getproxies, proxy_bypass # used in User-Agent header sent __version__ = sys.version[:3] @@ -698,14 +698,20 @@ class ProxyHandler(BaseHandler): def proxy_open(self, req, proxy, type): orig_type = req.get_type() proxy_type, user, password, hostport = _parse_proxy(proxy) + if proxy_type is None: proxy_type = orig_type + + if req.host and proxy_bypass(req.host): + return None + if user and password: user_pass = '%s:%s' % (unquote(user), unquote(password)) creds = base64.b64encode(user_pass).strip() req.add_header('Proxy-authorization', 'Basic ' + creds) hostport = unquote(hostport) req.set_proxy(hostport, proxy_type) + if orig_type == proxy_type or orig_type == 'https': # let other handlers take care of it return None |