summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSenthil Kumaran <orsenthil@gmail.com>2009-11-15 08:43:45 (GMT)
committerSenthil Kumaran <orsenthil@gmail.com>2009-11-15 08:43:45 (GMT)
commit4c7eaee5db8bd4b5b55e3102fb171e45ad073117 (patch)
tree63ee6d8d00882df9caa53bcb73a35002ca53bb25
parent1107c5d7d1aece9bec34920cea0878a6485e185e (diff)
downloadcpython-4c7eaee5db8bd4b5b55e3102fb171e45ad073117.zip
cpython-4c7eaee5db8bd4b5b55e3102fb171e45ad073117.tar.gz
cpython-4c7eaee5db8bd4b5b55e3102fb171e45ad073117.tar.bz2
Merged revisions 76288 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r76288 | senthil.kumaran | 2009-11-15 14:06:20 +0530 (Sun, 15 Nov 2009) | 3 lines Fix for Issue4683 - urllib2.HTTPDigestAuthHandler fails on third hostname?. Resolution: Reset the nonce value for each unique nonce (as per RFC 2617) ........
-rw-r--r--Lib/urllib/request.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
index da73363..d669aec 100644
--- a/Lib/urllib/request.py
+++ b/Lib/urllib/request.py
@@ -847,6 +847,7 @@ class AbstractDigestAuthHandler:
self.add_password = self.passwd.add_password
self.retried = 0
self.nonce_count = 0
+ self.last_nonce = None
def reset_retry_count(self):
self.retried = 0
@@ -922,7 +923,11 @@ class AbstractDigestAuthHandler:
# XXX selector: what about proxies and full urls
req.selector)
if qop == 'auth':
- self.nonce_count += 1
+ if nonce == self.last_nonce:
+ self.nonce_count += 1
+ else:
+ self.nonce_count = 1
+ self.last_nonce = nonce
ncvalue = '%08x' % self.nonce_count
cnonce = self.get_cnonce(nonce)
noncebit = "%s:%s:%s:%s:%s" % (nonce, ncvalue, cnonce, qop, H(A2))