fix(mdns): Fix to keep TXT/SRV in answers to queries #958
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The hotfix makes _mdns_create_answer_from_service() aware of whether a query is service discovery or an instance-level Q/A without broad architectural changes.
We detect instance questions via question->host and introduce is_instance_question / is_any_instance_question. For service-browse queries (QTYPE=PTR or QTYPE=ANY where there is no instance label, e.g. _service._tcp.local), behavior remains: the PTR goes in the Answer section, and SRV/TXT plus A/AAAA go into the Additional section, matching RFC 6763 §12.1 and Thread expectations.
For instance-level ANY queries (Instance._service._tcp.local, QTYPE=ANY), we now treat them like SRV/TXT Q/A: SRV and TXT for that instance are placed in the Answer section, with A/AAAA in Additional and no unrelated PTR answer created. Direct SRV/TXT queries are unchanged. This should make Bonjour Conformance Test happier while preserving the discovery behavior that Thread certification requires.