From a2b4979285a9d0d9c73c7649a5bbee9513f69bd9 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Wed, 11 Dec 2024 15:27:22 +0100 Subject: [PATCH] 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 --- service.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 -- 2.30.2