mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-02 12:14:32 +02:00
Merge branch 'bugfix/mdns_deinit_event_crash' into 'master'
mdns: fixed crash on event during deinit Closes WIFI-1485 See merge request espressif/esp-idf!6951
This commit is contained in:
@@ -4301,6 +4301,14 @@ void mdns_free(void)
|
|||||||
if (!_mdns_server) {
|
if (!_mdns_server) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Unregister handlers before destoying the mdns internals to avoid receiving asyc events while deinit
|
||||||
|
esp_event_handler_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler);
|
||||||
|
esp_event_handler_unregister(IP_EVENT, ESP_EVENT_ANY_ID, &event_handler);
|
||||||
|
#if CONFIG_ETH_ENABLED
|
||||||
|
esp_event_handler_unregister(ETH_EVENT, ESP_EVENT_ANY_ID, &event_handler);
|
||||||
|
#endif
|
||||||
|
|
||||||
mdns_service_remove_all();
|
mdns_service_remove_all();
|
||||||
_mdns_service_task_stop();
|
_mdns_service_task_stop();
|
||||||
for (i=0; i<MDNS_IF_MAX; i++) {
|
for (i=0; i<MDNS_IF_MAX; i++) {
|
||||||
@@ -4331,11 +4339,6 @@ void mdns_free(void)
|
|||||||
free(h);
|
free(h);
|
||||||
}
|
}
|
||||||
vSemaphoreDelete(_mdns_server->lock);
|
vSemaphoreDelete(_mdns_server->lock);
|
||||||
esp_event_handler_unregister(WIFI_EVENT, ESP_EVENT_ANY_ID, &event_handler);
|
|
||||||
esp_event_handler_unregister(IP_EVENT, ESP_EVENT_ANY_ID, &event_handler);
|
|
||||||
#if CONFIG_ETH_ENABLED
|
|
||||||
esp_event_handler_unregister(ETH_EVENT, ESP_EVENT_ANY_ID, &event_handler);
|
|
||||||
#endif
|
|
||||||
free(_mdns_server);
|
free(_mdns_server);
|
||||||
_mdns_server = NULL;
|
_mdns_server = NULL;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user