[rbldnsd] re-enabling a $TIMESTAMP-expired zone without restart?

Michael Tokarev mjt at tls.msk.ru
Sat Jul 22 11:41:29 MSD 2006


Anders Henke wrote at Thu, 6 Jul 2006 15:25:11 +0200:
> Hi,
> 
> while experimenting with $TIMESTAMP expires, I've found something
> between a sideeffect or a major issue:
> 
> ---cut
> $TIMESTAMP 2006:07:06:13:11:16 +5m
> 127.0.0.2
> ---cut
> 
> I'm using Linux and chroot rbldnsd to /var/lib/rbldnsd/dist, so it
> hasn't access to /etc/localtime and cannot accordingly use "local"
> timestamps, it has to rely on UTC ones. rbldnsd checks for file updates
> once a minute (default settings).
> 
> The current date is
> 
> UTC: Thu Jul  6 13:16:03 UTC 2006
> 
> and so the zone hasn't expired yet. A minute later, the zone expires:
> 
> Jul  6 15:16:21 rbldnsd1 rbldnsd[4488]: zone schlund.test: zone data expired, zone will not be serviced
> 
> However, if I change the timestamp or relative expire timeframe in the
> file to a newer date or even +24h, rbldnsd reloads the file, but still 
> complains that the zone data were expired. Manual reloads by means of
> SIGHUP also show the same effects.

Yes.  It's a Bug (tm).  Fixed (one-liner) in upcoming release, which
I will - hopefully - upload today.

Patch attached.

/mjt
-------------- next part --------------
--- rbldnsd_zones.c	22 Jul 2006 07:03:51 -0000	1.70
+++ rbldnsd_zones.c	22 Jul 2006 07:27:53 -0000	1.71
@@ -1,4 +1,4 @@
-/* $Id: rbldnsd_zones.c,v 1.70 2006/07/22 07:03:51 mjt Exp $
+/* $Id: rbldnsd_zones.c,v 1.71 2006/07/22 07:27:53 mjt Exp $
  * Nameserver zones: structures and routines
  */
 
@@ -420,6 +420,7 @@ static void freedataset(struct dataset *
   ds->ds_ttl = def_ttl;
   ds->ds_dsns = NULL;
   ds->ds_nsttl = 0;
+  ds->ds_expires = 0;
 #ifndef INCOMPAT_0_99
   ds->ds_nsflags = 0;
 #endif


More information about the rbldnsd mailing list