Skip to content

Conversation

@earlephilhower
Copy link
Owner

Fixes #3157

LWIP MDNS was not being removed from a netif when a device ::end was called, resulting in a crash on reconnect when MDNS or things like ArduinoOTA (which uses SimpleMDNS) were used.

They would not crash, however, if the initial WiFi::begin failed, because LWIP MDNS does not automatically add existing services to a "new" netif (i.e. there was no MDNS on the 2nd and following WiFi.begin() calls).

To fix the crash due to null-derefernce, add a way for SimpleMDNS to remove MSND from a netif before it is netif_removed.

To fix the lack of MDNS services after a WiFi reconnect, keep track of the services we've already added and add a call to hook into LwipIntfDev after a new netif has been brought up (link-state at least, if not DHCP).

Fixes #3157

LWIP MDNS was not being removed from a netif when a device ::end was
called, resulting in a crash on reconnect when MDNS or things like
ArduinoOTA (which uses SimpleMDNS) were used.

They would not crash, however, if the initial WiFi::begin failed, because
LWIP MDNS does not automatically add existing services to a "new" netif
(i.e. there was no MDNS on the 2nd and following WiFi.begin() calls).

To fix the crash due to null-derefernce, add a way for SimpleMDNS
to remove MSND from a netif before it is netif_removed.

To fix the lack of MDNS services after a WiFi reconnect, keep track of
the services we've already added and add a call to hook into LwipIntfDev
after a new netif has been brought up (link-state at least, if not
DHCP).
@earlephilhower earlephilhower merged commit b0bc62b into master Oct 1, 2025
28 checks passed
@earlephilhower earlephilhower deleted the momdns branch October 1, 2025 21:37
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.

Second call to WiFi.begin() + ArduinoOTA running seems to block forever on RP2040

2 participants