From: Senthil Kumaran Date: Sun, 15 Nov 2009 08:39:10 +0000 (+0000) Subject: Merged revisions 76288 via svnmerge from X-Git-Tag: v2.6.5rc1~355 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=10c858ac4d80ef4b50a96ae57c128178d5ecfa05;p=python 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) ........ --- diff --git a/Lib/urllib2.py b/Lib/urllib2.py index 1778675814..03bd5f8af2 100644 --- a/Lib/urllib2.py +++ b/Lib/urllib2.py @@ -901,6 +901,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 @@ -975,7 +976,12 @@ class AbstractDigestAuthHandler: # XXX selector: what about proxies and full urls req.get_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))