if (established)
i->state = DNS_ZONE_ITEM_ESTABLISHED;
else {
+ i->state = DNS_ZONE_ITEM_PROBING;
+
r = dns_zone_item_probe_start(i);
if (r < 0) {
dns_zone_item_remove_and_free(z, i);
i = NULL;
return r;
}
-
- i->state = DNS_ZONE_ITEM_PROBING;
}
} else
i->state = DNS_ZONE_ITEM_ESTABLISHED;
dns_resource_record_to_string(i->rr, &pretty);
log_info("Detected conflict on %s", strna(pretty));
+ dns_zone_item_probe_stop(i);
+
/* Withdraw the conflict item */
i->state = DNS_ZONE_ITEM_WITHDRAWN;
dns_zone_item_probe_stop(i);
i->state = DNS_ZONE_ITEM_ESTABLISHED;
-
} else
dns_zone_item_conflict(i);
}