1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
--- 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
|