Simplify UDP vs. TCP handling in service_announce_services
[project/mdnsd.git] / dns.c
diff --git a/dns.c b/dns.c
index 7ca705ea416653099bde9a3329c81119d5bb9bae..550befc24c1593ca2f7bcef14fed22456304908f 100644 (file)
--- a/dns.c
+++ b/dns.c
@@ -360,12 +360,17 @@ parse_question(struct interface *iface, char *name, struct dns_question *q)
 
        switch (q->type) {
        case TYPE_ANY:
-               if (!strcmp(name, mdns_hostname_local))
+               if (!strcmp(name, mdns_hostname_local)) {
                        service_reply(iface, NULL, announce_ttl);
+                       dns_reply_a(iface, announce_ttl);
+               }
                break;
 
        case TYPE_PTR:
-               service_announce_services(iface, name, announce_ttl);
+               if (!strcmp(name, sdudp))
+                       service_announce_services(iface, 0, announce_ttl);
+               else if (!strcmp(name, sdtcp))
+                       service_announce_services(iface, 1, announce_ttl);
                service_reply(iface, name, announce_ttl);
                break;
 
@@ -394,7 +399,7 @@ dns_handle_packet(struct interface *iface, struct sockaddr *s, uint16_t port, ui
        }
 
        if (h->questions && !iface->multicast && port != 5353)
-               // silently drop unicast questions that dont originate from port 5353  
+               /* silently drop unicast questions that dont originate from port 5353 */
                return;
 
        while (h->questions-- > 0) {