SSL handshake python version compatibility
- error handling should now work with < 2.7.9
This commit is contained in:
parent
c979481564
commit
23fcf2cdec
|
@ -266,17 +266,29 @@ class receiveDataThread(threading.Thread):
|
||||||
self.sslSock.do_handshake()
|
self.sslSock.do_handshake()
|
||||||
logger.debug("TLS handshake success")
|
logger.debug("TLS handshake success")
|
||||||
break
|
break
|
||||||
except ssl.SSLWantReadError:
|
|
||||||
logger.debug("Waiting for SSL socket handhake read")
|
|
||||||
select.select([self.sslSock], [], [], 10)
|
|
||||||
except ssl.SSLWantWriteError:
|
|
||||||
logger.debug("Waiting for SSL socket handhake write")
|
|
||||||
select.select([], [self.sslSock], [], 10)
|
|
||||||
except ssl.SSLError as e:
|
except ssl.SSLError as e:
|
||||||
|
if sys.hexversion >= 0x02070900:
|
||||||
|
if isinstance (e, ssl.SSLWantReadError):
|
||||||
|
logger.debug("Waiting for SSL socket handhake read")
|
||||||
|
select.select([self.sslSock], [], [], 10)
|
||||||
|
continue
|
||||||
|
elif isinstance (e, ssl.SSLWantWriteError):
|
||||||
|
logger.debug("Waiting for SSL socket handhake write")
|
||||||
|
select.select([], [self.sslSock], [], 10)
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
if e.args[0] == ssl.SSL_ERROR_WANT_READ:
|
||||||
|
logger.debug("Waiting for SSL socket handhake read")
|
||||||
|
select.select([self.sslSock], [], [], 10)
|
||||||
|
continue
|
||||||
|
elif e.args[0] == ssl.SSL_ERROR_WANT_WRITE:
|
||||||
|
logger.debug("Waiting for SSL socket handhake write")
|
||||||
|
select.select([], [self.sslSock], [], 10)
|
||||||
|
continue
|
||||||
logger.error("SSL socket handhake failed: %s, shutting down connection", str(e))
|
logger.error("SSL socket handhake failed: %s, shutting down connection", str(e))
|
||||||
self.sendDataThreadQueue.put((0, 'shutdown','tls handshake fail %s' % (str(e))))
|
self.sendDataThreadQueue.put((0, 'shutdown','tls handshake fail %s' % (str(e))))
|
||||||
return
|
return
|
||||||
except:
|
except Exception:
|
||||||
logger.error("SSL socket handhake failed, shutting down connection", exc_info=True)
|
logger.error("SSL socket handhake failed, shutting down connection", exc_info=True)
|
||||||
self.sendDataThreadQueue.put((0, 'shutdown','tls handshake fail'))
|
self.sendDataThreadQueue.put((0, 'shutdown','tls handshake fail'))
|
||||||
return
|
return
|
||||||
|
|
Reference in New Issue
Block a user