Przeglądaj źródła

Merge branch 'bugfix/mdns-query-instance-filter' into 'master'

mdns: filter instance name for ANY queries

See merge request espressif/esp-idf!16255
Guo Jia Cheng 4 lat temu
rodzic
commit
5fdbd40404
1 zmienionych plików z 7 dodań i 0 usunięć
  1. 7 0
      components/mdns/mdns.c

+ 7 - 0
components/mdns/mdns.c

@@ -1540,6 +1540,8 @@ static bool _mdns_service_match_ptr_question(const mdns_service_t *service, cons
     if (!_mdns_service_match(service, question->service, question->proto, NULL)) {
         return false;
     }
+    // The question parser stores anything before _type._proto in question->host
+    // So the question->host can be subtype or instance name based on its content
     if (question->sub) {
         mdns_subtype_t *subtype = service->subtype;
         while (subtype) {
@@ -1550,6 +1552,11 @@ static bool _mdns_service_match_ptr_question(const mdns_service_t *service, cons
         }
         return false;
     }
+    if (question->host) {
+        if (strcasecmp(service->instance, question->host) != 0) {
+            return false;
+        }
+    }
     return true;
 }