]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth: log ALIAS resolve failure at AXFR time on Error
authorChris Hofstaedtler <chris.hofstaedtler@deduktiva.com>
Mon, 5 Jun 2023 20:36:40 +0000 (22:36 +0200)
committerChris Hofstaedtler <chris.hofstaedtler@deduktiva.com>
Wed, 7 Jun 2023 12:10:41 +0000 (14:10 +0200)
pdns/tcpreceiver.cc

index 77ae0808f7d13c5a12348d145d96757db389c2f2..b84053ea3f70fb5e87a9626ae6a1a133a60e24df 100644 (file)
@@ -828,19 +828,20 @@ int TCPNameserver::doAXFR(const DNSName &target, std::unique_ptr<DNSPacket>& q,
         int ret1 = stubDoResolve(getRR<ALIASRecordContent>(zrr.dr)->getContent(), QType::A, ips);
         int ret2 = stubDoResolve(getRR<ALIASRecordContent>(zrr.dr)->getContent(), QType::AAAA, ips);
         if (ret1 != RCode::NoError || ret2 != RCode::NoError) {
-          if (::arg()["outgoing-axfr-expand-alias"] != "ignore-errors") {
-            g_log<<Logger::Warning<<logPrefix<<zrr.dr.d_name.toLogString()<<": error resolving for ALIAS "<<zrr.dr.getContent()->getZoneRepresentation()<<", aborting AXFR"<<endl;
-            outpacket->setRcode(RCode::ServFail);
-            sendPacket(outpacket,outsock);
-            return 0;
-          } else {
+          if (::arg()["outgoing-axfr-expand-alias"] == "ignore-errors") {
             if (ret1 != RCode::NoError) {
-              g_log<<Logger::Warning<<logPrefix<<zrr.dr.d_name.toLogString()<<": error resolving A record for ALIAS target "<<zrr.dr.getContent()->getZoneRepresentation()<<", continuing AXFR"<<endl;
+              g_log << Logger::Error << logPrefix << zrr.dr.d_name.toLogString() << ": error resolving A record for ALIAS target " << zrr.dr.getContent()->getZoneRepresentation() << ", continuing AXFR" << endl;
             }
             if (ret2 != RCode::NoError) {
-              g_log<<Logger::Warning<<logPrefix<<zrr.dr.d_name.toLogString()<<": error resolving AAAA record for ALIAS target "<<zrr.dr.getContent()->getZoneRepresentation()<<", continuing AXFR"<<endl;
+              g_log << Logger::Error << logPrefix << zrr.dr.d_name.toLogString() << ": error resolving AAAA record for ALIAS target " << zrr.dr.getContent()->getZoneRepresentation() << ", continuing AXFR" << endl;
             }
           }
+          else {
+            g_log << Logger::Warning << logPrefix << zrr.dr.d_name.toLogString() << ": error resolving for ALIAS " << zrr.dr.getContent()->getZoneRepresentation() << ", aborting AXFR" << endl;
+            outpacket->setRcode(RCode::ServFail);
+            sendPacket(outpacket, outsock);
+            return 0;
+          }
         }
         for (auto& ip: ips) {
           zrr.dr.d_type = ip.dr.d_type;