mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-02 15:45:25 +00:00
Provide a mechanism to return the expire option value
to the zone code so that it can be used to adjust the expire time.
This commit is contained in:
@@ -434,7 +434,7 @@ typedef isc_result_t (*dns_additionaldatafunc_t)(
|
|||||||
|
|
||||||
typedef isc_result_t (*dns_digestfunc_t)(void *, isc_region_t *);
|
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 *);
|
typedef void (*dns_updatecallback_t)(void *, isc_result_t, dns_message_t *);
|
||||||
|
|
||||||
|
@@ -833,7 +833,7 @@ xfrin_fail(dns_xfrin_t *xfr, isc_result_t result, const char *msg) {
|
|||||||
dns_journal_destroy(&xfr->ixfr.journal);
|
dns_journal_destroy(&xfr->ixfr.journal);
|
||||||
}
|
}
|
||||||
if (xfr->done != NULL) {
|
if (xfr->done != NULL) {
|
||||||
(xfr->done)(xfr->zone, result);
|
(xfr->done)(xfr->zone, NULL, result);
|
||||||
xfr->done = NULL;
|
xfr->done = NULL;
|
||||||
}
|
}
|
||||||
xfr->shutdown_result = result;
|
xfr->shutdown_result = result;
|
||||||
@@ -1545,7 +1545,7 @@ xfrin_recv_done(isc_result_t result, isc_region_t *region, void *arg) {
|
|||||||
if (xfr->done != NULL) {
|
if (xfr->done != NULL) {
|
||||||
LIBDNS_XFRIN_DONE_CALLBACK_BEGIN(xfr, xfr->info,
|
LIBDNS_XFRIN_DONE_CALLBACK_BEGIN(xfr, xfr->info,
|
||||||
result);
|
result);
|
||||||
(xfr->done)(xfr->zone, ISC_R_SUCCESS);
|
(xfr->done)(xfr->zone, NULL, ISC_R_SUCCESS);
|
||||||
xfr->done = NULL;
|
xfr->done = NULL;
|
||||||
LIBDNS_XFRIN_DONE_CALLBACK_END(xfr, xfr->info, result);
|
LIBDNS_XFRIN_DONE_CALLBACK_END(xfr, xfr->info, result);
|
||||||
}
|
}
|
||||||
|
@@ -862,7 +862,7 @@ zone_catz_disable(dns_zone_t *zone);
|
|||||||
static isc_result_t
|
static isc_result_t
|
||||||
default_journal(dns_zone_t *zone);
|
default_journal(dns_zone_t *zone);
|
||||||
static void
|
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
|
static isc_result_t
|
||||||
zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime,
|
zone_postload(dns_zone_t *zone, dns_db_t *db, isc_time_t loadtime,
|
||||||
isc_result_t result);
|
isc_result_t result);
|
||||||
@@ -17079,7 +17079,7 @@ zone_detachdb(dns_zone_t *zone) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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;
|
isc_time_t now;
|
||||||
bool again = false;
|
bool again = false;
|
||||||
unsigned int soacount;
|
unsigned int soacount;
|
||||||
@@ -17091,8 +17091,11 @@ zone_xfrdone(dns_zone_t *zone, isc_result_t result) {
|
|||||||
|
|
||||||
REQUIRE(DNS_ZONE_VALID(zone));
|
REQUIRE(DNS_ZONE_VALID(zone));
|
||||||
|
|
||||||
dns_zone_logc(zone, DNS_LOGCATEGORY_XFER_IN, ISC_LOG_DEBUG(1),
|
dns_zone_logc(
|
||||||
"zone transfer finished: %s", isc_result_totext(result));
|
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)
|
* Obtaining a lock on the zone->secure (see zone_send_secureserial)
|
||||||
@@ -17715,7 +17718,7 @@ failure:
|
|||||||
* zmgr->xfrin_in_progress.
|
* zmgr->xfrin_in_progress.
|
||||||
*/
|
*/
|
||||||
if (result != ISC_R_SUCCESS) {
|
if (result != ISC_R_SUCCESS) {
|
||||||
zone_xfrdone(zone, result);
|
zone_xfrdone(zone, NULL, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (zmgr_tlsctx_cache != NULL) {
|
if (zmgr_tlsctx_cache != NULL) {
|
||||||
|
Reference in New Issue
Block a user