int ret;
if (data->ixfr_from_axfr && data->axfr_style_ixfr) {
- ret = zone_update_from_differences(&up, data->zone, NULL, new_zone, UPDATE_INCREMENTAL, false, false);
+ ret = zone_update_from_differences(&up, data->zone, NULL, new_zone, UPDATE_INCREMENTAL, dnssec_enable, false);
} else {
ret = zone_update_from_contents(&up, data->zone, new_zone, UPDATE_FULL);
}
set_err("%s failed" % step)
detail_log(SEP)
+def check_same_rrsig(server, zone, last):
+ resp = server.dig(zone[0].name, "NS", dnssec=True)
+ resp.check_count(1, "RRSIG")
+ if last is not None:
+ last.diff(resp)
+ return resp
+
t = Test()
unsigned_master = t.server("knot")
t.start()
master.zone_wait(zone)
+rrsig_init = check_same_rrsig(master, zone, None)
def uns_mas_updater(server, z):
for i in range(8):
check_salt(master, zone, True)
wait4key(t, master, zone, 3, -1, 6, 20, "ZSK publish") # new ZSK published
+check_same_rrsig(master, zone, rrsig_init)
old_key = zsk_keytag(master, zone)
check_salt(master, zone, False)
up.delete("longttl.example.com.", "A") # zone max TTL decreases
up.send()
t.sleep(2)
-master.ctl("zone-sign")
+master.ctl("zone-sign", wait=True)
+rrsig_new = check_same_rrsig(master, zone, None)
wait4key(t, master, zone, 2, old_key, 9, 14, "ZSK remove") # old ZSK removed
check_salt(master, zone, False)
+check_same_rrsig(master, zone, rrsig_new)
t.end()