Quellcode durchsuchen

mdns: filter instance name for ANY queries

The instance name in ANY quries was ignored. The MR fixes the issue.
Jiacheng Guo vor 4 Jahren
Ursprung
Commit
5d0c47303d
1 geänderte Dateien mit 7 neuen und 0 gelöschten Zeilen
  1. 7 0
      components/mdns/mdns.c

+ 7 - 0
components/mdns/mdns.c

@@ -1534,6 +1534,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) {
@@ -1544,6 +1546,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;
 }