summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/urllib/request.py5
-rw-r--r--Misc/NEWS3
2 files changed, 7 insertions, 1 deletions
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
index 4beafc1..c638cfa5 100644
--- a/Lib/urllib/request.py
+++ b/Lib/urllib/request.py
@@ -799,7 +799,10 @@ class AbstractBasicAuthHandler:
if mo:
scheme, quote, realm = mo.groups()
if scheme.lower() == 'basic':
- return self.retry_http_basic_auth(host, req, realm)
+ response = self.retry_http_basic_auth(host, req, realm)
+ if response and response.code != 401:
+ self.retried = 0
+ return response
def retry_http_basic_auth(self, host, req, realm):
user, pw = self.passwd.find_user_password(realm, host)
diff --git a/Misc/NEWS b/Misc/NEWS
index 4bedeb0..4942fa2 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -97,6 +97,9 @@ C-API
Library
-------
+- Issue #8797: urllib2 does a retry for Basic Authentication failure instead of
+ falling into recursion.
+
- Issue #1194222: email.utils.parsedate now returns RFC2822 compliant four
character years even if the message contains RFC822 two character years.