diff --git a/telethon/extensions/tcp_client.py b/telethon/extensions/tcp_client.py index 089066e9..3600ac88 100644 --- a/telethon/extensions/tcp_client.py +++ b/telethon/extensions/tcp_client.py @@ -30,9 +30,12 @@ class TcpClient: else: # tuple, list, etc. self._socket.set_proxy(*self._proxy) - def connect(self, ip, port): - """Connects to the specified IP and port number""" + def connect(self, ip, port, timeout): + """Connects to the specified IP and port number. + 'timeout' must be given in seconds + """ if not self.connected: + self._socket.settimeout(timeout) self._socket.connect((ip, port)) self._socket.setblocking(False) self.connected = True diff --git a/telethon/network/tcp_transport.py b/telethon/network/tcp_transport.py index 702d2633..76b6b6b9 100644 --- a/telethon/network/tcp_transport.py +++ b/telethon/network/tcp_transport.py @@ -18,7 +18,8 @@ class TcpTransport: def connect(self): """Connects to the specified IP address and port""" self.send_counter = 0 - self.tcp_client.connect(self.ip, self.port) + self.tcp_client.connect(self.ip, self.port, + timeout=round(self.timeout.seconds)) def is_connected(self): return self.tcp_client.connected