mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-02-03 13:14:31 +03:00
Always use session ip address and port when connecting
This commit is contained in:
parent
269949595f
commit
e717256937
|
@ -43,12 +43,9 @@ class Connection:
|
||||||
work on plain bytes, with no further additions.
|
work on plain bytes, with no further additions.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, ip, port, mode=ConnectionMode.TCP_FULL,
|
def __init__(self, mode=ConnectionMode.TCP_FULL,
|
||||||
proxy=None, timeout=timedelta(seconds=5)):
|
proxy=None, timeout=timedelta(seconds=5)):
|
||||||
self.ip = ip
|
|
||||||
self.port = port
|
|
||||||
self._mode = mode
|
self._mode = mode
|
||||||
|
|
||||||
self._send_counter = 0
|
self._send_counter = 0
|
||||||
self._aes_encrypt, self._aes_decrypt = None, None
|
self._aes_encrypt, self._aes_decrypt = None, None
|
||||||
|
|
||||||
|
@ -77,9 +74,9 @@ class Connection:
|
||||||
setattr(self, 'write', self._write_plain)
|
setattr(self, 'write', self._write_plain)
|
||||||
setattr(self, 'read', self._read_plain)
|
setattr(self, 'read', self._read_plain)
|
||||||
|
|
||||||
def connect(self):
|
def connect(self, ip, port):
|
||||||
try:
|
try:
|
||||||
self.conn.connect(self.ip, self.port)
|
self.conn.connect(ip, port)
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
if e.errno == errno.EISCONN:
|
if e.errno == errno.EISCONN:
|
||||||
return # Already connected, no need to re-set everything up
|
return # Already connected, no need to re-set everything up
|
||||||
|
@ -132,10 +129,9 @@ class Connection:
|
||||||
|
|
||||||
def clone(self):
|
def clone(self):
|
||||||
"""Creates a copy of this Connection"""
|
"""Creates a copy of this Connection"""
|
||||||
return Connection(self.ip, self.port,
|
return Connection(
|
||||||
mode=self._mode,
|
mode=self._mode, proxy=self.conn.proxy, timeout=self.conn.timeout
|
||||||
proxy=self.conn.proxy,
|
)
|
||||||
timeout=self.conn.timeout)
|
|
||||||
|
|
||||||
# region Receive message implementations
|
# region Receive message implementations
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ class MtProtoSender:
|
||||||
|
|
||||||
def connect(self):
|
def connect(self):
|
||||||
"""Connects to the server"""
|
"""Connects to the server"""
|
||||||
self.connection.connect()
|
self.connection.connect(self.session.server_address, self.session.port)
|
||||||
|
|
||||||
def is_connected(self):
|
def is_connected(self):
|
||||||
return self.connection.is_connected()
|
return self.connection.is_connected()
|
||||||
|
|
|
@ -96,7 +96,6 @@ class TelegramBareClient:
|
||||||
# temporary connection. The connection on this one is always
|
# temporary connection. The connection on this one is always
|
||||||
# kept open so Telegram can send us updates.
|
# kept open so Telegram can send us updates.
|
||||||
self._sender = MtProtoSender(self.session, Connection(
|
self._sender = MtProtoSender(self.session, Connection(
|
||||||
self.session.server_address, self.session.port,
|
|
||||||
mode=connection_mode, proxy=proxy, timeout=timeout
|
mode=connection_mode, proxy=proxy, timeout=timeout
|
||||||
))
|
))
|
||||||
|
|
||||||
|
@ -299,8 +298,8 @@ class TelegramBareClient:
|
||||||
self.session.auth_key = None # Force creating new auth_key
|
self.session.auth_key = None # Force creating new auth_key
|
||||||
dc = self._get_dc(new_dc)
|
dc = self._get_dc(new_dc)
|
||||||
ip = dc.ip_address
|
ip = dc.ip_address
|
||||||
self._sender.connection.ip = self.session.server_address = ip
|
self.session.server_address = ip
|
||||||
self._sender.connection.port = self.session.port = dc.port
|
self.session.port = dc.port
|
||||||
self.session.save()
|
self.session.save()
|
||||||
return self.connect()
|
return self.connect()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user