]> granicus.if.org Git - pdns/commitdiff
count UDP answer bytes sent
authorPeter van Dijk <peter.van.dijk@netherlabs.nl>
Thu, 8 Aug 2013 12:22:42 +0000 (14:22 +0200)
committerPeter van Dijk <peter.van.dijk@netherlabs.nl>
Thu, 8 Aug 2013 14:36:41 +0000 (16:36 +0200)
pdns/common_startup.cc
pdns/nameserver.cc

index 170dbb1b678a3a79244a7e307ac2cffeb02e3dab..88f5097e0c369c09db41e298706db31f9986df1b 100644 (file)
@@ -155,6 +155,7 @@ void declareStats(void)
   S.declare("udp-queries","Number of UDP queries received");
   S.declare("udp-do-queries","Number of UDP queries received with DO bit");
   S.declare("udp-answers","Number of answers sent out over UDP");
+  S.declare("udp-answers-bytes","Total size of answers sent out over UDP");
 
   S.declare("udp4-answers","Number of IPv4 answers sent out over UDP");
   S.declare("udp4-queries","Number of IPv4 UDP queries received");
@@ -205,7 +206,6 @@ int isGuarded(char **argv)
   return !!p;
 }
 
-
 void sendout(const DNSDistributor::AnswerData &AD)
 {
   if(!AD.A)
index db996aec386184ba514f7a1d9a63b13d329e26bf..5efebba657623154d0a2681e373ab17e758dc554 100644 (file)
@@ -245,8 +245,9 @@ void UDPNameserver::send(DNSPacket *p)
   static unsigned int &numanswered=*S.getPointer("udp-answers");
   static unsigned int &numanswered4=*S.getPointer("udp4-answers");
   static unsigned int &numanswered6=*S.getPointer("udp6-answers");
+  static unsigned int &bytesanswered=*S.getPointer("udp-answers-bytes");
 
-    g_rs.submitResponse(p->qtype.getCode(), buffer.length(), true);
+  g_rs.submitResponse(p->qtype.getCode(), buffer.length(), true);
 
   struct msghdr msgh;
   struct cmsghdr *cmsg;
@@ -264,6 +265,7 @@ void UDPNameserver::send(DNSPacket *p)
 
   /* Count responses (total/v4/v6) and byte counts */
   numanswered++;
+  bytesanswered+=buffer.length();
   if(p->d_remote.sin4.sin_family==AF_INET)
     numanswered4++;
   else