Skip to content

fix: stop mDNS goodbyes on iface churn and keep ads visible - #10

Merged
keskad merged 1 commit into
mainfrom
fix/mdns-reliability-and-hub-deploy
Aug 22, 2026
Merged

fix: stop mDNS goodbyes on iface churn and keep ads visible#10
keskad merged 1 commit into
mainfrom
fix/mdns-reliability-and-hub-deploy

Conversation

@keskad

@keskad keskad commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Why

Hub mDNS was disappearing from client caches: every rtnetlink event ran unregister + register, which sent goodbye (TTL 0) and then never re-announced. Wireless-programmer activity on wlan0 was enough to wipe bigfred._http._tcp.local.

What

  • Re-register without unregister on refresh; goodbye only when a service is actually gone.
  • Filter/debounce netlink to advertised NICs (skip wlan* on the hub).
  • Periodic unsolicited re-announce (55 s) plus 1/2/4/8 s burst after a real change.
  • Self-check (IGMP + daemon + announce freshness) and microdns doctor.
  • make deploy builds musl arm64 and copies the binary to /data/opt/microdns on 192.168.0.1.

Companion OS change: dcc-bigfred/bigfred-os feat/microdns-data-override (init prefers /data, lower restartBackoff, tcpdump).

Test plan

  • cargo test --offline
  • cargo clippy --offline --all-targets -- -D warnings
  • On hub: make deploy, then microdns doctor and confirm no TTL 0 except on real service removal; service stays as visible as Railbox.

Refresh advertisements with register() only so netlink/DHCP events no
longer emit TTL 0. Filter and debounce rtnetlink, re-announce on a 55 s
ticker, and add doctor/selfcheck plus `make deploy` onto /data.

Co-authored-by: Cursor <cursoragent@cursor.com>
@keskad
keskad merged commit 13db7fd into main Aug 22, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant