~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transport/http/_urllib2_wrappers.py

  • Committer: Martin Packman
  • Date: 2012-01-05 09:50:04 UTC
  • mfrom: (6424 +trunk)
  • mto: This revision was merged to the branch mainline in revision 6426.
  • Revision ID: martin.packman@canonical.com-20120105095004-mia9xb7y0efmto0v
Merge bzr.dev to resolve conflicts in bzrlib.builtins

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
request (see AbstractHTTPHandler.do_open).
37
37
"""
38
38
 
 
39
from __future__ import absolute_import
 
40
 
39
41
DEBUG = 0
40
42
 
41
43
# FIXME: Oversimplifying, two kind of exceptions should be
48
50
 
49
51
import errno
50
52
import httplib
51
 
try:
52
 
    import kerberos
53
 
except ImportError:
54
 
    have_kerberos = False
55
 
else:
56
 
    have_kerberos = True
57
53
import socket
58
54
import urllib
59
55
import urllib2
70
66
    osutils,
71
67
    trace,
72
68
    transport,
73
 
    ui,
74
69
    urlutils,
75
70
    )
76
71
 
77
72
 
 
73
checked_kerberos = False
 
74
kerberos = None
 
75
 
 
76
 
78
77
class addinfourl(urllib2.addinfourl):
79
78
    '''Replacement addinfourl class compatible with python-2.7's xmlrpclib
80
79
 
1326
1325
 
1327
1326
    def _auth_match_kerberos(self, auth):
1328
1327
        """Try to create a GSSAPI response for authenticating against a host."""
1329
 
        if not have_kerberos:
 
1328
        global kerberos, checked_kerberos
 
1329
        if kerberos is None and not checked_kerberos:
 
1330
            try:
 
1331
                import kerberos
 
1332
            except ImportError:
 
1333
                kerberos = None
 
1334
            checked_kerberos = True
 
1335
        if kerberos is None:
1330
1336
            return None
1331
1337
        ret, vc = kerberos.authGSSClientInit("HTTP@%(host)s" % auth)
1332
1338
        if ret < 1: