mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-03 16:15:27 +00:00
955. [bug] When using views, the zone's class was not being
inherited from the view's class. [RT #1583]
This commit is contained in:
3
CHANGES
3
CHANGES
@@ -1,3 +1,6 @@
|
|||||||
|
955. [bug] When using views, the zone's class was not being
|
||||||
|
inherited from the view's class. [RT #1583]
|
||||||
|
|
||||||
954. [bug] dig, host, nslookup: AXFR / IXFR are inherently
|
954. [bug] dig, host, nslookup: AXFR / IXFR are inherently
|
||||||
non-recursive, do not set RD. [RT #1575]
|
non-recursive, do not set RD. [RT #1575]
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: config.c,v 1.10 2001/08/03 18:12:04 bwelling Exp $ */
|
/* $Id: config.c,v 1.11 2001/08/07 01:58:54 marka Exp $ */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
@@ -177,12 +177,13 @@ ns_config_listcount(cfg_obj_t *list) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
isc_result_t
|
isc_result_t
|
||||||
ns_config_getclass(cfg_obj_t *classobj, dns_rdataclass_t *classp) {
|
ns_config_getclass(cfg_obj_t *classobj, dns_rdataclass_t defclass,
|
||||||
|
dns_rdataclass_t *classp) {
|
||||||
char *str;
|
char *str;
|
||||||
isc_textregion_t r;
|
isc_textregion_t r;
|
||||||
|
|
||||||
if (!cfg_obj_isstring(classobj)) {
|
if (!cfg_obj_isstring(classobj)) {
|
||||||
*classp = dns_rdataclass_in;
|
*classp = defclass;
|
||||||
return (ISC_R_SUCCESS);
|
return (ISC_R_SUCCESS);
|
||||||
}
|
}
|
||||||
str = cfg_obj_asstring(classobj);
|
str = cfg_obj_asstring(classobj);
|
||||||
|
@@ -15,9 +15,9 @@
|
|||||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: config.h,v 1.2 2001/08/03 18:12:08 bwelling Exp $ */
|
/* $Id: config.h,v 1.3 2001/08/07 01:58:59 marka Exp $ */
|
||||||
|
|
||||||
/* $Id: config.h,v 1.2 2001/08/03 18:12:08 bwelling Exp $ */
|
/* $Id: config.h,v 1.3 2001/08/07 01:58:59 marka Exp $ */
|
||||||
|
|
||||||
#ifndef NAMED_CONFIG_H
|
#ifndef NAMED_CONFIG_H
|
||||||
#define NAMED_CONFIG_H 1
|
#define NAMED_CONFIG_H 1
|
||||||
@@ -37,7 +37,8 @@ int
|
|||||||
ns_config_listcount(cfg_obj_t *list);
|
ns_config_listcount(cfg_obj_t *list);
|
||||||
|
|
||||||
isc_result_t
|
isc_result_t
|
||||||
ns_config_getclass(cfg_obj_t *classobj, dns_rdataclass_t *classp);
|
ns_config_getclass(cfg_obj_t *classobj, dns_rdataclass_t defclass,
|
||||||
|
dns_rdataclass_t *classp);
|
||||||
|
|
||||||
dns_zonetype_t
|
dns_zonetype_t
|
||||||
ns_config_getzonetype(cfg_obj_t *zonetypeobj);
|
ns_config_getzonetype(cfg_obj_t *zonetypeobj);
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: lwresd.c,v 1.36 2001/04/02 22:52:07 bwelling Exp $ */
|
/* $Id: lwresd.c,v 1.37 2001/08/07 01:58:55 marka Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Main program for the Lightweight Resolver Daemon.
|
* Main program for the Lightweight Resolver Daemon.
|
||||||
@@ -323,7 +323,7 @@ ns_lwdmanager_create(isc_mem_t *mctx, cfg_obj_t *lwres,
|
|||||||
if (viewobj != NULL) {
|
if (viewobj != NULL) {
|
||||||
vname = cfg_obj_asstring(cfg_tuple_get(viewobj, "name"));
|
vname = cfg_obj_asstring(cfg_tuple_get(viewobj, "name"));
|
||||||
obj = cfg_tuple_get(viewobj, "class");
|
obj = cfg_tuple_get(viewobj, "class");
|
||||||
result = ns_config_getclass(obj, &vclass);
|
result = ns_config_getclass(obj, dns_rdataclass_in, &vclass);
|
||||||
if (result != ISC_R_SUCCESS)
|
if (result != ISC_R_SUCCESS)
|
||||||
goto fail;
|
goto fail;
|
||||||
} else {
|
} else {
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: server.c,v 1.338 2001/08/03 17:58:18 bwelling Exp $ */
|
/* $Id: server.c,v 1.339 2001/08/07 01:58:56 marka Exp $ */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
@@ -192,7 +192,8 @@ configure_view_dnsseckey(cfg_obj_t *vconfig, cfg_obj_t *key,
|
|||||||
viewclass = dns_rdataclass_in;
|
viewclass = dns_rdataclass_in;
|
||||||
else {
|
else {
|
||||||
cfg_obj_t *classobj = cfg_tuple_get(vconfig, "class");
|
cfg_obj_t *classobj = cfg_tuple_get(vconfig, "class");
|
||||||
CHECK(ns_config_getclass(classobj, &viewclass));
|
CHECK(ns_config_getclass(classobj, dns_rdataclass_in,
|
||||||
|
&viewclass));
|
||||||
}
|
}
|
||||||
keystruct.common.rdclass = viewclass;
|
keystruct.common.rdclass = viewclass;
|
||||||
keystruct.common.rdtype = dns_rdatatype_key;
|
keystruct.common.rdtype = dns_rdatatype_key;
|
||||||
@@ -1188,7 +1189,8 @@ create_view(cfg_obj_t *vconfig, dns_viewlist_t *viewlist, dns_view_t **viewp) {
|
|||||||
|
|
||||||
viewname = cfg_obj_asstring(cfg_tuple_get(vconfig, "name"));
|
viewname = cfg_obj_asstring(cfg_tuple_get(vconfig, "name"));
|
||||||
classobj = cfg_tuple_get(vconfig, "class");
|
classobj = cfg_tuple_get(vconfig, "class");
|
||||||
result = ns_config_getclass(classobj, &viewclass);
|
result = ns_config_getclass(classobj, dns_rdataclass_in,
|
||||||
|
&viewclass);
|
||||||
} else {
|
} else {
|
||||||
viewname = "_default";
|
viewname = "_default";
|
||||||
viewclass = dns_rdataclass_in;
|
viewclass = dns_rdataclass_in;
|
||||||
@@ -1249,7 +1251,8 @@ configure_zone(cfg_obj_t *config, cfg_obj_t *zconfig, cfg_obj_t *vconfig,
|
|||||||
&buffer, dns_rootname, ISC_FALSE, NULL));
|
&buffer, dns_rootname, ISC_FALSE, NULL));
|
||||||
origin = dns_fixedname_name(&fixorigin);
|
origin = dns_fixedname_name(&fixorigin);
|
||||||
|
|
||||||
CHECK(ns_config_getclass(cfg_tuple_get(zconfig, "class"), &zclass));
|
CHECK(ns_config_getclass(cfg_tuple_get(zconfig, "class"),
|
||||||
|
view->rdclass, &zclass));
|
||||||
if (zclass != view->rdclass) {
|
if (zclass != view->rdclass) {
|
||||||
const char *vname = NULL;
|
const char *vname = NULL;
|
||||||
if (vconfig != NULL)
|
if (vconfig != NULL)
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: zoneconf.c,v 1.86 2001/06/04 21:51:26 bwelling Exp $ */
|
/* $Id: zoneconf.c,v 1.87 2001/08/07 01:58:58 marka Exp $ */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
@@ -295,6 +295,7 @@ ns_zone_configure(cfg_obj_t *config, cfg_obj_t *vconfig, cfg_obj_t *zconfig,
|
|||||||
isc_result_t result;
|
isc_result_t result;
|
||||||
char *zname;
|
char *zname;
|
||||||
dns_rdataclass_t zclass;
|
dns_rdataclass_t zclass;
|
||||||
|
dns_rdataclass_t vclass;
|
||||||
cfg_obj_t *maps[5];
|
cfg_obj_t *maps[5];
|
||||||
cfg_obj_t *zoptions = NULL;
|
cfg_obj_t *zoptions = NULL;
|
||||||
cfg_obj_t *options = NULL;
|
cfg_obj_t *options = NULL;
|
||||||
@@ -327,13 +328,21 @@ ns_zone_configure(cfg_obj_t *config, cfg_obj_t *vconfig, cfg_obj_t *zconfig,
|
|||||||
}
|
}
|
||||||
maps[i++] = ns_g_defaults;
|
maps[i++] = ns_g_defaults;
|
||||||
maps[i++] = NULL;
|
maps[i++] = NULL;
|
||||||
|
|
||||||
|
if (vconfig != NULL)
|
||||||
|
RETERR(ns_config_getclass(cfg_tuple_get(vconfig, "class"),
|
||||||
|
dns_rdataclass_in, &vclass));
|
||||||
|
else
|
||||||
|
vclass = dns_rdataclass_in;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Configure values common to all zone types.
|
* Configure values common to all zone types.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
zname = cfg_obj_asstring(cfg_tuple_get(zconfig, "name"));
|
zname = cfg_obj_asstring(cfg_tuple_get(zconfig, "name"));
|
||||||
|
|
||||||
RETERR(ns_config_getclass(cfg_tuple_get(zconfig, "class"), &zclass));
|
RETERR(ns_config_getclass(cfg_tuple_get(zconfig, "class"),
|
||||||
|
vclass, &zclass));
|
||||||
dns_zone_setclass(zone, zclass);
|
dns_zone_setclass(zone, zclass);
|
||||||
|
|
||||||
ztype = zonetype_fromconfig(zoptions);
|
ztype = zonetype_fromconfig(zoptions);
|
||||||
|
Reference in New Issue
Block a user