]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth: Add counter for EDNS Cookies
authorPieter Lexis <pieter.lexis@powerdns.com>
Tue, 13 Apr 2021 10:08:57 +0000 (12:08 +0200)
committerPieter Lexis <pieter.lexis@powerdns.com>
Mon, 20 Sep 2021 08:54:16 +0000 (10:54 +0200)
pdns/common_startup.cc
pdns/tcpreceiver.cc

index a7c8bb30bad5a33075811a1d6fc1fd9b995b545b..3c2bee68eb1da1dff0ad75b26c060aa2f3edd0ac 100644 (file)
@@ -318,6 +318,7 @@ void declareStats()
 {
   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-cookie-queries", "Number of UDP queries received with the COOKIE EDNS option");
   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-bytes","Total size of answers sent out over UDPv4");
@@ -336,6 +337,7 @@ void declareStats()
   S.declare("corrupt-packets","Number of corrupt packets received");
   S.declare("signatures", "Number of DNSSEC signatures made");
   S.declare("tcp-queries","Number of TCP queries received");
+  S.declare("tcp-cookie-queries","Number of TCP queries received with the COOKIE option");
   S.declare("tcp-answers","Number of answers sent out over TCP");
   S.declare("tcp-answers-bytes","Total size of answers sent out over TCP");
   S.declare("tcp4-answers-bytes","Total size of answers sent out over TCPv4");
@@ -432,6 +434,7 @@ try
 
   AtomicCounter &numreceived=*S.getPointer("udp-queries");
   AtomicCounter &numreceiveddo=*S.getPointer("udp-do-queries");
+  AtomicCounter &numreceivedcookie=*S.getPointer("udp-cookie-queries");
 
   AtomicCounter &numreceived4=*S.getPointer("udp4-queries");
 
@@ -476,6 +479,9 @@ try
     if(question.d_dnssecOk)
       numreceiveddo++;
 
+    if(question.hasEDNSCookie())
+      numreceivedcookie++;
+
      if(question.d.qr)
        continue;
 
index aa381b8fe9ebca377059eafe172ee2b39b9347ef..9670c9a8bc4f392371d55a1c70a51a2c06d587b5 100644 (file)
@@ -350,7 +350,10 @@ void TCPNameserver::doConnection(int fd)
       packet->setSocket(fd);
       if(packet->parse(mesg.get(), pktlen)<0)
         break;
-      
+
+      if (packet->hasEDNSCookie())
+        S.inc("tcp-cookie-queries");
+
       if(packet->qtype.getCode()==QType::AXFR) {
         doAXFR(packet->qdomain, packet, fd);
         continue;