mdns: Support for One-Shot mDNS queries

This commit is contained in:
David Cermak
2021-06-10 15:00:33 +02:00
parent c6e0decf0a
commit df752f4c46

View File

@ -1314,15 +1314,17 @@ static void _mdns_create_answer_from_parsed_packet(mdns_parsed_packet_t * parsed
return; return;
} }
#ifdef MDNS_REPEAT_QUERY_IN_RESPONSE #ifdef MDNS_REPEAT_QUERY_IN_RESPONSE
mdns_out_question_t * out_question = malloc(sizeof(mdns_out_question_t)); if (parsed_packet->src_port != MDNS_SERVICE_PORT) {
if (out_question == NULL) { mdns_out_question_t * out_question = malloc(sizeof(mdns_out_question_t));
HOOK_MALLOC_FAILED; if (out_question == NULL) {
_mdns_free_tx_packet(packet); HOOK_MALLOC_FAILED;
return; _mdns_free_tx_packet(packet);
return;
}
memcpy(out_question, q, sizeof(mdns_out_question_t));
out_question->next = NULL;
queueToEnd(mdns_out_question_t, packet->questions, out_question);
} }
memcpy(out_question, q, sizeof(mdns_out_question_t));
out_question->next = NULL;
queueToEnd(mdns_out_question_t, packet->questions, out_question);
#endif // MDNS_REPEAT_QUERY_IN_RESPONSE #endif // MDNS_REPEAT_QUERY_IN_RESPONSE
} else if (!_mdns_alloc_answer(&packet->answers, q->type, NULL, send_flush, false)) { } else if (!_mdns_alloc_answer(&packet->answers, q->type, NULL, send_flush, false)) {
_mdns_free_tx_packet(packet); _mdns_free_tx_packet(packet);