Clean up some -pedantic warnings about passing non-void-pointers with %p.
[srvx.git] / src / sar.c
index 4a50677dae49eb9e3092d90ff9fe67c9b7a7dd7c..43cc638fafe5a15e7a7e042518a1d0791c5a7530 100644 (file)
--- a/src/sar.c
+++ b/src/sar.c
@@ -259,14 +259,14 @@ sar_request_fail(struct sar_request *req, unsigned int rcode)
     sar_request_abort(req);
 }
 
-static time_t next_sar_timeout;
+static unsigned long next_sar_timeout;
 
 static void
 sar_timeout_cb(void *data)
 {
     dict_iterator_t it;
     dict_iterator_t next;
-    time_t next_timeout = INT_MAX;
+    unsigned long next_timeout = INT_MAX;
 
     for (it = dict_first(sar_requests); it; it = next) {
         struct sar_request *req;
@@ -289,7 +289,7 @@ sar_timeout_cb(void *data)
 }
 
 static void
-sar_check_timeout(time_t when)
+sar_check_timeout(unsigned long when)
 {
     if (!next_sar_timeout || when < next_sar_timeout) {
         timeq_del(0, sar_timeout_cb, NULL, TIMEQ_IGNORE_WHEN | TIMEQ_IGNORE_DATA);
@@ -632,7 +632,7 @@ sar_fd_readable(struct io_fd *fd)
 
     sprintf(id_text, "%d", hdr.id);
     req = dict_find(sar_requests, id_text, NULL);
-    log_module(sar_log, LOG_DEBUG, "sar_fd_readable(%p): hdr {id=%d, flags=0x%x, qdcount=%d, ancount=%d, nscount=%d, arcount=%d} -> req %p", fd, hdr.id, hdr.flags, hdr.qdcount, hdr.ancount, hdr.nscount, hdr.arcount, req);
+    log_module(sar_log, LOG_DEBUG, "sar_fd_readable(%p): hdr {id=%d, flags=0x%x, qdcount=%d, ancount=%d, nscount=%d, arcount=%d} -> req %p", (void*)fd, hdr.id, hdr.flags, hdr.qdcount, hdr.ancount, hdr.nscount, hdr.arcount, (void*)req);
     if (!req || !req->retries || !(hdr.flags & REQ_FLAG_QR)) {
         ns->resp_ignored++;
         return;
@@ -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;
@@ -1126,7 +1137,7 @@ sar_getaddr_append(struct sar_getaddr_state *state, struct addrinfo *ai, int cop
 {
     unsigned int count;
 
-    log_module(sar_log, LOG_DEBUG, "sar_getaddr_append({full_name=%s}, ai=%p, copy=%d)", state->full_name, ai, copy);
+    log_module(sar_log, LOG_DEBUG, "sar_getaddr_append({full_name=%s}, ai=%p, copy=%d)", state->full_name, (void*)ai, copy);
 
     /* Set the appropriate pointer to the new element(s). */
     if (state->ai_tail)
@@ -1999,6 +2010,8 @@ sar_cleanup(void)
     dict_delete(services_byport);
     dict_delete(sar_nameservers);
     dict_delete(sar_requests);
+    free_string_list(conf.sar_search);
+    free_string_list(conf.sar_nslist);
 }
 
 static void
@@ -2032,12 +2045,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);