]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3931. [cleanup] Cleanup how dlz grammer is defined. [RT #36879]
authorMark Andrews <marka@isc.org>
Tue, 26 Aug 2014 05:01:29 +0000 (15:01 +1000)
committerMark Andrews <marka@isc.org>
Tue, 26 Aug 2014 05:26:33 +0000 (15:26 +1000)
(cherry picked from commit 11649973111d83027faf08ed4fb36a2b3c29c875)

CHANGES
bin/named/server.c
lib/isccfg/namedconf.c

diff --git a/CHANGES b/CHANGES
index 221de6c8d1b298dea55fd99f9011b12b9170c85a..37486075b2b530aace0a71c2d7360e84034e0967 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+3931.  [cleanup]       Cleanup how dlz grammer is defined. [RT #36879]
+
 3929.  [bug]           'host -a' needed to clear idnoptions. [RT #36963]
 
 3928.  [test]          Improve rndc system test. [RT #36898]
index b939906f07766de2dafe1137e0ba4d5fe6eed3c1..373e301dff68a149041f4553fb393dc978c6d29e 100644 (file)
@@ -2150,9 +2150,9 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
 
        obj = NULL;
        if (dlz != NULL) {
-               (void)cfg_map_get(cfg_tuple_get(dlz, "options"),
-                                 "database", &obj);
+               (void)cfg_map_get(dlz, "database", &obj);
                if (obj != NULL) {
+                       const cfg_obj_t *name;
                        char *s = isc_mem_strdup(mctx, cfg_obj_asstring(obj));
                        if (s == NULL) {
                                result = ISC_R_NOMEMORY;
@@ -2165,8 +2165,8 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig,
                                goto cleanup;
                        }
 
-                       obj = cfg_tuple_get(dlz, "name");
-                       result = dns_dlzcreate(mctx, cfg_obj_asstring(obj),
+                       name = cfg_map_getname(dlz);
+                       result = dns_dlzcreate(mctx, cfg_obj_asstring(name),
                                               dlzargv[0], dlzargc, dlzargv,
                                               &view->dlzdatabase);
                        isc_mem_free(mctx, s);
index 3444f03f844b8ae58aba21b33f461bf6fb4bb579..c3fe997aebd25e37401033d5655320934665cd25 100644 (file)
@@ -120,34 +120,8 @@ static cfg_type_t cfg_type_view;
 static cfg_type_t cfg_type_viewopts;
 static cfg_type_t cfg_type_zone;
 static cfg_type_t cfg_type_zoneopts;
-static cfg_type_t cfg_type_dynamically_loadable_zones;
-static cfg_type_t cfg_type_dynamically_loadable_zones_opts;
 static cfg_type_t cfg_type_v4_aaaa;
-
-/*
- * Clauses that can be found in a 'dynamically loadable zones' statement
- */
-static cfg_clausedef_t
-dynamically_loadable_zones_clauses[] = {
-       { "database", &cfg_type_astring, 0 },
-       { NULL, NULL, 0 }
-};
-
-/*
- * A dynamically loadable zones statement.
- */
-static cfg_tuplefielddef_t dynamically_loadable_zones_fields[] = {
-       { "name", &cfg_type_astring, 0 },
-       { "options", &cfg_type_dynamically_loadable_zones_opts, 0 },
-       { NULL, NULL, 0 }
-};
-
-static cfg_type_t cfg_type_dynamically_loadable_zones = {
-       "dlz", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple,
-       &cfg_rep_tuple,
-       dynamically_loadable_zones_fields
-       };
-
+static cfg_type_t cfg_type_dlz;
 
 /*% tkey-dhkey */
 
@@ -865,7 +839,7 @@ namedconf_or_view_clauses[] = {
        { "key", &cfg_type_key, CFG_CLAUSEFLAG_MULTI },
        { "zone", &cfg_type_zone, CFG_CLAUSEFLAG_MULTI },
        /* only 1 DLZ per view allowed */
-       { "dlz", &cfg_type_dynamically_loadable_zones, 0 },
+       { "dlz", &cfg_type_dlz, 0 },
        { "server", &cfg_type_server, CFG_CLAUSEFLAG_MULTI },
        { "trusted-keys", &cfg_type_dnsseckeys, CFG_CLAUSEFLAG_MULTI },
        { "managed-keys", &cfg_type_managedkeys, CFG_CLAUSEFLAG_MULTI },
@@ -1620,15 +1594,19 @@ static cfg_type_t cfg_type_zoneopts = {
 
 /*% The "dynamically loadable zones" statement syntax. */
 
+static cfg_clausedef_t
+dlz_clauses[] = {
+       { "database", &cfg_type_astring, 0 },
+       { NULL, NULL, 0 }
+};
 static cfg_clausedef_t *
-dynamically_loadable_zones_clausesets[] = {
-       dynamically_loadable_zones_clauses,
+dlz_clausesets[] = {
+       dlz_clauses,
        NULL
 };
-static cfg_type_t cfg_type_dynamically_loadable_zones_opts = {
-       "dynamically_loadable_zones_opts", cfg_parse_map,
-       cfg_print_map, cfg_doc_map, &cfg_rep_map,
-       dynamically_loadable_zones_clausesets
+static cfg_type_t cfg_type_dlz = {
+       "dlz", cfg_parse_named_map, cfg_print_map, cfg_doc_map,
+        &cfg_rep_map, dlz_clausesets
 };
 
 /*%