do TLS handshake without blocking. Fixes #7250

This commit is contained in:
Yann Leboulanger 2012-10-28 16:59:11 +01:00
parent 2bc9f743b3
commit 6a8737bcd5
1 changed files with 2 additions and 2 deletions

View File

@ -418,13 +418,13 @@ class NonBlockingTLS(PlugIn):
tcpsock._send = wrapper.send tcpsock._send = wrapper.send
log.debug("Initiating handshake...") log.debug("Initiating handshake...")
tcpsock._sslObj.setblocking(True)
try: try:
tcpsock._sslObj.do_handshake() tcpsock._sslObj.do_handshake()
except (OpenSSL.SSL.WantReadError, OpenSSL.SSL.WantWriteError), e:
pass
except: except:
log.error('Error while TLS handshake: ', exc_info=True) log.error('Error while TLS handshake: ', exc_info=True)
return False return False
tcpsock._sslObj.setblocking(False)
self._owner.ssl_lib = PYOPENSSL self._owner.ssl_lib = PYOPENSSL
return True return True