X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Futils_dns.c;h=b7dc79134ab6e48db7c8fcdc54a067c6061858de;hb=108068f268cad453e5d3b54e288917409db1e467;hp=5316a71aefc6bae6bb840e4616013146a37384ff;hpb=f5edd182195cb7a13fa32846ae869a8b8dcc1e3f;p=collectd.git diff --git a/src/utils_dns.c b/src/utils_dns.c index 5316a71a..b7dc7913 100644 --- a/src/utils_dns.c +++ b/src/utils_dns.c @@ -35,6 +35,7 @@ #include "collectd.h" #include "plugin.h" +#include "common.h" #if HAVE_NETINET_IN_SYSTM_H # include @@ -336,9 +337,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; @@ -384,7 +383,7 @@ handle_dns(const char *buf, int len, if (0 != x) return 0; if ('\0' == qh.qname[0]) - strncpy (qh.qname, ".", sizeof (qh.qname)); + sstrncpy (qh.qname, ".", sizeof (qh.qname)); while ((t = strchr(qh.qname, '\n'))) *t = ' '; while ((t = strchr(qh.qname, '\r'))) @@ -411,16 +410,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; } @@ -491,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 */ @@ -515,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; } @@ -815,8 +812,7 @@ const char *qtype_str(int t) case T_ANY: return ("ANY"); /* ... 255 */ #endif /* __BIND >= 19950621 */ default: - snprintf (buf, 32, "#%i", t); - buf[31] = '\0'; + ssnprintf (buf, sizeof (buf), "#%i", t); return (buf); }; /* switch (t) */ /* NOTREACHED */ @@ -843,7 +839,7 @@ const char *opcode_str (int o) return "Update"; break; default: - snprintf(buf, 30, "Opcode%d", o); + ssnprintf(buf, sizeof (buf), "Opcode%d", o); return buf; } /* NOTREACHED */ @@ -887,8 +883,7 @@ const char *rcode_str (int rcode) #endif /* RFC2136 rcodes */ #endif /* __BIND >= 19950621 */ default: - snprintf (buf, 32, "RCode%i", rcode); - buf[31] = '\0'; + ssnprintf (buf, sizeof (buf), "RCode%i", rcode); return (buf); } /* Never reached */