From 93ee4a01e54798bc6dd93af31ce0d88ae920e1d6 Mon Sep 17 00:00:00 2001 From: Bernardo Damele Date: Wed, 20 May 2009 14:27:25 +0000 Subject: [PATCH] HTTPS requests over HTTP proxy now work on either Python 2.4, 2.5 and 2.6+ --- lib/request/proxy.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/request/proxy.py b/lib/request/proxy.py index ed09b8f3c..1b8950733 100644 --- a/lib/request/proxy.py +++ b/lib/request/proxy.py @@ -29,6 +29,12 @@ import socket import urllib import urllib2 +from lib.core.settings import PYVERSION + + +if PYVERSION >= "2.6": + import ssl + class ProxyHTTPConnection(httplib.HTTPConnection): _ports = {"http" : 80, "https" : 443} @@ -98,8 +104,12 @@ class ProxyHTTPSConnection(ProxyHTTPConnection): ProxyHTTPConnection.connect(self) # Make the sock ssl-aware - ssl = socket.ssl(self.sock, self.key_file, self.cert_file) - self.sock = httplib.FakeSocket(self.sock, ssl) + if PYVERSION >= "2.6": + sslobj = ssl.wrap_socket(self.sock, self.key_file, self.cert_file) + self.sock = sslobj + else: + sslobj = socket.ssl(self.sock, self.key_file, self.cert_file) + self.sock = httplib.FakeSocket(self.sock, sslobj) class ProxyHTTPHandler(urllib2.HTTPHandler):