Commit 29b7efdd authored by Michał Kępień's avatar Michał Kępień

Only clear DNS_ZONEFLG_LOADPENDING in zone_asyncload() if zone loading is completed immediately

zone_load() is not always synchronous, it may only initiate an
asynchronous load and return DNS_R_CONTINUE, which means zone loading
has not yet been completed.  In such a case, zone_asyncload() must not
clear DNS_ZONEFLG_LOADPENDING immediately and leave that up to
zone_postload().
parent 0e4fba2c
......@@ -2185,9 +2185,11 @@ zone_asyncload(isc_task_t *task, isc_event_t *event) {
goto cleanup;
}
zone_load(zone, 0, ISC_TRUE);
result = zone_load(zone, 0, ISC_TRUE);
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_LOADPENDING);
if (result != DNS_R_CONTINUE) {
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_LOADPENDING);
}
UNLOCK_ZONE(zone);
/* Inform the zone table we've finished loading */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment