summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmain.py23
-rwxr-xr-xrepo9
2 files changed, 26 insertions, 6 deletions
diff --git a/main.py b/main.py
index a4cf4304..ea29851e 100755
--- a/main.py
+++ b/main.py
@@ -295,6 +295,24 @@ class _BasicAuthHandler(urllib2.HTTPBasicAuthHandler):
295 self.retried = 0 295 self.retried = 0
296 raise 296 raise
297 297
298class _DigestAuthHandler(urllib2.HTTPDigestAuthHandler):
299 def http_error_auth_reqed(self, auth_header, host, req, headers):
300 try:
301 old_add_header = req.add_header
302 def _add_header(name, val):
303 val = val.replace('\n', '')
304 old_add_header(name, val)
305 req.add_header = _add_header
306 return urllib2.AbstractDigestAuthHandler.http_error_auth_reqed(
307 self, auth_header, host, req, headers)
308 except:
309 reset = getattr(self, 'reset_retry_count', None)
310 if reset is not None:
311 reset()
312 elif getattr(self, 'retried', None):
313 self.retried = 0
314 raise
315
298def init_http(): 316def init_http():
299 handlers = [_UserAgentHandler()] 317 handlers = [_UserAgentHandler()]
300 318
@@ -303,13 +321,14 @@ def init_http():
303 n = netrc.netrc() 321 n = netrc.netrc()
304 for host in n.hosts: 322 for host in n.hosts:
305 p = n.hosts[host] 323 p = n.hosts[host]
306 mgr.add_password(None, 'http://%s/' % host, p[0], p[2]) 324 mgr.add_password(p[1], 'http://%s/' % host, p[0], p[2])
307 mgr.add_password(None, 'https://%s/' % host, p[0], p[2]) 325 mgr.add_password(p[1], 'https://%s/' % host, p[0], p[2])
308 except netrc.NetrcParseError: 326 except netrc.NetrcParseError:
309 pass 327 pass
310 except IOError: 328 except IOError:
311 pass 329 pass
312 handlers.append(_BasicAuthHandler(mgr)) 330 handlers.append(_BasicAuthHandler(mgr))
331 handlers.append(_DigestAuthHandler(mgr))
313 332
314 if 'http_proxy' in os.environ: 333 if 'http_proxy' in os.environ:
315 url = os.environ['http_proxy'] 334 url = os.environ['http_proxy']
diff --git a/repo b/repo
index 2a13af5b..1977d635 100755
--- a/repo
+++ b/repo
@@ -28,7 +28,7 @@ if __name__ == '__main__':
28del magic 28del magic
29 29
30# increment this whenever we make important changes to this script 30# increment this whenever we make important changes to this script
31VERSION = (1, 13) 31VERSION = (1, 14)
32 32
33# increment this if the MAINTAINER_KEYS block is modified 33# increment this if the MAINTAINER_KEYS block is modified
34KEYRING_VERSION = (1,0) 34KEYRING_VERSION = (1,0)
@@ -154,7 +154,7 @@ def _Init(args):
154 """Installs repo by cloning it over the network. 154 """Installs repo by cloning it over the network.
155 """ 155 """
156 opt, args = init_optparse.parse_args(args) 156 opt, args = init_optparse.parse_args(args)
157 if args or not opt.manifest_url: 157 if args:
158 init_optparse.print_usage() 158 init_optparse.print_usage()
159 sys.exit(1) 159 sys.exit(1)
160 160
@@ -311,11 +311,12 @@ def _InitHttp():
311 n = netrc.netrc() 311 n = netrc.netrc()
312 for host in n.hosts: 312 for host in n.hosts:
313 p = n.hosts[host] 313 p = n.hosts[host]
314 mgr.add_password(None, 'http://%s/' % host, p[0], p[2]) 314 mgr.add_password(p[1], 'http://%s/' % host, p[0], p[2])
315 mgr.add_password(None, 'https://%s/' % host, p[0], p[2]) 315 mgr.add_password(p[1], 'https://%s/' % host, p[0], p[2])
316 except: 316 except:
317 pass 317 pass
318 handlers.append(urllib2.HTTPBasicAuthHandler(mgr)) 318 handlers.append(urllib2.HTTPBasicAuthHandler(mgr))
319 handlers.append(urllib2.HTTPDigestAuthHandler(mgr))
319 320
320 if 'http_proxy' in os.environ: 321 if 'http_proxy' in os.environ:
321 url = os.environ['http_proxy'] 322 url = os.environ['http_proxy']