X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fdns.c;h=4a5c0fa39c4f966ef03c17b53d3a95f352b032ff;hb=9d9678b9e753ea0936612021f4f87f8092ab4e31;hp=0494b4baeb20494f3a00fdb629eb2d738b637077;hpb=d0408cb0dbef15d739a6b1cd047e9c94d7643329;p=collectd.git diff --git a/src/dns.c b/src/dns.c index 0494b4ba..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]; @@ -370,14 +356,10 @@ static int dns_init (void) static void submit_derive (const char *type, const char *type_instance, derive_t value) { - value_t values[1]; value_list_t vl = VALUE_LIST_INIT; - values[0].derive = value; - - vl.values = values; + vl.values = &(value_t) { .derive = value }; vl.values_len = 1; - sstrncpy (vl.host, hostname_g, sizeof (vl.host)); sstrncpy (vl.plugin, "dns", sizeof (vl.plugin)); sstrncpy (vl.type, type, sizeof (vl.type)); sstrncpy (vl.type_instance, type_instance, sizeof (vl.type_instance)); @@ -387,15 +369,14 @@ static void submit_derive (const char *type, const char *type_instance, static void submit_octets (derive_t queries, derive_t responses) { - value_t values[2]; + value_t values[] = { + { .derive = queries }, + { .derive = responses }, + }; value_list_t vl = VALUE_LIST_INIT; - values[0].derive = queries; - values[1].derive = responses; - vl.values = values; - vl.values_len = 2; - sstrncpy (vl.host, hostname_g, sizeof (vl.host)); + vl.values_len = STATIC_ARRAY_SIZE (values); sstrncpy (vl.plugin, "dns", sizeof (vl.plugin)); sstrncpy (vl.type, "dns_octets", sizeof (vl.type));