From: John Crispin Date: Wed, 11 Dec 2024 14:27:22 +0000 (+0100) Subject: service: announce all services in single dns answer X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=a2b4979285a9d0d9c73c7649a5bbee9513f69bd9;p=project%2Fmdnsd.git service: announce all services in single dns answer Annouce all services in single packet, and do not send single reply for each of the service while annoucing. The single reply is sent in response to specific service queries only. Signed-off-by: Rahul Thakur Signed-off-by: John Crispin --- diff --git a/service.c b/service.c index 21bdc7b..1f81031 100644 --- a/service.c +++ b/service.c @@ -161,16 +161,18 @@ void service_announce_services(struct interface *iface, struct sockaddr *to, int ttl) { struct service *s; + int count = 0; + dns_init_answer(); vlist_for_each_element(&announced_services, s, node) { s->t = 0; if (ttl) { - dns_init_answer(); service_add_ptr(s->service, ttl); - dns_send_answer(iface, to, C_DNS_SD); + count++; } - service_reply_single(iface, to, s, ttl, 0); } + if (count) + dns_send_answer(iface, to, C_DNS_SD); } void