From 2c3fb1caa6877a31621d0535866672a13334d0ee Mon Sep 17 00:00:00 2001 From: wulan17 Date: Fri, 16 May 2025 18:54:25 +0700 Subject: [PATCH] Revert "fix: handle connection closure and retry logic in session management" This reverts commit 4df4478a802b8fbd0f75e348d9b689226cb5c0e0. Signed-off-by: wulan17 --- pyrogram/connection/transport/tcp/tcp.py | 23 ++--------------------- pyrogram/session/session.py | 23 ----------------------- 2 files changed, 2 insertions(+), 44 deletions(-) diff --git a/pyrogram/connection/transport/tcp/tcp.py b/pyrogram/connection/transport/tcp/tcp.py index 4957c061..1848ba35 100644 --- a/pyrogram/connection/transport/tcp/tcp.py +++ b/pyrogram/connection/transport/tcp/tcp.py @@ -54,14 +54,6 @@ class TCP: self.lock = asyncio.Lock() self.loop = asyncio.get_event_loop() - self._closed = True - - @property - def closed(self) -> bool: - return ( - self._closed or self.writer is None or self.writer.is_closing() or self.reader is None - ) - async def _connect_via_proxy( self, @@ -131,14 +123,11 @@ class TCP: async def connect(self, address: Tuple[str, int]) -> None: try: await asyncio.wait_for(self._connect(address), TCP.TIMEOUT) - self._closed = False except asyncio.TimeoutError: # Re-raise as TimeoutError. asyncio.TimeoutError is deprecated in 3.11 - self._closed = True raise TimeoutError("Connection timed out") async def close(self) -> None: if self.writer is None: - self._closed = True return None try: @@ -146,12 +135,10 @@ class TCP: await asyncio.wait_for(self.writer.wait_closed(), TCP.TIMEOUT) except Exception as e: log.info("Close exception: %s %s", type(e).__name__, e) - finally: - self._closed = True async def send(self, data: bytes) -> None: - if self.writer is None or self._closed: - raise OSError("Connection is closed") + if self.writer is None: + return None async with self.lock: try: @@ -159,13 +146,9 @@ class TCP: await self.writer.drain() except Exception as e: log.info("Send exception: %s %s", type(e).__name__, e) - self._closed = True raise OSError(e) async def recv(self, length: int = 0) -> Optional[bytes]: - if self._closed or self.reader is None: - return None - data = b"" while len(data) < length: @@ -175,13 +158,11 @@ class TCP: TCP.TIMEOUT ) except (OSError, asyncio.TimeoutError): - self._closed = True return None else: if chunk: data += chunk else: - self._closed = True return None return data diff --git a/pyrogram/session/session.py b/pyrogram/session/session.py index 57d16c95..c84a3cb4 100644 --- a/pyrogram/session/session.py +++ b/pyrogram/session/session.py @@ -417,19 +417,6 @@ class Session: while True: try: - if ( - self.connection is None - or self.connection.protocol is None - or getattr(self.connection.protocol, "closed", True) - ): - log.warning( - "[%s] Connection is closed or not established. Attempting to reconnect...", - self.client.name, - ) - await self.restart() - await asyncio.sleep(1) - continue - return await self.send(query, timeout=timeout) except (FloodWait, FloodPremiumWait) as e: amount = e.value @@ -451,16 +438,6 @@ class Session: query_name, str(e) or repr(e) ) - if isinstance(e, OSError) and retries > 1: - try: - await self.restart() - except Exception as restart_error: - log.warning( - "[%s] Failed to restart session: %s", - self.client.name, - str(restart_error) or repr(restart_error), - ) - await asyncio.sleep(0.5) return await self.invoke(query, retries - 1, timeout)