summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2013-10-18 15:07:14 -0700
committerGuido van Rossum <guido@python.org>2013-10-18 15:07:14 -0700
commitb9659a88356bc85c7adffa20f1358227317536b8 (patch)
tree61f6ed17c509507450751607422139fd7146cbf8
parent207d620f409874fbb60b584c10e1f58f2f899562 (diff)
downloadtrollius-b9659a88356bc85c7adffa20f1358227317536b8.tar.gz
Tentative fix for Windows ssl breakage on hostname mismatch.
-rw-r--r--tulip/selector_events.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/tulip/selector_events.py b/tulip/selector_events.py
index adf8d38..63164f0 100644
--- a/tulip/selector_events.py
+++ b/tulip/selector_events.py
@@ -584,16 +584,23 @@ class _SelectorSslTransport(_SelectorTransport):
self._loop.add_writer(self._sock_fd, self._on_handshake)
return
except Exception as exc:
+ self._loop.remove_reader(self._sock_fd)
+ self._loop.remove_writer(self._sock_fd)
self._sock.close()
if self._waiter is not None:
self._waiter.set_exception(exc)
return
except BaseException as exc:
+ self._loop.remove_reader(self._sock_fd)
+ self._loop.remove_writer(self._sock_fd)
self._sock.close()
if self._waiter is not None:
self._waiter.set_exception(exc)
raise
+ self._loop.remove_reader(self._sock_fd)
+ self._loop.remove_writer(self._sock_fd)
+
# Verify hostname if requested.
peercert = self._sock.getpeercert()
if (self._server_hostname is not None and
@@ -612,8 +619,6 @@ class _SelectorSslTransport(_SelectorTransport):
compression=self._sock.compression(),
)
- self._loop.remove_reader(self._sock_fd)
- self._loop.remove_writer(self._sock_fd)
self._loop.add_reader(self._sock_fd, self._on_ready)
self._loop.add_writer(self._sock_fd, self._on_ready)
self._loop.call_soon(self._protocol.connection_made, self)