aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpatchwork/bin/pwclient24
1 files changed, 24 insertions, 0 deletions
diff --git a/patchwork/bin/pwclient b/patchwork/bin/pwclient
index 633ffc2..660ed76 100755
--- a/patchwork/bin/pwclient
+++ b/patchwork/bin/pwclient
@@ -107,12 +107,24 @@ class Transport(xmlrpclib.SafeTransport):
def __init__(self, url):
xmlrpclib.SafeTransport.__init__(self)
self.credentials = None
+ self.host = None
+ self.proxy = None
+ self.scheme = url.split('://', 1)[0]
self.https = url.startswith('https')
+ if self.https:
+ self.proxy = os.environ.get('https_proxy')
+ else:
+ self.proxy = os.environ.get('http_proxy')
+ if self.proxy:
+ self.https = self.proxy.startswith('https')
def set_credentials(self, username=None, password=None):
self.credentials = '%s:%s' % (username, password)
def make_connection(self, host):
+ self.host = host
+ if self.proxy:
+ host = self.proxy.split('://', 1)[-1]
if self.credentials:
host = '@'.join([self.credentials, host])
if self.https:
@@ -120,6 +132,18 @@ class Transport(xmlrpclib.SafeTransport):
else:
return xmlrpclib.Transport.make_connection(self, host)
+ if sys.version_info[0] == 2:
+
+ def send_request(self, connection, handler, request_body):
+ handler = '%s://%s%s' % (self.scheme, self.host, handler)
+ xmlrpclib.Transport.send_request(self, connection, handler, request_body)
+
+ else: # Python 3
+
+ def send_request(self, host, handler, request_body, debug):
+ handler = '%s://%s%s' % (self.scheme, host, handler)
+ return xmlrpclib.Transport.send_request(self, host, handler, request_body, debug)
+
def project_id_by_name(rpc, linkname):
"""Given a project short name, look up the Project ID."""