mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-01 03:34: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) {
|
||||
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_task_stop();
|
||||
for (i=0; i<MDNS_IF_MAX; i++) {
|
||||
@@ -4331,11 +4339,6 @@ void mdns_free(void)
|
||||
free(h);
|
||||
}
|
||||
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);
|
||||
_mdns_server = NULL;
|
||||
}
|
||||
|
Reference in New Issue
Block a user