From cd07228f81603103e5b56f2d2334743a9db2f36c Mon Sep 17 00:00:00 2001 From: David Cermak Date: Tue, 4 Feb 2025 16:02:04 +0100 Subject: [PATCH] fix(mdns): Fix responder to ignore only invalid queries not the entire packet, so we can still reply to next questions Closes https://github.com/espressif/esp-protocols/issues/754 --- components/mdns/mdns.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/components/mdns/mdns.c b/components/mdns/mdns.c index 12539a4352..967519461d 100644 --- a/components/mdns/mdns.c +++ b/components/mdns/mdns.c @@ -1879,7 +1879,11 @@ static void _mdns_create_answer_from_parsed_packet(mdns_parsed_packet_t *parsed_ shared = q->type == MDNS_TYPE_PTR || q->type == MDNS_TYPE_SDPTR || !parsed_packet->probe; if (q->type == MDNS_TYPE_SRV || q->type == MDNS_TYPE_TXT) { mdns_srv_item_t *service = _mdns_get_service_item_instance(q->host, q->service, q->proto, NULL); - if (service == NULL || !_mdns_create_answer_from_service(packet, service->service, q, shared, send_flush)) { + if (service == NULL) { // Service not found, but we continue to the next question + q = q->next; + continue; + } + if (!_mdns_create_answer_from_service(packet, service->service, q, shared, send_flush)) { _mdns_free_tx_packet(packet); return; } else {