]> granicus.if.org Git - pdns/commitdiff
SOA-EDIT: fix INCEPTION-INCREMENT handling
authorStefan Bühler <stbuehler@web.de>
Sat, 13 Jul 2013 11:37:27 +0000 (13:37 +0200)
committerPeter van Dijk <peter.van.dijk@netherlabs.nl>
Tue, 23 Jul 2013 13:40:21 +0000 (15:40 +0200)
pdns/serialtweaker.cc

index 32ec01cc226ff929f7c38b6633fa68fb8f963f36..f824f87cfbe61c3e567b20a663dfd7888abcb0e7 100644 (file)
@@ -62,10 +62,11 @@ uint32_t calculateEditSoa(SOAData sd, const string& kind) {
     uint32_t inception_serial = localtime_format_YYYYMMDDSS(inception, 1);
     uint32_t dont_increment_after = localtime_format_YYYYMMDDSS(inception + 2*86400, 99);
 
-    if(sd.serial <= dont_increment_after)
-      return (sd.serial + 2); /* "day00" and "day01" are reserved for inception increasing, so increment sd.serial by two */
-    else if(sd.serial < inception_serial) 
-      return inception_serial;
+    if(sd.serial < inception_serial - 1) { /* less than <inceptionday>00 */
+      return inception_serial; /* return <inceptionday>01   (skipping <inceptionday>00 as possible value) */
+    } else if(sd.serial <= dont_increment_after) { /* >= <inceptionday>00 but <= <inceptionday+2>99 */
+      return (sd.serial + 2); /* "<inceptionday>00" and "<inceptionday>01" are reserved for inception increasing, so increment sd.serial by two */
+    }
   }
   else if(pdns_iequals(kind,"INCEPTION-WEEK")) {
     time_t inception = getStartOfWeek();