X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fdns.c;h=4a5c0fa39c4f966ef03c17b53d3a95f352b032ff;hb=9d9678b9e753ea0936612021f4f87f8092ab4e31;hp=04e5a1e6459671d04aab853256616514a3ad5a32;hpb=8c5927c52f4eefebaad3a6ecadc253ee9007ebb5;p=collectd.git diff --git a/src/dns.c b/src/dns.c index 04e5a1e6..4a5c0fa3 100644 --- a/src/dns.c +++ b/src/dns.c @@ -278,30 +278,16 @@ static int dns_run_pcap_loop (void) static int dns_sleep_one_interval (void) /* {{{ */ { - cdtime_t interval; - struct timespec ts = { 0, 0 }; - int status = 0; - - interval = plugin_get_interval (); - CDTIME_T_TO_TIMESPEC (interval, &ts); - - while (42) + struct timespec ts = CDTIME_T_TO_TIMESPEC (plugin_get_interval ()); + while (nanosleep (&ts, &ts) != 0) { - struct timespec rem = { 0, 0 }; - - status = nanosleep (&ts, &rem); - if (status == 0) - break; - else if ((errno == EINTR) || (errno == EAGAIN)) - { - ts = rem; + if ((errno == EINTR) || (errno == EAGAIN)) continue; - } - else - break; + + return (errno); } - return (status); + return (0); } /* }}} int dns_sleep_one_interval */ static void *dns_child_loop (__attribute__((unused)) void *dummy) /* {{{ */ @@ -339,7 +325,7 @@ static int dns_init (void) return (-1); status = plugin_thread_create (&listen_thread, NULL, dns_child_loop, - (void *) 0); + (void *) 0, "dns listen"); if (status != 0) { char errbuf[1024];