X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Futils_dns.c;h=3e80e8690efa3360c99a2e4a34509b93a76a23ca;hb=db961f476426f5dd3ca1663ffc094f0fc7f6f8a2;hp=991d346a4e4d034dade4423ea3ec9776747d28a4;hpb=0d80072344ea5322c34f716ed77a5319a62bfc96;p=collectd.git diff --git a/src/utils_dns.c b/src/utils_dns.c index 991d346a..3e80e869 100644 --- a/src/utils_dns.c +++ b/src/utils_dns.c @@ -37,6 +37,7 @@ #define _BSD_SOURCE #include "collectd.h" + #include "plugin.h" #include "common.h" @@ -194,9 +195,7 @@ static int cmp_in6_addr (const struct in6_addr *a, static inline int ignore_list_match (const struct in6_addr *addr) { - ip_list_t *ptr; - - for (ptr = IgnoreList; ptr != NULL; ptr = ptr->next) + for (ip_list_t *ptr = IgnoreList; ptr != NULL; ptr = ptr->next) if (cmp_in6_addr (addr, &ptr->addr) == 0) return (1); return (0); @@ -225,7 +224,6 @@ static void ignore_list_add (const struct in6_addr *addr) void ignore_list_add_name (const char *name) { struct addrinfo *ai_list; - struct addrinfo *ai_ptr; struct in6_addr addr; int status; @@ -233,7 +231,7 @@ void ignore_list_add_name (const char *name) if (status != 0) return; - for (ai_ptr = ai_list; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next) + for (struct addrinfo *ai_ptr = ai_list; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next) { if (ai_ptr->ai_family == AF_INET) { @@ -283,8 +281,7 @@ void dnstop_set_callback (void (*cb) (const rfc1035_header_t *)) #define RFC1035_MAXLABELSZ 63 static int -rfc1035NameUnpack(const char *buf, size_t sz, off_t * off, char *name, size_t ns -) +rfc1035NameUnpack(const char *buf, size_t sz, off_t * off, char *name, size_t ns) { off_t no = 0; unsigned char c; @@ -292,7 +289,7 @@ rfc1035NameUnpack(const char *buf, size_t sz, off_t * off, char *name, size_t ns static int loop_detect = 0; if (loop_detect > 2) return 4; /* compression loop */ - if (ns <= 0) + if (ns == 0) return 4; /* probably compression loop */ do { if ((*off) >= ((off_t) sz)) @@ -324,7 +321,6 @@ rfc1035NameUnpack(const char *buf, size_t sz, off_t * off, char *name, size_t ns * "(The 10 and 01 combinations are reserved for future use.)" */ return 3; /* reserved label/compression flags */ - break; } else { (*off)++; len = (size_t) c; @@ -531,7 +527,7 @@ handle_ip(const struct ip *ip, int len) return (0); if (IPPROTO_UDP != ip->ip_p) return 0; - memcpy(buf, (void *) ip + offset, len - offset); + memcpy(buf, ((char *)ip) + offset, len - offset); if (0 == handle_udp((struct udphdr *) buf, len - offset)) return 0; return 1; @@ -753,22 +749,41 @@ const char *qtype_str(int t) case ns_t_srv: return ("SRV"); case ns_t_atma: return ("ATMA"); case ns_t_naptr: return ("NAPTR"); + case ns_t_opt: return ("OPT"); +# if __NAMESER >= 19991006 case ns_t_kx: return ("KX"); case ns_t_cert: return ("CERT"); case ns_t_a6: return ("A6"); case ns_t_dname: return ("DNAME"); case ns_t_sink: return ("SINK"); - case ns_t_opt: return ("OPT"); -# if __NAMESER >= 19991006 case ns_t_tsig: return ("TSIG"); # endif +# if __NAMESER >= 20090302 + case ns_t_apl: return ("APL"); + case ns_t_ds: return ("DS"); + case ns_t_sshfp: return ("SSHFP"); + case ns_t_ipseckey: return ("IPSECKEY"); + case ns_t_rrsig: return ("RRSIG"); + case ns_t_nsec: return ("NSEC"); + case ns_t_dnskey: return ("DNSKEY"); + case ns_t_dhcid: return ("DHCID"); + case ns_t_nsec3: return ("NSEC3"); + case ns_t_nsec3param: return ("NSEC3PARAM"); + case ns_t_hip: return ("HIP"); + case ns_t_spf: return ("SPF"); case ns_t_ixfr: return ("IXFR"); +# endif case ns_t_axfr: return ("AXFR"); case ns_t_mailb: return ("MAILB"); case ns_t_maila: return ("MAILA"); case ns_t_any: return ("ANY"); +# if __NAMESER >= 19991006 case ns_t_zxfr: return ("ZXFR"); -/* #endif __NAMESER >= 19991006 */ +# endif +# if __NAMESER >= 20090302 + case ns_t_dlv: return ("DLV"); +# endif +/* #endif __NAMESER >= 19991001 */ #elif (defined (__BIND)) && (__BIND >= 19950621) case T_A: return ("A"); /* 1 ... */ case T_NS: return ("NS"); @@ -830,9 +845,7 @@ const char *qtype_str(int t) default: ssnprintf (buf, sizeof (buf), "#%i", t); return (buf); - }; /* switch (t) */ - /* NOTREACHED */ - return (NULL); + } /* switch (t) */ } const char *opcode_str (int o) @@ -841,24 +854,18 @@ const char *opcode_str (int o) switch (o) { case 0: return "Query"; - break; case 1: return "Iquery"; - break; case 2: return "Status"; - break; case 4: return "Notify"; - break; case 5: return "Update"; - break; default: ssnprintf(buf, sizeof (buf), "Opcode%d", o); return buf; } - /* NOTREACHED */ } const char *rcode_str (int rcode) @@ -902,8 +909,6 @@ const char *rcode_str (int rcode) ssnprintf (buf, sizeof (buf), "RCode%i", rcode); return (buf); } - /* Never reached */ - return (NULL); } /* const char *rcode_str (int rcode) */ #if 0