diff --git a/components/mdns/include/mdns.h b/components/mdns/include/mdns.h index ff0d76b09..4037fda6c 100644 --- a/components/mdns/include/mdns.h +++ b/components/mdns/include/mdns.h @@ -551,7 +551,7 @@ esp_err_t mdns_query_async_delete(mdns_search_once_t* search); * True if search has finished before or at timeout * False if search timeout is over */ -bool mdns_query_async_get_results(mdns_search_once_t* search, uint32_t timeout, mdns_result_t ** results); +bool mdns_query_async_get_results(mdns_search_once_t* search, uint32_t timeout, mdns_result_t ** results, uint8_t * num_results); /** * @brief Query mDNS for host or service asynchronousely. diff --git a/components/mdns/mdns.c b/components/mdns/mdns.c index bcea61117..cb150ebee 100644 --- a/components/mdns/mdns.c +++ b/components/mdns/mdns.c @@ -5573,10 +5573,15 @@ esp_err_t mdns_query_async_delete(mdns_search_once_t* search) return ESP_OK; } -bool mdns_query_async_get_results(mdns_search_once_t* search, uint32_t timeout, mdns_result_t ** results) +bool mdns_query_async_get_results(mdns_search_once_t* search, uint32_t timeout, mdns_result_t ** results, uint8_t * num_results) { if (xSemaphoreTake(search->done_semaphore, pdMS_TO_TICKS(timeout)) == pdTRUE) { - *results = search->result; + if (results) { + *results = search->result; + } + if (num_results) { + *num_results = search->num_results; + } return true; } return false;