Honor http_proxy variable globally

If the http_proxy environment variable was set, honor it during
the entire repo session for any Python created HTTP connections.

Change-Id: Ib4ae833cb2cdd47ab0126949f6b399d2c142887d
Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
Shawn O. Pearce 2011-09-11 12:57:15 -07:00
parent 44da16e8a0
commit 014d060989
2 changed files with 8 additions and 6 deletions

View File

@ -563,12 +563,6 @@ class Remote(object):
self._review_port = info[2] self._review_port = info[2]
else: else:
try: try:
if 'http_proxy' in os.environ:
proxy_url = os.environ['http_proxy']
proxy_support = urllib2.ProxyHandler({"http" : proxy_url, "https" : proxy_url})
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)
info = urlopen(u).read() info = urlopen(u).read()
if info == 'NOT_AVAILABLE': if info == 'NOT_AVAILABLE':
raise UploadError('%s: SSH disabled' % self.review) raise UploadError('%s: SSH disabled' % self.review)

View File

@ -26,6 +26,7 @@ import optparse
import os import os
import re import re
import sys import sys
import urllib2
from trace import SetTrace from trace import SetTrace
from git_config import init_ssh, close_ssh from git_config import init_ssh, close_ssh
@ -199,6 +200,12 @@ def _PruneOptions(argv, opt):
continue continue
i += 1 i += 1
def init_http():
if 'http_proxy' in os.environ:
url = os.environ['http_proxy']
proxy_support = urllib2.ProxyHandler({'http': url, 'https': url})
urllib2.install_opener(urllib2.build_opener(proxy_support))
def _Main(argv): def _Main(argv):
opt = optparse.OptionParser(usage="repo wrapperinfo -- ...") opt = optparse.OptionParser(usage="repo wrapperinfo -- ...")
opt.add_option("--repo-dir", dest="repodir", opt.add_option("--repo-dir", dest="repodir",
@ -217,6 +224,7 @@ def _Main(argv):
try: try:
try: try:
init_ssh() init_ssh()
init_http()
repo._Run(argv) repo._Run(argv)
finally: finally:
close_ssh() close_ssh()