All checks were successful
check / check (push) Successful in 46s
Port state keys are ip:port with a single hostname field. When multiple hostnames resolve to the same IP (shared hosting, CDN), only one hostname was associated. This caused orphaned port state when that hostname removed the IP from DNS while the IP remained valid for other hostnames. Changes: - PortState.Hostname (string) → PortState.Hostnames ([]string) - Custom UnmarshalJSON for backward compatibility with old state files that have single 'hostname' field (migrated to single-element slice) - Refactored checkAllPorts to build IP:port→hostname associations first, then check each unique IP:port once with all associated hostnames - Port state entries are cleaned up when no hostnames reference them - Port change notifications now list all associated hostnames - Added DeletePortState and GetAllPortKeys methods to state - Updated README state file format documentation Closes #55
18 KiB
18 KiB