X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Futils_dns.c;h=9a2e479c5ce500a60d396c30140768d9091ab769;hp=c16b3c12f78d6530443aedcc65ae6be2a1024768;hb=61a1fa91ba73e4fe3a34949f77c5f017056f2b7a;hpb=597adb008e5cb9b39bc925046d2aedc084ec2b9e diff --git a/src/utils_dns.c b/src/utils_dns.c index c16b3c12..9a2e479c 100644 --- a/src/utils_dns.c +++ b/src/utils_dns.c @@ -33,6 +33,8 @@ * Florian octo Forster */ +#define _BSD_SOURCE + #include "collectd.h" #include "plugin.h" #include "common.h" @@ -337,9 +339,7 @@ rfc1035NameUnpack(const char *buf, size_t sz, off_t * off, char *name, size_t ns } static int -handle_dns(const char *buf, int len, - const struct in6_addr *s_addr, - const struct in6_addr *d_addr) +handle_dns(const char *buf, int len) { rfc1035_header_t qh; uint16_t us; @@ -412,16 +412,14 @@ handle_dns(const char *buf, int len, } static int -handle_udp(const struct udphdr *udp, int len, - const struct in6_addr *s_addr, - const struct in6_addr *d_addr) +handle_udp(const struct udphdr *udp, int len) { char buf[PCAP_SNAPLEN]; if ((ntohs (udp->UDP_DEST) != 53) && (ntohs (udp->UDP_SRC) != 53)) return 0; memcpy(buf, udp + 1, len - sizeof(*udp)); - if (0 == handle_dns(buf, len - sizeof(*udp), s_addr, d_addr)) + if (0 == handle_dns(buf, len - sizeof(*udp))) return 0; return 1; } @@ -434,7 +432,6 @@ handle_ipv6 (struct ip6_hdr *ipv6, int len) int nexthdr; struct in6_addr s_addr; - struct in6_addr d_addr; uint16_t payload_len; if (0 > len) @@ -443,7 +440,6 @@ handle_ipv6 (struct ip6_hdr *ipv6, int len) offset = sizeof (struct ip6_hdr); nexthdr = ipv6->ip6_nxt; s_addr = ipv6->ip6_src; - d_addr = ipv6->ip6_dst; payload_len = ntohs (ipv6->ip6_plen); if (ignore_list_match (&s_addr)) @@ -492,7 +488,7 @@ handle_ipv6 (struct ip6_hdr *ipv6, int len) return (0); memcpy (buf, (char *) ipv6 + offset, payload_len); - if (handle_udp ((struct udphdr *) buf, payload_len, &s_addr, &d_addr) == 0) + if (handle_udp ((struct udphdr *) buf, payload_len) == 0) return (0); return (1); /* Success */ @@ -516,7 +512,7 @@ handle_ip(const struct ip *ip, int len) if (IPPROTO_UDP != ip->ip_p) return 0; memcpy(buf, (void *) ip + offset, len - offset); - if (0 == handle_udp((struct udphdr *) buf, len - offset, &s_addr, &d_addr)) + if (0 == handle_udp((struct udphdr *) buf, len - offset)) return 0; return 1; }