]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
improve udp query statistics
authorKees Monshouwer <mind04@monshouwer.org>
Mon, 1 Jul 2013 17:30:50 +0000 (19:30 +0200)
committermind04 <mind04@monshouwer.org>
Wed, 3 Jul 2013 07:22:28 +0000 (09:22 +0200)
pdns/nameserver.cc
pdns/packethandler.cc

index 95dbd3f7dd7ff37f786073fc9ba0d23750f8e423..5cf7573c5607721d7aba79e676b52761bcd03503 100644 (file)
@@ -243,7 +243,18 @@ void UDPNameserver::send(DNSPacket *p)
   struct cmsghdr *cmsg;
   struct iovec iov;
   char cbuf[256];
-  
+
+  /* Query statistics */
+  if(p->d.aa) {
+    if (p->d.rcode == RCode::NoError)
+      S.ringAccount("noerror-queries",p->qdomain+"/"+p->qtype.getName());
+    else if (p->d.rcode == RCode::NXDomain)
+      S.ringAccount("nxdomain-queries",p->qdomain+"/"+p->qtype.getName());
+  } else {
+    S.ringAccount("unauth-queries",p->qdomain);
+    S.ringAccount("remotes-unauth",p->getRemote());
+  }
+
   /* Set up iov and msgh structures. */
   memset(&msgh, 0, sizeof(struct msghdr));
   iov.iov_base = (void*)buffer.c_str();
index ad2a54f8dcc37bbb7020ee12860d1388e822d6e4..1f89e3171899bed2b83d6f12c5fcc9771f5beda7 100644 (file)
@@ -977,12 +977,11 @@ void PacketHandler::makeNXDomain(DNSPacket* p, DNSPacket* r, const std::string&
   rr.auth = 1;
   rr.scopeMask = sd.scopeMask;
   r->addRecord(rr);
-  
+
   if(p->d_dnssecOk && d_dk.isSecuredZone(sd.qname))
     addNSECX(p, r, target, wildcard, sd.qname, 4);
-  
-  r->setRcode(RCode::NXDomain);  
-  S.ringAccount("nxdomain-queries",p->qdomain+"/"+p->qtype.getName());
+
+  r->setRcode(RCode::NXDomain);
 }
 
 void PacketHandler::makeNOError(DNSPacket* p, DNSPacket* r, const std::string& target, const std::string& wildcard, SOAData& sd, int mode)
@@ -1001,8 +1000,6 @@ void PacketHandler::makeNOError(DNSPacket* p, DNSPacket* r, const std::string& t
 
   if(p->d_dnssecOk && d_dk.isSecuredZone(sd.qname))
     addNSECX(p, r, target, wildcard, sd.qname, mode);
-
-  S.ringAccount("noerror-queries",p->qdomain+"/"+p->qtype.getName());
 }