X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Futils_dns.c;h=2899bd4140223229a1ae45533429d186572ddd35;hb=5f0744209517883b1a3b5f8fd269734bbed1efd3;hp=b7dc79134ab6e48db7c8fcdc54a067c6061858de;hpb=de0fdb208de123fe753c5fcf03533833777a5b4a;p=collectd.git diff --git a/src/utils_dns.c b/src/utils_dns.c index b7dc7913..2899bd41 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" @@ -116,7 +118,7 @@ #if HAVE_STRUCT_UDPHDR_UH_DPORT && HAVE_STRUCT_UDPHDR_UH_SPORT # define UDP_DEST uh_dport -# define UDP_SRC uh_dport +# define UDP_SRC uh_sport #elif HAVE_STRUCT_UDPHDR_DEST && HAVE_STRUCT_UDPHDR_SOURCE # define UDP_DEST dest # define UDP_SRC source @@ -429,8 +431,7 @@ handle_ipv6 (struct ip6_hdr *ipv6, int len) unsigned int offset; int nexthdr; - struct in6_addr s_addr; - struct in6_addr d_addr; + struct in6_addr c_src_addr; uint16_t payload_len; if (0 > len) @@ -438,11 +439,10 @@ 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; + c_src_addr = ipv6->ip6_src; payload_len = ntohs (ipv6->ip6_plen); - if (ignore_list_match (&s_addr)) + if (ignore_list_match (&c_src_addr)) return (0); /* Parse extension headers. This only handles the standard headers, as @@ -451,7 +451,6 @@ handle_ipv6 (struct ip6_hdr *ipv6, int len) || (IPPROTO_HOPOPTS == nexthdr) /* Hop-by-Hop options. */ || (IPPROTO_FRAGMENT == nexthdr) /* fragmentation header. */ || (IPPROTO_DSTOPTS == nexthdr) /* destination options. */ - || (IPPROTO_DSTOPTS == nexthdr) /* destination options. */ || (IPPROTO_AH == nexthdr) /* destination options. */ || (IPPROTO_ESP == nexthdr)) /* encapsulating security payload. */ { @@ -499,15 +498,15 @@ handle_ip(const struct ip *ip, int len) { char buf[PCAP_SNAPLEN]; int offset = ip->ip_hl << 2; - struct in6_addr s_addr; - struct in6_addr d_addr; + struct in6_addr c_src_addr; + struct in6_addr c_dst_addr; if (ip->ip_v == 6) return (handle_ipv6 ((struct ip6_hdr *) ip, len)); - in6_addr_from_buffer (&s_addr, &ip->ip_src.s_addr, sizeof (ip->ip_src.s_addr), AF_INET); - in6_addr_from_buffer (&d_addr, &ip->ip_dst.s_addr, sizeof (ip->ip_dst.s_addr), AF_INET); - if (ignore_list_match (&s_addr)) + in6_addr_from_buffer (&c_src_addr, &ip->ip_src.s_addr, sizeof (ip->ip_src.s_addr), AF_INET); + in6_addr_from_buffer (&c_dst_addr, &ip->ip_dst.s_addr, sizeof (ip->ip_dst.s_addr), AF_INET); + if (ignore_list_match (&c_src_addr)) return (0); if (IPPROTO_UDP != ip->ip_p) return 0;