]> granicus.if.org Git - python/commitdiff
Hoepeful fix for SF bug #123924: Windows - using OpenSSL, problem with
authorGuido van Rossum <guido@python.org>
Mon, 11 Dec 2000 20:32:20 +0000 (20:32 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 11 Dec 2000 20:32:20 +0000 (20:32 +0000)
socket in httplib.py.

The bug reports that on Windows, you must pass sock._sock to the
socket.ssl() call.  But on Unix, you must pass sock itself.  (sock is
a wrapper on Windows but not on Unix; the ssl() call wants the real
socket object, not the wrapper.)

So we see if sock has an _sock attribute and if so, extract it.

Unfortunately, the submitter of the bug didn't confirm that this patch
works, so I'll just have to believe it (can't test it myself since I
don't have OpenSSL on Windows set up, and that's a nontrivial thing I
believe).

Lib/httplib.py

index 2688359308958afc6bb43c7a9a1dc1ae5bcb3949..2b32a1bb57ef67256818cf3f794bfe7f4521fcca 100644 (file)
@@ -613,7 +613,10 @@ class HTTPSConnection(HTTPConnection):
 
         sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         sock.connect((self.host, self.port))
-        ssl = socket.ssl(sock, self.key_file, self.cert_file)
+        realsock = sock
+        if hasattr(sock, "_sock"):
+            realsock = sock._sock
+        ssl = socket.ssl(realsock, self.key_file, self.cert_file)
         self.sock = FakeSocket(sock, ssl)