diff options
author | Senthil Kumaran <orsenthil@gmail.com> | 2009-11-15 08:43:45 (GMT) |
---|---|---|
committer | Senthil Kumaran <orsenthil@gmail.com> | 2009-11-15 08:43:45 (GMT) |
commit | 4c7eaee5db8bd4b5b55e3102fb171e45ad073117 (patch) | |
tree | 63ee6d8d00882df9caa53bcb73a35002ca53bb25 | |
parent | 1107c5d7d1aece9bec34920cea0878a6485e185e (diff) | |
download | cpython-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.py | 7 |
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)) |