From b2e5146dec8f6fe075884dcf788f64a16bc3fec3 Mon Sep 17 00:00:00 2001 From: Sergey Shepelev Date: Sun, 29 Mar 2015 15:27:40 +0300 Subject: [PATCH] green.ssl: patch SSLContext.wrap_socket https://github.com/eventlet/eventlet/issues/201 --- eventlet/green/ssl.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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