From f391d610e8185631b5361dc6c844c4c04aac30b1 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Thu, 2 Dec 2021 12:33:10 +0100 Subject: [PATCH 1/2] Added results count to MDNS --- components/mdns/include/mdns.h | 2 +- components/mdns/mdns.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/components/mdns/include/mdns.h b/components/mdns/include/mdns.h index 8c58687b50..e18c2c2a54 100644 --- a/components/mdns/include/mdns.h +++ b/components/mdns/include/mdns.h @@ -544,7 +544,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 351b5c1695..ffa53ae707 100644 --- a/components/mdns/mdns.c +++ b/components/mdns/mdns.c @@ -5572,10 +5572,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; From c297301ecc350f8315d7eaf78c72b4aba68d422a Mon Sep 17 00:00:00 2001 From: David Cermak Date: Fri, 10 Dec 2021 10:30:13 +0100 Subject: [PATCH 2/2] mdns: Minor fix of API description and API usage --- components/mdns/include/mdns.h | 1 + examples/protocols/mdns/main/mdns_example_main.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/components/mdns/include/mdns.h b/components/mdns/include/mdns.h index e18c2c2a54..31f16ffe34 100644 --- a/components/mdns/include/mdns.h +++ b/components/mdns/include/mdns.h @@ -539,6 +539,7 @@ esp_err_t mdns_query_async_delete(mdns_search_once_t* search); * @param search pointer to search object * @param timeout time in milliseconds to wait for answers * @param results pointer to the results of the query + * @param num_results pointer to the number of the actual result items (set to NULL to ignore this return value) * * @return * True if search has finished before or at timeout diff --git a/examples/protocols/mdns/main/mdns_example_main.c b/examples/protocols/mdns/main/mdns_example_main.c index f53e06031d..94e9140eaa 100644 --- a/examples/protocols/mdns/main/mdns_example_main.c +++ b/examples/protocols/mdns/main/mdns_example_main.c @@ -146,7 +146,7 @@ static bool check_and_print_result(mdns_search_once_t *search) { // Check if any result is available mdns_result_t * result = NULL; - if (!mdns_query_async_get_results(search, 0, &result)) { + if (!mdns_query_async_get_results(search, 0, &result, NULL)) { return false; }