diff --git a/src/libknot/updates/xfr-in.c b/src/libknot/updates/xfr-in.c index 2843759488d83f68bbae7f76732ce4d0e88bd32e..db9116c4d7efaf61aaa45c650beafc81080d3a85 100644 --- a/src/libknot/updates/xfr-in.c +++ b/src/libknot/updates/xfr-in.c @@ -2980,9 +2980,17 @@ dbg_xfrin_exec_detail( ret = knot_zone_contents_remove_node( contents, changes->old_nodes[i], &zone_node); - if (ret != KNOT_EOK) { + if (ret == KNOT_ENONODE) { + assert(knot_node_rrset_count(changes->old_nodes[i]) == 1); + assert(knot_node_rrset(changes->old_nodes[i], + KNOT_RRTYPE_RRSIG)); + char *name = knot_dname_to_str(changes->old_nodes[i]->owner); + log_zone_warning("Ignoring extra RRSIG for %s!\n", + name); + free(name); + } else if (ret != KNOT_EOK) { dbg_xfrin("Failed to remove node from zone!\n"); - return KNOT_ENONODE; + return ret; } assert(changes->old_nodes[i] == zone_node); }