From 0e0bc3ac86f28912d12641bc2895445850b5448d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Domen=20Ko=C5=BEar?= Date: Sat, 7 Mar 2015 19:28:55 +0100 Subject: [PATCH] gevent: update Python 2.7.9 compatibility patch --- .../python-modules/gevent_sslwrap.patch | 45 ++++++++++++++----- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/pkgs/development/python-modules/gevent_sslwrap.patch b/pkgs/development/python-modules/gevent_sslwrap.patch index 10c61478bd6b..a9bb0eab5de9 100644 --- a/pkgs/development/python-modules/gevent_sslwrap.patch +++ b/pkgs/development/python-modules/gevent_sslwrap.patch @@ -1,8 +1,17 @@ -Index: b/gevent/ssl.py -=================================================================== +From 485cebc4d9bab2dae51cf29f91fad2f1cf157fec Mon Sep 17 00:00:00 2001 +From: Eugene Pankov +Date: Sun, 21 Sep 2014 12:04:13 +0300 +Subject: [PATCH] Work around missing sslwrap in Python 2.7.9 (fixes #477) + +--- + gevent/_ssl2.py | 28 ++++++++++++++++++++-------- + 1 file changed, 20 insertions(+), 8 deletions(-) + +diff --git a/gevent/ssl.py b/gevent/ssl.py +index 21491b7..85e6a86 100644 --- a/gevent/ssl.py +++ b/gevent/ssl.py -@@ -81,15 +81,14 @@ class SSLSocket(socket): +@@ -80,15 +80,27 @@ def __init__(self, sock, keyfile=None, certfile=None, self._sslobj = None else: # yes, create the SSL object @@ -10,19 +19,31 @@ Index: b/gevent/ssl.py - self._sslobj = _ssl.sslwrap(self._sock, server_side, - keyfile, certfile, - cert_reqs, ssl_version, ca_certs) -- else: ++ if hasattr(_ssl, 'sslwrap'): ++ if ciphers is None: ++ self._sslobj = _ssl.sslwrap(self._sock, server_side, ++ keyfile, certfile, ++ cert_reqs, ssl_version, ca_certs) ++ else: ++ self._sslobj = _ssl.sslwrap(self._sock, server_side, ++ keyfile, certfile, ++ cert_reqs, ssl_version, ca_certs, ++ ciphers) + else: - self._sslobj = _ssl.sslwrap(self._sock, server_side, - keyfile, certfile, - cert_reqs, ssl_version, ca_certs, - ciphers) -+ ctx = __ssl__.SSLContext(ssl_version) -+ if keyfile or certfile: -+ ctx.load_cert_chain(certfile, keyfile) -+ if ca_certs: -+ ctx.load_verify_locations(ca_certs) -+ if ciphers: -+ ctx.set_ciphers(ciphers) -+ self._sslobj = ctx._wrap_socket(self._sock, server_side=server_side) ++ self.context = __ssl__.SSLContext(ssl_version) ++ self.context.verify_mode = cert_reqs ++ if ca_certs: ++ self.context.load_verify_locations(ca_certs) ++ if certfile: ++ self.context.load_cert_chain(certfile, keyfile) ++ if ciphers: ++ self.context.set_ciphers(ciphers) ++ self._sslobj = self.context._wrap_socket(self._sock, server_side=server_side, ssl_sock=self) ++ if do_handshake_on_connect: self.do_handshake() self.keyfile = keyfile