mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-19 00:56:16 +00:00
Manager.HTTPGet defaulted to http.Get, which uses http.DefaultClient with no timeout. An offline speaker therefore hung the caller for the OS-level TCP timeout (~30 s). The admin device list refreshes every device's live /info on each load (updateDeviceInfo per row), so a handful of offline speakers each held a request for 30 s. Server-side those run concurrently and never blocked other routes, but the browser's ~6-connections-per-origin limit got saturated by the long-held /info requests, which made the whole admin page (and navigating away from it) feel stuck. Give HTTPGet a 5 s timeout (liveDeviceHTTPTimeout): ample for a healthy speaker on the LAN, quick to fail a dead one. Applies to the /info, /presets, /recents, /sources, inspect, and peer-probe GETs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>