From: Rafał Miłecki <ra...@milecki.pl> We should check if queried name starts with a _ to see if it is about a specific service + domain.
Fixes: 70c66fbbcde86 ("Fix sending replies to PTR questions") Reported-by: Cristian Morales Vega <crist...@samknows.com> Signed-off-by: Rafał Miłecki <ra...@milecki.pl> --- dns.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/dns.c b/dns.c index bccaa29..aadfdd8 100644 --- a/dns.c +++ b/dns.c @@ -378,15 +378,18 @@ parse_question(struct interface *iface, struct sockaddr *from, char *name, struc dns_reply_a(iface, to, announce_ttl); service_announce_services(iface, to, announce_ttl); } else { - /* First dot separates instance name from the rest */ - char *dot = strchr(name, '.'); - /* Length of queried instance */ - size_t len = dot ? dot - name : 0; - - /* Make sure it's query for the instance name we use */ - if (len && len == strlen(umdns_host_label) && - !strncmp(name, umdns_host_label, len)) - service_reply(iface, to, NULL, dot + 1, announce_ttl); + if (name[0] == '_') { + service_reply(iface, to, NULL, name, announce_ttl); + } else { + /* First dot separates instance name from the rest */ + char *dot = strchr(name, '.'); + + if (dot) { + *dot = '\0'; + service_reply(iface, to, name, dot + 1, announce_ttl); + *dot = '.'; + } + } } break; -- 2.11.0 _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev