From 798293098373f551c4e31464ae9f862c1e749e9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Dalleau?= Date: Fri, 10 Feb 2017 15:20:09 +0100 Subject: [PATCH] Add proxy support for http and https MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If http_proxy or https_proxy environment variable is defined, feed its content to python's http_client library. In a shell script, it is possible to assign the proxy : $ export http_proxy="http://192.168.0.17:3128". $ export https_proxy="http://192.168.0.17:3128". Signed-off-by: Frédéric Dalleau --- phabricator/__init__.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/phabricator/__init__.py b/phabricator/__init__.py index c90a460..5f188fa 100644 --- a/phabricator/__init__.py +++ b/phabricator/__init__.py @@ -288,9 +288,21 @@ def validate_kwarg(key, target): url = urlparse.urlparse(self.api.host) if url.scheme == 'https': - conn = httplib.HTTPSConnection(url.netloc, timeout=self.api.timeout) + proxy = os.environ.get("https_proxy") + if proxy: + proxyurl = urlparse.urlparse(proxy) + conn = httplib.HTTPSConnection(proxyurl.netloc, timeout=self.api.timeout) + conn.set_tunnel(url.netloc); + else: + conn = httplib.HTTPSConnection(url.netloc, timeout=self.api.timeout) else: - conn = httplib.HTTPConnection(url.netloc, timeout=self.api.timeout) + proxy = os.environ.get("http_proxy") + if proxy: + proxyurl = urlparse.urlparse(proxy) + conn = httplib.HTTPConnection(proxyurl.netloc, timeout=self.api.timeout) + conn.set_tunnel(url.netloc); + else: + conn = httplib.HTTPConnection(url.netloc, timeout=self.api.timeout) path = url.path + '%s.%s' % (self.method, self.endpoint)