--- a/gevent/ssl.py 2015-03-13 05:44:39.000000000 +0800 +++ b/gevent/ssl.py 2015-03-13 05:44:24.000000000 +0800 @@ -19,6 +19,25 @@ except AttributeError: _ssl = __ssl__._ssl2 +import inspect + + +def new_sslwrap(sock, server_side=False, keyfile=None, certfile=None, cert_reqs=__ssl__.CERT_NONE, ssl_version=__ssl__.PROTOCOL_SSLv23, ca_certs=None, ciphers=None): + context = __ssl__.SSLContext(ssl_version) + context.verify_mode = cert_reqs or __ssl__.CERT_NONE + if ca_certs: + context.load_verify_locations(ca_certs) + if certfile: + context.load_cert_chain(certfile, keyfile) + if ciphers: + context.set_ciphers(ciphers) + + caller_self = inspect.currentframe().f_back.f_locals['self'] + return context._wrap_socket(sock, server_side=server_side, ssl_sock=caller_self) + +if not hasattr(_ssl, 'sslwrap'): + _ssl.sslwrap = new_sslwrap + import sys import errno from gevent.socket import socket, _fileobject, timeout_default