Commit 0aee7220 authored by Guido van Rossum's avatar Guido van Rossum

Hoepeful fix for SF bug #123924: Windows - using OpenSSL, problem with

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).
parent 07050280
...@@ -613,7 +613,10 @@ class HTTPSConnection(HTTPConnection): ...@@ -613,7 +613,10 @@ class HTTPSConnection(HTTPConnection):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((self.host, self.port)) 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) self.sock = FakeSocket(sock, ssl)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment