10 from i18n import gettext as _ |
10 from i18n import gettext as _ |
11 from demandload import * |
11 from demandload import * |
12 demandload(globals(), "hg os urllib urllib2 urlparse zlib util httplib") |
12 demandload(globals(), "hg os urllib urllib2 urlparse zlib util httplib") |
13 demandload(globals(), "keepalive") |
13 demandload(globals(), "keepalive") |
14 |
14 |
15 class passwordmgr(urllib2.HTTPPasswordMgr): |
15 class passwordmgr(urllib2.HTTPPasswordMgrWithDefaultRealm): |
16 def __init__(self, ui): |
16 def __init__(self, ui): |
17 urllib2.HTTPPasswordMgr.__init__(self) |
17 urllib2.HTTPPasswordMgrWithDefaultRealm.__init__(self) |
18 self.ui = ui |
18 self.ui = ui |
19 |
19 |
20 def find_user_password(self, realm, authuri): |
20 def find_user_password(self, realm, authuri): |
21 authinfo = urllib2.HTTPPasswordMgr.find_user_password( |
21 authinfo = urllib2.HTTPPasswordMgrWithDefaultRealm.find_user_password( |
22 self, realm, authuri) |
22 self, realm, authuri) |
23 if authinfo != (None, None): |
23 if authinfo != (None, None): |
24 return authinfo |
24 return authinfo |
25 |
25 |
26 if not self.ui.interactive: |
26 if not self.ui.interactive: |
131 except OSError: |
131 except OSError: |
132 pass |
132 pass |
133 |
133 |
134 passmgr = passwordmgr(ui) |
134 passmgr = passwordmgr(ui) |
135 if user: |
135 if user: |
136 ui.debug(_('will use user %s for http auth\n') % user) |
136 ui.debug(_('will use user %s, password %s for http auth\n') % |
|
137 (user, '*' * len(passwd))) |
137 passmgr.add_password(None, host, user, passwd or '') |
138 passmgr.add_password(None, host, user, passwd or '') |
138 |
139 |
139 opener = urllib2.build_opener( |
140 opener = urllib2.build_opener( |
140 handler, |
141 handler, |
141 urllib2.HTTPBasicAuthHandler(passmgr), |
142 urllib2.HTTPBasicAuthHandler(passmgr), |