Skip to content

feat(os): skip wlan* in microdns on the hub - #30

Merged
keskad merged 1 commit into
mainfrom
feat/microdns-skip-wlan
Aug 10, 2026
Merged

feat(os): skip wlan* in microdns on the hub#30
keskad merged 1 commit into
mainfrom
feat/microdns-skip-wlan

Conversation

@keskad

@keskad keskad commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Adds "skipInterfaces": ["wlan"] to the hub's os/overlays/etc/microdns/microdns.json so mDNS does not advertise bigfred.local / dcc-bus beacons on the on-board WiFi radio. The radio is an exclusive, on-demand resource used only by wireless-programmer to associate to a device config AP; advertising on it would leak onto a customer's device config network.
  • microdns defaults to an empty skipInterfaces list (so laptops advertise on WiFi), so the hub opts in explicitly here.

Depends on the microdns change that makes skipInterfaces configurable: dcc-bigfred/microdns#6. Merge that first.

Test plan

  • Build image with the updated microdns (PR SysV start + capabilities for bigfred-remote-icmp #6 merged); boot; microdns advertises bigfred.local only on the wired interface, not on wlan0 when it is up.
  • On a laptop with the default microdns config (empty skipInterfaces), mDNS still advertises on wlan0.

Made with Cursor

Add "skipInterfaces": ["wlan"] to the hub's microdns config so mDNS does
not advertise bigfred.local / dcc-bus beacons on the on-board WiFi radio.
The radio is an exclusive, on-demand resource used only by
wireless-programmer to associate to a device config AP; advertising on it
would leak onto a customer's device config network. microdns defaults to
an empty skipInterfaces list (so laptops advertise on WiFi), so the hub
opts in explicitly.

Requires microdns with the configurable skipInterfaces field
(dcc-bigfred/microdns#6).

Co-authored-by: Cursor <cursoragent@cursor.com>
@keskad

keskad commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator Author

Review — skipInterfaces: ["wlan"] on the hub

One-line config change, correct intent. Verified and a few things worth capturing.

Verified: the JSON key binds. microdns::config::Config carries #[serde(rename_all = "camelCase")], so "skipInterfaces" maps to skip_interfaces — no silent typo risk in the field name itself. /etc/init.d/microdns copies /etc/microdns/microdns.json over /data/etc/microdns.json, so the new key reaches a device on upgrade without manual intervention.

1. Depends on dcc-bigfred/microdns#6 — and fails silently if it isn't there

VERSIONS has MICRODNS_REF ?= main, so once #6 merges this picks it up automatically. But Config has no deny_unknown_fields, so if anyone builds against an older microdns (pinned sha, cached download, or #28's missing-FORCE_REDOWNLOAD class of problem), skipInterfaces is silently ignored and the hub goes back to advertising bigfred.local on wlan0 with no error anywhere. Worth calling out in the PR body, and ideally merge #6 first.

2. Please state the actual motivation in the PR body

The important part isn't just "don't advertise on WiFi" — it's that during a programming job wireless-programmer associates wlan0 to a customer's device config AP (e.g. a NewHeiko WiFred's open wiFred-config network, 192.168.4.0/24). Without this skip, microdns would notice the new interface/address mid-job and re-register bigfred.local and the dcc-bus beacons onto that foreign network. The skip is a data-leak guard as much as a tidiness measure, and it also stops the address churn from triggering pointless re-registration cycles on every job.

3. Known consequence: mDNS goes silent if Ethernet is down

With ["wlan"] set, a hub whose only addressed interface is wlan0 advertises nothing, and the log line is "no UP non-loopback IPv4 (skipping docker/veth/br-*)" — which doesn't mention the configured skip, so the cause isn't visible. That's intentional behaviour for the hub (it's meant to be wired), but the diagnostic is misleading; I've raised it on microdns#6 to include the configured list in that message.

4. Prefix semantics

Matching is a case-insensitive prefix, so "wlan" covers wlan0/wlan1 but not predictable names like wlp3s0. That's correct for the Pi (brcmfmac + no net.ifnames), just don't copy this value onto a host that uses predictable interface names and expect it to work.

@keskad
keskad merged commit e5c7f8a into main Aug 10, 2026
@keskad
keskad deleted the feat/microdns-skip-wlan branch August 10, 2026 07:33
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