@@ -25,8 +25,6 @@ static void _mdns_browse_finish(mdns_browse_t *browse);
2525static void _mdns_browse_add (mdns_browse_t * browse );
2626static void _mdns_browse_send (mdns_browse_t * browse , mdns_if_t interface );
2727
28- static void _mdns_task_free_with_caps (void );
29-
3028#if CONFIG_ETH_ENABLED && CONFIG_MDNS_PREDEF_NETIF_ETH
3129#include "esp_eth.h"
3230#endif
@@ -64,7 +62,7 @@ static const char *TAG = "mdns";
6462
6563static volatile TaskHandle_t _mdns_service_task_handle = NULL ;
6664static SemaphoreHandle_t _mdns_service_semaphore = NULL ;
67- StackType_t * _mdns_stack_buffer ;
65+ static StackType_t * _mdns_stack_buffer ;
6866
6967static void _mdns_search_finish_done (void );
7068static mdns_search_once_t * _mdns_search_find_from (mdns_search_once_t * search , mdns_name_t * name , uint16_t type , mdns_if_t tcpip_if , mdns_ip_protocol_t ip_protocol );
@@ -5427,8 +5425,8 @@ static void _mdns_service_task(void *pvParameters)
54275425 vTaskDelay (500 * portTICK_PERIOD_MS );
54285426 }
54295427 }
5430- _mdns_task_free_with_caps ();
54315428 _mdns_service_task_handle = NULL ;
5429+ vTaskDelete (NULL );
54325430}
54335431
54345432static void _mdns_timer_cb (void * arg )
@@ -5485,12 +5483,6 @@ static esp_err_t _mdns_task_create_with_caps(void)
54855483 return ret ;
54865484}
54875485
5488- static void _mdns_task_free_with_caps (void )
5489- {
5490- vTaskDelete (_mdns_service_task_handle );
5491- heap_caps_free (_mdns_stack_buffer );
5492- }
5493-
54945486/**
54955487 * @brief Start the service thread if not running
54965488 *
@@ -5545,7 +5537,7 @@ static esp_err_t _mdns_service_task_stop(void)
55455537 mdns_action_t * a = & action ;
55465538 action .type = ACTION_TASK_STOP ;
55475539 if (xQueueSend (_mdns_server -> action_queue , & a , (TickType_t )0 ) != pdPASS ) {
5548- _mdns_task_free_with_caps ( );
5540+ vTaskDelete ( _mdns_service_task_handle );
55495541 _mdns_service_task_handle = NULL ;
55505542 }
55515543 while (_mdns_service_task_handle ) {
@@ -5775,6 +5767,8 @@ void mdns_free(void)
57755767 mdns_service_remove_all ();
57765768 free_delegated_hostnames ();
57775769 _mdns_service_task_stop ();
5770+ // at this point, the service task is deleted, so we can destroy the stack size
5771+ heap_caps_free (_mdns_stack_buffer );
57785772 for (i = 0 ; i < MDNS_MAX_INTERFACES ; i ++ ) {
57795773 for (j = 0 ; j < MDNS_IP_PROTOCOL_MAX ; j ++ ) {
57805774 mdns_pcb_deinit_local (i , j );
0 commit comments