fix(hik-alarm): listen on all methods + skippable source-IP guard (WSL)
Diagnosed why no camera push ever landed: (1) the route only registered POST/GET, so a probe with another method got a generic 404 the camera reads as "service available" while our handler never ran; (2) more fundamentally, WSL mirrored mode REWRITES the inbound source IP to the host's own address (10.0.10.203), so the camera's real IP (10.0.10.12) never survives and the source-IP guard rejected every push as a mismatch. - Register the event route on POST/GET/PUT/PATCH/DELETE/OPTIONS (HEAD comes with GET) so ANYTHING hitting the path reaches the handler and is recorded. - Log + store the HTTP method of each hit; log every hit on arrival, before any guard, so even a rejected probe is visible immediately. - Add per-device skipSourceIpCheck (a Setup checkbox) to bypass the source-IP guard where the network rewrites the source (WSL). Digest auth + the signed ledger remain the real guards. Tests: hik-alarm 10 (skip-IP accept + method capture). server green; web build green (new checkbox renderer + this field). Claude-Session: https://claude.ai/code/session_01Xcm6ikLgGoCxxHrxtjkk5V
This commit is contained in:
@@ -124,6 +124,14 @@ const alarmPushFields: ConfigField[] = [
|
||||
required: false,
|
||||
help: "Paired with the username above for Digest auth on the push. Leave blank for source-IP-only.",
|
||||
},
|
||||
{
|
||||
key: "skipSourceIpCheck",
|
||||
label: "Don't verify push source IP",
|
||||
type: "boolean",
|
||||
required: false,
|
||||
default: false,
|
||||
help: "Accept pushes regardless of the source IP. Needed when the network rewrites the inbound source address (e.g. WSL mirrored mode reports the host's own IP, not the camera's), which would otherwise reject every push. Leave OFF on a normal LAN.",
|
||||
},
|
||||
];
|
||||
|
||||
export const hikvisionDriver: CameraDriver = {
|
||||
|
||||
Reference in New Issue
Block a user