mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-19 00:56:16 +00:00
The diagnostic export captured the symptom of #345 (a TuneIn select escaping to the dead Bose Apigee gateway → BMX_HTTP_ERROR 4501 → INVALID_SOURCE) but none of the data that decides where a speaker sends its marge/BMX/streaming traffic, so we couldn't tell whether the request was ever redirected to AfterTouch. Collect that per speaker: - New collectSpeakerRedirectConfig prefers the on-device SoundTouchSdkPrivateCfg.xml over SSH (archives raw + parses marge/stats/swUpdate/bmxRegistry URLs), and falls back to `getpdo CurrentSystemConfiguration` over telnet when SSH is unavailable — the same channel the telnet migration uses. Parsed URLs and provenance land in diagnostic.json as redirect_config: source (ssh|telnet|none), ssh_reachable, and inferred_migration_method (telnet when only telnet answered, since xml/hosts/resolv all need SSH). - Pull redirection-relevant files over SSH: /etc/hosts(.original), /etc/resolv.conf, the resolv-method hook, /mnt/nv/remote_services, and the pre-migration .original backups (CA bundle and the URL config). - Dump the speaker firewall (iptables-save; ip6tables-save is empty on FW 27.0.6 but harmless) to catch self-inflicted DROP rules (cf. #354). Export ParseGetpdoConfig from pkg/service/setup and add a test pinning the field-name contract the export depends on. Diagnostic-collection only; does not change migration or playback. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>