Page 1 of 1

mDNS stops working after some period of time

Posted: Fri Jul 05, 2024 5:09 pm
by lehrian
I have integrated the mDNS example code into our product and it works quite well as long as there are requests periodically for the device. However, if don't query the device for X days (the exact value of X is not known) the device is no longer queryable. I have had reports from our clients that they were away for anywhere from 6 to 8 days and when they came back they could not access the device until it was rebooted. I just myself experienced it when I was away for 10 days and came back and neither of the devices were searchable on my network, however they were online and functional. I rebooted the one and was immediately able to find it on the network.

mDNS can be configured to listen for multicast requests on port 5353 for a specific service like _printer or _myservice. When it recognizes the request it will respond with its ip address and hostname. The router, seeing the .local name suffix on the multicast request, would pass the multicast request out to the local subnet and not to its configured DNS. This all seems to be working just fine so it seems my understanding is correct, but something happens after a period of time without the device receiving a multicast request and it either no longer recognizes the registered service or is fails to respond.

As as hack I was going to create a timer and once a day mdns_free(), mdns_init() and mdns_service_add() on the ESP32.

Anyone's experience with this would help enlighten me.