summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2000-12-11 20:32:20 (GMT)
committerGuido van Rossum <guido@python.org>2000-12-11 20:32:20 (GMT)
commit0aee7220db3354ef32b5d1ac92f2c5942bb8eaf8 (patch)
treea694763ab3daea368b1c438d66cb63d6a3fa2d60
parent0705028076810327e58747fd93a82a5f09d1c33c (diff)
downloadcpython-0aee7220db3354ef32b5d1ac92f2c5942bb8eaf8.zip
cpython-0aee7220db3354ef32b5d1ac92f2c5942bb8eaf8.tar.gz
cpython-0aee7220db3354ef32b5d1ac92f2c5942bb8eaf8.tar.bz2
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).
-rw-r--r--Lib/httplib.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/Lib/httplib.py b/Lib/httplib.py
index 2688359..2b32a1b 100644
--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -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)