X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fdns.c;h=3de7c34a89de73986e3b4d2fd36550a102e3da1e;hb=658e44d47088aaea3c59fb248336a74fdefe4245;hp=e9996b996d74409b3a4fbd0a61635dd4ce63b8ca;hpb=58ecdb7ff9a4d90e87daecca05b9cb4a43070fd7;p=collectd.git diff --git a/src/dns.c b/src/dns.c index e9996b99..3de7c34a 100644 --- a/src/dns.c +++ b/src/dns.c @@ -19,6 +19,8 @@ * Florian octo Forster **/ +#define _BSD_SOURCE + #include "collectd.h" #include "common.h" #include "plugin.h" @@ -195,7 +197,7 @@ static void dns_child_callback (const rfc1035_header_t *dns) pthread_mutex_unlock (&opcode_mutex); } -static void *dns_child_loop (void *dummy) +static void *dns_child_loop (void __attribute__((unused)) *dummy) { pcap_t *pcap_obj; char pcap_error[PCAP_ERRBUF_SIZE]; @@ -211,8 +213,8 @@ static void *dns_child_loop (void *dummy) } /* Passing `pcap_device == NULL' is okay and the same as passign "any" */ - DEBUG ("Creating PCAP object.."); - pcap_obj = pcap_open_live (pcap_device, + DEBUG ("dns plugin: Creating PCAP object.."); + pcap_obj = pcap_open_live ((pcap_device != NULL) ? pcap_device : "any", PCAP_SNAPLEN, 0 /* Not promiscuous */, interval_g, @@ -298,12 +300,12 @@ static void submit_counter (const char *type, const char *type_instance, vl.values = values; vl.values_len = 1; - vl.time = time (NULL); - strcpy (vl.host, hostname_g); - strcpy (vl.plugin, "dns"); - strncpy (vl.type_instance, type_instance, sizeof (vl.type_instance)); + 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)); - plugin_dispatch_values (type, &vl); + plugin_dispatch_values (&vl); } /* void submit_counter */ static void submit_octets (counter_t queries, counter_t responses) @@ -316,11 +318,11 @@ static void submit_octets (counter_t queries, counter_t responses) vl.values = values; vl.values_len = 2; - vl.time = time (NULL); - strcpy (vl.host, hostname_g); - strcpy (vl.plugin, "dns"); + sstrncpy (vl.host, hostname_g, sizeof (vl.host)); + sstrncpy (vl.plugin, "dns", sizeof (vl.plugin)); + sstrncpy (vl.type, "dns_octets", sizeof (vl.type)); - plugin_dispatch_values ("dns_octets", &vl); + plugin_dispatch_values (&vl); } /* void submit_counter */ static int dns_read (void)