From e12bb0bc4e35362e9d353c85b990aa14e0b70156 Mon Sep 17 00:00:00 2001 From: Brandon Craig Rhodes Date: Wed, 2 Nov 2011 20:27:14 -0400 Subject: [PATCH] Bugfix issue #104: an SSL unwrap() sends data, and so it needs trampolining. Be warned that I do not quite understand what makes certain SSL operations "gross" (in the terminology of ssl.py's comments) and require the methods to be copied wholesale into the GreenSSLSocket; but simply adding the trampoline like this works for me! --- eventlet/green/ssl.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eventlet/green/ssl.py b/eventlet/green/ssl.py index 238b20a..88c47a3 100644 --- a/eventlet/green/ssl.py +++ b/eventlet/green/ssl.py @@ -185,7 +185,8 @@ class GreenSSLSocket(__ssl.SSLSocket): return super(GreenSSLSocket, self).recvfrom_into(buffer, nbytes, flags) def unwrap(self): - return GreenSocket(super(GreenSSLSocket, self).unwrap()) + return GreenSocket(self._call_trampolining( + super(GreenSSLSocket, self).unwrap)) def do_handshake(self): """Perform a TLS/SSL handshake."""