]> granicus.if.org Git - pdns/commitdiff
actually shows results now (the dns bulk tester)
authorBert Hubert <bert.hubert@netherlabs.nl>
Wed, 9 Jun 2010 21:13:51 +0000 (21:13 +0000)
committerBert Hubert <bert.hubert@netherlabs.nl>
Wed, 9 Jun 2010 21:13:51 +0000 (21:13 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@1627 d19b8d6e-7fed-0310-83ef-9ca221ded41b

pdns/dnsbulktest.cc
pdns/inflighter.cc

index 1821909b5768cb7d77c89b2c42bfaa764bea3900..8f5eceb8e83aff6f681407084f41407738d77f53 100644 (file)
@@ -21,14 +21,15 @@ struct SendReceive
   int d_socket;
   uint16_t d_id;
   
-  SendReceive()
+  SendReceive(const std::string& remoteAddr, uint16_t port)
   {
     d_socket = socket(AF_INET, SOCK_DGRAM, 0);
     int val=1;
     setsockopt(d_socket, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val));
     
-    ComboAddress remote("127.0.0.1", 5300);
+    ComboAddress remote(remoteAddr, port);
     connect(d_socket, (struct sockaddr*)&remote, remote.getSocklen());
+    d_oks = d_errors = 0;
   }
   
   ~SendReceive()
@@ -83,18 +84,27 @@ struct SendReceive
   
   void deliverAnswer(string& domain, const DNSResult& dr)
   {
-    cerr<<domain<<": rcode: "<<dr.rcode;
+    cout<<domain<<": rcode: "<<dr.rcode;
     BOOST_FOREACH(const ComboAddress& ca, dr.ips) {
-      cerr<<", "<<ca.toString();
+      cout<<", "<<ca.toString();
     }
-    cerr<<endl;
+    cout<<endl;
+    if(dr.rcode)
+      d_errors++;
+    else if(!dr.ips.empty())
+      d_oks++;
   }
+  int d_errors, d_oks;
 };
 
 
-int main()
+int main(int argc, char** argv)
 {
-  SendReceive sr;
+  SendReceive sr(argv[1], atoi(argv[2]));
+  unsigned int limit = 0;
+  if(argc==4)
+    limit = atoi(argv[3]);
+    
   reportAllTypes();
   vector<string> domains;
     
@@ -104,9 +114,13 @@ int main()
   
   pair<string, string> split;
   while(stringfgets(stdin, line)) {
+    if(limit && domains.size() >= limit)
+      break;
+      
     trim_right(line);
     split=splitField(line,',');
     domains.push_back(split.second);
+    domains.push_back("www."+split.second);
   }
   cerr<<"Read "<<domains.size()<<" domains!"<<endl;
 
@@ -120,6 +134,7 @@ int main()
       cerr<<"Caught exception: "<<e.what()<<endl;
     }
   }
+  cerr<<"Results: "<<sr.d_errors<<" errors, "<<sr.d_oks<<" oks, "<<inflighter.getTimeouts()<<" timeouts"<<endl;
 }
 
 
index e50ff76dd92472c9dfaa5c17462c83b6ad638646..40f516f12d5ad4cf33698a938c557799b0c97f9c 100644 (file)
@@ -36,6 +36,11 @@ public:
   unsigned int d_timeoutSeconds;
   int d_burst;
   
+  uint64_t getTimeouts()
+  {
+    return d_timeouts;
+  }
+  
 private:
   struct TTDItem
   {
@@ -60,8 +65,6 @@ private:
   Container& d_container;
   SenderReceiver& d_sr;
   
-  
-  
   ttdwatch_t d_ttdWatch;
   typename Container::iterator d_iter;
   bool d_init;