]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
handle SOAs with serial 0 correctly in incoming AXFR 3662/head
authorKlaus Darilion <klaus.darilion@nic.at>
Tue, 5 Apr 2016 07:09:21 +0000 (07:09 +0000)
committerKlaus Darilion <klaus.darilion@nic.at>
Tue, 5 Apr 2016 07:09:21 +0000 (07:09 +0000)
pdns/slavecommunicator.cc

index b53aaac4b19cbd8bc44306dda786d9bd57d0f289..47a952f46f56afcadc22d69c598afe2a4132efac 100644 (file)
@@ -147,6 +147,7 @@ void CommunicatorClass::suck(const DNSName &domain,const string &remote)
 
     bool first=true;
     bool firstNSEC3=true;
+    bool soa_received = false;
     unsigned int soa_serial = 0;
     set<DNSName> nsset, qnames, secured;
     vector<DNSResourceRecord> rrs;
@@ -199,11 +200,12 @@ void CommunicatorClass::suck(const DNSName &domain,const string &remote)
               continue;
             }
             case QType::SOA: {
-              if(soa_serial != 0)
+              if(soa_received)
                 continue; //skip the last SOA
               SOAData sd;
               fillSOAData(rr.content,sd);
               soa_serial = sd.serial;
+              soa_received = true;
               break;
             }
             case QType::NS: {