diff -up bind-9.3.6-P1/bin/named/config.c.rh483708 bind-9.3.6-P1/bin/named/config.c --- bind-9.3.6-P1/bin/named/config.c.rh483708 2009-04-24 15:24:29.334932885 +0200 +++ bind-9.3.6-P1/bin/named/config.c 2009-04-24 15:24:29.354932942 +0200 @@ -97,6 +97,7 @@ options {\n\ reserved-sockets 512;\n\ \n\ /* view */\n\ + allow-query-cache {any;};\n\ allow-notify {none;};\n\ allow-update-forwarding {none;};\n\ allow-recursion {any;};\n\ diff -up bind-9.3.6-P1/bin/named/named.conf.5.rh483708 bind-9.3.6-P1/bin/named/named.conf.5 --- bind-9.3.6-P1/bin/named/named.conf.5.rh483708 2009-04-24 15:25:47.366902614 +0200 +++ bind-9.3.6-P1/bin/named/named.conf.5 2009-04-24 15:27:05.154900907 +0200 @@ -234,6 +234,7 @@ options { dialup \fIdialuptype\fR; ixfr\-from\-differences \fIixfrdiff\fR; allow\-query { \fIaddress_match_element\fR; ... }; + allow\-query\-cache { \fIaddress_match_element\fR; ... }; allow\-transfer { \fIaddress_match_element\fR; ... }; allow\-update\-forwarding { \fIaddress_match_element\fR; ... }; notify \fInotifytype\fR; @@ -347,6 +348,7 @@ view \fIstring\fR \fIoptional_class\fR { dialup \fIdialuptype\fR; ixfr\-from\-differences \fIixfrdiff\fR; allow\-query { \fIaddress_match_element\fR; ... }; + allow\-query\-cache { \fIaddress_match_element\fR; ... }; allow\-transfer { \fIaddress_match_element\fR; ... }; allow\-update\-forwarding { \fIaddress_match_element\fR; ... }; notify \fInotifytype\fR; diff -up bind-9.3.6-P1/bin/named/server.c.rh483708 bind-9.3.6-P1/bin/named/server.c --- bind-9.3.6-P1/bin/named/server.c.rh483708 2009-04-24 15:24:29.338912373 +0200 +++ bind-9.3.6-P1/bin/named/server.c 2009-04-24 15:24:29.354932942 +0200 @@ -1168,7 +1168,7 @@ configure_view(dns_view_t *view, const c view->additionalfromcache = ISC_TRUE; } - CHECK(configure_view_acl(vconfig, config, "allow-query", + CHECK(configure_view_acl(vconfig, config, "allow-query-cache", actx, ns_g_mctx, &view->queryacl)); if (strcmp(view->name, "_bind") != 0) @@ -1197,6 +1197,12 @@ configure_view(dns_view_t *view, const c "active%s%s", forview, viewname); } + if (view->queryacl == NULL && view->recursionacl != NULL) + dns_acl_attach(view->recursionacl, &view->queryacl); + if (view->queryacl == NULL && view->recursion) + CHECK(configure_view_acl(vconfig, config, "allow-query", + actx, ns_g_mctx, &view->queryacl)); + CHECK(configure_view_acl(vconfig, config, "sortlist", actx, ns_g_mctx, &view->sortlist)); diff -up bind-9.3.6-P1/bin/named/zoneconf.c.rh483708 bind-9.3.6-P1/bin/named/zoneconf.c --- bind-9.3.6-P1/bin/named/zoneconf.c.rh483708 2009-04-24 15:24:29.346942537 +0200 +++ bind-9.3.6-P1/bin/named/zoneconf.c 2009-04-24 15:24:29.354932942 +0200 @@ -62,7 +62,7 @@ configure_zone_acl(const cfg_obj_t *zcon void (*clearzacl)(dns_zone_t *)) { isc_result_t result; - const cfg_obj_t *maps[4]; + const cfg_obj_t *maps[5]; const cfg_obj_t *aclobj = NULL; int i = 0; dns_acl_t *dacl = NULL; @@ -77,6 +77,8 @@ configure_zone_acl(const cfg_obj_t *zcon if (options != NULL) maps[i++] = options; } + + maps[i++] = ns_g_defaults; maps[i] = NULL; result = ns_config_get(maps, aclname, &aclobj); diff -up bind-9.3.6-P1/lib/isccfg/namedconf.c.rh483708 bind-9.3.6-P1/lib/isccfg/namedconf.c --- bind-9.3.6-P1/lib/isccfg/namedconf.c.rh483708 2009-04-24 15:24:29.350912116 +0200 +++ bind-9.3.6-P1/lib/isccfg/namedconf.c 2009-04-24 15:24:29.354932942 +0200 @@ -743,6 +743,7 @@ static cfg_type_t cfg_type_lookaside = { static cfg_clausedef_t view_clauses[] = { + { "allow-query-cache", &cfg_type_bracketed_aml, 0 }, { "allow-recursion", &cfg_type_bracketed_aml, 0 }, { "allow-v6-synthesis", &cfg_type_bracketed_aml, CFG_CLAUSEFLAG_OBSOLETE },