]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Provide a mechanism to return the expire option value
authorMark Andrews <marka@isc.org>
Thu, 29 Jun 2023 05:52:32 +0000 (15:52 +1000)
committerMark Andrews <marka@isc.org>
Thu, 31 Aug 2023 01:32:29 +0000 (11:32 +1000)
to the zone code so that it can be used to adjust the expire time.

lib/dns/include/dns/types.h
lib/dns/xfrin.c
lib/dns/zone.c

index b334eff0a23e9829ad79997d500afb288db35470..70e0b022747fe46e4a7c62d0d21e9730679f5f39 100644 (file)
@@ -434,7 +434,7 @@ typedef isc_result_t (*dns_additionaldatafunc_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 *);
 
index fba413cba6e4873ebe62afeb4ac6c6b90761d253..be7a427226ac47e26ebe5c4ce2fa03d36efd500a 100644 (file)
@@ -833,7 +833,7 @@ xfrin_fail(dns_xfrin_t *xfr, isc_result_t result, const char *msg) {
                        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;
@@ -1545,7 +1545,7 @@ xfrin_recv_done(isc_result_t result, isc_region_t *region, void *arg) {
                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);
                }
index 2ecc27557cb9f431f9dd7f260b3698375023af93..8a13a2dcc4f1988a14667077022497e8c65d0767 100644 (file)
@@ -862,7 +862,7 @@ zone_catz_disable(dns_zone_t *zone);
 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);
@@ -17079,7 +17079,7 @@ zone_detachdb(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) {
        isc_time_t now;
        bool again = false;
        unsigned int soacount;
@@ -17091,8 +17091,11 @@ zone_xfrdone(dns_zone_t *zone, isc_result_t result) {
 
        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)
@@ -17715,7 +17718,7 @@ failure:
         * zmgr->xfrin_in_progress.
         */
        if (result != ISC_R_SUCCESS) {
-               zone_xfrdone(zone, result);
+               zone_xfrdone(zone, NULL, result);
        }
 
        if (zmgr_tlsctx_cache != NULL) {