From: Michael Poole Date: Thu, 13 Dec 2007 04:08:41 +0000 (-0500) Subject: Do not generate a flood of complaints on rehashing the asynchronous resolver. X-Git-Tag: v1.4.0-rc3~54 X-Git-Url: http://git.pk910.de/?p=srvx.git;a=commitdiff_plain;h=e4896c6f88963cd3415a097a0114b1036bef24c9 Do not generate a flood of complaints on rehashing the asynchronous resolver. src/sar.c (sar_services_init): Delete and re-allocate the services dicts here. (sar_init): .. rather than here. --- diff --git a/src/sar.c b/src/sar.c index 4a50677..16d89a2 100644 --- a/src/sar.c +++ b/src/sar.c @@ -1080,8 +1080,19 @@ sar_services_init(const char *etc_services) struct service_byname *byname; unsigned int ii; + /* Forget old services dicts and allocate new ones. */ + dict_delete(services_byname); + services_byname = dict_new(); + dict_set_free_data(services_byname, free); + + dict_delete(services_byport); + services_byport = dict_new(); + dict_set_free_data(services_byport, free); + + /* Load the list from the services file. */ sar_services_load_file(etc_services); + /* Mark well-known services as using DNS-SD SRV records. */ for (ii = 0; tcp_srvs[ii]; ++ii) { byname = sar_service_byname(tcp_srvs[ii], 1); byname->protos[SERVICE_TCP].srv = 1; @@ -2032,12 +2043,6 @@ sar_init(void) sar_nameservers = dict_new(); dict_set_free_data(sar_nameservers, free); - services_byname = dict_new(); - dict_set_free_data(services_byname, free); - - services_byport = dict_new(); - dict_set_free_data(services_byport, free); - sar_register_helper(&sar_ipv4_helper); #if defined(AF_INET6) sar_register_helper(&sar_ipv6_helper);