fix gevent/eventlet on python 2.7.9, fixes #5782

This commit is contained in:
Domen Kožar
2015-01-17 14:14:35 +01:00
parent ca6434dcaa
commit c611f5837c
2 changed files with 34 additions and 9 deletions

View File

@@ -0,0 +1,28 @@
Index: b/gevent/ssl.py
===================================================================
--- a/gevent/ssl.py
+++ b/gevent/ssl.py
@@ -81,15 +81,14 @@ class SSLSocket(socket):
self._sslobj = None
else:
# yes, create the SSL object
- if ciphers is None:
- self._sslobj = _ssl.sslwrap(self._sock, server_side,
- keyfile, certfile,
- cert_reqs, ssl_version, ca_certs)
- else:
- self._sslobj = _ssl.sslwrap(self._sock, server_side,
- keyfile, certfile,
- cert_reqs, ssl_version, ca_certs,
- ciphers)
+ ctx = SSLContext(ssl_version)
+ if keyfile or certfile:
+ ctx.load_cert_chain(certfile, keyfile)
+ if ca_certs:
+ ctx.load_verify_locations(ca_certs)
+ if ciphers:
+ ctx.set_ciphers(ciphers)
+ self._sslobj = ctx._wrap_socket(self._sock, server_side=server_side)
if do_handshake_on_connect:
self.do_handshake()
self.keyfile = keyfile