diff options
author | Andrey Petrov <andrey.petrov@shazow.net> | 2013-10-01 13:12:16 -0700 |
---|---|---|
committer | Andrey Petrov <andrey.petrov@shazow.net> | 2013-10-01 13:12:16 -0700 |
commit | c97e471122ac661dcd6ec9b4ce0e8c254814173c (patch) | |
tree | 14b60822c9051011ef8f8eb5abf698c84631fb34 | |
parent | 5062ac6e6b9c056031b90cf1a9b9bdbcdb5b11ee (diff) | |
parent | a49bec58fa5f7aca76d1d0b2f1975eb094648eab (diff) | |
download | urllib3-c97e471122ac661dcd6ec9b4ce0e8c254814173c.tar.gz |
Merge pull request #250 from t-8ch/pyopenssl_handshake_loop
pyopenssl: wait for data before handshake retry
-rw-r--r-- | urllib3/contrib/pyopenssl.py | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/urllib3/contrib/pyopenssl.py b/urllib3/contrib/pyopenssl.py index d43bcd60..91bc2fa4 100644 --- a/urllib3/contrib/pyopenssl.py +++ b/urllib3/contrib/pyopenssl.py @@ -26,6 +26,7 @@ import OpenSSL.SSL from pyasn1.codec.der import decoder as der_decoder from socket import _fileobject import ssl +import select from cStringIO import StringIO from .. import connectionpool @@ -336,6 +337,7 @@ def ssl_wrap_socket(sock, keyfile=None, certfile=None, cert_reqs=None, try: cnx.do_handshake() except OpenSSL.SSL.WantReadError: + select.select([sock], [], []) continue except OpenSSL.SSL.Error as e: raise ssl.SSLError('bad handshake', e) |