aboutsummaryrefslogtreecommitdiffstats
path: root/dns/bind9-devel/files/extrapatch-bind-min-override-ttl
blob: 8c2054cb4463b5b1259c398904eb13e75d5d317c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
--- bin/named/config.c.orig 2018-01-29 05:35:56 UTC
+++ bin/named/config.c
@@ -176,12 +176,14 @@ options {\n\
    max-recursion-queries 75;\n\
    max-stale-ttl 604800; /* 1 week */\n\
    message-compression yes;\n\
+   min-cache-ttl 0; /* no minimal, zero is allowed */\n\
 #  min-roots <obsolete>;\n\
    minimal-any false;\n\
    minimal-responses no-auth-recursive;\n\
    notify-source *;\n\
    notify-source-v6 *;\n\
    nsec3-test-zone no;\n\
+   override-cache-ttl 0; /* do not override */\n\
    provide-ixfr true;\n\
    query-source address *;\n\
    query-source-v6 address *;\n\
--- bin/named/server.c.orig 2018-01-29 05:35:56 UTC
+++ bin/named/server.c
@@ -4073,6 +4073,16 @@ configure_view(dns_view_t *view, dns_vie
    }
 
    obj = NULL;
+   result = named_config_get(maps, "override-cache-ttl", &obj);
+   INSIST(result == ISC_R_SUCCESS);
+   view->overridecachettl = cfg_obj_asuint32(obj);
+
+   obj = NULL;
+   result = named_config_get(maps, "min-cache-ttl", &obj);
+   INSIST(result == ISC_R_SUCCESS);
+   view->mincachettl = cfg_obj_asuint32(obj);
+
+   obj = NULL;
    result = named_config_get(maps, "max-cache-ttl", &obj);
    INSIST(result == ISC_R_SUCCESS);
    view->maxcachettl = cfg_obj_asuint32(obj);
--- lib/dns/include/dns/view.h.orig 2018-01-29 05:35:56 UTC
+++ lib/dns/include/dns/view.h
@@ -145,6 +145,8 @@ struct dns_view {
    isc_boolean_t           requestnsid;
    isc_boolean_t           sendcookie;
    dns_ttl_t           maxcachettl;
+   dns_ttl_t           mincachettl;
+   dns_ttl_t           overridecachettl;
    dns_ttl_t           maxncachettl;
    isc_uint32_t            nta_lifetime;
    isc_uint32_t            nta_recheck;
--- lib/dns/resolver.c.orig 2018-01-29 05:35:56 UTC
+++ lib/dns/resolver.c
@@ -5748,6 +5748,18 @@ cache_name(fetchctx_t *fctx, dns_name_t 
        }
 
        /*
+        * Enforce the configure cache TTL override.
+        */
+                if (res->view->overridecachettl)
+                        rdataset->ttl = res->view->overridecachettl;
+
+       /*
+        * Enforce the configure minimum cache TTL.
+        */
+                if (rdataset->ttl < res->view->mincachettl)
+                        rdataset->ttl = res->view->mincachettl;
+
+       /*
         * Enforce the configure maximum cache TTL.
         */
        if (rdataset->ttl > res->view->maxcachettl) {
--- lib/isccfg/namedconf.c.orig 2018-01-29 05:35:56 UTC
+++ lib/isccfg/namedconf.c
@@ -1913,6 +1913,8 @@ view_clauses[] = {
    { "max-acache-size", &cfg_type_sizenodefault,
      CFG_CLAUSEFLAG_OBSOLETE },
    { "max-cache-size", &cfg_type_sizeorpercent, 0 },
+   { "override-cache-ttl", &cfg_type_uint32, 0 },
+   { "min-cache-ttl", &cfg_type_uint32, 0 },
    { "max-cache-ttl", &cfg_type_uint32, 0 },
    { "max-clients-per-query", &cfg_type_uint32, 0 },
    { "max-ncache-ttl", &cfg_type_uint32, 0 },