From: Senthil Kumaran Date: Fri, 18 Jun 2010 15:12:48 +0000 (+0000) Subject: Merged revisions 82068 via svnmerge from X-Git-Tag: v3.1.3rc1~614 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b4d1c2c8619c08e37606b2593be4763e80f88dc7;p=python Merged revisions 82068 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r82068 | senthil.kumaran | 2010-06-18 20:38:18 +0530 (Fri, 18 Jun 2010) | 3 lines Fix Issue1368368 - prompt_user_passwd() in FancyURLopener masks 401 Unauthorized error page ........ --- diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index 95e8e33557..e85b65c8b1 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -1870,7 +1870,8 @@ class FancyURLopener(URLopener): else: return self.http_error_default(url, fp, errcode, errmsg, headers) - def http_error_401(self, url, fp, errcode, errmsg, headers, data=None): + def http_error_401(self, url, fp, errcode, errmsg, headers, data=None, + retry=False): """Error 401 -- authentication required. This function supports Basic authentication only.""" if not 'www-authenticate' in headers: @@ -1886,13 +1887,17 @@ class FancyURLopener(URLopener): if scheme.lower() != 'basic': URLopener.http_error_default(self, url, fp, errcode, errmsg, headers) + if not retry: + URLopener.http_error_default(self, url, fp, errcode, errmsg, + headers) name = 'retry_' + self.type + '_basic_auth' if data is None: return getattr(self,name)(url, realm) else: return getattr(self,name)(url, realm, data) - def http_error_407(self, url, fp, errcode, errmsg, headers, data=None): + def http_error_407(self, url, fp, errcode, errmsg, headers, data=None, + retry=False): """Error 407 -- proxy authentication required. This function supports Basic authentication only.""" if not 'proxy-authenticate' in headers: @@ -1908,6 +1913,9 @@ class FancyURLopener(URLopener): if scheme.lower() != 'basic': URLopener.http_error_default(self, url, fp, errcode, errmsg, headers) + if not retry: + URLopener.http_error_default(self, url, fp, errcode, errmsg, + headers) name = 'retry_proxy_' + self.type + '_basic_auth' if data is None: return getattr(self,name)(url, realm) diff --git a/Misc/NEWS b/Misc/NEWS index f8af2511dc..1f08e6e458 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -70,6 +70,10 @@ C-API Library ------- +- Issue #1368368: FancyURLOpener class changed to throw an Exception on wrong + password instead of presenting an interactive prompt. Older behavior can be + obtained by passing retry=True to http_error_xxx methods of FancyURLOpener. + - Issue #8203: Fix IDLE Credits dialog: view_file() uses its encoding argument. - Issue #8720: fix regression caused by fix for #4050 by making getsourcefile