From: Pieter Lexis Date: Fri, 5 Jun 2015 09:56:22 +0000 (+0200) Subject: dnsdemog: Read IPv6 addresses correctly X-Git-Tag: dnsdist-1.0.0-alpha1~248^2~78^2~13^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8b0b3ab934a483b4874e209b6b09de5fbd5e763d;p=pdns dnsdemog: Read IPv6 addresses correctly --- diff --git a/pdns/dnsdemog.cc b/pdns/dnsdemog.cc index bd3d1d2be..e5b72d02b 100644 --- a/pdns/dnsdemog.cc +++ b/pdns/dnsdemog.cc @@ -13,14 +13,13 @@ #include #include "anadns.hh" -#include "namespaces.hh" #include "namespaces.hh" StatBag S; struct Entry { - uint32_t ip; + ComboAddress ip; uint16_t port; uint16_t id; @@ -52,7 +51,7 @@ try MOADNSParser mdp((const char*)pr.d_payload, pr.d_len); - memcpy(&entry.ip, &pr.d_ip->ip_src, 4); + entry.ip = pr.getSource(); entry.port = pr.d_udp->uh_sport; entry.id=dh->id; @@ -64,7 +63,7 @@ try break; } if(pos ==mdp.d_qname.size()) { - cout << "insert into dnsstats (source, port, id, query, qtype, tstampSec, tstampUsec, arcount) values ('" << U32ToIP(ntohl(entry.ip)) <<"', "<< ntohs(entry.port) <<", "<< ntohs(dh->id); + cout << "insert into dnsstats (source, port, id, query, qtype, tstampSec, tstampUsec, arcount) values ('" << entry.ip.toString() <<"', "<< ntohs(entry.port) <<", "<< ntohs(dh->id); cout <<", '"<arcount) <<");\n"; }