From 4027ac6a6ff3bbe7be86409a2d8179f3eab4a0a7 Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Thu, 19 Jul 2018 20:38:53 +0200 Subject: [PATCH] Wrap socket with SSL after connecting See https://github.com/Anorov/PySocks/issues/29 --- telethon/extensions/tcpclient.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/telethon/extensions/tcpclient.py b/telethon/extensions/tcpclient.py index 2b9ee03d..a15d7ca6 100644 --- a/telethon/extensions/tcpclient.py +++ b/telethon/extensions/tcpclient.py @@ -92,14 +92,18 @@ class TcpClient: try: if self._socket is None: self._socket = self._create_socket(mode, self.proxy) - if self.ssl and port == SSL_PORT: - self._socket = ssl.wrap_socket(self._socket, **self.ssl) + wrap_ssl = self.ssl and port == SSL_PORT + else: + wrap_ssl = False await asyncio.wait_for( self._loop.sock_connect(self._socket, address), timeout=self.timeout, loop=self._loop ) + if wrap_ssl: + self._socket = ssl.wrap_socket(self._socket, **self.ssl) + self._closed.clear() except OSError as e: if e.errno in CONN_RESET_ERRNOS: