Commit Graph

8 Commits

Author SHA1 Message Date
Андрей Бобырев
91e675566f fix(keenetic): switch RCI client from aiohttp to httpx
aiohttp hung on KeenDNS from VPS while httpx works (keenetic-unified
pattern). Align add/import/bulk URL parsing with parse_keenetic_web_url.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-22 15:37:32 +03:00
Андрей Бобырев
c64b455f9a 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 <cursoragent@cursor.com>
2026-05-22 03:31:48 +03:00
Андрей Бобырев
306e687988 fix(keenetic): reset session after auth probe, retry 503
Probing used short timeouts on the session reused for RCI calls.
Recreate the session after auth and treat 503 as transient.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-22 03:22:25 +03:00
Андрей Бобырев
dc161e151d fix(keenetic): try all DNS A records on auth failure
KeenDNS returns multiple A records including unreachable IPs; aiohttp
was timing out on the first bad address. Iterate all resolved IPs with
short connect timeouts, serialize polls with a lock, and fail faster.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-22 03:05:34 +03:00
Андрей Бобырев
8826e40d95 fix(keenetic): non-blocking refresh-all and longer timeouts
Run refresh-all in background so API stays responsive during 24-router
poll. Cap per-device poll at 75s, add 2s gap between routers, bump
KeenDNS connect/read timeouts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-22 02:07:07 +03:00
Андрей Бобырев
8f8e9a3234 feat(keenetic): edit KeenDNS address from dashboard
Add PATCH endpoint and inline card editor to update web_url and host,
with URL validation and automatic refresh after save.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-22 01:02:01 +03:00
Андрей Бобырев
746ecfc343 fix(keenetic): preserve URL scheme/ports and IPv4 polling
Use web_url scheme and host:port for API base URL instead of
forcing https. Force IPv4 in aiohttp to avoid IPv6 hangs on
KeenDNS. Sync canonical 24-router list with Russian names.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-22 00:52:11 +03:00
Андрей Бобырев
de99b60910 fix(keenetic): Web/AnyDesk links and import sync
Add web_url/anydesk to router records, host fallback for Web button
on offline cards, cache-bust app.js, and scripts to sync import list.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-21 23:06:35 +03:00