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 <rahul.thakur@iopsys.eu>
Signed-off-by: John Crispin <john@phrozen.org>
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