Przeglądaj źródła

mdns: Fix the resolver to correctly parse it's own non-strict answers

The resolver was able to respond correctly, but would also resolve its
own queries and cause issues with BCT 1.5.2, specifically
* MULTIPLE QUESTIONS - DUPLICATE SUPPRESSION
* MULTIPLE QUESTIONS - DISTRIBUTED DUPLICATE SUPPRESSION
tests failed.
David Cermak 4 lat temu
rodzic
commit
8e8737c128
1 zmienionych plików z 5 dodań i 6 usunięć
  1. 5 6
      components/mdns/mdns.c

+ 5 - 6
components/mdns/mdns.c

@@ -2812,13 +2812,12 @@ void mdns_parse_packet(mdns_rx_packet_t * packet)
 
             if (parsed_packet->discovery && _mdns_name_is_discovery(name, type)) {
                 discovery = true;
-            } else {
-                if (!name->sub && _mdns_name_is_ours(name)) {
-                    ours = true;
-                    if (name->service && name->service[0] && name->proto && name->proto[0]) {
-                        service = _mdns_get_service_item(name->service, name->proto);
-                    }
+            } else if (!name->sub && _mdns_name_is_ours(name)) {
+                ours = true;
+                if (name->service && name->service[0] && name->proto && name->proto[0]) {
+                    service = _mdns_get_service_item(name->service, name->proto);
                 }
+            } else {
                 if (!parsed_packet->authoritative || record_type == MDNS_NS) {
                     //skip this record
                     continue;