From f6330d35ee38d7b8aeee2d86b43616589049724b Mon Sep 17 00:00:00 2001 From: Peter van Dijk Date: Mon, 30 Aug 2021 12:06:46 +0200 Subject: [PATCH] use right remote in accounting --- pdns/packethandler.cc | 6 +++--- pdns/responsestats-auth.cc | 11 +++++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/pdns/packethandler.cc b/pdns/packethandler.cc index 72b83250c2..6b39f11bc8 100644 --- a/pdns/packethandler.cc +++ b/pdns/packethandler.cc @@ -1278,7 +1278,7 @@ std::unique_ptr PacketHandler::doQuestion(DNSPacket& p) if(d_logDNSDetails) g_log< PacketHandler::doQuestion(DNSPacket& p) if(d_logDNSDetails) g_log< PacketHandler::doQuestion(DNSPacket& p) if(d_logDNSDetails) g_log<setRcode(RCode::ServFail); return r; diff --git a/pdns/responsestats-auth.cc b/pdns/responsestats-auth.cc index 833cd025a3..ec954e2bd7 100644 --- a/pdns/responsestats-auth.cc +++ b/pdns/responsestats-auth.cc @@ -22,6 +22,9 @@ void ResponseStats::submitResponse(DNSPacket &p, bool udpOrTCP, bool last) const static AtomicCounter &tcpbytesanswered4=*S.getPointer("tcp4-answers-bytes"); static AtomicCounter &tcpbytesanswered6=*S.getPointer("tcp6-answers-bytes"); + ComboAddress& accountremote = p.d_remote; + if (p.d_inner_remote) accountremote = *p.d_inner_remote; + if(p.d.aa) { if (p.d.rcode==RCode::NXDomain) { S.inc("nxdomain-packets"); @@ -30,13 +33,13 @@ void ResponseStats::submitResponse(DNSPacket &p, bool udpOrTCP, bool last) const } else if (p.d.rcode == RCode::Refused) { S.inc("unauth-packets"); S.ringAccount("unauth-queries", p.qdomain, p.qtype); - S.ringAccount("remotes-unauth",p.d_remote); + S.ringAccount("remotes-unauth", accountremote); } if (udpOrTCP) { // udp udpnumanswered++; udpbytesanswered+=buf.length(); - if(p.d_remote.sin4.sin_family==AF_INET) { + if(accountremote.sin4.sin_family==AF_INET) { udpnumanswered4++; udpbytesanswered4+=buf.length(); } else { @@ -45,14 +48,14 @@ void ResponseStats::submitResponse(DNSPacket &p, bool udpOrTCP, bool last) const } } else { //tcp tcpbytesanswered+=buf.length(); - if(p.d_remote.sin4.sin_family==AF_INET) { + if(accountremote.sin4.sin_family==AF_INET) { tcpbytesanswered4+=buf.length(); } else { tcpbytesanswered6+=buf.length(); } if(last) { tcpnumanswered++; - if(p.d_remote.sin4.sin_family==AF_INET) { + if(accountremote.sin4.sin_family==AF_INET) { tcpnumanswered4++; } else { tcpnumanswered6++; -- 2.47.2