Blame port-to-python-2.4.patch
|
|
9a9a373 |
--- a/urllib2_kerberos.py
|
|
|
9a9a373 |
+++ b/urllib2_kerberos.py
|
|
|
9a9a373 |
@@ -62,8 +62,8 @@ class AbstractKerberosAuthHandler:
|
|
|
9a9a373 |
host = req.get_host()
|
|
|
9a9a373 |
log.debug("req.get_host() returned %s" % host)
|
|
|
9a9a373 |
|
|
|
9a9a373 |
- tail, sep, head = host.rpartition(':')
|
|
|
9a9a373 |
- domain = tail if tail else head
|
|
|
9a9a373 |
+ cindex = host.rfind(':')
|
|
|
9a9a373 |
+ domain = (cindex == -1) and host or host[:cindex]
|
|
|
9a9a373 |
|
|
|
9a9a373 |
result, self.context = k.authGSSClientInit("HTTP@%s" % domain)
|
|
|
9a9a373 |
|
|
|
9a9a373 |
@@ -130,15 +130,15 @@ class AbstractKerberosAuthHandler:
|
|
|
9a9a373 |
if resp.getcode() != 200:
|
|
|
9a9a373 |
self.authenticate_server(resp.info())
|
|
|
9a9a373 |
|
|
|
9a9a373 |
+ self.clean_context()
|
|
|
9a9a373 |
+ self.retried = 0
|
|
|
9a9a373 |
return resp
|
|
|
9a9a373 |
|
|
|
9a9a373 |
except k.GSSError, e:
|
|
|
9a9a373 |
log.critical("GSSAPI Error: %s/%s" % (e[0][0], e[1][0]))
|
|
|
9a9a373 |
- return None
|
|
|
9a9a373 |
-
|
|
|
9a9a373 |
- finally:
|
|
|
9a9a373 |
self.clean_context()
|
|
|
9a9a373 |
self.retried = 0
|
|
|
9a9a373 |
+ return None
|
|
|
9a9a373 |
|
|
|
9a9a373 |
class ProxyKerberosAuthHandler(u2.BaseHandler, AbstractKerberosAuthHandler):
|
|
|
9a9a373 |
"""Kerberos Negotiation handler for HTTP proxy auth
|