]> granicus.if.org Git - pdns/commitdiff
rec: Fix AXFR timeout nits
authorPieter Lexis <pieter.lexis@powerdns.com>
Thu, 22 Feb 2018 09:34:56 +0000 (10:34 +0100)
committerPieter Lexis <pieter.lexis@powerdns.com>
Thu, 22 Feb 2018 11:17:50 +0000 (12:17 +0100)
(cherry picked from commit cb6218d2b539eb225c5d1ec88227fa7136dbcc94)

pdns/rpzloader.cc

index 7bc08cf4649b33823c6a6fc7d317af17808e180f..8d18988869a9b3b2b99dbd2d701882a7718eea2d 100644 (file)
@@ -189,8 +189,8 @@ shared_ptr<SOARecordContent> loadRPZFromServer(const ComboAddress& master, const
   Resolver::res_t nop;
   vector<DNSRecord> chunk;
   time_t last=0;
-  time_t axfrStart = time(0);
-  time_t axfrNow = time(0);
+  time_t axfrStart = time(nullptr);
+  time_t axfrNow = time(nullptr);
   shared_ptr<SOARecordContent> sr;
   while(axfr.getChunk(nop, &chunk, (axfrStart + axfrTimeout - axfrNow))) {
     for(auto& dr : chunk) {
@@ -208,7 +208,7 @@ shared_ptr<SOARecordContent> loadRPZFromServer(const ComboAddress& master, const
       nrecords++;
     } 
     axfrNow = time(nullptr);
-    if (axfrNow - axfrStart > axfrTimeout) {
+    if (axfrNow < axfrStart || axfrNow - axfrStart > axfrTimeout) {
       throw PDNSException("Total AXFR time exceeded!");
     }
     if(last != time(0)) {