From 22c7c0a1952a00165d0bb8099e49c186f8a22907 Mon Sep 17 00:00:00 2001 From: "suren.gabrielyan" Date: Fri, 26 Feb 2021 18:28:57 +0400 Subject: [PATCH] mDNS: Updated APIs description and shows the warning when hostname contains domain name during the query Closes https://github.com/espressif/esp-idf/issues/6590 * Original commit: espressif/esp-idf@9f8d2b944d2b3736a012e0dff1a8459b6941d295 --- components/mdns/include/mdns.h | 4 ++++ components/mdns/mdns.c | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/components/mdns/include/mdns.h b/components/mdns/include/mdns.h index aeda9a071..22da2afab 100644 --- a/components/mdns/include/mdns.h +++ b/components/mdns/include/mdns.h @@ -343,6 +343,8 @@ esp_err_t mdns_query_a(const char * host_name, uint32_t timeout, esp_ip4_addr_t /** * @brief Query mDNS for A record * + * Please note that hostname must not contain domain name, as mDNS uses '.local' domain. + * * @param host_name host name to look for * @param timeout time in milliseconds to wait for answer. If 0, max_results needs to be defined * @param addr pointer to the resulting IP6 address @@ -361,6 +363,8 @@ esp_err_t mdns_query_aaaa(const char * host_name, uint32_t timeout, esp_ip6_addr * This method controls the service state on all active interfaces and applications are required * to call it from the system event handler for normal operation of mDNS service. * + * Please note that hostname must not contain domain name, as mDNS uses '.local' domain. + * * @param ctx The system event context * @param event The system event */ diff --git a/components/mdns/mdns.c b/components/mdns/mdns.c index fd3706f9f..401d93122 100644 --- a/components/mdns/mdns.c +++ b/components/mdns/mdns.c @@ -4819,6 +4819,10 @@ esp_err_t mdns_query_a(const char * name, uint32_t timeout, esp_ip4_addr_t * add return ESP_ERR_INVALID_ARG; } + if (strstr(name, ".local")) { + ESP_LOGW(TAG, "Please note that hostname must not contain domain name, as mDNS uses '.local' domain"); + } + err = mdns_query(name, NULL, NULL, MDNS_TYPE_A, timeout, 1, &result); if (err) { @@ -4853,6 +4857,10 @@ esp_err_t mdns_query_aaaa(const char * name, uint32_t timeout, esp_ip6_addr_t * return ESP_ERR_INVALID_ARG; } + if (strstr(name, ".local")) { + ESP_LOGW(TAG, "Please note that hostname must not contain domain name, as mDNS uses '.local' domain"); + } + err = mdns_query(name, NULL, NULL, MDNS_TYPE_AAAA, timeout, 1, &result); if (err) {