From 937523419db61b916497ac5e622c00ac2d43b96b Mon Sep 17 00:00:00 2001 From: Dmitry Bukhta Date: Tue, 20 Feb 2018 17:55:14 +0300 Subject: [PATCH] proxy connection fix #2 --- telethon/extensions/tcp_client.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/telethon/extensions/tcp_client.py b/telethon/extensions/tcp_client.py index de077050..1bd36e1d 100644 --- a/telethon/extensions/tcp_client.py +++ b/telethon/extensions/tcp_client.py @@ -9,6 +9,11 @@ from datetime import timedelta from io import BytesIO, BufferedWriter from threading import Lock +try: + import socks +except ImportError: + socks = None + MAX_TIMEOUT = 15 # in seconds CONN_RESET_ERRNOS = { errno.EBADF, errno.ENOTSOCK, errno.ENETUNREACH, @@ -70,9 +75,10 @@ class TcpClient: self._socket.connect(address) break # Successful connection, stop retrying to connect - except ProxyConnectionError: - raise except OSError as e: + # Stop retrying to connect if proxy connection error occurred + if socks and isinstance(e, socks.ProxyConnectionError): + raise # There are some errors that we know how to handle, and # the loop will allow us to retry if e.errno in (errno.EBADF, errno.ENOTSOCK, errno.EINVAL,