]> git.ipfire.org Git - thirdparty/knot-dns.git/commitdiff
events: add missing checks for empty zone + unification
authorDaniel Salzman <daniel.salzman@nic.cz>
Mon, 3 Nov 2025 12:47:57 +0000 (13:47 +0100)
committerDaniel Salzman <daniel.salzman@nic.cz>
Tue, 4 Nov 2025 14:09:12 +0000 (15:09 +0100)
src/knot/events/handlers/dnskey_sync.c
src/knot/events/handlers/dnssec.c
src/knot/events/handlers/ds_check.c
src/knot/events/handlers/ds_push.c
src/knot/events/handlers/flush.c
src/knot/events/handlers/load.c
src/knot/events/handlers/notify.c
src/knot/events/handlers/validate.c

index 6ee381f38305fe633cd65afb748e64d2953ceb5d..ec162a538911b6f7be33405dac99a4d7f0b96db0 100644 (file)
@@ -360,7 +360,7 @@ int event_dnskey_sync(conf_t *conf, zone_t *zone)
        assert(zone);
 
        if (zone_contents_is_empty(zone->contents)) {
-               return KNOT_EOK;
+               return KNOT_EEMPTYZONE;
        }
 
        int timeout = conf->cache.srv_tcp_remote_io_timeout;
index 585e7dc47b0d7f9cf9f4f21b48e4a60ad6da4d6c..e451ce20a5feadac451942228bd3ae3ff14bfe71 100644 (file)
@@ -58,6 +58,10 @@ int event_dnssec(conf_t *conf, zone_t *zone)
 {
        assert(zone);
 
+       if (zone_contents_is_empty(zone->contents)) {
+               return KNOT_EEMPTYZONE;
+       }
+
        zone_sign_reschedule_t resch = { 0 };
        zone_sign_roll_flags_t r_flags = KEY_ROLL_ALLOW_ALL;
        int sign_flags = 0;
index 4a7734516c7da2fc05116b69a4a116b700aed0b6..2a9a5a50f038d41be403b6c3414fd8297927e6d9 100644 (file)
@@ -8,6 +8,12 @@
 
 int event_ds_check(conf_t *conf, zone_t *zone)
 {
+       assert(zone);
+
+       if (zone_contents_is_empty(zone->contents)) {
+               return KNOT_EEMPTYZONE;
+       }
+
        kdnssec_ctx_t ctx = { 0 };
 
        int ret = kdnssec_ctx_init(conf, &ctx, zone->name, zone_kaspdb(zone), NULL);
index 97a488f898a639f9fa1027bc99ca72d6cad2e829..1c53b993fb5d36574c0252a11686f0196d9549ad 100644 (file)
@@ -217,7 +217,7 @@ int event_ds_push(conf_t *conf, zone_t *zone)
        assert(zone);
 
        if (zone_contents_is_empty(zone->contents)) {
-               return KNOT_EOK;
+               return KNOT_EEMPTYZONE;
        }
 
        int timeout = conf->cache.srv_tcp_remote_io_timeout;
index d26bc8e30f36bc3c8a7e4f7c8685bfa8075487c4..024ac7e336261ac210a0b1ee9d45c87f315842eb 100644 (file)
 
 int event_flush(conf_t *conf, zone_t *zone)
 {
-       assert(conf);
        assert(zone);
 
        if (zone_contents_is_empty(zone->contents)) {
-               return KNOT_EOK;
+               return KNOT_EEMPTYZONE;
        }
 
        return zone_flush_journal(conf, zone, true);
index be476a1de97458a7fef20260d6dd50468ca4daf0..0ca539f720b78e656aa49f41d48e13adbd0fab3d 100644 (file)
@@ -52,6 +52,8 @@ static int upd_add_rem(const knot_rrset_t *rr, bool add, void *ctx)
 
 int event_load(conf_t *conf, zone_t *zone)
 {
+       assert(zone);
+
        zone_update_t up = { 0 };
        zone_contents_t *journal_conts = NULL, *zf_conts = NULL;
        bool old_contents_exist = (zone->contents != NULL), zone_in_journal_exists = false;
index d4e5ad805d7c03cc069ed1d09df5ec81d88a9baa..1b9a7a7fe2a320c24bb3e397f297c2570705522d 100644 (file)
@@ -133,12 +133,12 @@ int event_notify(conf_t *conf, zone_t *zone)
 {
        assert(zone);
 
-       bool failed = false;
-
        if (zone_contents_is_empty(zone->contents)) {
-               return KNOT_EOK;
+               return KNOT_EEMPTYZONE;
        }
 
+       bool failed = false;
+
        // NOTIFY content
        int timeout = conf->cache.srv_tcp_remote_io_timeout;
        rcu_read_lock();
index 52f1d2a2971546bbe28d0bf6b794ef45bada8aac..617b4bb73c66f4d2be1e65e73aa58ec87d7f2a4f 100644 (file)
 
 int event_validate(conf_t *conf, zone_t *zone)
 {
+       assert(zone);
+
+       if (zone_contents_is_empty(zone->contents)) {
+               return KNOT_EEMPTYZONE;
+       }
+
        zone_update_t fake_upd = {
                .zone = zone,
                .new_cont = zone->contents,