SIGN IN SIGN UP

fix(network): exclude virtual ether links and prune stale ones from networkd (#2505)

The networkd backend treated any link reporting Type=ether as a wired uplink.
Podman bridges and veth pairs report Type=ether, so they were classified as
ethernet: isWired() short-circuited on Type and never consulted looksVirtual(),
which also lacked a podman prefix.

The link map was also never pruned. Links discovered at enumeration or via
signals were kept forever, so torn-down container interfaces lingered as
routable and could win the wired-uplink slot over the real NIC -- leaving the
indicator showing WiFi while a wired connection was active and default-routed.

- isWired()/isWireless() exclude virtual interfaces before consulting Type, and
  looksVirtual() now recognises podman.
- enumerateLinks() reconciles the cached map against ListLinks via syncLinks(),
  pruning links that no longer appear so dead interfaces don't accumulate.
G
Graeme Foster committed
e51ceed17556d8f13c0550aaa5af0d3c2827e73c
Parent: 304baf6
Committed by GitHub <noreply@github.com> on 6/1/2026, 1:45:49 PM