typedef isc_result_t (*dns_digestfunc_t)(void *, isc_region_t *);
-typedef void (*dns_xfrindone_t)(dns_zone_t *, isc_result_t);
+typedef void (*dns_xfrindone_t)(dns_zone_t *, uint32_t *, isc_result_t);
typedef void (*dns_updatecallback_t)(void *, isc_result_t, dns_message_t *);
dns_journal_destroy(&xfr->ixfr.journal);
}
if (xfr->done != NULL) {
- (xfr->done)(xfr->zone, result);
+ (xfr->done)(xfr->zone, NULL, result);
xfr->done = NULL;
}
xfr->shutdown_result = result;
if (xfr->done != NULL) {
LIBDNS_XFRIN_DONE_CALLBACK_BEGIN(xfr, xfr->info,
result);
- (xfr->done)(xfr->zone, ISC_R_SUCCESS);
+ (xfr->done)(xfr->zone, NULL, ISC_R_SUCCESS);
xfr->done = NULL;
LIBDNS_XFRIN_DONE_CALLBACK_END(xfr, xfr->info, result);
}
static isc_result_t
default_journal(dns_zone_t *zone);
static void
-zone_xfrdone(dns_zone_t *zone, isc_result_t result);
+zone_xfrdone(dns_zone_t *zone, uint32_t *expireopt, isc_result_t result);
static isc_result_t
zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime,
isc_result_t result);
}
static void
-zone_xfrdone(dns_zone_t *zone, isc_result_t result) {
+zone_xfrdone(dns_zone_t *zone, uint32_t *expireopt, isc_result_t result) {
isc_time_t now;
bool again = false;
unsigned int soacount;
REQUIRE(DNS_ZONE_VALID(zone));
- dns_zone_logc(zone, DNS_LOGCATEGORY_XFER_IN, ISC_LOG_DEBUG(1),
- "zone transfer finished: %s", isc_result_totext(result));
+ dns_zone_logc(
+ zone, DNS_LOGCATEGORY_XFER_IN, ISC_LOG_DEBUG(1),
+ expireopt == NULL ? "zone transfer finished: %s"
+ : "zone transfer finished: %s, expire=%u",
+ isc_result_totext(result), expireopt != NULL ? *expireopt : 0);
/*
* Obtaining a lock on the zone->secure (see zone_send_secureserial)
* zmgr->xfrin_in_progress.
*/
if (result != ISC_R_SUCCESS) {
- zone_xfrdone(zone, result);
+ zone_xfrdone(zone, NULL, result);
}
if (zmgr_tlsctx_cache != NULL) {