From d712a557b75a94d052578bf5bf15d95e194ed691 Mon Sep 17 00:00:00 2001 From: Bert Hubert Date: Sat, 12 Jun 2010 20:54:36 +0000 Subject: [PATCH] make dnsbulktest statistics line up, plus detect nodata, nxdomain properly now git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@1632 d19b8d6e-7fed-0310-83ef-9ca221ded41b --- pdns/dnsbulktest.cc | 34 ++++++++++++++++++++++++---------- pdns/inflighter.cc | 10 ++++++++-- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/pdns/dnsbulktest.cc b/pdns/dnsbulktest.cc index 8f5eceb8e..53cead789 100644 --- a/pdns/dnsbulktest.cc +++ b/pdns/dnsbulktest.cc @@ -12,6 +12,7 @@ struct DNSResult { vector ips; int rcode; + bool seenauthsoa; }; struct SendReceive @@ -29,7 +30,7 @@ struct SendReceive ComboAddress remote(remoteAddr, port); connect(d_socket, (struct sockaddr*)&remote, remote.getSocklen()); - d_oks = d_errors = 0; + d_oks = d_errors = d_nodatas = d_nxdomains = 0; } ~SendReceive() @@ -66,17 +67,22 @@ struct SendReceive // parse packet, set 'id', fill out 'ip' MOADNSParser mdp(string(buf, len)); - //cout<<"Reply to question for qname='"<first.d_place == 1 && i->first.d_type == QType::A) dr.ips.push_back(ComboAddress(i->first.d_content->getZoneRepresentation())); - //cout<first.d_place-1<<"\t"<first.d_label<<"\tIN\t"<first.d_type); - //cout<<"\t"<first.d_ttl<<"\t"<< i->first.d_content->getZoneRepresentation()<<"\n"; + if(i->first.d_place == 3 && i->first.d_type == QType::SOA) { + dr.seenauthsoa = 1; + } + cout<first.d_place-1<<"\t"<first.d_label<<"\tIN\t"<first.d_type); + cout<<"\t"<first.d_ttl<<"\t"<< i->first.d_content->getZoneRepresentation()<<"\n"; } + id = mdp.d_header.id; + return 1; } return 0; @@ -89,12 +95,18 @@ struct SendReceive cout<<", "<, SendReceive> inflighter(domains, sr); inflighter.d_maxInFlight = 1000; + inflighter.d_timeoutSeconds = 5; string line; pair split; @@ -123,7 +136,7 @@ int main(int argc, char** argv) domains.push_back("www."+split.second); } cerr<<"Read "< void Inflighter void Inflighterttd.tv_sec < now.tv_sec || (valiter->ttd.tv_sec == now.tv_sec && valiter->ttd.tv_usec < now.tv_usec)) { waiters_index.erase(valiter++); - // cerr<<"Have timeout"<