if (version != NULL) {
dns_db_closeversion(db, &version, false);
dns_db_detach(&db);
- } else if (db != NULL)
+ } else if (db != NULL) {
dns_db_detach(&db);
+ }
+
+ LOCK_ZONE(zone);
if (result == ISC_R_SUCCESS) {
- LOCK_ZONE(zone);
set_resigntime(zone);
zone_needdump(zone, DNS_DUMP_DELAY);
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_NEEDNOTIFY);
- UNLOCK_ZONE(zone);
} else {
/*
* Something failed. Retry in 5 minutes.
isc_interval_set(&ival, 300, 0);
isc_time_nowplusinterval(&zone->resigntime, &ival);
}
+ UNLOCK_ZONE(zone);
INSIST(version == NULL);
}
} else if (db != NULL)
dns_db_detach(&db);
+ LOCK_ZONE(zone);
if (ISC_LIST_HEAD(zone->signing) != NULL) {
isc_interval_t interval;
if (zone->update_disabled || result != ISC_R_SUCCESS)
else
isc_interval_set(&interval, 0, 10000000); /* 10 ms */
isc_time_nowplusinterval(&zone->signingtime, &interval);
- } else
+ } else {
isc_time_settoepoch(&zone->signingtime);
+ }
+ UNLOCK_ZONE(zone);
INSIST(version == NULL);
}
* Something went wrong; try again in ten minutes or
* after a key refresh interval, whichever is shorter.
*/
+ LOCK_ZONE(zone);
isc_interval_set(&ival, ISC_MIN(zone->refreshkeyinterval, 600), 0);
isc_time_nowplusinterval(&zone->refreshkeytime, &ival);
+ UNLOCK_ZONE(zone);
goto done;
}