From c64b455f9af9afe99185df21f94be4d7ad5a08b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9=20=D0=91=D0=BE=D0=B1?= =?UTF-8?q?=D1=8B=D1=80=D0=B5=D0=B2?= Date: Fri, 22 May 2026 03:31:48 +0300 Subject: [PATCH] fix(keenetic): keep auth session for RCI requests Resetting the session after auth dropped cookies and broke metrics collection with "No data from router" despite successful login. Co-authored-by: Cursor --- server/services/keenetic_client.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/server/services/keenetic_client.py b/server/services/keenetic_client.py index 1dc6d43..00d824f 100644 --- a/server/services/keenetic_client.py +++ b/server/services/keenetic_client.py @@ -60,7 +60,7 @@ def is_keendns_host(host: str) -> bool: def client_timeout_for(host: str, *, probing: bool = False) -> aiohttp.ClientTimeout: """Timeouts tuned for KeenDNS vs direct IP.""" if probing: - return aiohttp.ClientTimeout(total=15, connect=4, sock_read=10) + return aiohttp.ClientTimeout(total=25, connect=4, sock_read=18) if is_public_ip_host(host): return aiohttp.ClientTimeout(total=20, connect=8, sock_read=12) return aiohttp.ClientTimeout(total=45, connect=12, sock_read=30) @@ -214,7 +214,6 @@ class KeeneticClient: async with session.get(auth_url, ssl=False) as resp: if resp.status == 200: self._authenticated = True - await self._reset_session(keep_auth=True) return True if resp.status != 401: @@ -250,7 +249,6 @@ class KeeneticClient: ) as resp: if resp.status == 200: self._authenticated = True - await self._reset_session(keep_auth=True) return True self.last_error = "Wrong login or password" logger.error(f"Keenetic auth failed: {resp.status} @ {auth_url}")