From b36fcff1f6beeb1f7bf0ebaa2862d170ab8676e3 Mon Sep 17 00:00:00 2001 From: Jan Vcelak <jan.vcelak@nic.cz> Date: Fri, 23 Sep 2016 16:33:46 +0200 Subject: [PATCH] zone: zone expiration is now stateful, no flag needed --- src/knot/ctl/commands.c | 2 +- src/knot/events/handlers/dnssec.c | 1 - src/knot/events/handlers/expire.c | 1 - src/knot/events/handlers/load.c | 1 - src/knot/events/handlers/refresh.c | 1 - src/knot/zone/zone.h | 3 --- src/knot/zone/zonedb-load.c | 5 ++--- 7 files changed, 3 insertions(+), 11 deletions(-) diff --git a/src/knot/ctl/commands.c b/src/knot/ctl/commands.c index bb10fc1c90..c457105700 100644 --- a/src/knot/ctl/commands.c +++ b/src/knot/ctl/commands.c @@ -240,7 +240,7 @@ static int zone_reload(zone_t *zone, ctl_args_t *args) { UNUSED(args); - if (zone->flags & ZONE_EXPIRED) { + if (zone_expired(zone)) { return KNOT_ENOTSUP; } diff --git a/src/knot/events/handlers/dnssec.c b/src/knot/events/handlers/dnssec.c index d44ad0d011..10f2c00112 100644 --- a/src/knot/events/handlers/dnssec.c +++ b/src/knot/events/handlers/dnssec.c @@ -104,7 +104,6 @@ int event_dnssec(conf_t *conf, zone_t *zone) /* Switch zone contents. */ zone_contents_t *old_contents = zone_switch_contents(zone, new_contents); - zone->flags &= ~ZONE_EXPIRED; synchronize_rcu(); update_free_zone(&old_contents); diff --git a/src/knot/events/handlers/expire.c b/src/knot/events/handlers/expire.c index 6e58431c79..f3abcfb75e 100644 --- a/src/knot/events/handlers/expire.c +++ b/src/knot/events/handlers/expire.c @@ -29,7 +29,6 @@ int event_expire(conf_t *conf, zone_t *zone) assert(zone); zone_contents_t *expired = zone_switch_contents(zone, NULL); - zone->flags |= ZONE_EXPIRED; log_zone_info(zone->name, "zone expired"); synchronize_rcu(); diff --git a/src/knot/events/handlers/load.c b/src/knot/events/handlers/load.c index 55063267b5..5bbe7390fd 100644 --- a/src/knot/events/handlers/load.c +++ b/src/knot/events/handlers/load.c @@ -75,7 +75,6 @@ int event_load(conf_t *conf, zone_t *zone) } /* Everything went alright, switch the contents. */ - zone->flags &= ~ZONE_EXPIRED; zone->zonefile.exists = true; zone_contents_t *old = zone_switch_contents(zone, contents); bool old_contents = (old != NULL); diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 0655676e7c..25c238b895 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -667,7 +667,6 @@ static int publish_zone(conf_t *conf, zone_t *zone, const struct sockaddr *remot // Publish new zone zone_contents_t *old_zone = zone_switch_contents(zone, new_zone); - zone->flags &= ~ZONE_EXPIRED; if (old_zone) { REFRESH_LOG(LOG_INFO, zone->name, remote, diff --git a/src/knot/zone/zone.h b/src/knot/zone/zone.h index 00359781fa..eab1b52d59 100644 --- a/src/knot/zone/zone.h +++ b/src/knot/zone/zone.h @@ -46,11 +46,8 @@ typedef enum zone_flag_t { ZONE_FORCE_AXFR = 1 << 0, /* Force AXFR as next transfer. */ ZONE_FORCE_RESIGN = 1 << 1, /* Force zone resign. */ ZONE_FORCE_FLUSH = 1 << 2, /* Force zone flush. */ - ZONE_EXPIRED = 1 << 3, /* Zone is expired. */ } zone_flag_t; -/// XXX: ^ remove expired? - /*! * \brief Structure for holding DNS zone. */ diff --git a/src/knot/zone/zonedb-load.c b/src/knot/zone/zonedb-load.c index 99acaf17f2..c1aa959cad 100644 --- a/src/knot/zone/zonedb-load.c +++ b/src/knot/zone/zonedb-load.c @@ -170,8 +170,7 @@ static zone_t *create_zone_reload(conf_t *conf, const knot_dname_t *name, timers_sanitize(conf, zone); zone_status_t zstatus; - if (zone_is_slave(conf, zone) && old_zone->flags & ZONE_EXPIRED) { - zone->flags |= ZONE_EXPIRED; + if (zone_expired(zone)) { zstatus = ZONE_STATUS_FOUND_CURRENT; } else { zstatus = zone_file_status(conf, old_zone, name); @@ -220,7 +219,7 @@ static zone_t *create_zone_new(conf_t *conf, const knot_dname_t *name, timers_sanitize(conf, zone); zone_status_t zstatus = zone_file_status(conf, NULL, name); - if (zone->flags & ZONE_EXPIRED) { + if (zone_expired(zone)) { assert(zone_is_slave(conf, zone)); zstatus = ZONE_STATUS_BOOSTRAP; } -- GitLab