4520. [cleanup] Alphabetise more of the grammar when printing it

out. Fix unbalanced indenting. [RT #43755]
This commit is contained in:
Mark Andrews 2016-11-29 15:28:28 +11:00
parent a611e44f9a
commit 4352551d23
4 changed files with 218 additions and 151 deletions

View file

@ -1,3 +1,6 @@
4520. [cleanup] Alphabetise more of the grammar when printing it
out. Fix unbalanced indenting. [RT #43755]
4519. [port] win32: handle ERROR_MORE_DATA. [RT #43534]
4518. [func] The "print-time" option in the logging configuration

View file

@ -141,10 +141,6 @@ view "chaos" chaos {
database "_builtin hostname";
};
};
key "mykey" {
algorithm "hmac-md5";
secret "qwertyuiopasdfgh";
};
dyndb "name" "library.so" {
this;
\};
@ -154,3 +150,7 @@ dyndb "name" "library.so" {
"text \"";
system;
};
key "mykey" {
algorithm "hmac-md5";
secret "qwertyuiopasdfgh";
};

View file

@ -150,8 +150,8 @@ static cfg_tuplefielddef_t tkey_dhkey_fields[] = {
};
static cfg_type_t cfg_type_tkey_dhkey = {
"tkey-dhkey", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, &cfg_rep_tuple,
tkey_dhkey_fields
"tkey-dhkey", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple,
&cfg_rep_tuple, tkey_dhkey_fields
};
/*% listen-on */
@ -177,7 +177,9 @@ static cfg_tuplefielddef_t acl_fields[] = {
};
static cfg_type_t cfg_type_acl = {
"acl", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, &cfg_rep_tuple, acl_fields };
"acl", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple,
&cfg_rep_tuple, acl_fields
};
/*% masters */
static cfg_tuplefielddef_t masters_fields[] = {
@ -189,7 +191,9 @@ static cfg_tuplefielddef_t masters_fields[] = {
};
static cfg_type_t cfg_type_masters = {
"masters", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, &cfg_rep_tuple, masters_fields };
"masters", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple,
&cfg_rep_tuple, masters_fields
};
/*%
* "sockaddrkeylist", a list of socket addresses with optional keys
@ -205,13 +209,14 @@ static cfg_tuplefielddef_t namesockaddrkey_fields[] = {
};
static cfg_type_t cfg_type_namesockaddrkey = {
"namesockaddrkey", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, &cfg_rep_tuple,
namesockaddrkey_fields
"namesockaddrkey", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple,
&cfg_rep_tuple, namesockaddrkey_fields
};
static cfg_type_t cfg_type_bracketed_namesockaddrkeylist = {
"bracketed_namesockaddrkeylist", cfg_parse_bracketed_list,
cfg_print_bracketed_list, cfg_doc_bracketed_list, &cfg_rep_list, &cfg_type_namesockaddrkey
cfg_print_bracketed_list, cfg_doc_bracketed_list, &cfg_rep_list,
&cfg_type_namesockaddrkey
};
static cfg_tuplefielddef_t namesockaddrkeylist_fields[] = {
@ -221,8 +226,8 @@ static cfg_tuplefielddef_t namesockaddrkeylist_fields[] = {
{ NULL, NULL, 0 }
};
static cfg_type_t cfg_type_namesockaddrkeylist = {
"sockaddrkeylist", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, &cfg_rep_tuple,
namesockaddrkeylist_fields
"sockaddrkeylist", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple,
&cfg_rep_tuple, namesockaddrkeylist_fields
};
/*%
@ -252,7 +257,8 @@ static cfg_tuplefielddef_t pubkey_fields[] = {
};
static cfg_type_t cfg_type_pubkey = {
"pubkey", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple,
&cfg_rep_tuple, pubkey_fields };
&cfg_rep_tuple, pubkey_fields
};
/*%
* A list of RR types, used in grant statements.
@ -263,15 +269,14 @@ static cfg_type_t cfg_type_rrtypelist = {
cfg_doc_terminal, &cfg_rep_list, &cfg_type_astring
};
static const char *mode_enums[] = { "grant", "deny", NULL };
static const char *mode_enums[] = { "deny", "grant", NULL };
static cfg_type_t cfg_type_mode = {
"mode", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum,
&cfg_rep_string, &mode_enums
};
static isc_result_t
parse_matchtype(cfg_parser_t *pctx, const cfg_type_t *type,
cfg_obj_t **ret) {
parse_matchtype(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
isc_result_t result;
CHECK(cfg_peektoken(pctx, 0));
@ -309,9 +314,10 @@ doc_matchname(cfg_printer_t *pctx, const cfg_type_t *type) {
}
static const char *matchtype_enums[] = {
"name", "subdomain", "wildcard", "self", "selfsub", "selfwild",
"krb5-self", "ms-self", "krb5-subdomain", "ms-subdomain",
"tcp-self", "6to4-self", "zonesub", "external", NULL };
"6to4-self", "external", "krb5-self", "krb5-subdomain", "ms-self",
"ms-subdomain", "name", "self", "selfsub", "selfwild", "subdomain",
"tcp-self", "wildcard", "zonesub", NULL
};
static cfg_type_t cfg_type_matchtype = {
"matchtype", parse_matchtype, cfg_print_ustring,
@ -346,7 +352,8 @@ static cfg_type_t cfg_type_updatepolicy = {
static isc_result_t
parse_updatepolicy(cfg_parser_t *pctx, const cfg_type_t *type,
cfg_obj_t **ret) {
cfg_obj_t **ret)
{
isc_result_t result;
CHECK(cfg_gettoken(pctx, 0));
if (pctx->token.type == isc_tokentype_special &&
@ -487,8 +494,8 @@ static cfg_type_t cfg_type_optional_wild_type = {
static keyword_type_t wild_name_kw = { "name", &cfg_type_qstring };
static cfg_type_t cfg_type_optional_wild_name = {
"optional_wild_name", parse_optional_keyvalue,
print_keyvalue, doc_optional_keyvalue, &cfg_rep_string, &wild_name_kw
"optional_wild_name", parse_optional_keyvalue, print_keyvalue,
doc_optional_keyvalue, &cfg_rep_string, &wild_name_kw
};
/*%
@ -503,8 +510,8 @@ static cfg_tuplefielddef_t rrsetorderingelement_fields[] = {
{ NULL, NULL, 0 }
};
static cfg_type_t cfg_type_rrsetorderingelement = {
"rrsetorderingelement", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, &cfg_rep_tuple,
rrsetorderingelement_fields
"rrsetorderingelement", cfg_parse_tuple, cfg_print_tuple,
cfg_doc_tuple, &cfg_rep_tuple, rrsetorderingelement_fields
};
/*%
@ -553,20 +560,25 @@ static cfg_type_t cfg_type_bracketed_sockaddrlist = {
&cfg_type_sockaddr
};
static const char *autodnssec_enums[] = { "allow", "maintain", "off", NULL };
static const char *autodnssec_enums[] = {
"allow", "maintain", "off", NULL
};
static cfg_type_t cfg_type_autodnssec = {
"autodnssec", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum,
&cfg_rep_string, &autodnssec_enums
};
static const char *dnssecupdatemode_enums[] = { "maintain", "no-resign", NULL };
static const char *dnssecupdatemode_enums[] = {
"maintain", "no-resign", NULL
};
static cfg_type_t cfg_type_dnssecupdatemode = {
"dnssecupdatemode", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum,
&cfg_rep_string, &dnssecupdatemode_enums
};
static const char *updatemethods_enums[] = {
"increment", "unixtime", "date", NULL };
"date", "increment", "unixtime", NULL
};
static cfg_type_t cfg_type_updatemethod = {
"updatemethod", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum,
&cfg_rep_string, &updatemethods_enums
@ -639,30 +651,33 @@ static cfg_type_t cfg_type_managedkeys = {
static const char *forwardtype_enums[] = { "first", "only", NULL };
static cfg_type_t cfg_type_forwardtype = {
"forwardtype", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum, &cfg_rep_string,
&forwardtype_enums
"forwardtype", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum,
&cfg_rep_string, &forwardtype_enums
};
static const char *zonetype_enums[] = {
"master", "slave", "stub", "static-stub", "hint", "forward",
"delegation-only", "redirect", NULL };
"delegation-only", "forward", "hint", "master", "redirect",
"slave", "static-stub", "stub", NULL
};
static cfg_type_t cfg_type_zonetype = {
"zonetype", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum,
&cfg_rep_string, &zonetype_enums
};
static const char *loglevel_enums[] = {
"critical", "error", "warning", "notice", "info", "dynamic", NULL };
"critical", "error", "warning", "notice", "info", "dynamic", NULL
};
static cfg_type_t cfg_type_loglevel = {
"loglevel", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum, &cfg_rep_string,
&loglevel_enums
"loglevel", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum,
&cfg_rep_string, &loglevel_enums
};
static const char *transferformat_enums[] = {
"many-answers", "one-answer", NULL };
"many-answers", "one-answer", NULL
};
static cfg_type_t cfg_type_transferformat = {
"transferformat", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum, &cfg_rep_string,
&transferformat_enums
"transferformat", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum,
&cfg_rep_string, &transferformat_enums
};
/*%
@ -724,9 +739,7 @@ static cfg_type_t cfg_type_auto = {
};
static isc_result_t
parse_boolorauto(cfg_parser_t *pctx, const cfg_type_t *type,
cfg_obj_t **ret)
{
parse_boolorauto(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
isc_result_t result;
CHECK(cfg_gettoken(pctx, CFG_LEXOPT_QSTRING));
@ -895,7 +908,8 @@ static cfg_type_t cfg_type_bracketed_portlist = {
static const char *cookiealg_enums[] = { "aes", "sha1", "sha256", NULL };
static cfg_type_t cfg_type_cookiealg = {
"cookiealg", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum,
&cfg_rep_string, &cookiealg_enums };
&cfg_rep_string, &cookiealg_enums
};
/*%
* fetch-quota-params
@ -957,15 +971,15 @@ static cfg_type_t cfg_type_fetchesper = {
*/
static cfg_clausedef_t
namedconf_clauses[] = {
{ "options", &cfg_type_options, 0 },
{ "controls", &cfg_type_controls, CFG_CLAUSEFLAG_MULTI },
{ "acl", &cfg_type_acl, CFG_CLAUSEFLAG_MULTI },
{ "masters", &cfg_type_masters, CFG_CLAUSEFLAG_MULTI },
{ "controls", &cfg_type_controls, CFG_CLAUSEFLAG_MULTI },
{ "logging", &cfg_type_logging, 0 },
{ "view", &cfg_type_view, CFG_CLAUSEFLAG_MULTI },
{ "lwres", &cfg_type_lwres, CFG_CLAUSEFLAG_MULTI },
{ "masters", &cfg_type_masters, CFG_CLAUSEFLAG_MULTI },
{ "options", &cfg_type_options, 0 },
{ "statistics-channels", &cfg_type_statschannels,
CFG_CLAUSEFLAG_MULTI },
{ "view", &cfg_type_view, CFG_CLAUSEFLAG_MULTI },
{ NULL, NULL, 0 }
};
@ -975,13 +989,13 @@ namedconf_clauses[] = {
*/
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_dlz, CFG_CLAUSEFLAG_MULTI },
{ "dyndb", &cfg_type_dyndb, CFG_CLAUSEFLAG_MULTI },
{ "key", &cfg_type_key, CFG_CLAUSEFLAG_MULTI },
{ "managed-keys", &cfg_type_managedkeys, 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 },
{ "zone", &cfg_type_zone, CFG_CLAUSEFLAG_MULTI },
{ NULL, NULL, 0 }
};
@ -990,12 +1004,12 @@ namedconf_or_view_clauses[] = {
*/
static cfg_clausedef_t
bindkeys_clauses[] = {
{ "trusted-keys", &cfg_type_dnsseckeys, CFG_CLAUSEFLAG_MULTI },
{ "managed-keys", &cfg_type_managedkeys, CFG_CLAUSEFLAG_MULTI },
{ "trusted-keys", &cfg_type_dnsseckeys, CFG_CLAUSEFLAG_MULTI },
{ NULL, NULL, 0 }
};
static const char *fstrm_model_enums[] = { "spsc", "mpsc", NULL };
static const char *fstrm_model_enums[] = { "mpsc", "spsc", NULL };
static cfg_type_t cfg_type_fstrm_model = {
"model", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum,
&cfg_rep_string, &fstrm_model_enums
@ -1028,23 +1042,25 @@ options_clauses[] = {
{ "fstrm-set-reopen-interval", &cfg_type_uint32, 0 },
#else
{ "dnstap-output", &cfg_type_dnstapoutput,
CFG_CLAUSEFLAG_NOTCONFIGURED },
{ "dnstap-identity", &cfg_type_serverid, CFG_CLAUSEFLAG_NOTCONFIGURED },
{ "dnstap-version", &cfg_type_qstringornone, CFG_CLAUSEFLAG_NOTCONFIGURED },
CFG_CLAUSEFLAG_NOTCONFIGURED },
{ "dnstap-identity", &cfg_type_serverid,
CFG_CLAUSEFLAG_NOTCONFIGURED },
{ "dnstap-version", &cfg_type_qstringornone,
CFG_CLAUSEFLAG_NOTCONFIGURED },
{ "fstrm-set-buffer-hint", &cfg_type_uint32,
CFG_CLAUSEFLAG_NOTCONFIGURED },
CFG_CLAUSEFLAG_NOTCONFIGURED },
{ "fstrm-set-flush-timeout", &cfg_type_uint32,
CFG_CLAUSEFLAG_NOTCONFIGURED },
CFG_CLAUSEFLAG_NOTCONFIGURED },
{ "fstrm-set-input-queue-size", &cfg_type_uint32,
CFG_CLAUSEFLAG_NOTCONFIGURED },
CFG_CLAUSEFLAG_NOTCONFIGURED },
{ "fstrm-set-output-notify-threshold", &cfg_type_uint32,
CFG_CLAUSEFLAG_NOTCONFIGURED },
CFG_CLAUSEFLAG_NOTCONFIGURED },
{ "fstrm-set-output-queue-model", &cfg_type_fstrm_model,
CFG_CLAUSEFLAG_NOTCONFIGURED },
CFG_CLAUSEFLAG_NOTCONFIGURED },
{ "fstrm-set-output-queue-size", &cfg_type_uint32,
CFG_CLAUSEFLAG_NOTCONFIGURED },
CFG_CLAUSEFLAG_NOTCONFIGURED },
{ "fstrm-set-reopen-interval", &cfg_type_uint32,
CFG_CLAUSEFLAG_NOTCONFIGURED },
CFG_CLAUSEFLAG_NOTCONFIGURED },
#endif /* HAVE_DNSTAP */
{ "session-keyfile", &cfg_type_qstringornone, 0 },
{ "session-keyname", &cfg_type_astring, 0 },
@ -1120,19 +1136,24 @@ options_clauses[] = {
static cfg_type_t cfg_type_namelist = {
"namelist", cfg_parse_bracketed_list, cfg_print_bracketed_list,
cfg_doc_bracketed_list, &cfg_rep_list, &cfg_type_qstring };
cfg_doc_bracketed_list, &cfg_rep_list, &cfg_type_qstring
};
static keyword_type_t exclude_kw = { "exclude", &cfg_type_namelist };
static cfg_type_t cfg_type_optional_exclude = {
"optional_exclude", parse_optional_keyvalue, print_keyvalue,
doc_optional_keyvalue, &cfg_rep_list, &exclude_kw };
doc_optional_keyvalue, &cfg_rep_list, &exclude_kw
};
static keyword_type_t exceptionnames_kw = { "except-from", &cfg_type_namelist };
static keyword_type_t exceptionnames_kw = {
"except-from", &cfg_type_namelist
};
static cfg_type_t cfg_type_optional_exceptionnames = {
"optional_allow", parse_optional_keyvalue, print_keyvalue,
doc_optional_keyvalue, &cfg_rep_list, &exceptionnames_kw };
doc_optional_keyvalue, &cfg_rep_list, &exceptionnames_kw
};
static cfg_tuplefielddef_t denyaddresses_fields[] = {
{ "acl", &cfg_type_bracketed_aml, 0 },
@ -1158,7 +1179,8 @@ static cfg_type_t cfg_type_denyaliases = {
static cfg_type_t cfg_type_algorithmlist = {
"algorithmlist", cfg_parse_bracketed_list, cfg_print_bracketed_list,
cfg_doc_bracketed_list, &cfg_rep_list, &cfg_type_astring };
cfg_doc_bracketed_list, &cfg_rep_list, &cfg_type_astring
};
static cfg_tuplefielddef_t disablealgorithm_fields[] = {
{ "name", &cfg_type_astring, 0 },
@ -1173,7 +1195,8 @@ static cfg_type_t cfg_type_disablealgorithm = {
static cfg_type_t cfg_type_dsdigestlist = {
"dsdigestlist", cfg_parse_bracketed_list, cfg_print_bracketed_list,
cfg_doc_bracketed_list, &cfg_rep_list, &cfg_type_astring };
cfg_doc_bracketed_list, &cfg_rep_list, &cfg_type_astring
};
static cfg_tuplefielddef_t disabledsdigest_fields[] = {
{ "name", &cfg_type_astring, 0 },
@ -1197,7 +1220,7 @@ static cfg_type_t cfg_type_mustbesecure = {
&cfg_rep_tuple, mustbesecure_fields
};
static const char *masterformat_enums[] = { "text", "raw", "map", NULL };
static const char *masterformat_enums[] = { "map", "raw", "text", NULL };
static cfg_type_t cfg_type_masterformat = {
"masterformat", cfg_parse_enum, cfg_print_ustring, cfg_doc_enum,
&cfg_rep_string, &masterformat_enums
@ -1217,8 +1240,9 @@ static cfg_type_t cfg_type_masterstyle = {
*
* ... where message type is one of: client, resolver, auth, forwarder, all
*/
static const char *dnstap_types[] = { "client", "resolver",
"auth", "forwarder", "all", NULL };
static const char *dnstap_types[] = {
"all", "auth", "client", "forwarder", "resolver", NULL
};
static const char *dnstap_modes[] = { "query", "response", NULL };
@ -1240,7 +1264,8 @@ static cfg_tuplefielddef_t dnstap_fields[] = {
static cfg_type_t cfg_type_dnstap_entry = {
"dnstap_value", cfg_parse_tuple, cfg_print_tuple,
cfg_doc_tuple, &cfg_rep_tuple, dnstap_fields };
cfg_doc_tuple, &cfg_rep_tuple, dnstap_fields
};
static cfg_type_t cfg_type_dnstap = {
"dnstap", cfg_parse_bracketed_list, cfg_print_bracketed_list,
@ -1337,7 +1362,9 @@ cleanup:
* by 2 or more optional keyvalues that can be in any order.
*/
static isc_result_t
cfg_parse_kv_tuple(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
cfg_parse_kv_tuple(cfg_parser_t *pctx, const cfg_type_t *type,
cfg_obj_t **ret)
{
const cfg_tuplefielddef_t *fields, *f;
cfg_obj_t *obj = NULL;
int fn;
@ -1434,8 +1461,8 @@ static cfg_type_t cfg_type_rpz_zone = {
* "no-op" is an obsolete equivalent of "passthru".
*/
static const char *rpz_policies[] = {
"given", "disabled", "passthru", "no-op", "drop", "tcp-only",
"nxdomain", "nodata", "cname", NULL
"cname", "disabled", "drop", "given", "no-op", "nodata",
"nxdomain", "passthru", "tcp-only", NULL
};
static cfg_type_t cfg_type_rpz_policy_name = {
"policy name", cfg_parse_enum, cfg_print_ustring,
@ -1527,33 +1554,30 @@ static cfg_type_t cfg_type_catz = {
cfg_doc_kv_tuple, &cfg_rep_tuple, catz_fields
};
/*
* rate-limit
*/
static cfg_clausedef_t rrl_clauses[] = {
{ "responses-per-second", &cfg_type_uint32, 0 },
{ "referrals-per-second", &cfg_type_uint32, 0 },
{ "nodata-per-second", &cfg_type_uint32, 0 },
{ "nxdomains-per-second", &cfg_type_uint32, 0 },
{ "errors-per-second", &cfg_type_uint32, 0 },
{ "all-per-second", &cfg_type_uint32, 0 },
{ "slip", &cfg_type_uint32, 0 },
{ "window", &cfg_type_uint32, 0 },
{ "log-only", &cfg_type_boolean, 0 },
{ "qps-scale", &cfg_type_uint32, 0 },
{ "errors-per-second", &cfg_type_uint32, 0 },
{ "exempt-clients", &cfg_type_bracketed_aml, 0 },
{ "ipv4-prefix-length", &cfg_type_uint32, 0 },
{ "ipv6-prefix-length", &cfg_type_uint32, 0 },
{ "exempt-clients", &cfg_type_bracketed_aml, 0 },
{ "log-only", &cfg_type_boolean, 0 },
{ "max-table-size", &cfg_type_uint32, 0 },
{ "min-table-size", &cfg_type_uint32, 0 },
{ "nodata-per-second", &cfg_type_uint32, 0 },
{ "nxdomains-per-second", &cfg_type_uint32, 0 },
{ "qps-scale", &cfg_type_uint32, 0 },
{ "referrals-per-second", &cfg_type_uint32, 0 },
{ "responses-per-second", &cfg_type_uint32, 0 },
{ "slip", &cfg_type_uint32, 0 },
{ "window", &cfg_type_uint32, 0 },
{ NULL, NULL, 0 }
};
static cfg_clausedef_t *rrl_clausesets[] = {
rrl_clauses,
NULL
rrl_clauses, NULL
};
static cfg_type_t cfg_type_rrl = {
@ -1625,7 +1649,8 @@ doc_optional_uint32(cfg_printer_t *pctx, const cfg_type_t *type) {
static cfg_type_t cfg_type_optional_uint32 = {
"optional_uint32", parse_optional_uint32, NULL, doc_optional_uint32,
NULL, NULL };
NULL, NULL
};
static cfg_tuplefielddef_t prefetch_fields[] = {
{ "trigger", &cfg_type_uint32, 0 },
@ -1642,12 +1667,12 @@ static cfg_type_t cfg_type_prefetch = {
*/
static cfg_clausedef_t
dns64_clauses[] = {
{ "clients", &cfg_type_bracketed_aml, 0 },
{ "mapped", &cfg_type_bracketed_aml, 0 },
{ "exclude", &cfg_type_bracketed_aml, 0 },
{ "suffix", &cfg_type_netaddr6, 0 },
{ "recursive-only", &cfg_type_boolean, 0 },
{ "break-dnssec", &cfg_type_boolean, 0 },
{ "clients", &cfg_type_bracketed_aml, 0 },
{ "exclude", &cfg_type_bracketed_aml, 0 },
{ "mapped", &cfg_type_bracketed_aml, 0 },
{ "recursive-only", &cfg_type_boolean, 0 },
{ "suffix", &cfg_type_netaddr6, 0 },
{ NULL, NULL, 0 },
};
@ -1777,7 +1802,8 @@ view_clauses[] = {
{ "suppress-initial-notify", &cfg_type_boolean, CFG_CLAUSEFLAG_NYI },
{ "topology", &cfg_type_bracketed_aml, CFG_CLAUSEFLAG_NOTIMP },
{ "transfer-format", &cfg_type_transferformat, 0 },
{ "trust-anchor-telemetry", &cfg_type_boolean, CFG_CLAUSEFLAG_EXPERIMENTAL },
{ "trust-anchor-telemetry", &cfg_type_boolean,
CFG_CLAUSEFLAG_EXPERIMENTAL },
{ "use-queryport-pool", &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE },
{ "v6-bias", &cfg_type_uint32, 0 },
{ "zero-no-soa-ttl-cache", &cfg_type_boolean, 0 },
@ -1947,7 +1973,9 @@ options_clausesets[] = {
NULL
};
static cfg_type_t cfg_type_options = {
"options", cfg_parse_map, cfg_print_map, cfg_doc_map, &cfg_rep_map, options_clausesets };
"options", cfg_parse_map, cfg_print_map, cfg_doc_map, &cfg_rep_map,
options_clausesets
};
/*% The "view" statement syntax. */
@ -2067,8 +2095,8 @@ server_clausesets[] = {
NULL
};
static cfg_type_t cfg_type_server = {
"server", cfg_parse_netprefix_map, cfg_print_map, cfg_doc_map, &cfg_rep_map,
server_clausesets
"server", cfg_parse_netprefix_map, cfg_print_map, cfg_doc_map,
&cfg_rep_map, server_clausesets
};
/*%
@ -2081,7 +2109,7 @@ static cfg_type_t cfg_type_server = {
*/
static const char *printtime_enums[] = {
"local", "iso8601", "iso8601-utc", NULL
"iso8601", "iso8601-utc", "local", NULL
};
static isc_result_t
parse_printtime(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
@ -2123,31 +2151,29 @@ static cfg_type_t cfg_type_channel = {
/*% A list of log destination, used in the "category" clause. */
static cfg_type_t cfg_type_destinationlist = {
"destinationlist", cfg_parse_bracketed_list, cfg_print_bracketed_list, cfg_doc_bracketed_list,
&cfg_rep_list, &cfg_type_astring };
"destinationlist", cfg_parse_bracketed_list, cfg_print_bracketed_list,
cfg_doc_bracketed_list, &cfg_rep_list, &cfg_type_astring
};
/*%
* Clauses that can be found in a 'logging' statement.
*/
static cfg_clausedef_t
logging_clauses[] = {
static cfg_clausedef_t logging_clauses[] = {
{ "channel", &cfg_type_channel, CFG_CLAUSEFLAG_MULTI },
{ "category", &cfg_type_category, CFG_CLAUSEFLAG_MULTI },
{ NULL, NULL, 0 }
};
static cfg_clausedef_t *
logging_clausesets[] = {
logging_clauses,
NULL
static cfg_clausedef_t * logging_clausesets[] = {
logging_clauses, NULL
};
static cfg_type_t cfg_type_logging = {
"logging", cfg_parse_map, cfg_print_map, cfg_doc_map, &cfg_rep_map, logging_clausesets };
"logging", cfg_parse_map, cfg_print_map, cfg_doc_map,
&cfg_rep_map, logging_clausesets
};
/*%
* For parsing an 'addzone' statement
*/
static cfg_tuplefielddef_t addzone_fields[] = {
{ "name", &cfg_type_astring, 0 },
{ "class", &cfg_type_optional_class, 0 },
@ -2156,7 +2182,9 @@ static cfg_tuplefielddef_t addzone_fields[] = {
{ NULL, NULL, 0 }
};
static cfg_type_t cfg_type_addzone = {
"zone", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, &cfg_rep_tuple, addzone_fields };
"zone", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple,
&cfg_rep_tuple, addzone_fields
};
static cfg_clausedef_t
addzoneconf_clauses[] = {
@ -2235,7 +2263,8 @@ parse_sizeval(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
return (ISC_R_SUCCESS);
cleanup:
cfg_parser_error(pctx, CFG_LOG_NEAR, "expected integer and optional unit");
cfg_parser_error(pctx, CFG_LOG_NEAR,
"expected integer and optional unit");
return (result);
}
@ -2273,7 +2302,8 @@ parse_sizeval_percent(cfg_parser_t *pctx, const cfg_type_t *type,
}
cleanup:
cfg_parser_error(pctx, CFG_LOG_NEAR, "expected integer and optional unit or percent");
cfg_parser_error(pctx, CFG_LOG_NEAR,
"expected integer and optional unit or percent");
return (result);
}
@ -2294,7 +2324,8 @@ doc_sizeval_percent(cfg_printer_t *pctx, const cfg_type_t *type) {
*/
static cfg_type_t cfg_type_sizeval = {
"sizeval", parse_sizeval, cfg_print_uint64, cfg_doc_terminal,
&cfg_rep_uint64, NULL };
&cfg_rep_uint64, NULL
};
/*%
* A size, "unlimited", or "default".
@ -2310,7 +2341,7 @@ doc_size(cfg_printer_t *pctx, const cfg_type_t *type) {
doc_enum_or_other(pctx, type, &cfg_type_sizeval);
}
static const char *size_enums[] = { "unlimited", "default", NULL };
static const char *size_enums[] = { "default", "unlimited", NULL };
static cfg_type_t cfg_type_size = {
"size", parse_size, cfg_print_ustring, doc_size,
&cfg_rep_string, size_enums
@ -2351,7 +2382,7 @@ doc_parse_size_or_percent(cfg_printer_t *pctx, const cfg_type_t *type) {
doc_enum_or_other(pctx, type, &cfg_type_sizeval_percent);
}
static const char *sizeorpercent_enums[] = { "unlimited", "default", NULL };
static const char *sizeorpercent_enums[] = { "default", "unlimited", NULL };
static cfg_type_t cfg_type_sizeorpercent = {
"size_or_percent", parse_size_or_percent, cfg_print_ustring,
doc_parse_size_or_percent, &cfg_rep_string, sizeorpercent_enums
@ -2481,9 +2512,12 @@ doc_optional_keyvalue(cfg_printer_t *pctx, const cfg_type_t *type) {
}
static const char *dialup_enums[] = {
"notify", "notify-passive", "refresh", "passive", NULL };
"notify", "notify-passive", "passive", "refresh", NULL
};
static isc_result_t
parse_dialup_type(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
parse_dialup_type(cfg_parser_t *pctx, const cfg_type_t *type,
cfg_obj_t **ret)
{
return (parse_enum_or_other(pctx, type, &cfg_type_boolean, ret));
}
static void
@ -2497,7 +2531,9 @@ static cfg_type_t cfg_type_dialuptype = {
static const char *notify_enums[] = { "explicit", "master-only", NULL };
static isc_result_t
parse_notify_type(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
parse_notify_type(cfg_parser_t *pctx, const cfg_type_t *type,
cfg_obj_t **ret)
{
return (parse_enum_or_other(pctx, type, &cfg_type_boolean, ret));
}
static void
@ -2572,10 +2608,10 @@ static cfg_type_t cfg_type_optional_keyref = {
* geoip [ db <database> ] search-type <string>
*/
static const char *geoiptype_enums[] = {
"country", "country3", "countryname", "region", "regionname",
"city", "postalcode", "postal", "metrocode", "metro",
"areacode", "area", "timezone", "tz", "continent", "isp",
"domain", "asnum", "org", "netspeed", NULL
"area", "areacode", "asnum", "city", "continent", "country",
"country3", "countryname", "domain", "isp", "metro", "metrocode",
"netspeed", "org", "postal", "postalcode", "region", "regionname",
"timezone", "tz", NULL
};
static cfg_type_t cfg_type_geoiptype = {
"geoiptype", cfg_parse_enum, cfg_print_ustring,
@ -2583,8 +2619,8 @@ static cfg_type_t cfg_type_geoiptype = {
};
static const char *geoipdb_enums[] = {
"country", "region", "city",
"isp", "domain", "asnum", "org", "netspeed", NULL
"asnum", "city", "country", "domain", "isp", "netspeed",
"org", "region", NULL
};
static cfg_type_t cfg_type_geoipdb = {
"geoipdb", cfg_parse_enum, cfg_print_ustring,
@ -2622,7 +2658,8 @@ parse_geoip(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
CHECK(cfg_parse_obj(pctx, fields[1].type,
&obj->value.tuple[1]));
} else {
CHECK(cfg_parse_void(pctx, NULL, &obj->value.tuple[1]));
CHECK(cfg_parse_void(pctx, NULL,
&obj->value.tuple[1]));
cfg_ungettoken(pctx);
}
}
@ -2648,7 +2685,6 @@ print_geoip(cfg_printer_t *pctx, const cfg_obj_t *obj) {
cfg_print_obj(pctx, obj->value.tuple[3]);
}
static void
doc_geoip(cfg_printer_t *pctx, const cfg_type_t *type) {
UNUSED(type);
@ -2687,7 +2723,8 @@ static cfg_type_t cfg_type_controls_allow = {
};
static keyword_type_t controls_keys_kw = {
"keys", &cfg_type_keylist };
"keys", &cfg_type_keylist
};
static cfg_type_t cfg_type_controls_keys = {
"controls_keys", parse_optional_keyvalue,
@ -2714,12 +2751,13 @@ static cfg_tuplefielddef_t inetcontrol_fields[] = {
};
static cfg_type_t cfg_type_inetcontrol = {
"inetcontrol", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, &cfg_rep_tuple,
inetcontrol_fields
"inetcontrol", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple,
&cfg_rep_tuple, inetcontrol_fields
};
static keyword_type_t controls_perm_kw = {
"perm", &cfg_type_uint32 };
"perm", &cfg_type_uint32
};
static cfg_type_t cfg_type_controls_perm = {
"controls_perm", parse_keyvalue,
@ -2728,7 +2766,8 @@ static cfg_type_t cfg_type_controls_perm = {
};
static keyword_type_t controls_owner_kw = {
"owner", &cfg_type_uint32 };
"owner", &cfg_type_uint32
};
static cfg_type_t cfg_type_controls_owner = {
"controls_owner", parse_keyvalue,
@ -2737,7 +2776,8 @@ static cfg_type_t cfg_type_controls_owner = {
};
static keyword_type_t controls_group_kw = {
"group", &cfg_type_uint32 };
"group", &cfg_type_uint32
};
static cfg_type_t cfg_type_controls_group = {
"controls_allow", parse_keyvalue,
@ -2756,8 +2796,8 @@ static cfg_tuplefielddef_t unixcontrol_fields[] = {
};
static cfg_type_t cfg_type_unixcontrol = {
"unixcontrol", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, &cfg_rep_tuple,
unixcontrol_fields
"unixcontrol", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple,
&cfg_rep_tuple, unixcontrol_fields
};
static cfg_clausedef_t
@ -2773,7 +2813,8 @@ controls_clausesets[] = {
NULL
};
static cfg_type_t cfg_type_controls = {
"controls", cfg_parse_map, cfg_print_map, cfg_doc_map, &cfg_rep_map, &controls_clausesets
"controls", cfg_parse_map, cfg_print_map, cfg_doc_map, &cfg_rep_map,
&controls_clausesets
};
/*%
@ -2853,7 +2894,9 @@ static cfg_type_t cfg_type_optional_class = {
};
static isc_result_t
parse_querysource(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
parse_querysource(cfg_parser_t *pctx, const cfg_type_t *type,
cfg_obj_t **ret)
{
isc_result_t result;
cfg_obj_t *obj = NULL;
isc_netaddr_t netaddr;
@ -2968,7 +3011,9 @@ static cfg_type_t cfg_type_querysource = {
/*% addrmatchelt */
static isc_result_t
parse_addrmatchelt(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
parse_addrmatchelt(cfg_parser_t *pctx, const cfg_type_t *type,
cfg_obj_t **ret)
{
isc_result_t result;
UNUSED(type);
@ -2988,8 +3033,8 @@ parse_addrmatchelt(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret)
CHECK(cfg_gettoken(pctx, 0));
CHECK(cfg_parse_obj(pctx, &cfg_type_geoip, ret));
#else
cfg_parser_error(pctx, CFG_LOG_NEAR,
"'geoip' not supported in this build");
cfg_parser_error(pctx, CFG_LOG_NEAR, "'geoip' "
"not supported in this build");
return (ISC_R_UNEXPECTEDTOKEN);
#endif
} else {
@ -3116,7 +3161,8 @@ static cfg_type_t cfg_type_server_key_kludge = {
*/
static isc_result_t
parse_optional_facility(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret)
parse_optional_facility(cfg_parser_t *pctx, const cfg_type_t *type,
cfg_obj_t **ret)
{
isc_result_t result;
UNUSED(type);
@ -3140,7 +3186,8 @@ doc_optional_facility(cfg_printer_t *pctx, const cfg_type_t *type) {
static cfg_type_t cfg_type_optional_facility = {
"optional_facility", parse_optional_facility, NULL,
doc_optional_facility, NULL, NULL };
doc_optional_facility, NULL, NULL
};
/*%
@ -3156,7 +3203,9 @@ static cfg_type_t cfg_type_debuglevel = {
};
static isc_result_t
parse_logseverity(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
parse_logseverity(cfg_parser_t *pctx, const cfg_type_t *type,
cfg_obj_t **ret)
{
isc_result_t result;
UNUSED(type);
@ -3186,7 +3235,8 @@ parse_logseverity(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
static cfg_type_t cfg_type_logseverity = {
"log_severity", parse_logseverity, NULL, cfg_doc_terminal,
NULL, NULL };
NULL, NULL
};
/*%
* The "file" clause of the "channel" statement.
@ -3195,7 +3245,9 @@ static cfg_type_t cfg_type_logseverity = {
static const char *logversions_enums[] = { "unlimited", NULL };
static isc_result_t
parse_logversions(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
parse_logversions(cfg_parser_t *pctx, const cfg_type_t *type,
cfg_obj_t **ret)
{
return (parse_enum_or_other(pctx, type, &cfg_type_uint32, ret));
}
@ -3315,13 +3367,14 @@ static cfg_tuplefielddef_t lwres_view_fields[] = {
{ NULL, NULL, 0 }
};
static cfg_type_t cfg_type_lwres_view = {
"lwres_view", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple, &cfg_rep_tuple,
lwres_view_fields
"lwres_view", cfg_parse_tuple, cfg_print_tuple, cfg_doc_tuple,
&cfg_rep_tuple, lwres_view_fields
};
static cfg_type_t cfg_type_lwres_searchlist = {
"lwres_searchlist", cfg_parse_bracketed_list, cfg_print_bracketed_list,
cfg_doc_bracketed_list, &cfg_rep_list, &cfg_type_astring };
cfg_doc_bracketed_list, &cfg_rep_list, &cfg_type_astring
};
static cfg_clausedef_t
lwres_clauses[] = {
@ -3483,7 +3536,8 @@ parse_sockaddrnameport(cfg_parser_t *pctx, const cfg_type_t *type,
if (pctx->token.type == isc_tokentype_string ||
pctx->token.type == isc_tokentype_qstring) {
if (cfg_lookingat_netaddr(pctx, CFG_ADDR_V4OK | CFG_ADDR_V6OK))
CHECK(cfg_parse_sockaddr(pctx, &cfg_type_sockaddr, ret));
CHECK(cfg_parse_sockaddr(pctx, &cfg_type_sockaddr,
ret));
else {
const cfg_tuplefielddef_t *fields =
cfg_type_nameport.of;
@ -3567,7 +3621,8 @@ parse_masterselement(cfg_parser_t *pctx, const cfg_type_t *type,
if (pctx->token.type == isc_tokentype_string ||
pctx->token.type == isc_tokentype_qstring) {
if (cfg_lookingat_netaddr(pctx, CFG_ADDR_V4OK | CFG_ADDR_V6OK))
CHECK(cfg_parse_sockaddr(pctx, &cfg_type_sockaddr, ret));
CHECK(cfg_parse_sockaddr(pctx, &cfg_type_sockaddr,
ret));
else
CHECK(cfg_parse_astring(pctx, &cfg_type_astring, ret));
} else {
@ -3612,7 +3667,8 @@ parse_ttlval(cfg_parser_t *pctx, const cfg_type_t *type, cfg_obj_t **ret) {
return (ISC_R_SUCCESS);
cleanup:
cfg_parser_error(pctx, CFG_LOG_NEAR, "expected integer and optional unit");
cfg_parser_error(pctx, CFG_LOG_NEAR,
"expected integer and optional unit");
return (result);
}

View file

@ -1104,6 +1104,14 @@ parse_btext(cfg_parser_t *pctx, const cfg_type_t *type,
static void
print_btext(cfg_printer_t *pctx, const cfg_obj_t *obj) {
/*
* We need to print "{" instead of running print_open()
* in order to preserve the exact original formatting
* of the bracketed text. But we increment the indent value
* so that print_close() will leave us back in our original
* state.
*/
pctx->indent++;
cfg_print_cstr(pctx, "{");
cfg_print_chars(pctx, obj->value.string.base, obj->value.string.length);
print_close(pctx);