summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Shepelev <temotor@gmail.com>2015-03-29 15:27:40 +0300
committerSergey Shepelev <temotor@gmail.com>2015-03-29 15:27:40 +0300
commitb2e5146dec8f6fe075884dcf788f64a16bc3fec3 (patch)
treea9f1798d42c8603184645193a30eaa23ccef4682
parentee9bcc36be28c7be57b8380e508bc75f96e5c459 (diff)
downloadeventlet-gh-201-sslcontext.tar.gz
green.ssl: patch SSLContext.wrap_socketgh-201-sslcontext
https://github.com/eventlet/eventlet/issues/201
-rw-r--r--eventlet/green/ssl.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/eventlet/green/ssl.py b/eventlet/green/ssl.py
index fdd3a4e..f0cd2d2 100644
--- a/eventlet/green/ssl.py
+++ b/eventlet/green/ssl.py
@@ -3,6 +3,7 @@ __ssl = __import__('ssl')
from eventlet.patcher import slurp_properties
slurp_properties(__ssl, globals(), srckeys=dir(__ssl))
+import functools
import sys
import errno
time = __import__('time')
@@ -353,3 +354,14 @@ if hasattr(__ssl, 'sslwrap_simple'):
ssl_version=PROTOCOL_SSLv23,
ca_certs=None)
return ssl_sock
+
+
+if hasattr(__ssl, 'SSLContext'):
+ @functools.wraps(__ssl.SSLContext.wrap_socket)
+ def _green_sslcontext_wrap_socket(self, sock, *a, **kw):
+ return GreenSSLSocket(sock, *a, **kw)
+
+ # FIXME:
+ # * GreenSSLContext akin to GreenSSLSocket
+ # * make ssl.create_default_context() use modified SSLContext from globals as usual
+ __ssl.SSLContext.wrap_socket = _green_sslcontext_wrap_socket