]> 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:02:13 +0000 (15:02 +1000)
(cherry picked from commit 11649973111d83027faf08ed4fb36a2b3c29c875)

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

diff --git a/CHANGES b/CHANGES
index d1d7702c6c445eb6fa0a3aa92e0395f382706c6a..87b377b42dc1d8251f9423c3ab7f135b2ad064f6 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 c29a5e2bc030a6bf50f2ac58208b7cd158fb66dd..76b425f5f55c1aac632f71d9f08d9e7a8c8d6efb 100644 (file)
@@ -2546,13 +2546,10 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
             element != NULL;
             element = cfg_list_next(element))
        {
-               const cfg_obj_t *dlzopts;
-               obj = NULL;
+               dlz = cfg_listelt_value(element);
 
                obj = NULL;
-               dlz = cfg_listelt_value(element);
-               dlzopts = cfg_tuple_get(dlz, "options");
-               (void)cfg_map_get(dlzopts, "database", &obj);
+               (void)cfg_map_get(dlz, "database", &obj);
                if (obj != NULL) {
                        dns_dlzdb_t *dlzdb = NULL;
                        const cfg_obj_t *name, *search = NULL;
@@ -2569,7 +2566,7 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
                                goto cleanup;
                        }
 
-                       name = cfg_tuple_get(dlz, "name");
+                       name = cfg_map_getname(dlz);
                        result = dns_dlzcreate(mctx, cfg_obj_asstring(name),
                                               dlzargv[0], dlzargc, dlzargv,
                                               &dlzdb);
@@ -2584,7 +2581,7 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
                         * method now.  If not searchable, we'll take
                         * care of it when we process the zone statement.
                         */
-                       (void)cfg_map_get(dlzopts, "search", &search);
+                       (void)cfg_map_get(dlz, "search", &search);
                        if (search == NULL || cfg_obj_asboolean(search)) {
                                dlzdb->search = ISC_TRUE;
                                result = dns_dlzconfigure(view, dlzdb,
index a2cf3d36561c66cd57c7b5a2225ba6852892d91d..069b1f51b699c731bfacc7ecc80ed2816b7dc739 100644 (file)
@@ -140,35 +140,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_filter_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 },
-       { "search", &cfg_type_boolean, 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 */
 
@@ -934,7 +907,7 @@ static cfg_clausedef_t
 namedconf_or_view_clauses[] = {
        { "key", &cfg_type_key, CFG_CLAUSEFLAG_MULTI },
        { "zone", &cfg_type_zone, CFG_CLAUSEFLAG_MULTI },
-       { "dlz", &cfg_type_dynamically_loadable_zones, CFG_CLAUSEFLAG_MULTI },
+       { "dlz", &cfg_type_dlz, CFG_CLAUSEFLAG_MULTI },
        { "server", &cfg_type_server, CFG_CLAUSEFLAG_MULTI },
        { "trusted-keys", &cfg_type_dnsseckeys, CFG_CLAUSEFLAG_MULTI },
        { "managed-keys", &cfg_type_managedkeys, CFG_CLAUSEFLAG_MULTI },
@@ -1792,15 +1765,20 @@ static cfg_type_t cfg_type_zoneopts = {
 
 /*% The "dynamically loadable zones" statement syntax. */
 
+static cfg_clausedef_t
+dlz_clauses[] = {
+       { "database", &cfg_type_astring, 0 },
+       { "search", &cfg_type_boolean, 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
 };
 
 /*%