Closing transport during handshake process leaks socket (#480) (#2044)
diff --git a/Lib/asyncio/sslproto.py b/Lib/asyncio/sslproto.py
index ab7ff0b..6e9ce29 100644
--- a/Lib/asyncio/sslproto.py
+++ b/Lib/asyncio/sslproto.py
@@ -551,8 +551,11 @@
def _start_shutdown(self):
if self._in_shutdown:
return
- self._in_shutdown = True
- self._write_appdata(b'')
+ if self._in_handshake:
+ self._abort()
+ else:
+ self._in_shutdown = True
+ self._write_appdata(b'')
def _write_appdata(self, data):
self._write_backlog.append((data, 0))