Add SSDP/UPnP scanner

Introduce a new SSDP/UPnP network scanner alongside the existing ARP and
mDNS scanners:

- New scanner module under scanners/ssdp (finder, scanner, status)
- Wire the scanner into the main scan loop
- Add Ssdp variant to DeviceEventScanner
- Add SsdpScanner settings with a configurable probe timeout
- Expose /api/ssdp_scanner/status and wire it into OpenAPI generation
- Add a lint.sh helper and point CLAUDE.md at it

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
rzuasti
2026-06-01 17:55:33 -04:00
co-authored by Claude Opus 4.8
parent bf2f18b075
commit 936e9ffe79
13 changed files with 529 additions and 2 deletions
+15
View File
@@ -41,6 +41,19 @@ impl Default for MdnsScanner {
}
}
#[derive(Debug, Deserialize, Clone)]
pub struct SsdpScanner {
pub probe_timeout: DurationString,
}
impl Default for SsdpScanner {
fn default() -> Self {
SsdpScanner {
probe_timeout: DurationString::try_from("2s".to_string()).unwrap(),
}
}
}
#[derive(Debug, Deserialize, Clone)]
pub struct Pushover {
pub token: String,
@@ -86,6 +99,8 @@ pub struct Settings {
pub retention: Retention,
#[serde(default)]
pub mdns_scanner: MdnsScanner,
#[serde(default)]
pub ssdp_scanner: SsdpScanner,
}
// End configuration structure
// -----------------------------------------------------------