[Gd-chatter] r11099 - trunk/libraries/network/koala/sources/examples/buddha

hannes at gwydiondylan.org hannes at gwydiondylan.org
Fri Dec 22 02:52:38 CET 2006


Author: hannes
Date: Fri Dec 22 02:52:37 2006
New Revision: 11099

Modified:
   trunk/libraries/network/koala/sources/examples/buddha/zone.dylan
Log:
Bug: 7257
*make powerdns happy (earlier was to big for it's serial record and wrapped around)

Modified: trunk/libraries/network/koala/sources/examples/buddha/zone.dylan
==============================================================================
--- trunk/libraries/network/koala/sources/examples/buddha/zone.dylan	(original)
+++ trunk/libraries/network/koala/sources/examples/buddha/zone.dylan	Fri Dec 22 02:52:37 2006
@@ -88,7 +88,7 @@
   slot reverse? :: <boolean> = #f;
   has-many cname :: <cname>;
   data hostmaster :: <string> = "hostmaster.congress.ccc.de";
-  data serial :: <string> = "0";
+  data serial :: <integer> = 23;
   data refresh :: <integer> = 16384;
   data retry :: <integer> = 2048;
   data expire :: <integer> = 1048576;
@@ -134,14 +134,15 @@
   end
 end;
 
+define variable *last-update* = current-date();
 define method print-tinydns-zone-file (print-zone :: <zone>,
                                        stream :: <stream>)
-  let (year, month, days, hours, minutes, seconds) = decode-date(current-date());
-  let s2 = rcurry(integer-to-string, size: 2);
-  let ser = concatenate(integer-to-string(year, size: 4), s2(month), s2(days), s2(hours), s2(minutes));
-  print-zone.serial := ser;
+  if (*last-update* + make(<duration>, minutes: 4) < current-date())
+    print-zone.serial := print-zone.serial + 1;
+    *last-update* := current-date();
+  end;
   //Zfqdn:mname:rname:ser:ref:ret:exp:min:ttl:timestamp:lo
-  format(stream, "Z%s:%s.:%s.:%s:%d:%d:%d:%d:%d\n",
+  format(stream, "Z%s:%s.:%s.:%d:%d:%d:%d:%d:%d\n",
          print-zone.zone-name, print-zone.nameservers[0].ns-name,
          print-zone.hostmaster, print-zone.serial,
          print-zone.refresh, print-zone.retry,
@@ -158,7 +159,7 @@
      end, print-zone.mail-exchanges);
   //reverse zones for networks
   do(method(x)
-       format(stream, "Z%s:%s.:%s.:%s:%d:%d:%d:%d:%d\n",
+       format(stream, "Z%s:%s.:%s.:%d:%d:%d:%d:%d:%d\n",
               x, print-zone.nameservers[0].ns-name,
               print-zone.hostmaster, print-zone.serial,
               print-zone.refresh, print-zone.retry,



More information about the chatter mailing list