Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ports-kde
Path: blob/main/dns/bind920/files/extrapatch-bind-min-override-ttl
16462 views
Add the override-cache-ttl feature.

--- bin/named/config.c.orig	2025-08-13 17:20:02 UTC
+++ bin/named/config.c
@@ -186,6 +186,7 @@ options {\n\
 	notify-source *;\n\
 	notify-source-v6 *;\n\
 	nsec3-test-zone no;\n\
+	override-cache-ttl 0; /* do not override */\n\
 	parental-source *;\n\
 	parental-source-v6 *;\n\
 	provide-ixfr true;\n\
--- bin/named/server.c.orig	2025-08-13 17:20:02 UTC
+++ bin/named/server.c
@@ -4640,6 +4640,11 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewl
 	}
 
 	obj = NULL;
+	result = named_config_get(maps, "override-cache-ttl", &obj);
+	INSIST(result == ISC_R_SUCCESS);
+	view->overridecachettl = cfg_obj_asduration(obj);
+
+	obj = NULL;
 	result = named_config_get(maps, "max-cache-ttl", &obj);
 	INSIST(result == ISC_R_SUCCESS);
 	view->maxcachettl = cfg_obj_asduration(obj);
--- doc/arm/reference.rst.orig	2025-08-13 17:20:02 UTC
+++ doc/arm/reference.rst
@@ -4397,6 +4397,10 @@ Tuning
    cannot exceed 7 days and is silently truncated to 7 days if set to a
    greater value.
 
+.. namedconf:statement:: override-cache-ttl
+
+   Enforce the configure cache TTL override.
+
 .. namedconf:statement:: max-cache-ttl
    :tags: server
    :short: Specifies the maximum time (in seconds) that the server caches ordinary (positive) answers.
--- lib/dns/include/dns/view.h.orig	2025-08-13 17:20:02 UTC
+++ lib/dns/include/dns/view.h
@@ -151,6 +151,7 @@ struct dns_view {
 	bool		      requestnsid;
 	bool		      sendcookie;
 	dns_ttl_t	      maxcachettl;
+	dns_ttl_t	      overridecachettl;
 	dns_ttl_t	      maxncachettl;
 	dns_ttl_t	      mincachettl;
 	dns_ttl_t	      minncachettl;
--- lib/dns/resolver.c.orig	2025-08-13 17:20:02 UTC
+++ lib/dns/resolver.c
@@ -5985,6 +5985,12 @@ cache_name(fetchctx_t *fctx, dns_name_t *name, dns_mes
 		}
 
 		/*
+		 * Enforce the configure cache TTL override.
+		 */
+                if (res->view->overridecachettl)
+                        rdataset->ttl = res->view->overridecachettl;
+
+		/*
 		 * Enforce the configure maximum cache TTL.
 		 */
 		if (rdataset->ttl > res->view->maxcachettl) {
--- lib/isccfg/namedconf.c.orig	2025-08-13 17:20:02 UTC
+++ lib/isccfg/namedconf.c
@@ -2220,6 +2220,7 @@ static cfg_clausedef_t view_clauses[] = {
 #endif /* ifdef HAVE_LMDB */
 	{ "max-acache-size", NULL, CFG_CLAUSEFLAG_ANCIENT },
 	{ "max-cache-size", &cfg_type_sizeorpercent, 0 },
+	{ "override-cache-ttl", &cfg_type_duration, 0 },
 	{ "max-cache-ttl", &cfg_type_duration, 0 },
 	{ "max-clients-per-query", &cfg_type_uint32, 0 },
 	{ "max-ncache-ttl", &cfg_type_duration, 0 },