#include <dst/dst.h>
+#include <isccfg/clause.h>
#include <isccfg/aclconf.h>
#include <isccfg/cfg.h>
#include <isccfg/check.h>
isc_result_t tresult;
const cfg_obj_t *obj = NULL;
- if (cfg_map_get(options, "rrset-order", &obj) != ISC_R_SUCCESS) {
+ if (cfg_map_get(options, CFG_CLAUSE_RRSET_ORDER, &obj) != ISC_R_SUCCESS) {
return result;
}
isc_result_t result = ISC_R_SUCCESS;
isc_result_t tresult;
- (void)cfg_map_get(options, "dual-stack-servers", &alternates);
+ (void)cfg_map_get(options, CFG_CLAUSE_DUAL_STACK_SERVERS, &alternates);
if (alternates == NULL) {
return ISC_R_SUCCESS;
const cfg_obj_t *forwarders = NULL;
const cfg_obj_t *faddresses = NULL;
- (void)cfg_map_get(options, "forward", &forward);
- (void)cfg_map_get(options, "forwarders", &forwarders);
+ (void)cfg_map_get(options, CFG_CLAUSE_FORWARD, &forward);
+ (void)cfg_map_get(options, CFG_CLAUSE_FORWARDERS, &forwarders);
if (forwarders != NULL && global != NULL) {
const char *file = cfg_obj_file(global);
}
if (config != NULL && aclobj == NULL) {
options = NULL;
- cfg_map_get(config, "options", &options);
+ cfg_map_get(config, CFG_CLAUSE_OPTIONS, &options);
if (options != NULL) {
cfg_map_get(options, aclname, &aclobj);
}
static const char *acls[] = { "clients", "exclude", "mapped", NULL };
if (voptions != NULL) {
- cfg_map_get(voptions, "dns64", &dns64);
+ cfg_map_get(voptions, CFG_CLAUSE_DNS64, &dns64);
}
if (config != NULL && dns64 == NULL) {
options = NULL;
- cfg_map_get(config, "options", &options);
+ cfg_map_get(config, CFG_CLAUSE_OPTIONS, &options);
if (options != NULL) {
- cfg_map_get(options, "dns64", &dns64);
+ cfg_map_get(options, CFG_CLAUSE_DNS64, &dns64);
}
}
if (dns64 == NULL) {
}
obj = NULL;
- (void)cfg_map_get(map, "suffix", &obj);
+ (void)cfg_map_get(map, CFG_CLAUSE_SUFFIX, &obj);
if (obj != NULL) {
static const unsigned char zeros[16];
isc_netaddr_fromsockaddr(&sa, cfg_obj_assockaddr(obj));
int slip;
if (voptions != NULL) {
- cfg_map_get(voptions, "rate-limit", &map);
+ cfg_map_get(voptions, CFG_CLAUSE_RATE_LIMIT, &map);
}
if (config != NULL && map == NULL) {
options = NULL;
- cfg_map_get(config, "options", &options);
+ cfg_map_get(config, CFG_CLAUSE_OPTIONS, &options);
if (options != NULL) {
- cfg_map_get(options, "rate-limit", &map);
+ cfg_map_get(options, CFG_CLAUSE_RATE_LIMIT, &map);
}
}
if (map == NULL) {
min_entries = 500;
obj = NULL;
- mresult = cfg_map_get(map, "min-table-size", &obj);
+ mresult = cfg_map_get(map, CFG_CLAUSE_MIN_TABLE_SIZE, &obj);
if (mresult == ISC_R_SUCCESS) {
min_entries = cfg_obj_asuint32(obj);
if (min_entries < 1) {
}
obj = NULL;
- mresult = cfg_map_get(map, "max-table-size", &obj);
+ mresult = cfg_map_get(map, CFG_CLAUSE_MAX_TABLE_SIZE, &obj);
if (mresult == ISC_R_SUCCESS) {
i = cfg_obj_asuint32(obj);
CHECK_RRL(i >= min_entries,
CHECK_RRL_RATE(slip, 2, DNS_RRL_MAX_SLIP, "slip");
obj = NULL;
- mresult = cfg_map_get(map, "window", &obj);
+ mresult = cfg_map_get(map, CFG_CLAUSE_WINDOW, &obj);
if (mresult == ISC_R_SUCCESS) {
i = cfg_obj_asuint32(obj);
CHECK_RRL(i >= 1 && i <= DNS_RRL_MAX_WINDOW,
}
obj = NULL;
- mresult = cfg_map_get(map, "qps-scale", &obj);
+ mresult = cfg_map_get(map, CFG_CLAUSE_QPS_SCALE, &obj);
if (mresult == ISC_R_SUCCESS) {
i = cfg_obj_asuint32(obj);
CHECK_RRL(i >= 1, "invalid 'qps-scale %d'%s", i, "");
}
obj = NULL;
- mresult = cfg_map_get(map, "ipv4-prefix-length", &obj);
+ mresult = cfg_map_get(map, CFG_CLAUSE_IPV4_PREFIX_LENGTH, &obj);
if (mresult == ISC_R_SUCCESS) {
i = cfg_obj_asuint32(obj);
CHECK_RRL(i >= 8 && i <= 32,
}
obj = NULL;
- mresult = cfg_map_get(map, "ipv6-prefix-length", &obj);
+ mresult = cfg_map_get(map, CFG_CLAUSE_IPV6_PREFIX_LENGTH, &obj);
if (mresult == ISC_R_SUCCESS) {
i = cfg_obj_asuint32(obj);
CHECK_RRL(i >= 16 && i <= DNS_RRL_MAX_PREFIX,
}
obj = NULL;
- (void)cfg_map_get(map, "exempt-clients", &obj);
+ (void)cfg_map_get(map, CFG_CLAUSE_EXEMPT_CLIENTS, &obj);
if (obj != NULL) {
dns_acl_t *acl = NULL;
isc_result_t tresult;
double low, high, discount;
if (voptions != NULL) {
- cfg_map_get(voptions, "fetch-quota-params", &map);
+ cfg_map_get(voptions, CFG_CLAUSE_FETCH_QUOTA_PARAMS, &map);
}
if (config != NULL && map == NULL) {
options = NULL;
- cfg_map_get(config, "options", &options);
+ cfg_map_get(config, CFG_CLAUSE_OPTIONS, &options);
if (options != NULL) {
- cfg_map_get(options, "fetch-quota-params", &map);
+ cfg_map_get(options, CFG_CLAUSE_FETCH_QUOTA_PARAMS, &map);
}
}
if (map == NULL) {
NULL };
if (voptions != NULL) {
- cfg_map_get(voptions, "recursion", &obj);
+ cfg_map_get(voptions, CFG_CLAUSE_RECURSION, &obj);
}
if (obj == NULL && config != NULL) {
options = NULL;
- cfg_map_get(config, "options", &options);
+ cfg_map_get(config, CFG_CLAUSE_OPTIONS, &options);
if (options != NULL) {
- cfg_map_get(options, "recursion", &obj);
+ cfg_map_get(options, CFG_CLAUSE_RECURSION, &obj);
}
}
if (obj == NULL) {
}
if (config != NULL && aclobj == NULL) {
options = NULL;
- cfg_map_get(config, "options", &options);
+ cfg_map_get(config, CFG_CLAUSE_OPTIONS, &options);
if (options != NULL) {
cfg_map_get(options, acls[i], &aclobj);
}
ISC_LIST_INIT(kslist);
obj = NULL;
- (void)cfg_map_get(options, "key-store", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_KEY_STORE, &obj);
if (obj != NULL) {
if (optlevel != optlevel_config) {
cfg_obj_log(obj, ISC_LOG_ERROR,
}
kopt = cfg_tuple_get(kconfig, "options");
- if (cfg_map_get(kopt, "directory", &kobj) ==
+ if (cfg_map_get(kopt, CFG_CLAUSE_DIRECTORY, &kobj) ==
ISC_R_SUCCESS)
{
val = cfg_obj_asstring(kobj);
* Check dnssec-policy.
*/
obj = NULL;
- (void)cfg_map_get(options, "dnssec-policy", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_DNSSEC_POLICY, &obj);
if (obj != NULL) {
bool bad_kasp = false;
bool bad_name = false;
* Other checks.
*/
obj = NULL;
- cfg_map_get(options, "max-rsa-exponent-size", &obj);
+ cfg_map_get(options, CFG_CLAUSE_MAX_RSA_EXPONENT_SIZE, &obj);
if (obj != NULL) {
uint32_t val;
}
obj = NULL;
- (void)cfg_map_get(options, "preferred-glue", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_PREFERRED_GLUE, &obj);
if (obj != NULL) {
str = cfg_obj_asstring(obj);
if (strcasecmp(str, "a") != 0 && strcasecmp(str, "aaaa") != 0 &&
* Set supported DNSSEC algorithms.
*/
obj = NULL;
- (void)cfg_map_get(options, "disable-algorithms", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_DISABLE_ALGORITHMS, &obj);
if (obj != NULL) {
CFG_LIST_FOREACH(obj, element) {
obj = cfg_listelt_value(element);
* Set supported DS digest types.
*/
obj = NULL;
- (void)cfg_map_get(options, "disable-ds-digests", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_DISABLE_DS_DIGESTS, &obj);
if (obj != NULL) {
CFG_LIST_FOREACH(obj, element) {
obj = cfg_listelt_value(element);
*/
if (optlevel != optlevel_zone) {
obj = NULL;
- (void)cfg_map_get(options, "send-report-channel", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_SEND_REPORT_CHANNEL, &obj);
if (obj != NULL) {
str = cfg_obj_asstring(obj);
tresult = check_name(str);
* Check empty zone configuration.
*/
obj = NULL;
- (void)cfg_map_get(options, "disable-empty-zone", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_DISABLE_EMPTY_ZONE, &obj);
CFG_LIST_FOREACH(obj, element) {
obj = cfg_listelt_value(element);
str = cfg_obj_asstring(obj);
* 1024 bytes should be big enough.
*/
obj = NULL;
- (void)cfg_map_get(options, "server-id", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_SERVER_ID, &obj);
if (obj != NULL && cfg_obj_isstring(obj) &&
strlen(cfg_obj_asstring(obj)) > 1024U)
{
}
obj = NULL;
- (void)cfg_map_get(options, "nta-lifetime", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_NTA_LIFETIME, &obj);
if (obj != NULL) {
lifetime = cfg_obj_asduration(obj);
if (lifetime > 604800) { /* 7 days */
}
obj = NULL;
- (void)cfg_map_get(options, "nta-recheck", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_NTA_RECHECK, &obj);
if (obj != NULL) {
uint32_t recheck = cfg_obj_asduration(obj);
if (recheck > 604800) { /* 7 days */
}
obj = NULL;
- (void)cfg_map_get(options, "cookie-algorithm", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_COOKIE_ALGORITHM, &obj);
if (obj != NULL) {
ccalg = cfg_obj_asstring(obj);
if (strcasecmp(ccalg, "aes") == 0) {
}
obj = NULL;
- (void)cfg_map_get(options, "cookie-secret", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_COOKIE_SECRET, &obj);
if (obj != NULL) {
unsigned char secret[32];
/* Check that dnstap-ouput values are consistent */
obj = NULL;
- (void)cfg_map_get(options, "dnstap-output", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_DNSTAP_OUTPUT, &obj);
if (obj != NULL) {
const cfg_obj_t *obj2;
dns_dtmode_t dmode;
#endif /* ifdef HAVE_DNSTAP */
obj = NULL;
- (void)cfg_map_get(options, "lmdb-mapsize", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_LMDB_MAPSIZE, &obj);
if (obj != NULL) {
uint64_t mapsize = cfg_obj_asuint64(obj);
}
obj = NULL;
- (void)cfg_map_get(options, "max-ixfr-ratio", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_MAX_IXFR_RATIO, &obj);
if (obj != NULL && cfg_obj_ispercentage(obj)) {
uint32_t percent = cfg_obj_aspercentage(obj);
if (percent == 0) {
}
obj = NULL;
- (void)cfg_map_get(options, "check-names", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_CHECK_NAMES, &obj);
if (obj != NULL && !cfg_obj_islist(obj)) {
obj = NULL;
}
}
obj = NULL;
- (void)cfg_map_get(options, "stale-refresh-time", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_STALE_REFRESH_TIME, &obj);
if (obj != NULL) {
uint32_t refresh_time = cfg_obj_asduration(obj);
if (refresh_time > 0 && refresh_time < 30) {
cfg_aclconfctx_create(mctx, &aclctx);
obj = NULL;
- (void)cfg_map_get(options, "sig0checks-quota-exempt", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_SIG0CHECKS_QUOTA_EXEMPT, &obj);
if (obj != NULL) {
dns_acl_t *acl = NULL;
}
obj = NULL;
- (void)cfg_map_get(options, "listen-on", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_LISTEN_ON, &obj);
if (obj != NULL) {
INSIST(config != NULL);
tresult = check_listeners(obj, config, aclctx, mctx);
}
obj = NULL;
- (void)cfg_map_get(options, "listen-on-v6", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_LISTEN_ON_V6, &obj);
if (obj != NULL) {
INSIST(config != NULL);
tresult = check_listeners(obj, config, aclctx, mctx);
check_range_uint32(options, &result, "max-query-restarts", 1, 255);
obj = NULL;
- (void)cfg_map_get(options, "prefetch", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_PREFETCH, &obj);
if (obj != NULL) {
const cfg_obj_t *trigger = cfg_tuple_get(obj, "trigger");
const cfg_obj_t *eligible = cfg_tuple_get(obj, "eligible");
}
/* Check endpoints are valid */
- tresult = cfg_map_get(http, "endpoints", &eps);
+ tresult = cfg_map_get(http, CFG_CLAUSE_ENDPOINTS, &eps);
if (tresult == ISC_R_SUCCESS) {
CFG_LIST_FOREACH(eps, elt) {
const cfg_obj_t *ep = cfg_listelt_value(elt);
isc_symtab_create(mctx, NULL, NULL, false, &symtab);
- result = cfg_map_get(config, "http", &obj);
+ result = cfg_map_get(config, CFG_CLAUSE_HTTP, &obj);
if (result != ISC_R_SUCCESS) {
result = ISC_R_SUCCESS;
goto done;
}
}
- (void)cfg_map_get(tlsobj, "key-file", &tls_key);
- (void)cfg_map_get(tlsobj, "cert-file", &tls_cert);
+ (void)cfg_map_get(tlsobj, CFG_CLAUSE_KEY_FILE, &tls_key);
+ (void)cfg_map_get(tlsobj, CFG_CLAUSE_CERT_FILE, &tls_cert);
if ((tls_key == NULL && tls_cert != NULL) ||
(tls_cert == NULL && tls_key != NULL))
{
}
/* Check protocols are valid */
- tresult = cfg_map_get(tlsobj, "protocols", &tls_proto_list);
+ tresult = cfg_map_get(tlsobj, CFG_CLAUSE_PROTOCOLS, &tls_proto_list);
if (tresult == ISC_R_SUCCESS) {
INSIST(tls_proto_list != NULL);
CFG_LIST_FOREACH(tls_proto_list, proto) {
}
/* Check cipher list string is valid */
- tresult = cfg_map_get(tlsobj, "ciphers", &tls_ciphers);
+ tresult = cfg_map_get(tlsobj, CFG_CLAUSE_CIPHERS, &tls_ciphers);
if (tresult == ISC_R_SUCCESS) {
const char *ciphers = cfg_obj_asstring(tls_ciphers);
if (!isc_tls_cipherlist_valid(ciphers)) {
}
/* Check if the cipher suites string is valid */
- tresult = cfg_map_get(tlsobj, "cipher-suites", &tls_cipher_suites);
+ tresult = cfg_map_get(tlsobj, CFG_CLAUSE_CIPHER_SUITES, &tls_cipher_suites);
if (tresult == ISC_R_SUCCESS) {
const char *cipher_suites = cfg_obj_asstring(tls_cipher_suites);
if (!isc_tls_cipher_suites_valid(cipher_suites)) {
const cfg_obj_t *obj = NULL;
isc_symtab_t *symtab = NULL;
- result = cfg_map_get(config, "tls", &obj);
+ result = cfg_map_get(config, CFG_CLAUSE_TLS, &obj);
if (result != ISC_R_SUCCESS) {
result = ISC_R_SUCCESS;
return result;
return false;
}
- (void)cfg_map_get(config, "key", &keys);
+ (void)cfg_map_get(config, CFG_CLAUSE_KEY, &keys);
CFG_LIST_FOREACH(keys, elt) {
/*
* `key` are normalized TSIG which must be identified by
bool notify_configuration_ok = true;
const cfg_obj_t *obj = NULL;
- (void)cfg_map_get(zoptions, "notify", &obj);
+ (void)cfg_map_get(zoptions, CFG_CLAUSE_NOTIFY, &obj);
if (obj == NULL) {
/*
* "notify" not set at zone level. This is fine.
obj = NULL;
result = ISC_R_NOTFOUND;
if (voptions != NULL) {
- result = cfg_map_get(voptions, "recursion", &obj);
+ result = cfg_map_get(voptions, CFG_CLAUSE_RECURSION, &obj);
}
if (result != ISC_R_SUCCESS && goptions != NULL) {
- result = cfg_map_get(goptions, "recursion", &obj);
+ result = cfg_map_get(goptions, CFG_CLAUSE_RECURSION, &obj);
}
if (result == ISC_R_SUCCESS && !cfg_obj_asboolean(obj)) {
retval = false;
obj = NULL;
result = ISC_R_NOTFOUND;
if (voptions != NULL) {
- result = cfg_map_get(voptions, "allow-recursion", &obj);
+ result = cfg_map_get(voptions, CFG_CLAUSE_ALLOW_RECURSION, &obj);
}
if (result != ISC_R_SUCCESS && goptions != NULL) {
- result = cfg_map_get(goptions, "allow-recursion", &obj);
+ result = cfg_map_get(goptions, CFG_CLAUSE_ALLOW_RECURSION, &obj);
}
if (result == ISC_R_SUCCESS) {
CHECK(cfg_acl_fromconfig(obj, config, aclctx, mctx, 0, &acl));
timenow = isc_time_now();
now = isc_time_seconds(&timenow);
- (void)cfg_map_get(config, "dnssec-policy", &kasps);
- (void)cfg_map_get(config, "key-store", &keystores);
+ (void)cfg_map_get(config, CFG_CLAUSE_DNSSEC_POLICY, &kasps);
+ (void)cfg_map_get(config, CFG_CLAUSE_KEY_STORE, &keystores);
ISC_LIST_INIT(kasplist);
ISC_LIST_INIT(kslist);
zoptions = cfg_tuple_get(zconfig, "options");
if (config != NULL) {
- cfg_map_get(config, "options", &goptions);
+ cfg_map_get(config, CFG_CLAUSE_OPTIONS, &goptions);
}
/* If the zone specifies a template, find it too */
- (void)cfg_map_get(config, "template", &templates);
- (void)cfg_map_get(zoptions, "template", &obj);
+ (void)cfg_map_get(config, CFG_CLAUSE_TEMPLATE, &templates);
+ (void)cfg_map_get(zoptions, CFG_CLAUSE_TEMPLATE, &obj);
if (obj != NULL) {
tmplname = cfg_obj_asstring(obj);
}
}
- (void)cfg_map_get(zoptions, "in-view", &inviewobj);
+ (void)cfg_map_get(zoptions, CFG_CLAUSE_IN_VIEW, &inviewobj);
if (inviewobj != NULL) {
target = cfg_obj_asstring(inviewobj);
ztype = CFG_ZONE_INVIEW;
const cfg_obj_t *fwd = NULL;
unsigned int maxopts = 1;
- (void)cfg_map_get(zoptions, "forward", &fwd);
+ (void)cfg_map_get(zoptions, CFG_CLAUSE_FORWARD, &fwd);
if (fwd != NULL) {
maxopts++;
}
fwd = NULL;
- (void)cfg_map_get(zoptions, "forwarders", &fwd);
+ (void)cfg_map_get(zoptions, CFG_CLAUSE_FORWARDERS, &fwd);
if (fwd != NULL) {
maxopts++;
}
kasp_inlinesigning = false;
} else {
const cfg_obj_t *kasps = NULL;
- (void)cfg_map_get(config, "dnssec-policy", &kasps);
+ (void)cfg_map_get(config, CFG_CLAUSE_DNSSEC_POLICY, &kasps);
CFG_LIST_FOREACH(kasps, element) {
const cfg_obj_t *kobj = cfg_tuple_get(
cfg_listelt_value(element), "name");
const cfg_obj_t *kopt = cfg_tuple_get(
cfg_listelt_value(element),
"options");
- if (cfg_map_get(kopt, "inline-signing",
+ if (cfg_map_get(kopt, CFG_CLAUSE_INLINE_SIGNING,
&inlinesigning) ==
ISC_R_SUCCESS)
{
if ((flags & BIND_CHECK_PLUGINS) != 0 && zoptions != NULL) {
const cfg_obj_t *plugins = NULL;
- (void)cfg_map_get(zoptions, "plugin", &plugins);
+ (void)cfg_map_get(zoptions, CFG_CLAUSE_PLUGIN, &plugins);
tresult = check_plugins(plugins, config, aclctx, zname, mctx);
if (tresult != ISC_R_SUCCESS) {
result = tresult;
{ NULL, 0 }
};
- (void)cfg_map_get(key, "algorithm", &algobj);
- (void)cfg_map_get(key, "secret", &secretobj);
+ (void)cfg_map_get(key, CFG_CLAUSE_ALGORITHM, &algobj);
+ (void)cfg_map_get(key, CFG_CLAUSE_SECRET, &secretobj);
if (secretobj == NULL || algobj == NULL) {
cfg_obj_log(key, ISC_LOG_ERROR,
"key '%s' must have both 'secret' and "
dns_name_t *keyname = NULL;
servers = NULL;
if (voptions != NULL) {
- (void)cfg_map_get(voptions, "server", &servers);
+ (void)cfg_map_get(voptions, CFG_CLAUSE_SERVER, &servers);
}
if (servers == NULL) {
- (void)cfg_map_get(config, "server", &servers);
+ (void)cfg_map_get(config, CFG_CLAUSE_SERVER, &servers);
}
if (servers == NULL) {
return ISC_R_SUCCESS;
}
keys = NULL;
- cfg_map_get(v1, "keys", &keys);
+ cfg_map_get(v1, CFG_CLAUSE_KEYS, &keys);
if (keys != NULL) {
/*
* Normalize key name.
zoneobj = cfg_tuple_get(zoneobj, "options");
}
if (zoneobj != NULL && cfg_obj_ismap(zoneobj)) {
- (void)cfg_map_get(zoneobj, "type", &obj);
+ (void)cfg_map_get(zoneobj, CFG_CLAUSE_TYPE, &obj);
}
if (obj != NULL) {
zonetype = cfg_obj_asstring(obj);
const cfg_obj_t *obj = NULL;
if (config != NULL) {
- (void)cfg_map_get(config, "options", &options);
+ (void)cfg_map_get(config, CFG_CLAUSE_OPTIONS, &options);
}
if (options != NULL) {
- (void)cfg_map_get(options, "dnstap-output", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_DNSTAP_OUTPUT, &obj);
}
if (obj == NULL) {
if (voptions != NULL) {
- (void)cfg_map_get(voptions, "dnstap", &obj);
+ (void)cfg_map_get(voptions, CFG_CLAUSE_DNSTAP, &obj);
}
if (options != NULL && obj == NULL) {
- (void)cfg_map_get(options, "dnstap", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_DNSTAP, &obj);
}
if (obj != NULL) {
cfg_obj_log(obj, ISC_LOG_ERROR,
/*
* Get global options block
*/
- (void)cfg_map_get(config, "options", &options);
+ (void)cfg_map_get(config, CFG_CLAUSE_OPTIONS, &options);
/*
* The most relevant options for this view
cfg_aclconfctx_create(mctx, &aclctx);
if (voptions != NULL) {
- (void)cfg_map_get(voptions, "zone", &zones);
+ (void)cfg_map_get(voptions, CFG_CLAUSE_ZONE, &zones);
} else {
- (void)cfg_map_get(config, "zone", &zones);
+ (void)cfg_map_get(config, CFG_CLAUSE_ZONE, &zones);
}
CFG_LIST_FOREACH(zones, element) {
*/
if (opts != NULL) {
obj = NULL;
- if ((cfg_map_get(opts, "response-policy", &obj) ==
+ if ((cfg_map_get(opts, CFG_CLAUSE_RESPONSE_POLICY, &obj) ==
ISC_R_SUCCESS) &&
(check_rpz_catz("response-policy zone", obj, viewname,
symtab,
}
obj = NULL;
- if ((cfg_map_get(opts, "catalog-zones", &obj) ==
+ if ((cfg_map_get(opts, CFG_CLAUSE_CATALOG_ZONES, &obj) ==
ISC_R_SUCCESS) &&
(check_rpz_catz("catalog zone", obj, viewname, symtab,
*/
if (opts != NULL) {
obj = NULL;
- if ((cfg_map_get(opts, "response-policy", &obj) ==
+ if ((cfg_map_get(opts, CFG_CLAUSE_RESPONSE_POLICY, &obj) ==
ISC_R_SUCCESS) &&
(check_rpz(obj) != ISC_R_SUCCESS))
{
*/
if (opts != NULL) {
obj = NULL;
- if (cfg_map_get(opts, "catalog-zones", &obj) == ISC_R_SUCCESS) {
+ if (cfg_map_get(opts, CFG_CLAUSE_CATALOG_ZONES, &obj) == ISC_R_SUCCESS) {
if (vclass != dns_rdataclass_in) {
cfg_obj_log(
obj, ISC_LOG_ERROR,
*/
isc_symtab_create(mctx, freekey, mctx, false, &symtab);
- (void)cfg_map_get(config, "key", &keys);
+ (void)cfg_map_get(config, CFG_CLAUSE_KEY, &keys);
tresult = check_keylist(keys, symtab, mctx);
if (tresult == ISC_R_EXISTS) {
result = ISC_R_FAILURE;
if (voptions != NULL) {
keys = NULL;
- (void)cfg_map_get(voptions, "key", &keys);
+ (void)cfg_map_get(voptions, CFG_CLAUSE_KEY, &keys);
tresult = check_keylist(keys, symtab, mctx);
if (tresult == ISC_R_EXISTS) {
result = ISC_R_FAILURE;
* Load all DNSSEC keys.
*/
if (voptions != NULL) {
- (void)cfg_map_get(voptions, "trust-anchors", &view_ta);
+ (void)cfg_map_get(voptions, CFG_CLAUSE_TRUST_ANCHORS, &view_ta);
}
- (void)cfg_map_get(config, "trust-anchors", &global_ta);
+ (void)cfg_map_get(config, CFG_CLAUSE_TRUST_ANCHORS, &global_ta);
check_keys[0] = view_ta;
check_keys[1] = global_ta;
obj = NULL;
if (voptions != NULL) {
- (void)cfg_map_get(voptions, "dnssec-validation", &obj);
+ (void)cfg_map_get(voptions, CFG_CLAUSE_DNSSEC_VALIDATION, &obj);
}
if (obj == NULL && options != NULL) {
- (void)cfg_map_get(options, "dnssec-validation", &obj);
+ (void)cfg_map_get(options, CFG_CLAUSE_DNSSEC_VALIDATION, &obj);
}
if (obj != NULL) {
if (!cfg_obj_isboolean(obj)) {
const cfg_obj_t *plugins = NULL;
if (voptions != NULL) {
- (void)cfg_map_get(voptions, "plugin", &plugins);
+ (void)cfg_map_get(voptions, CFG_CLAUSE_PLUGIN, &plugins);
} else {
- (void)cfg_map_get(config, "plugin", &plugins);
+ (void)cfg_map_get(config, CFG_CLAUSE_PLUGIN, &plugins);
}
tresult = check_plugins(plugins, config, aclctx, NULL, mctx);
isc_symvalue_t symvalue;
int i;
- (void)cfg_map_get(config, "logging", &logobj);
+ (void)cfg_map_get(config, CFG_CLAUSE_LOGGING, &logobj);
if (logobj == NULL) {
return ISC_R_SUCCESS;
}
RUNTIME_CHECK(tresult == ISC_R_SUCCESS);
}
- cfg_map_get(logobj, "channel", &channels);
+ cfg_map_get(logobj, CFG_CLAUSE_CHANNEL, &channels);
CFG_LIST_FOREACH(channels, element) {
channel = cfg_listelt_value(element);
channelname = cfg_obj_asstring(cfg_map_getname(channel));
fileobj = syslogobj = nullobj = stderrobj = NULL;
- (void)cfg_map_get(channel, "file", &fileobj);
- (void)cfg_map_get(channel, "syslog", &syslogobj);
- (void)cfg_map_get(channel, "null", &nullobj);
- (void)cfg_map_get(channel, "stderr", &stderrobj);
+ (void)cfg_map_get(channel, CFG_CLAUSE_FILE, &fileobj);
+ (void)cfg_map_get(channel, CFG_CLAUSE_SYSLOG, &syslogobj);
+ (void)cfg_map_get(channel, CFG_CLAUSE_NULL, &nullobj);
+ (void)cfg_map_get(channel, CFG_CLAUSE_STDERR, &stderrobj);
i = 0;
if (fileobj != NULL) {
i++;
RUNTIME_CHECK(tresult == ISC_R_SUCCESS);
}
- cfg_map_get(logobj, "category", &categories);
+ cfg_map_get(logobj, CFG_CLAUSE_CATEGORY, &categories);
CFG_LIST_FOREACH(categories, element) {
category = cfg_listelt_value(element);
dns_acl_t *acl = NULL;
isc_symtab_t *symtab = NULL;
- (void)cfg_map_get(config, "controls", &controlslist);
+ (void)cfg_map_get(config, CFG_CLAUSE_CONTROLS, &controlslist);
if (controlslist == NULL) {
return ISC_R_SUCCESS;
}
- (void)cfg_map_get(config, "key", &keylist);
+ (void)cfg_map_get(config, CFG_CLAUSE_KEY, &keylist);
cfg_aclconfctx_create(mctx, &aclctx);
controls = cfg_listelt_value(element);
unixcontrols = NULL;
inetcontrols = NULL;
- (void)cfg_map_get(controls, "unix", &unixcontrols);
- (void)cfg_map_get(controls, "inet", &inetcontrols);
+ (void)cfg_map_get(controls, CFG_CLAUSE_UNIX, &unixcontrols);
+ (void)cfg_map_get(controls, CFG_CLAUSE_INET, &inetcontrols);
CFG_LIST_FOREACH(inetcontrols, element2) {
char socktext[ISC_SOCKADDR_FORMATSIZE];
isc_sockaddr_t addr;
static const char *builtin[] = { "localhost", "localnets", "any",
"none" };
- (void)cfg_map_get(config, "options", &options);
+ (void)cfg_map_get(config, CFG_CLAUSE_OPTIONS, &options);
if (options != NULL &&
check_options(options, config, check_algorithms, mctx,
result = ISC_R_FAILURE;
}
- (void)cfg_map_get(config, "view", &views);
+ (void)cfg_map_get(config, CFG_CLAUSE_VIEW, &views);
if (views != NULL && options != NULL) {
if (check_dual_stack(options) != ISC_R_SUCCESS) {
const cfg_obj_t *zones = NULL;
const cfg_obj_t *plugins = NULL;
- (void)cfg_map_get(config, "zone", &zones);
+ (void)cfg_map_get(config, CFG_CLAUSE_ZONE, &zones);
if (zones != NULL) {
cfg_obj_log(zones, ISC_LOG_ERROR,
"when using 'view' statements, "
result = ISC_R_FAILURE;
}
- (void)cfg_map_get(config, "plugin", &plugins);
+ (void)cfg_map_get(config, CFG_CLAUSE_PLUGIN, &plugins);
if (plugins != NULL) {
cfg_obj_log(plugins, ISC_LOG_ERROR,
"when using 'view' statements, "
}
}
- cfg_map_get(config, "acl", &acls);
+ cfg_map_get(config, CFG_CLAUSE_ACL, &acls);
if (acls != NULL) {
const char *aclname = NULL;
--- /dev/null
+/*
+ * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
+ *
+ * SPDX-License-Identifier: MPL-2.0
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, you can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See the COPYRIGHT file distributed with this work for additional
+ * information regarding copyright ownership.
+ */
+
+#pragma once
+
+/*! \file isccfg/clause.h
+ * \brief
+ * Interned clause names for cfg_clausedef_t.
+ */
+
+/* clang-format off */
+
+#define CFG_CLAUSES \
+ X(CFG_CLAUSE_6TO4_SELF, "6to4-self") \
+ X(CFG_CLAUSE_ACACHE_CLEANING_INTERVAL, "acache-cleaning-interval") \
+ X(CFG_CLAUSE_ACACHE_ENABLE, "acache-enable") \
+ X(CFG_CLAUSE_ACL, "acl") \
+ X(CFG_CLAUSE_ADDITIONAL_FROM_AUTH, "additional-from-auth") \
+ X(CFG_CLAUSE_ADDITIONAL_FROM_CACHE, "additional-from-cache") \
+ X(CFG_CLAUSE_ADDRESS, "address") \
+ X(CFG_CLAUSE_ADDRESSES, "addresses") \
+ X(CFG_CLAUSE_ADD_SOA, "add-soa") \
+ X(CFG_CLAUSE_ADDZONECONF, "addzoneconf") \
+ X(CFG_CLAUSE_ALGORITHM, "algorithm") \
+ X(CFG_CLAUSE_ALGORITHMLIST, "algorithmlist") \
+ X(CFG_CLAUSE_ALGORITHMS, "algorithms") \
+ X(CFG_CLAUSE_ALL, "all") \
+ X(CFG_CLAUSE_ALLOW, "allow") \
+ X(CFG_CLAUSE_ALLOW_NEW_ZONES, "allow-new-zones") \
+ X(CFG_CLAUSE_ALLOW_NOTIFY, "allow-notify") \
+ X(CFG_CLAUSE_ALLOW_PROXY, "allow-proxy") \
+ X(CFG_CLAUSE_ALLOW_PROXY_ON, "allow-proxy-on") \
+ X(CFG_CLAUSE_ALLOW_QUERY, "allow-query") \
+ X(CFG_CLAUSE_ALLOW_QUERY_CACHE, "allow-query-cache") \
+ X(CFG_CLAUSE_ALLOW_QUERY_CACHE_ON, "allow-query-cache-on") \
+ X(CFG_CLAUSE_ALLOW_QUERY_ON, "allow-query-on") \
+ X(CFG_CLAUSE_ALLOW_RECURSION, "allow-recursion") \
+ X(CFG_CLAUSE_ALLOW_RECURSION_ON, "allow-recursion-on") \
+ X(CFG_CLAUSE_ALLOW_TRANSFER, "allow-transfer") \
+ X(CFG_CLAUSE_ALLOW_UPDATE, "allow-update") \
+ X(CFG_CLAUSE_ALLOW_UPDATE_FORWARDING, "allow-update-forwarding") \
+ X(CFG_CLAUSE_ALLOW_V6_SYNTHESIS, "allow-v6-synthesis") \
+ X(CFG_CLAUSE_ALL_PER_SECOND, "all-per-second") \
+ X(CFG_CLAUSE_ALSO_NOTIFY, "also-notify") \
+ X(CFG_CLAUSE_ALT_TRANSFER_SOURCE, "alt-transfer-source") \
+ X(CFG_CLAUSE_ALT_TRANSFER_SOURCE_V6, "alt-transfer-source-v6") \
+ X(CFG_CLAUSE_AML, "aml") \
+ X(CFG_CLAUSE_ANCHORTYPE, "anchortype") \
+ X(CFG_CLAUSE_ANSWER_COOKIE, "answer-cookie") \
+ X(CFG_CLAUSE_ATTACH_CACHE, "attach-cache") \
+ X(CFG_CLAUSE_AUTH_NXDOMAIN, "auth-nxdomain") \
+ X(CFG_CLAUSE_AUTO, "auto") \
+ X(CFG_CLAUSE_AUTO_DNSSEC, "auto-dnssec") \
+ X(CFG_CLAUSE_AUTOMATIC_INTERFACE_SCAN, "automatic-interface-scan") \
+ X(CFG_CLAUSE_AVOID_V4_UDP_PORTS, "avoid-v4-udp-ports") \
+ X(CFG_CLAUSE_AVOID_V6_UDP_PORTS, "avoid-v6-udp-ports") \
+ X(CFG_CLAUSE_BINDKEYS, "bindkeys") \
+ X(CFG_CLAUSE_BINDKEYS_FILE, "bindkeys-file") \
+ X(CFG_CLAUSE_BLACKHOLE, "blackhole") \
+ X(CFG_CLAUSE_BLOCK_SIZE, "block-size") \
+ X(CFG_CLAUSE_BLOCKSIZE, "blocksize") \
+ X(CFG_CLAUSE_BOGUS, "bogus") \
+ X(CFG_CLAUSE_BRACKETED_NETADDRLIST, "bracketed_netaddrlist") \
+ X(CFG_CLAUSE_BREAK_DNSSEC, "break-dnssec") \
+ X(CFG_CLAUSE_BUFFERED, "buffered") \
+ X(CFG_CLAUSE_BUILTIN_TRUST_ANCHORS, "builtin-trust-anchors") \
+ X(CFG_CLAUSE_CACHE_FILE, "cache-file") \
+ X(CFG_CLAUSE_CA_FILE, "ca-file") \
+ X(CFG_CLAUSE_CATALOG_ZONES, "catalog-zones") \
+ X(CFG_CLAUSE_CATEGORY, "category") \
+ X(CFG_CLAUSE_CDNSKEY, "cdnskey") \
+ X(CFG_CLAUSE_CDS_DIGEST_TYPES, "cds-digest-types") \
+ X(CFG_CLAUSE_CERT_FILE, "cert-file") \
+ X(CFG_CLAUSE_CHANNEL, "channel") \
+ X(CFG_CLAUSE_CHECKDS, "checkds") \
+ X(CFG_CLAUSE_CHECK_DUP_RECORDS, "check-dup-records") \
+ X(CFG_CLAUSE_CHECK_INTEGRITY, "check-integrity") \
+ X(CFG_CLAUSE_CHECKMODE, "checkmode") \
+ X(CFG_CLAUSE_CHECK_MX, "check-mx") \
+ X(CFG_CLAUSE_CHECK_MX_CNAME, "check-mx-cname") \
+ X(CFG_CLAUSE_CHECK_NAMES, "check-names") \
+ X(CFG_CLAUSE_CHECKNAMES, "checknames") \
+ X(CFG_CLAUSE_CHECK_SIBLING, "check-sibling") \
+ X(CFG_CLAUSE_CHECK_SPF, "check-spf") \
+ X(CFG_CLAUSE_CHECK_SRV_CNAME, "check-srv-cname") \
+ X(CFG_CLAUSE_CHECK_SVCB, "check-svcb") \
+ X(CFG_CLAUSE_CHECKTYPE, "checktype") \
+ X(CFG_CLAUSE_CHECK_WILDCARD, "check-wildcard") \
+ X(CFG_CLAUSE_CIPHERS, "ciphers") \
+ X(CFG_CLAUSE_CIPHER_SUITES, "cipher-suites") \
+ X(CFG_CLAUSE_CLASS, "class") \
+ X(CFG_CLAUSE_CLEANING_INTERVAL, "cleaning-interval") \
+ X(CFG_CLAUSE_CLIENTS, "clients") \
+ X(CFG_CLAUSE_CLIENTS_PER_QUERY, "clients-per-query") \
+ X(CFG_CLAUSE_CNAME, "cname") \
+ X(CFG_CLAUSE_CONTROLS, "controls") \
+ X(CFG_CLAUSE_COOKIEALG, "cookiealg") \
+ X(CFG_CLAUSE_COOKIE_ALGORITHM, "cookie-algorithm") \
+ X(CFG_CLAUSE_COOKIE_SECRET, "cookie-secret") \
+ X(CFG_CLAUSE_CORESIZE, "coresize") \
+ X(CFG_CLAUSE_CRITICAL, "critical") \
+ X(CFG_CLAUSE_CSK, "csk") \
+ X(CFG_CLAUSE_DATA, "data") \
+ X(CFG_CLAUSE_DATABASE, "database") \
+ X(CFG_CLAUSE_DATASIZE, "datasize") \
+ X(CFG_CLAUSE_DATE, "date") \
+ X(CFG_CLAUSE_DEALLOCATE_ON_EXIT, "deallocate-on-exit") \
+ X(CFG_CLAUSE_DEBUG, "debug") \
+ X(CFG_CLAUSE_DEBUGLEVEL, "debuglevel") \
+ X(CFG_CLAUSE_DEFAULT, "default") \
+ X(CFG_CLAUSE_DEFAULT_KEY, "default-key") \
+ X(CFG_CLAUSE_DEFAULT_MASTERS, "default-masters") \
+ X(CFG_CLAUSE_DEFAULT_PORT, "default-port") \
+ X(CFG_CLAUSE_DEFAULT_PRIMARIES, "default-primaries") \
+ X(CFG_CLAUSE_DEFAULT_SERVER, "default-server") \
+ X(CFG_CLAUSE_DEFAULT_SOURCE_ADDRESS, "default-source-address") \
+ X(CFG_CLAUSE_DEFAULT_SOURCE_ADDRESS_V6, "default-source-address-v6") \
+ X(CFG_CLAUSE_DELEGATION_ONLY, "delegation-only") \
+ X(CFG_CLAUSE_DELV, "delv") \
+ X(CFG_CLAUSE_DENY, "deny") \
+ X(CFG_CLAUSE_DENY_ANSWER_ADDRESSES, "deny-answer-addresses") \
+ X(CFG_CLAUSE_DENY_ANSWER_ALIASES, "deny-answer-aliases") \
+ X(CFG_CLAUSE_DESTINATIONLIST, "destinationlist") \
+ X(CFG_CLAUSE_DESTINATIONS, "destinations") \
+ X(CFG_CLAUSE_DHPARAM_FILE, "dhparam-file") \
+ X(CFG_CLAUSE_DIALUP, "dialup") \
+ X(CFG_CLAUSE_DIGESTS, "digests") \
+ X(CFG_CLAUSE_DIRECTORY, "directory") \
+ X(CFG_CLAUSE_DISABLE_ALGORITHMS, "disable-algorithms") \
+ X(CFG_CLAUSE_DISABLED, "disabled") \
+ X(CFG_CLAUSE_DISABLE_DS_DIGESTS, "disable-ds-digests") \
+ X(CFG_CLAUSE_DISABLE_EMPTY_ZONE, "disable-empty-zone") \
+ X(CFG_CLAUSE_DISCOUNT, "discount") \
+ X(CFG_CLAUSE_DLZ, "dlz") \
+ X(CFG_CLAUSE_DNS64, "dns64") \
+ X(CFG_CLAUSE_DNS64_CONTACT, "dns64-contact") \
+ X(CFG_CLAUSE_DNS64_SERVER, "dns64-server") \
+ X(CFG_CLAUSE_DNSKEY_SIG_VALIDITY, "dnskey-sig-validity") \
+ X(CFG_CLAUSE_DNSKEY_TTL, "dnskey-ttl") \
+ X(CFG_CLAUSE_DNSRPS_ENABLE, "dnsrps-enable") \
+ X(CFG_CLAUSE_DNSRPS_LIBRARY, "dnsrps-library") \
+ X(CFG_CLAUSE_DNSRPS_OPTIONS, "dnsrps-options") \
+ X(CFG_CLAUSE_DNSSEC_ACCEPT_EXPIRED, "dnssec-accept-expired") \
+ X(CFG_CLAUSE_DNSSEC_DNSKEY_KSKONLY, "dnssec-dnskey-kskonly") \
+ X(CFG_CLAUSE_DNSSEC_ENABLE, "dnssec-enable") \
+ X(CFG_CLAUSE_DNSSECKEYS, "dnsseckeys") \
+ X(CFG_CLAUSE_DNSSEC_LOADKEYS_INTERVAL, "dnssec-loadkeys-interval") \
+ X(CFG_CLAUSE_DNSSEC_LOOKASIDE, "dnssec-lookaside") \
+ X(CFG_CLAUSE_DNSSEC_MUST_BE_SECURE, "dnssec-must-be-secure") \
+ X(CFG_CLAUSE_DNSSEC_POLICY, "dnssec-policy") \
+ X(CFG_CLAUSE_DNSSEC_SECURE_TO_INSECURE, "dnssec-secure-to-insecure") \
+ X(CFG_CLAUSE_DNSSEC_UPDATE_MODE, "dnssec-update-mode") \
+ X(CFG_CLAUSE_DNSSEC_VALIDATION, "dnssec-validation") \
+ X(CFG_CLAUSE_DNSTAP, "dnstap") \
+ X(CFG_CLAUSE_DNSTAP_IDENTITY, "dnstap-identity") \
+ X(CFG_CLAUSE_DNSTAP_OUTPUT, "dnstap-output") \
+ X(CFG_CLAUSE_DNSTAPOUTPUT, "dnstapoutput") \
+ X(CFG_CLAUSE_DNSTAP_TYPE, "dnstap_type") \
+ X(CFG_CLAUSE_DNSTAP_VALUE, "dnstap_value") \
+ X(CFG_CLAUSE_DNSTAP_VERSION, "dnstap-version") \
+ X(CFG_CLAUSE_DOH, "doh") \
+ X(CFG_CLAUSE_DROP, "drop") \
+ X(CFG_CLAUSE_DSCP, "dscp") \
+ X(CFG_CLAUSE_DSDIGESTLIST, "dsdigestlist") \
+ X(CFG_CLAUSE_DTMODE, "dtmode") \
+ X(CFG_CLAUSE_DUAL_STACK_SERVERS, "dual-stack-servers") \
+ X(CFG_CLAUSE_DUMP_FILE, "dump-file") \
+ X(CFG_CLAUSE_DYNDB, "dyndb") \
+ X(CFG_CLAUSE_EDE, "ede") \
+ X(CFG_CLAUSE_EDNS, "edns") \
+ X(CFG_CLAUSE_EDNS_UDP_SIZE, "edns-udp-size") \
+ X(CFG_CLAUSE_EDNS_VERSION, "edns-version") \
+ X(CFG_CLAUSE_ELIGIBLE, "eligible") \
+ X(CFG_CLAUSE_EMPTY_CONTACT, "empty-contact") \
+ X(CFG_CLAUSE_EMPTY_SERVER, "empty-server") \
+ X(CFG_CLAUSE_EMPTY_ZONES_ENABLE, "empty-zones-enable") \
+ X(CFG_CLAUSE_ENDPOINTS, "endpoints") \
+ X(CFG_CLAUSE_ERRORS_PER_SECOND, "errors-per-second") \
+ X(CFG_CLAUSE_EXCEPT_FROM, "except-from") \
+ X(CFG_CLAUSE_EXCLUDE, "exclude") \
+ X(CFG_CLAUSE_EXEMPT_CLIENTS, "exempt-clients") \
+ X(CFG_CLAUSE_EXPLICIT, "explicit") \
+ X(CFG_CLAUSE_FAIL, "fail") \
+ X(CFG_CLAUSE_FAKE_IQUERY, "fake-iquery") \
+ X(CFG_CLAUSE_FETCHES, "fetches") \
+ X(CFG_CLAUSE_FETCHESPER, "fetchesper") \
+ X(CFG_CLAUSE_FETCHES_PER_SERVER, "fetches-per-server") \
+ X(CFG_CLAUSE_FETCHES_PER_ZONE, "fetches-per-zone") \
+ X(CFG_CLAUSE_FETCH_GLUE, "fetch-glue") \
+ X(CFG_CLAUSE_FETCHQUOTA, "fetchquota") \
+ X(CFG_CLAUSE_FETCH_QUOTA_PARAMS, "fetch-quota-params") \
+ X(CFG_CLAUSE_FILE, "file") \
+ X(CFG_CLAUSE_FILES, "files") \
+ X(CFG_CLAUSE_FILTER_AAAA, "filter-aaaa") \
+ X(CFG_CLAUSE_FILTER_AAAA_ON_V4, "filter-aaaa-on-v4") \
+ X(CFG_CLAUSE_FILTER_AAAA_ON_V6, "filter-aaaa-on-v6") \
+ X(CFG_CLAUSE_FIRST, "first") \
+ X(CFG_CLAUSE_FLUSH_ZONES_ON_SHUTDOWN, "flush-zones-on-shutdown") \
+ X(CFG_CLAUSE_FORWARD, "forward") \
+ X(CFG_CLAUSE_FORWARDERS, "forwarders") \
+ X(CFG_CLAUSE_FREQUENCY, "frequency") \
+ X(CFG_CLAUSE_FSTRM_SET_BUFFER_HINT, "fstrm-set-buffer-hint") \
+ X(CFG_CLAUSE_FSTRM_SET_FLUSH_TIMEOUT, "fstrm-set-flush-timeout") \
+ X(CFG_CLAUSE_FSTRM_SET_INPUT_QUEUE_SIZE, "fstrm-set-input-queue-size") \
+ X(CFG_CLAUSE_FSTRM_SET_OUTPUT_NOTIFY_THRESHOLD, "fstrm-set-output-notify-threshold") \
+ X(CFG_CLAUSE_FSTRM_SET_OUTPUT_QUEUE_MODEL, "fstrm-set-output-queue-model") \
+ X(CFG_CLAUSE_FSTRM_SET_OUTPUT_QUEUE_SIZE, "fstrm-set-output-queue-size") \
+ X(CFG_CLAUSE_FSTRM_SET_REOPEN_INTERVAL, "fstrm-set-reopen-interval") \
+ X(CFG_CLAUSE_FULL, "full") \
+ X(CFG_CLAUSE_GEOIP_DIRECTORY, "geoip-directory") \
+ X(CFG_CLAUSE_GEOIP_USE_ECS, "geoip-use-ecs") \
+ X(CFG_CLAUSE_GLUE_CACHE, "glue-cache") \
+ X(CFG_CLAUSE_GRANT, "grant") \
+ X(CFG_CLAUSE_GROUP, "group") \
+ X(CFG_CLAUSE_HAS_OLD_CLIENTS, "has-old-clients") \
+ X(CFG_CLAUSE_HEARTBEAT_INTERVAL, "heartbeat-interval") \
+ X(CFG_CLAUSE_HIGH, "high") \
+ X(CFG_CLAUSE_HOSTNAME, "hostname") \
+ X(CFG_CLAUSE_HOST_STATISTICS, "host-statistics") \
+ X(CFG_CLAUSE_HOST_STATISTICS_MAX, "host-statistics-max") \
+ X(CFG_CLAUSE_HTTP, "http") \
+ X(CFG_CLAUSE_HTTP_LISTENER_CLIENTS, "http-listener-clients") \
+ X(CFG_CLAUSE_HTTP_PORT, "http-port") \
+ X(CFG_CLAUSE_HTTPS_PORT, "https-port") \
+ X(CFG_CLAUSE_HTTP_STREAMS_PER_CONNECTION, "http-streams-per-connection") \
+ X(CFG_CLAUSE_IDENTITY, "identity") \
+ X(CFG_CLAUSE_INCREMENT, "increment") \
+ X(CFG_CLAUSE_INET, "inet") \
+ X(CFG_CLAUSE_INITIAL_FILE, "initial-file") \
+ X(CFG_CLAUSE_INLINE_SIGNING, "inline-signing") \
+ X(CFG_CLAUSE_IN_MEMORY, "in-memory") \
+ X(CFG_CLAUSE_INTERFACE_INTERVAL, "interface-interval") \
+ X(CFG_CLAUSE_IN_VIEW, "in-view") \
+ X(CFG_CLAUSE_IPV4ONLY_CONTACT, "ipv4only-contact") \
+ X(CFG_CLAUSE_IPV4ONLY_ENABLE, "ipv4only-enable") \
+ X(CFG_CLAUSE_IPV4ONLY_SERVER, "ipv4only-server") \
+ X(CFG_CLAUSE_IPV4_PREFIX_LENGTH, "ipv4-prefix-length") \
+ X(CFG_CLAUSE_IPV6_PREFIX_LENGTH, "ipv6-prefix-length") \
+ X(CFG_CLAUSE_ISO8601, "iso8601") \
+ X(CFG_CLAUSE_ITERATIONS, "iterations") \
+ X(CFG_CLAUSE_IXFR_BASE, "ixfr-base") \
+ X(CFG_CLAUSE_IXFR_FROM_DIFFERENCES, "ixfr-from-differences") \
+ X(CFG_CLAUSE_IXFR_RATIO, "ixfr_ratio") \
+ X(CFG_CLAUSE_IXFR_TMP_FILE, "ixfr-tmp-file") \
+ X(CFG_CLAUSE_JOURNAL, "journal") \
+ X(CFG_CLAUSE_KASPKEY, "kaspkey") \
+ X(CFG_CLAUSE_KASPKEYS, "kaspkeys") \
+ X(CFG_CLAUSE_KEEP_RESPONSE_ORDER, "keep-response-order") \
+ X(CFG_CLAUSE_KEY, "key") \
+ X(CFG_CLAUSE_KEY_DIRECTORY, "key-directory") \
+ X(CFG_CLAUSE_KEY_FILE, "key-file") \
+ X(CFG_CLAUSE_KEYLIST, "keylist") \
+ X(CFG_CLAUSE_KEYREF, "keyref") \
+ X(CFG_CLAUSE_KEYS, "keys") \
+ X(CFG_CLAUSE_KEYSTORAGE, "keystorage") \
+ X(CFG_CLAUSE_KEY_STORE, "key-store") \
+ X(CFG_CLAUSE_LAME_TTL, "lame-ttl") \
+ X(CFG_CLAUSE_LENGTH, "length") \
+ X(CFG_CLAUSE_LIBRARY, "library") \
+ X(CFG_CLAUSE_LIFETIME, "lifetime") \
+ X(CFG_CLAUSE_LISTENER_CLIENTS, "listener-clients") \
+ X(CFG_CLAUSE_LISTEN_ON, "listen-on") \
+ X(CFG_CLAUSE_LISTENON, "listenon") \
+ X(CFG_CLAUSE_LISTEN_ON_V6, "listen-on-v6") \
+ X(CFG_CLAUSE_LMDB_MAPSIZE, "lmdb-mapsize") \
+ X(CFG_CLAUSE_LOCK_FILE, "lock-file") \
+ X(CFG_CLAUSE_LOG, "log") \
+ X(CFG_CLAUSE_LOG_FILE, "log_file") \
+ X(CFG_CLAUSE_LOGGING, "logging") \
+ X(CFG_CLAUSE_LOGLEVEL, "loglevel") \
+ X(CFG_CLAUSE_LOG_ONLY, "log-only") \
+ X(CFG_CLAUSE_LOG_REPORT_CHANNEL, "log-report-channel") \
+ X(CFG_CLAUSE_LOG_SEVERITY, "log_severity") \
+ X(CFG_CLAUSE_LOGSUFFIX, "logsuffix") \
+ X(CFG_CLAUSE_LOW, "low") \
+ X(CFG_CLAUSE_LWRES, "lwres") \
+ X(CFG_CLAUSE_MAINTAIN, "maintain") \
+ X(CFG_CLAUSE_MAINTAIN_IXFR_BASE, "maintain-ixfr-base") \
+ X(CFG_CLAUSE_MANAGEDKEY, "managedkey") \
+ X(CFG_CLAUSE_MANAGED_KEYS, "managed-keys") \
+ X(CFG_CLAUSE_MANAGED_KEYS_DIRECTORY, "managed-keys-directory") \
+ X(CFG_CLAUSE_MANUAL_MODE, "manual-mode") \
+ X(CFG_CLAUSE_MANY_ANSWERS, "many-answers") \
+ X(CFG_CLAUSE_MAPPED, "mapped") \
+ X(CFG_CLAUSE_MASTERFILE_FORMAT, "masterfile-format") \
+ X(CFG_CLAUSE_MASTERFILE_STYLE, "masterfile-style") \
+ X(CFG_CLAUSE_MASTERS, "masters") \
+ X(CFG_CLAUSE_MATCH_CLIENTS, "match-clients") \
+ X(CFG_CLAUSE_MATCH_DESTINATIONS, "match-destinations") \
+ X(CFG_CLAUSE_MATCH_MAPPED_ADDRESSES, "match-mapped-addresses") \
+ X(CFG_CLAUSE_MATCH_RECURSIVE_ONLY, "match-recursive-only") \
+ X(CFG_CLAUSE_MATCHTYPE, "matchtype") \
+ X(CFG_CLAUSE_MAX_ACACHE_SIZE, "max-acache-size") \
+ X(CFG_CLAUSE_MAX_CACHE_SIZE, "max-cache-size") \
+ X(CFG_CLAUSE_MAX_CACHE_TTL, "max-cache-ttl") \
+ X(CFG_CLAUSE_MAX_CLIENTS_PER_QUERY, "max-clients-per-query") \
+ X(CFG_CLAUSE_MAX_DELEGATION_SERVERS, "max-delegation-servers") \
+ X(CFG_CLAUSE_MAX_IXFR_LOG_SIZE, "max-ixfr-log-size") \
+ X(CFG_CLAUSE_MAX_IXFR_RATIO, "max-ixfr-ratio") \
+ X(CFG_CLAUSE_MAX_JOURNAL_SIZE, "max-journal-size") \
+ X(CFG_CLAUSE_MAX_NCACHE_TTL, "max-ncache-ttl") \
+ X(CFG_CLAUSE_MAX_POLICY_TTL, "max-policy-ttl") \
+ X(CFG_CLAUSE_MAX_QUERY_COUNT, "max-query-count") \
+ X(CFG_CLAUSE_MAX_QUERY_RESTARTS, "max-query-restarts") \
+ X(CFG_CLAUSE_MAX_RECORDS, "max-records") \
+ X(CFG_CLAUSE_MAX_RECORDS_PER_TYPE, "max-records-per-type") \
+ X(CFG_CLAUSE_MAX_RECURSION_DEPTH, "max-recursion-depth") \
+ X(CFG_CLAUSE_MAX_RECURSION_QUERIES, "max-recursion-queries") \
+ X(CFG_CLAUSE_MAX_REFRESH_TIME, "max-refresh-time") \
+ X(CFG_CLAUSE_MAX_RETRY_TIME, "max-retry-time") \
+ X(CFG_CLAUSE_MAX_RSA_EXPONENT_SIZE, "max-rsa-exponent-size") \
+ X(CFG_CLAUSE_MAX_STALE_TTL, "max-stale-ttl") \
+ X(CFG_CLAUSE_MAX_TABLE_SIZE, "max-table-size") \
+ X(CFG_CLAUSE_MAX_TRANSFER_IDLE_IN, "max-transfer-idle-in") \
+ X(CFG_CLAUSE_MAX_TRANSFER_IDLE_OUT, "max-transfer-idle-out") \
+ X(CFG_CLAUSE_MAX_TRANSFER_TIME_IN, "max-transfer-time-in") \
+ X(CFG_CLAUSE_MAX_TRANSFER_TIME_OUT, "max-transfer-time-out") \
+ X(CFG_CLAUSE_MAX_TYPES_PER_NAME, "max-types-per-name") \
+ X(CFG_CLAUSE_MAX_UDP_SIZE, "max-udp-size") \
+ X(CFG_CLAUSE_MAX_VALIDATION_FAILURES_PER_FETCH, "max-validation-failures-per-fetch") \
+ X(CFG_CLAUSE_MAX_VALIDATIONS_PER_FETCH, "max-validations-per-fetch") \
+ X(CFG_CLAUSE_MAX_ZONE_TTL, "max-zone-ttl") \
+ X(CFG_CLAUSE_MEMSTATISTICS, "memstatistics") \
+ X(CFG_CLAUSE_MEMSTATISTICS_FILE, "memstatistics-file") \
+ X(CFG_CLAUSE_MESSAGE_COMPRESSION, "message-compression") \
+ X(CFG_CLAUSE_MIN_CACHE_TTL, "min-cache-ttl") \
+ X(CFG_CLAUSE_MINIMAL_ANY, "minimal-any") \
+ X(CFG_CLAUSE_MINIMAL_RESPONSES, "minimal-responses") \
+ X(CFG_CLAUSE_MIN_NCACHE_TTL, "min-ncache-ttl") \
+ X(CFG_CLAUSE_MIN_NS_DOTS, "min-ns-dots") \
+ X(CFG_CLAUSE_MIN_REFRESH_TIME, "min-refresh-time") \
+ X(CFG_CLAUSE_MIN_RETRY_TIME, "min-retry-time") \
+ X(CFG_CLAUSE_MIN_ROOTS, "min-roots") \
+ X(CFG_CLAUSE_MIN_TABLE_SIZE, "min-table-size") \
+ X(CFG_CLAUSE_MIN_TRANSFER_RATE_IN, "min-transfer-rate-in") \
+ X(CFG_CLAUSE_MIN_UPDATE_INTERVAL, "min-update-interval") \
+ X(CFG_CLAUSE_MODE, "mode") \
+ X(CFG_CLAUSE_MPSC, "mpsc") \
+ X(CFG_CLAUSE_MULTI_MASTER, "multi-master") \
+ X(CFG_CLAUSE_MULTIPLE_CNAMES, "multiple-cnames") \
+ X(CFG_CLAUSE_NAME, "name") \
+ X(CFG_CLAUSE_NAMEDCONF, "namedconf") \
+ X(CFG_CLAUSE_NAMED_XFER, "named-xfer") \
+ X(CFG_CLAUSE_NAMELIST, "namelist") \
+ X(CFG_CLAUSE_NAMEPORT, "nameport") \
+ X(CFG_CLAUSE_NEW_ZONES_DIRECTORY, "new-zones-directory") \
+ X(CFG_CLAUSE_NO_AUTH, "no-auth") \
+ X(CFG_CLAUSE_NO_CASE_COMPRESS, "no-case-compress") \
+ X(CFG_CLAUSE_NOCOOKIE_UDP_SIZE, "nocookie-udp-size") \
+ X(CFG_CLAUSE_NODATA_PER_SECOND, "nodata-per-second") \
+ X(CFG_CLAUSE_NONE, "none") \
+ X(CFG_CLAUSE_NOSIT_UDP_SIZE, "nosit-udp-size") \
+ X(CFG_CLAUSE_NOTIFY, "notify") \
+ X(CFG_CLAUSE_NOTIFY_CFG, "notify-cfg") \
+ X(CFG_CLAUSE_NOTIFY_DEFER, "notify-defer") \
+ X(CFG_CLAUSE_NOTIFY_DELAY, "notify-delay") \
+ X(CFG_CLAUSE_NOTIFY_RATE, "notify-rate") \
+ X(CFG_CLAUSE_NOTIFY_SOURCE, "notify-source") \
+ X(CFG_CLAUSE_NOTIFY_SOURCE_V6, "notify-source-v6") \
+ X(CFG_CLAUSE_NOTIFY_TO_SOA, "notify-to-soa") \
+ X(CFG_CLAUSE_NSDNAME_ENABLE, "nsdname-enable") \
+ X(CFG_CLAUSE_NSDNAME_WAIT_RECURSE, "nsdname-wait-recurse") \
+ X(CFG_CLAUSE_NSEC3PARAM, "nsec3param") \
+ X(CFG_CLAUSE_NSEC3_TEST_ZONE, "nsec3-test-zone") \
+ X(CFG_CLAUSE_NSIP_ENABLE, "nsip-enable") \
+ X(CFG_CLAUSE_NSIP_WAIT_RECURSE, "nsip-wait-recurse") \
+ X(CFG_CLAUSE_NTA_LIFETIME, "nta-lifetime") \
+ X(CFG_CLAUSE_NTA_RECHECK, "nta-recheck") \
+ X(CFG_CLAUSE_NULL, "null") \
+ X(CFG_CLAUSE_NXDOMAIN_REDIRECT, "nxdomain-redirect") \
+ X(CFG_CLAUSE_NXDOMAINS_PER_SECOND, "nxdomains-per-second") \
+ X(CFG_CLAUSE_OFFLINE_KSK, "offline-ksk") \
+ X(CFG_CLAUSE_OPTIONAL_CLASS, "optional_class") \
+ X(CFG_CLAUSE_OPTIONAL_FACILITY, "optional_facility") \
+ X(CFG_CLAUSE_OPTIONAL_UINT32, "optional_uint32") \
+ X(CFG_CLAUSE_OPTIONS, "options") \
+ X(CFG_CLAUSE_OPTOUT, "optout") \
+ X(CFG_CLAUSE_ORDER, "order") \
+ X(CFG_CLAUSE_ORDERING, "ordering") \
+ X(CFG_CLAUSE_OWNER, "owner") \
+ X(CFG_CLAUSE_PADDING, "padding") \
+ X(CFG_CLAUSE_PARAMETERS, "parameters") \
+ X(CFG_CLAUSE_PARENTAL_AGENTS, "parental-agents") \
+ X(CFG_CLAUSE_PARENTAL_SOURCE, "parental-source") \
+ X(CFG_CLAUSE_PARENTAL_SOURCE_V6, "parental-source-v6") \
+ X(CFG_CLAUSE_PARENT_DS_TTL, "parent-ds-ttl") \
+ X(CFG_CLAUSE_PARENT_PROPAGATION_DELAY, "parent-propagation-delay") \
+ X(CFG_CLAUSE_PARENT_REGISTRATION_DELAY, "parent-registration-delay") \
+ X(CFG_CLAUSE_PATH, "path") \
+ X(CFG_CLAUSE_PERM, "perm") \
+ X(CFG_CLAUSE_PID_FILE, "pid-file") \
+ X(CFG_CLAUSE_PKCS11_URI, "pkcs11-uri") \
+ X(CFG_CLAUSE_PLUGIN, "plugin") \
+ X(CFG_CLAUSE_PLUGINTYPE, "plugintype") \
+ X(CFG_CLAUSE_POLICY, "policy") \
+ X(CFG_CLAUSE_POLICY_NAME, "policy name") \
+ X(CFG_CLAUSE_POLICY_TUPLE, "policy tuple") \
+ X(CFG_CLAUSE_PORT, "port") \
+ X(CFG_CLAUSE_PORTIPLIST, "portiplist") \
+ X(CFG_CLAUSE_PORT_TRANSPORT, "port-transport") \
+ X(CFG_CLAUSE_PREFERRED_GLUE, "preferred-glue") \
+ X(CFG_CLAUSE_PREFER_SERVER_CIPHERS, "prefer-server-ciphers") \
+ X(CFG_CLAUSE_PREFETCH, "prefetch") \
+ X(CFG_CLAUSE_PRIMARIES, "primaries") \
+ X(CFG_CLAUSE_PRIMARY, "primary") \
+ X(CFG_CLAUSE_PRINT_CATEGORY, "print-category") \
+ X(CFG_CLAUSE_PRINT_SEVERITY, "print-severity") \
+ X(CFG_CLAUSE_PRINT_TIME, "print-time") \
+ X(CFG_CLAUSE_PRINTTIME, "printtime") \
+ X(CFG_CLAUSE_PROTOCOLS, "protocols") \
+ X(CFG_CLAUSE_PROVIDE_IXFR, "provide-ixfr") \
+ X(CFG_CLAUSE_PROVIDE_ZONEVERSION, "provide-zoneversion") \
+ X(CFG_CLAUSE_PROXY, "proxy") \
+ X(CFG_CLAUSE_PUBKEY, "pubkey") \
+ X(CFG_CLAUSE_PUBLISH_SAFETY, "publish-safety") \
+ X(CFG_CLAUSE_PURGE_KEYS, "purge-keys") \
+ X(CFG_CLAUSE_QMINMETHOD, "qminmethod") \
+ X(CFG_CLAUSE_QNAME_MINIMIZATION, "qname-minimization") \
+ X(CFG_CLAUSE_QNAME_WAIT_RECURSE, "qname-wait-recurse") \
+ X(CFG_CLAUSE_QPS_SCALE, "qps-scale") \
+ X(CFG_CLAUSE_QSTRINGORNONE, "qstringornone") \
+ X(CFG_CLAUSE_QUERY, "query") \
+ X(CFG_CLAUSE_QUERYLOG, "querylog") \
+ X(CFG_CLAUSE_QUERYPORT_POOL_PORTS, "queryport-pool-ports") \
+ X(CFG_CLAUSE_QUERYPORT_POOL_UPDATEINTERVAL, "queryport-pool-updateinterval") \
+ X(CFG_CLAUSE_QUERY_SOURCE, "query-source") \
+ X(CFG_CLAUSE_QUERYSOURCE, "querysource") \
+ X(CFG_CLAUSE_QUERY_SOURCE_V6, "query-source-v6") \
+ X(CFG_CLAUSE_RANDOM_DEVICE, "random-device") \
+ X(CFG_CLAUSE_RATE_LIMIT, "rate-limit") \
+ X(CFG_CLAUSE_RAW, "raw") \
+ X(CFG_CLAUSE_RDATA1, "rdata1") \
+ X(CFG_CLAUSE_RDATA2, "rdata2") \
+ X(CFG_CLAUSE_RDATA3, "rdata3") \
+ X(CFG_CLAUSE_READ_ONLY, "read-only") \
+ X(CFG_CLAUSE_RECURSING_FILE, "recursing-file") \
+ X(CFG_CLAUSE_RECURSION, "recursion") \
+ X(CFG_CLAUSE_RECURSIVE_CLIENTS, "recursive-clients") \
+ X(CFG_CLAUSE_RECURSIVE_ONLY, "recursive-only") \
+ X(CFG_CLAUSE_REFERRALS_PER_SECOND, "referrals-per-second") \
+ X(CFG_CLAUSE_REMOTE_HOSTNAME, "remote-hostname") \
+ X(CFG_CLAUSE_REMOTES_ELEMENT, "remotes_element") \
+ X(CFG_CLAUSE_REMOTESELEMENT, "remoteselement") \
+ X(CFG_CLAUSE_REMOTE_SERVERS, "remote-servers") \
+ X(CFG_CLAUSE_REQUEST_EXPIRE, "request-expire") \
+ X(CFG_CLAUSE_REQUEST_IXFR, "request-ixfr") \
+ X(CFG_CLAUSE_REQUEST_IXFR_MAX_DIFFS, "request-ixfr-max-diffs") \
+ X(CFG_CLAUSE_REQUEST_NSID, "request-nsid") \
+ X(CFG_CLAUSE_REQUEST_SIT, "request-sit") \
+ X(CFG_CLAUSE_REQUEST_ZONEVERSION, "request-zoneversion") \
+ X(CFG_CLAUSE_REQUIRE_COOKIE, "require-cookie") \
+ X(CFG_CLAUSE_REQUIRE_SERVER_COOKIE, "require-server-cookie") \
+ X(CFG_CLAUSE_RESERVED_SOCKETS, "reserved-sockets") \
+ X(CFG_CLAUSE_RE_SIGN, "re-sign") \
+ X(CFG_CLAUSE_RESOLVER_NONBACKOFF_TRIES, "resolver-nonbackoff-tries") \
+ X(CFG_CLAUSE_RESOLVER_QUERY_TIMEOUT, "resolver-query-timeout") \
+ X(CFG_CLAUSE_RESOLVER_RETRY_INTERVAL, "resolver-retry-interval") \
+ X(CFG_CLAUSE_RESOLVER_USE_DNS64, "resolver-use-dns64") \
+ X(CFG_CLAUSE_RESPONSE, "response") \
+ X(CFG_CLAUSE_RESPONSELOG, "responselog") \
+ X(CFG_CLAUSE_RESPONSE_PADDING, "response-padding") \
+ X(CFG_CLAUSE_RESPONSE_POLICY, "response-policy") \
+ X(CFG_CLAUSE_RESPONSES_PER_SECOND, "responses-per-second") \
+ X(CFG_CLAUSE_RETIRE_SAFETY, "retire-safety") \
+ X(CFG_CLAUSE_REUSEPORT, "reuseport") \
+ X(CFG_CLAUSE_RFC2308_TYPE1, "rfc2308-type1") \
+ X(CFG_CLAUSE_RNDCCONF, "rndcconf") \
+ X(CFG_CLAUSE_RNDCKEY, "rndckey") \
+ X(CFG_CLAUSE_ROLE, "role") \
+ X(CFG_CLAUSE_ROOT_DELEGATION_ONLY, "root-delegation-only") \
+ X(CFG_CLAUSE_ROOT_KEY_SENTINEL, "root-key-sentinel") \
+ X(CFG_CLAUSE_RPZ, "rpz") \
+ X(CFG_CLAUSE_RPZ_TUPLE, "rpz tuple") \
+ X(CFG_CLAUSE_RRSET_ORDER, "rrset-order") \
+ X(CFG_CLAUSE_RRSETORDER, "rrsetorder") \
+ X(CFG_CLAUSE_SALT_LENGTH, "salt-length") \
+ X(CFG_CLAUSE_SEARCH, "search") \
+ X(CFG_CLAUSE_SECRET, "secret") \
+ X(CFG_CLAUSE_SECROOTS_FILE, "secroots-file") \
+ X(CFG_CLAUSE_SEND_COOKIE, "send-cookie") \
+ X(CFG_CLAUSE_SEND_REPORT_CHANNEL, "send-report-channel") \
+ X(CFG_CLAUSE_SERIAL_QUERIES, "serial-queries") \
+ X(CFG_CLAUSE_SERIAL_QUERY_RATE, "serial-query-rate") \
+ X(CFG_CLAUSE_SERIAL_UPDATE_METHOD, "serial-update-method") \
+ X(CFG_CLAUSE_SERVER, "server") \
+ X(CFG_CLAUSE_SERVER_ADDRESSES, "server-addresses") \
+ X(CFG_CLAUSE_SERVER_ID, "server-id") \
+ X(CFG_CLAUSE_SERVERID, "serverid") \
+ X(CFG_CLAUSE_SERVER_LIST, "server-list") \
+ X(CFG_CLAUSE_SERVER_NAMES, "server-names") \
+ X(CFG_CLAUSE_SERVFAIL_TTL, "servfail-ttl") \
+ X(CFG_CLAUSE_SERVFAIL_UNTIL_READY, "servfail-until-ready") \
+ X(CFG_CLAUSE_SESSIONKEY, "sessionkey") \
+ X(CFG_CLAUSE_SESSION_KEYALG, "session-keyalg") \
+ X(CFG_CLAUSE_SESSION_KEYFILE, "session-keyfile") \
+ X(CFG_CLAUSE_SESSION_KEYNAME, "session-keyname") \
+ X(CFG_CLAUSE_SESSION_TICKETS, "session-tickets") \
+ X(CFG_CLAUSE_SEVERITY, "severity") \
+ X(CFG_CLAUSE_SIG0CHECKS_QUOTA, "sig0checks-quota") \
+ X(CFG_CLAUSE_SIG0CHECKS_QUOTA_EXEMPT, "sig0checks-quota-exempt") \
+ X(CFG_CLAUSE_SIG0KEY_CHECKS_LIMIT, "sig0key-checks-limit") \
+ X(CFG_CLAUSE_SIG0MESSAGE_CHECKS_LIMIT, "sig0message-checks-limit") \
+ X(CFG_CLAUSE_SIGNATURES_JITTER, "signatures-jitter") \
+ X(CFG_CLAUSE_SIGNATURES_REFRESH, "signatures-refresh") \
+ X(CFG_CLAUSE_SIGNATURES_VALIDITY, "signatures-validity") \
+ X(CFG_CLAUSE_SIGNATURES_VALIDITY_DNSKEY, "signatures-validity-dnskey") \
+ X(CFG_CLAUSE_SIG_SIGNING_NODES, "sig-signing-nodes") \
+ X(CFG_CLAUSE_SIG_SIGNING_SIGNATURES, "sig-signing-signatures") \
+ X(CFG_CLAUSE_SIG_SIGNING_TYPE, "sig-signing-type") \
+ X(CFG_CLAUSE_SIG_VALIDITY_INTERVAL, "sig-validity-interval") \
+ X(CFG_CLAUSE_SIPHASH24, "siphash24") \
+ X(CFG_CLAUSE_SIT_SECRET, "sit-secret") \
+ X(CFG_CLAUSE_SIZE, "size") \
+ X(CFG_CLAUSE_SIZEVAL, "sizeval") \
+ X(CFG_CLAUSE_SLIP, "slip") \
+ X(CFG_CLAUSE_SOCKADDRNAMEPORT_ELEMENT, "sockaddrnameport_element") \
+ X(CFG_CLAUSE_SORTLIST, "sortlist") \
+ X(CFG_CLAUSE_SOURCE, "source") \
+ X(CFG_CLAUSE_SOURCE_ADDRESS, "source-address") \
+ X(CFG_CLAUSE_SOURCE_ADDRESS_V6, "source-address-v6") \
+ X(CFG_CLAUSE_SOURCE_V6, "source-v6") \
+ X(CFG_CLAUSE_STACKSIZE, "stacksize") \
+ X(CFG_CLAUSE_STALE_ANSWER_CLIENT_TIMEOUT, "stale-answer-client-timeout") \
+ X(CFG_CLAUSE_STALE_ANSWER_ENABLE, "stale-answer-enable") \
+ X(CFG_CLAUSE_STALE_ANSWER_TTL, "stale-answer-ttl") \
+ X(CFG_CLAUSE_STALE_CACHE_ENABLE, "stale-cache-enable") \
+ X(CFG_CLAUSE_STALE_REFRESH_TIME, "stale-refresh-time") \
+ X(CFG_CLAUSE_STARTUP_NOTIFY_RATE, "startup-notify-rate") \
+ X(CFG_CLAUSE_STATIC_KEY, "static-key") \
+ X(CFG_CLAUSE_STATISTICS_CHANNELS, "statistics-channels") \
+ X(CFG_CLAUSE_STATISTICS_FILE, "statistics-file") \
+ X(CFG_CLAUSE_STATISTICS_INTERVAL, "statistics-interval") \
+ X(CFG_CLAUSE_STDERR, "stderr") \
+ X(CFG_CLAUSE_STREAMS_PER_CONNECTION, "streams-per-connection") \
+ X(CFG_CLAUSE_STRICT, "strict") \
+ X(CFG_CLAUSE_SUFFIX, "suffix") \
+ X(CFG_CLAUSE_SUPPORT_IXFR, "support-ixfr") \
+ X(CFG_CLAUSE_SUPPRESS_INITIAL_NOTIFY, "suppress-initial-notify") \
+ X(CFG_CLAUSE_SYNTH_FROM_DNSSEC, "synth-from-dnssec") \
+ X(CFG_CLAUSE_SYSLOG, "syslog") \
+ X(CFG_CLAUSE_TAG_MAX, "tag-max") \
+ X(CFG_CLAUSE_TAG_MIN, "tag-min") \
+ X(CFG_CLAUSE_TAG_RANGE, "tag-range") \
+ X(CFG_CLAUSE_TAGRANGE, "tagrange") \
+ X(CFG_CLAUSE_TCP_ADVERTISED_TIMEOUT, "tcp-advertised-timeout") \
+ X(CFG_CLAUSE_TCP_CLIENTS, "tcp-clients") \
+ X(CFG_CLAUSE_TCP_IDLE_TIMEOUT, "tcp-idle-timeout") \
+ X(CFG_CLAUSE_TCP_INITIAL_TIMEOUT, "tcp-initial-timeout") \
+ X(CFG_CLAUSE_TCP_KEEPALIVE, "tcp-keepalive") \
+ X(CFG_CLAUSE_TCP_KEEPALIVE_TIMEOUT, "tcp-keepalive-timeout") \
+ X(CFG_CLAUSE_TCP_LISTEN_QUEUE, "tcp-listen-queue") \
+ X(CFG_CLAUSE_TCP_ONLY, "tcp-only") \
+ X(CFG_CLAUSE_TCP_PRIMARIES_TIMEOUT, "tcp-primaries-timeout") \
+ X(CFG_CLAUSE_TCP_RECEIVE_BUFFER, "tcp-receive-buffer") \
+ X(CFG_CLAUSE_TCP_SEND_BUFFER, "tcp-send-buffer") \
+ X(CFG_CLAUSE_TEMPLATE, "template") \
+ X(CFG_CLAUSE_TIME_MINUTES, "time_minutes") \
+ X(CFG_CLAUSE_TKEY_DHKEY, "tkey-dhkey") \
+ X(CFG_CLAUSE_TKEY_DOMAIN, "tkey-domain") \
+ X(CFG_CLAUSE_TKEY_GSSAPI_CREDENTIAL, "tkey-gssapi-credential") \
+ X(CFG_CLAUSE_TKEY_GSSAPI_KEYTAB, "tkey-gssapi-keytab") \
+ X(CFG_CLAUSE_TLS, "tls") \
+ X(CFG_CLAUSE_TLSCONF, "tlsconf") \
+ X(CFG_CLAUSE_TLS_PORT, "tls-port") \
+ X(CFG_CLAUSE_TLS_PROTOCOLS, "tls_protocols") \
+ X(CFG_CLAUSE_TOPOLOGY, "topology") \
+ X(CFG_CLAUSE_TRAFFIC_BYTES, "traffic_bytes") \
+ X(CFG_CLAUSE_TRANSFER_FORMAT, "transfer-format") \
+ X(CFG_CLAUSE_TRANSFER_MESSAGE_SIZE, "transfer-message-size") \
+ X(CFG_CLAUSE_TRANSFERS, "transfers") \
+ X(CFG_CLAUSE_TRANSFERS_IN, "transfers-in") \
+ X(CFG_CLAUSE_TRANSFER_SOURCE, "transfer-source") \
+ X(CFG_CLAUSE_TRANSFER_SOURCE_V6, "transfer-source-v6") \
+ X(CFG_CLAUSE_TRANSFERS_OUT, "transfers-out") \
+ X(CFG_CLAUSE_TRANSFERS_PER_NS, "transfers-per-ns") \
+ X(CFG_CLAUSE_TRANSPORT, "transport") \
+ X(CFG_CLAUSE_TREAT_CR_AS_SPACE, "treat-cr-as-space") \
+ X(CFG_CLAUSE_TRIGGER, "trigger") \
+ X(CFG_CLAUSE_TRUST_ANCHORS, "trust-anchors") \
+ X(CFG_CLAUSE_TRUST_ANCHOR_TELEMETRY, "trust-anchor-telemetry") \
+ X(CFG_CLAUSE_TRUSTED_KEYS, "trusted-keys") \
+ X(CFG_CLAUSE_TRY_TCP_REFRESH, "try-tcp-refresh") \
+ X(CFG_CLAUSE_TUPLE, "tuple") \
+ X(CFG_CLAUSE_TYPE, "type") \
+ X(CFG_CLAUSE_TYPES, "types") \
+ X(CFG_CLAUSE_UDP_RECEIVE_BUFFER, "udp-receive-buffer") \
+ X(CFG_CLAUSE_UDP_SEND_BUFFER, "udp-send-buffer") \
+ X(CFG_CLAUSE_UNIX, "unix") \
+ X(CFG_CLAUSE_UNLIMITED, "unlimited") \
+ X(CFG_CLAUSE_UPDATE_CHECK_KSK, "update-check-ksk") \
+ X(CFG_CLAUSE_UPDATE_POLICY, "update-policy") \
+ X(CFG_CLAUSE_UPDATE_QUOTA, "update-quota") \
+ X(CFG_CLAUSE_USE_ALT_TRANSFER_SOURCE, "use-alt-transfer-source") \
+ X(CFG_CLAUSE_USE_ID_POOL, "use-id-pool") \
+ X(CFG_CLAUSE_USE_IXFR, "use-ixfr") \
+ X(CFG_CLAUSE_USE_QUERYPORT_POOL, "use-queryport-pool") \
+ X(CFG_CLAUSE_USE_V4_UDP_PORTS, "use-v4-udp-ports") \
+ X(CFG_CLAUSE_USE_V6_UDP_PORTS, "use-v6-udp-ports") \
+ X(CFG_CLAUSE_V6_BIAS, "v6-bias") \
+ X(CFG_CLAUSE_VALIDATE_EXCEPT, "validate-except") \
+ X(CFG_CLAUSE_VALIDITY, "validity") \
+ X(CFG_CLAUSE_VALUE, "value") \
+ X(CFG_CLAUSE_VERSION, "version") \
+ X(CFG_CLAUSE_VERSIONS, "versions") \
+ X(CFG_CLAUSE_VIEW, "view") \
+ X(CFG_CLAUSE_WARN, "warn") \
+ X(CFG_CLAUSE_WINDOW, "window") \
+ X(CFG_CLAUSE_ZERO_NO_SOA_TTL, "zero-no-soa-ttl") \
+ X(CFG_CLAUSE_ZERO_NO_SOA_TTL_CACHE, "zero-no-soa-ttl-cache") \
+ X(CFG_CLAUSE_ZONE, "zone") \
+ X(CFG_CLAUSE_ZONE_DIRECTORY, "zone-directory") \
+ X(CFG_CLAUSE_ZONE_LIST, "zone list") \
+ X(CFG_CLAUSE_ZONE_NAME, "zone name") \
+ X(CFG_CLAUSE_ZONEOPTS, "zoneopts") \
+ X(CFG_CLAUSE_ZONE_PROPAGATION_DELAY, "zone-propagation-delay") \
+ X(CFG_CLAUSE_ZONESTAT, "zonestat") \
+ X(CFG_CLAUSE_ZONE_STATISTICS, "zone-statistics") \
+ X(CFG_CLAUSE_ZONETYPE, "zonetype") \
+
+/* clang-format on */
+
+enum cfg_clause {
+ CFG_CLAUSE__NONE = 0,
+#define X(name, str) name,
+ CFG_CLAUSES
+#undef X
+ CFG_CLAUSE__COUNT
+};
+
+extern const char *cfg_clause_as_string[];
#include <dns/ttl.h>
+#include <isccfg/clause.h>
#include <isccfg/cfg.h>
#include <isccfg/grammar.h>
#include <isccfg/namedconf.h>
}
static void
-cloneto(cfg_obj_t *options, const cfg_obj_t *obj, const char *clausename) {
+cloneto(cfg_obj_t *options, const cfg_obj_t *obj, enum cfg_clause clausename) {
isc_result_t result;
const cfg_clausedef_t *clause = cfg_map_findclause(options->type,
clausename);
static void
setdefaultacl(cfg_obj_t *options, const cfg_obj_t *defaultoptions,
- const char *aclname) {
+ enum cfg_clause aclname) {
const cfg_obj_t *obj = NULL;
isc_result_t result;
}
static const cfg_obj_t *
-aclobj(const cfg_obj_t *o, const cfg_obj_t *v, const char *name) {
+aclobj(const cfg_obj_t *o, const cfg_obj_t *v, enum cfg_clause name) {
const cfg_obj_t *obj = NULL;
cfg_map_get(v, name, &obj);
const cfg_obj_t *query = NULL, *cache = NULL, *cacheon = NULL;
const cfg_obj_t *recursion = NULL, *recursionon = NULL;
- cfg_map_get(config, "options", &options);
+ cfg_map_get(config, CFG_CLAUSE_OPTIONS, &options);
INSIST(options != NULL);
/*
INSIST((options == voptions && defaultoptions != NULL) ||
(options != voptions && defaultoptions == NULL));
- query = aclobj(options, voptions, "allow-query");
- recursion = aclobj(options, voptions, "allow-recursion");
- cache = aclobj(options, voptions, "allow-query-cache");
+ query = aclobj(options, voptions, CFG_CLAUSE_ALLOW_QUERY);
+ recursion = aclobj(options, voptions, CFG_CLAUSE_ALLOW_RECURSION);
+ cache = aclobj(options, voptions, CFG_CLAUSE_ALLOW_QUERY_CACHE);
- cacheon = aclobj(options, voptions, "allow-query-cache-on");
- recursionon = aclobj(options, voptions, "allow-recursion-on");
+ cacheon = aclobj(options, voptions, CFG_CLAUSE_ALLOW_QUERY_CACHE_ON);
+ recursionon = aclobj(options, voptions, CFG_CLAUSE_ALLOW_RECURSION_ON);
bool aq = query != NULL && !query->cloned;
bool aqc = cache != NULL && !cache->cloned;
*/
if (!aqc) {
if (ar) {
- cloneto(voptions, recursion, "allow-query-cache");
+ cloneto(voptions, recursion, CFG_CLAUSE_ALLOW_QUERY_CACHE);
} else if (aq) {
- cloneto(voptions, query, "allow-query-cache");
+ cloneto(voptions, query, CFG_CLAUSE_ALLOW_QUERY_CACHE);
}
}
*/
if (!ar) {
if (aqc) {
- cloneto(voptions, cache, "allow-recursion");
+ cloneto(voptions, cache, CFG_CLAUSE_ALLOW_RECURSION);
} else if (aq) {
- cloneto(voptions, query, "allow-recursion");
+ cloneto(voptions, query, CFG_CLAUSE_ALLOW_RECURSION);
}
}
* if set, and vice versa.
*/
if (!aqco && aro) {
- cloneto(voptions, recursionon, "allow-query-cache-on");
+ cloneto(voptions, recursionon, CFG_CLAUSE_ALLOW_QUERY_CACHE_ON);
} else if (!aro && aqco) {
- cloneto(voptions, cacheon, "allow-recursion-on");
+ cloneto(voptions, cacheon, CFG_CLAUSE_ALLOW_RECURSION_ON);
}
if (options == voptions) {
* of the default ACL if they are not defined. Those will be
* used for user views ACLs too.
*/
- setdefaultacl(voptions, defaultoptions, "allow-query-cache");
- setdefaultacl(voptions, defaultoptions, "allow-recursion");
- setdefaultacl(voptions, defaultoptions, "allow-query-cache-on");
- setdefaultacl(voptions, defaultoptions, "allow-recursion-on");
+ setdefaultacl(voptions, defaultoptions, CFG_CLAUSE_ALLOW_QUERY_CACHE);
+ setdefaultacl(voptions, defaultoptions, CFG_CLAUSE_ALLOW_RECURSION);
+ setdefaultacl(voptions, defaultoptions, CFG_CLAUSE_ALLOW_QUERY_CACHE_ON);
+ setdefaultacl(voptions, defaultoptions, CFG_CLAUSE_ALLOW_RECURSION_ON);
}
}
* file only.
*/
static cfg_clausedef_t namedconf_clauses[] = {
- { "acl", &cfg_type_acl, CFG_CLAUSEFLAG_MULTI, NULL },
- { "controls", &cfg_type_controls, CFG_CLAUSEFLAG_MULTI, NULL },
- { "dnssec-policy", &cfg_type_dnssecpolicy, CFG_CLAUSEFLAG_MULTI,
+ { CFG_CLAUSE_ACL, &cfg_type_acl, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_CONTROLS, &cfg_type_controls, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_DNSSEC_POLICY, &cfg_type_dnssecpolicy, CFG_CLAUSEFLAG_MULTI,
policy_merge },
#if HAVE_LIBNGHTTP2
- { "http", &cfg_type_http_description,
+ { CFG_CLAUSE_HTTP, &cfg_type_http_description,
CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_OPTIONAL, NULL },
#else
- { "http", &cfg_type_http_description,
+ { CFG_CLAUSE_HTTP, &cfg_type_http_description,
CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
#endif
- { "key-store", &cfg_type_keystore, CFG_CLAUSEFLAG_MULTI, NULL },
- { "logging", &cfg_type_logging, 0, NULL },
- { "lwres", NULL, CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "masters", &cfg_type_serverlist,
+ { CFG_CLAUSE_KEY_STORE, &cfg_type_keystore, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_LOGGING, &cfg_type_logging, 0, NULL },
+ { CFG_CLAUSE_LWRES, NULL, CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_MASTERS, &cfg_type_serverlist,
CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_NODOC, NULL },
- { "options", &cfg_type_options, 0, options_merge },
- { "parental-agents", &cfg_type_serverlist,
+ { CFG_CLAUSE_OPTIONS, &cfg_type_options, 0, options_merge },
+ { CFG_CLAUSE_PARENTAL_AGENTS, &cfg_type_serverlist,
CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_NODOC, NULL },
- { "primaries", &cfg_type_serverlist,
+ { CFG_CLAUSE_PRIMARIES, &cfg_type_serverlist,
CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_NODOC, NULL },
- { "remote-servers", &cfg_type_serverlist, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_REMOTE_SERVERS, &cfg_type_serverlist, CFG_CLAUSEFLAG_MULTI, NULL },
#if defined(HAVE_LIBXML2) || defined(HAVE_JSON_C)
- { "statistics-channels", &cfg_type_statschannels,
+ { CFG_CLAUSE_STATISTICS_CHANNELS, &cfg_type_statschannels,
CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_OPTIONAL, NULL },
#else
- { "statistics-channels", &cfg_type_statschannels,
+ { CFG_CLAUSE_STATISTICS_CHANNELS, &cfg_type_statschannels,
CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
#endif
- { "template", &cfg_type_template, CFG_CLAUSEFLAG_MULTI, NULL },
- { "builtin-trust-anchors", &cfg_type_builtin_dnsseckeys,
+ { CFG_CLAUSE_TEMPLATE, &cfg_type_template, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_BUILTIN_TRUST_ANCHORS, &cfg_type_builtin_dnsseckeys,
CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_BUILTINONLY |
CFG_CLAUSEFLAG_NODOC,
NULL },
- { "tls", &cfg_type_tlsconf, CFG_CLAUSEFLAG_MULTI, NULL },
- { "view", &cfg_type_view, CFG_CLAUSEFLAG_MULTI, view_merge },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_TLS, &cfg_type_tlsconf, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_VIEW, &cfg_type_view, CFG_CLAUSEFLAG_MULTI, view_merge },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
/*%
* statement, but not in the options block.
*/
static cfg_clausedef_t namedconf_or_view_clauses[] = {
- { "dlz", &cfg_type_dlz, CFG_CLAUSEFLAG_MULTI, NULL },
- { "dyndb", &cfg_type_dyndb, CFG_CLAUSEFLAG_MULTI, NULL },
- { "key", &cfg_type_key, CFG_CLAUSEFLAG_MULTI, NULL },
- { "managed-keys", &cfg_type_dnsseckeys,
+ { CFG_CLAUSE_DLZ, &cfg_type_dlz, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_DYNDB, &cfg_type_dyndb, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_KEY, &cfg_type_key, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_MANAGED_KEYS, &cfg_type_dnsseckeys,
CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "plugin", &cfg_type_plugin, CFG_CLAUSEFLAG_MULTI, NULL },
- { "server", &cfg_type_server, CFG_CLAUSEFLAG_MULTI, NULL },
- { "trust-anchors", &cfg_type_dnsseckeys, CFG_CLAUSEFLAG_MULTI, NULL },
- { "trusted-keys", NULL, CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_ANCIENT,
+ { CFG_CLAUSE_PLUGIN, &cfg_type_plugin, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_SERVER, &cfg_type_server, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_TRUST_ANCHORS, &cfg_type_dnsseckeys, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_TRUSTED_KEYS, NULL, CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_ANCIENT,
NULL },
- { "zone", &cfg_type_zone, CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_NODOC,
+ { CFG_CLAUSE_ZONE, &cfg_type_zone, CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_NODOC,
NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
/*%
* called bind.keys).
*/
static cfg_clausedef_t bindkeys_clauses[] = {
- { "managed-keys", &cfg_type_dnsseckeys,
+ { CFG_CLAUSE_MANAGED_KEYS, &cfg_type_dnsseckeys,
CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "trust-anchors", &cfg_type_dnsseckeys, CFG_CLAUSEFLAG_MULTI, NULL },
- { "trusted-keys", NULL, CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_ANCIENT,
+ { CFG_CLAUSE_TRUST_ANCHORS, &cfg_type_dnsseckeys, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_TRUSTED_KEYS, NULL, CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_ANCIENT,
NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static const char *fstrm_model_enums[] = { "mpsc", "spsc", NULL };
* Clauses that can be found within the 'options' statement.
*/
static cfg_clausedef_t options_clauses[] = {
- { "answer-cookie", &cfg_type_boolean, 0, NULL },
- { "automatic-interface-scan", &cfg_type_boolean, 0, NULL },
- { "avoid-v4-udp-ports", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "avoid-v6-udp-ports", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "bindkeys-file", &cfg_type_qstring, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "blackhole", &cfg_type_bracketed_aml, 0, NULL },
- { "cookie-algorithm", &cfg_type_cookiealg, 0, NULL },
- { "cookie-secret", &cfg_type_sstring, CFG_CLAUSEFLAG_MULTI, NULL },
- { "coresize", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "datasize", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "deallocate-on-exit", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "directory", &cfg_type_qstring, CFG_CLAUSEFLAG_CHDIR, NULL },
- { "dnsrps-library", &cfg_type_qstring, CFG_CLAUSEFLAG_OBSOLETE, NULL },
+ { CFG_CLAUSE_ANSWER_COOKIE, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_AUTOMATIC_INTERFACE_SCAN, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_AVOID_V4_UDP_PORTS, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_AVOID_V6_UDP_PORTS, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_BINDKEYS_FILE, &cfg_type_qstring, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_BLACKHOLE, &cfg_type_bracketed_aml, 0, NULL },
+ { CFG_CLAUSE_COOKIE_ALGORITHM, &cfg_type_cookiealg, 0, NULL },
+ { CFG_CLAUSE_COOKIE_SECRET, &cfg_type_sstring, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_CORESIZE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_DATASIZE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_DEALLOCATE_ON_EXIT, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_DIRECTORY, &cfg_type_qstring, CFG_CLAUSEFLAG_CHDIR, NULL },
+ { CFG_CLAUSE_DNSRPS_LIBRARY, &cfg_type_qstring, CFG_CLAUSEFLAG_OBSOLETE, NULL },
#ifdef HAVE_DNSTAP
- { "dnstap-output", &cfg_type_dnstapoutput, CFG_CLAUSEFLAG_OPTIONAL,
+ { CFG_CLAUSE_DNSTAP_OUTPUT, &cfg_type_dnstapoutput, CFG_CLAUSEFLAG_OPTIONAL,
NULL },
- { "dnstap-identity", &cfg_type_serverid, CFG_CLAUSEFLAG_OPTIONAL,
+ { CFG_CLAUSE_DNSTAP_IDENTITY, &cfg_type_serverid, CFG_CLAUSEFLAG_OPTIONAL,
NULL },
- { "dnstap-version", &cfg_type_qstringornone, CFG_CLAUSEFLAG_OPTIONAL,
+ { CFG_CLAUSE_DNSTAP_VERSION, &cfg_type_qstringornone, CFG_CLAUSEFLAG_OPTIONAL,
NULL },
#else /* ifdef HAVE_DNSTAP */
- { "dnstap-output", &cfg_type_dnstapoutput, CFG_CLAUSEFLAG_NOTCONFIGURED,
+ { CFG_CLAUSE_DNSTAP_OUTPUT, &cfg_type_dnstapoutput, CFG_CLAUSEFLAG_NOTCONFIGURED,
NULL },
- { "dnstap-identity", &cfg_type_serverid, CFG_CLAUSEFLAG_NOTCONFIGURED,
+ { CFG_CLAUSE_DNSTAP_IDENTITY, &cfg_type_serverid, CFG_CLAUSEFLAG_NOTCONFIGURED,
NULL },
- { "dnstap-version", &cfg_type_qstringornone,
+ { CFG_CLAUSE_DNSTAP_VERSION, &cfg_type_qstringornone,
CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
#endif /* ifdef HAVE_DNSTAP */
- { "dscp", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "dump-file", &cfg_type_qstring, 0, NULL },
- { "fake-iquery", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "files", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "flush-zones-on-shutdown", &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_DSCP, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_DUMP_FILE, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE_FAKE_IQUERY, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_FILES, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_FLUSH_ZONES_ON_SHUTDOWN, &cfg_type_boolean, 0, NULL },
#ifdef HAVE_DNSTAP
- { "fstrm-set-buffer-hint", &cfg_type_uint32, CFG_CLAUSEFLAG_OPTIONAL,
+ { CFG_CLAUSE_FSTRM_SET_BUFFER_HINT, &cfg_type_uint32, CFG_CLAUSEFLAG_OPTIONAL,
NULL },
- { "fstrm-set-flush-timeout", &cfg_type_uint32, CFG_CLAUSEFLAG_OPTIONAL,
+ { CFG_CLAUSE_FSTRM_SET_FLUSH_TIMEOUT, &cfg_type_uint32, CFG_CLAUSEFLAG_OPTIONAL,
NULL },
- { "fstrm-set-input-queue-size", &cfg_type_uint32,
+ { CFG_CLAUSE_FSTRM_SET_INPUT_QUEUE_SIZE, &cfg_type_uint32,
CFG_CLAUSEFLAG_OPTIONAL, NULL },
- { "fstrm-set-output-notify-threshold", &cfg_type_uint32,
+ { CFG_CLAUSE_FSTRM_SET_OUTPUT_NOTIFY_THRESHOLD, &cfg_type_uint32,
CFG_CLAUSEFLAG_OPTIONAL, NULL },
- { "fstrm-set-output-queue-model", &cfg_type_fstrm_model,
+ { CFG_CLAUSE_FSTRM_SET_OUTPUT_QUEUE_MODEL, &cfg_type_fstrm_model,
CFG_CLAUSEFLAG_OPTIONAL, NULL },
- { "fstrm-set-output-queue-size", &cfg_type_uint32,
+ { CFG_CLAUSE_FSTRM_SET_OUTPUT_QUEUE_SIZE, &cfg_type_uint32,
CFG_CLAUSEFLAG_OPTIONAL, NULL },
- { "fstrm-set-reopen-interval", &cfg_type_duration,
+ { CFG_CLAUSE_FSTRM_SET_REOPEN_INTERVAL, &cfg_type_duration,
CFG_CLAUSEFLAG_OPTIONAL, NULL },
#else /* ifdef HAVE_DNSTAP */
- { "fstrm-set-buffer-hint", &cfg_type_uint32,
+ { CFG_CLAUSE_FSTRM_SET_BUFFER_HINT, &cfg_type_uint32,
CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
- { "fstrm-set-flush-timeout", &cfg_type_uint32,
+ { CFG_CLAUSE_FSTRM_SET_FLUSH_TIMEOUT, &cfg_type_uint32,
CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
- { "fstrm-set-input-queue-size", &cfg_type_uint32,
+ { CFG_CLAUSE_FSTRM_SET_INPUT_QUEUE_SIZE, &cfg_type_uint32,
CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
- { "fstrm-set-output-notify-threshold", &cfg_type_uint32,
+ { CFG_CLAUSE_FSTRM_SET_OUTPUT_NOTIFY_THRESHOLD, &cfg_type_uint32,
CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
- { "fstrm-set-output-queue-model", &cfg_type_fstrm_model,
+ { CFG_CLAUSE_FSTRM_SET_OUTPUT_QUEUE_MODEL, &cfg_type_fstrm_model,
CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
- { "fstrm-set-output-queue-size", &cfg_type_uint32,
+ { CFG_CLAUSE_FSTRM_SET_OUTPUT_QUEUE_SIZE, &cfg_type_uint32,
CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
- { "fstrm-set-reopen-interval", &cfg_type_duration,
+ { CFG_CLAUSE_FSTRM_SET_REOPEN_INTERVAL, &cfg_type_duration,
CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
#endif /* HAVE_DNSTAP */
#if defined(HAVE_GEOIP2)
- { "geoip-directory", &cfg_type_qstringornone, 0, NULL },
+ { CFG_CLAUSE_GEOIP_DIRECTORY, &cfg_type_qstringornone, 0, NULL },
#else /* if defined(HAVE_GEOIP2) */
- { "geoip-directory", &cfg_type_qstringornone,
+ { CFG_CLAUSE_GEOIP_DIRECTORY, &cfg_type_qstringornone,
CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
#endif /* HAVE_GEOIP2 */
- { "geoip-use-ecs", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "has-old-clients", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "heartbeat-interval", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "host-statistics", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "host-statistics-max", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "hostname", &cfg_type_qstringornone, 0, NULL },
- { "interface-interval", &cfg_type_duration, 0, NULL },
- { "keep-response-order", &cfg_type_bracketed_aml,
+ { CFG_CLAUSE_GEOIP_USE_ECS, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_HAS_OLD_CLIENTS, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_HEARTBEAT_INTERVAL, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_HOST_STATISTICS, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_HOST_STATISTICS_MAX, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_HOSTNAME, &cfg_type_qstringornone, 0, NULL },
+ { CFG_CLAUSE_INTERFACE_INTERVAL, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_KEEP_RESPONSE_ORDER, &cfg_type_bracketed_aml,
CFG_CLAUSEFLAG_OBSOLETE, NULL },
- { "listen-on", &cfg_type_listenon, CFG_CLAUSEFLAG_MULTI, NULL },
- { "listen-on-v6", &cfg_type_listenon, CFG_CLAUSEFLAG_MULTI, NULL },
- { "lock-file", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "managed-keys-directory", &cfg_type_qstring, 0, NULL },
- { "match-mapped-addresses", &cfg_type_boolean, 0, NULL },
- { "max-rsa-exponent-size", &cfg_type_uint32, 0, NULL },
- { "memstatistics", &cfg_type_boolean, 0, NULL },
- { "memstatistics-file", &cfg_type_qstring, 0, NULL },
- { "multiple-cnames", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "named-xfer", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "notify-rate", &cfg_type_uint32, 0, NULL },
- { "pid-file", &cfg_type_qstringornone, 0, NULL },
- { "port", &cfg_type_uint32, 0, NULL },
- { "tls-port", &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_LISTEN_ON, &cfg_type_listenon, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_LISTEN_ON_V6, &cfg_type_listenon, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_LOCK_FILE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_MANAGED_KEYS_DIRECTORY, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE_MATCH_MAPPED_ADDRESSES, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_MAX_RSA_EXPONENT_SIZE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_MEMSTATISTICS, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_MEMSTATISTICS_FILE, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE_MULTIPLE_CNAMES, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_NAMED_XFER, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_NOTIFY_RATE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_PID_FILE, &cfg_type_qstringornone, 0, NULL },
+ { CFG_CLAUSE_PORT, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TLS_PORT, &cfg_type_uint32, 0, NULL },
#if HAVE_LIBNGHTTP2
- { "http-port", &cfg_type_uint32, CFG_CLAUSEFLAG_OPTIONAL, NULL },
- { "http-listener-clients", &cfg_type_uint32, CFG_CLAUSEFLAG_OPTIONAL,
+ { CFG_CLAUSE_HTTP_PORT, &cfg_type_uint32, CFG_CLAUSEFLAG_OPTIONAL, NULL },
+ { CFG_CLAUSE_HTTP_LISTENER_CLIENTS, &cfg_type_uint32, CFG_CLAUSEFLAG_OPTIONAL,
NULL },
- { "http-streams-per-connection", &cfg_type_uint32,
+ { CFG_CLAUSE_HTTP_STREAMS_PER_CONNECTION, &cfg_type_uint32,
CFG_CLAUSEFLAG_OPTIONAL, NULL },
- { "https-port", &cfg_type_uint32, CFG_CLAUSEFLAG_OPTIONAL, NULL },
+ { CFG_CLAUSE_HTTPS_PORT, &cfg_type_uint32, CFG_CLAUSEFLAG_OPTIONAL, NULL },
#else
- { "http-port", &cfg_type_uint32, CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
- { "http-listener-clients", &cfg_type_uint32,
+ { CFG_CLAUSE_HTTP_PORT, &cfg_type_uint32, CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
+ { CFG_CLAUSE_HTTP_LISTENER_CLIENTS, &cfg_type_uint32,
CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
- { "http-streams-per-connection", &cfg_type_uint32,
+ { CFG_CLAUSE_HTTP_STREAMS_PER_CONNECTION, &cfg_type_uint32,
CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
- { "https-port", &cfg_type_uint32, CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
+ { CFG_CLAUSE_HTTPS_PORT, &cfg_type_uint32, CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
#endif
- { "querylog", &cfg_type_boolean, 0, NULL },
- { "random-device", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "recursing-file", &cfg_type_qstring, 0, NULL },
- { "recursive-clients", &cfg_type_uint32, 0, NULL },
- { "reuseport", &cfg_type_boolean, 0, NULL },
- { "reserved-sockets", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "responselog", &cfg_type_boolean, 0, NULL },
- { "secroots-file", &cfg_type_qstring, 0, NULL },
- { "serial-queries", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "serial-query-rate", &cfg_type_uint32, 0, NULL },
- { "server-id", &cfg_type_serverid, 0, NULL },
- { "session-keyalg", &cfg_type_astring, 0, NULL },
- { "session-keyfile", &cfg_type_qstringornone, 0, NULL },
- { "session-keyname", &cfg_type_astring, 0, NULL },
- { "sig0checks-quota", &cfg_type_uint32, CFG_CLAUSEFLAG_EXPERIMENTAL,
+ { CFG_CLAUSE_QUERYLOG, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_RANDOM_DEVICE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_RECURSING_FILE, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE_RECURSIVE_CLIENTS, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_REUSEPORT, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_RESERVED_SOCKETS, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_RESPONSELOG, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_SECROOTS_FILE, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE_SERIAL_QUERIES, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_SERIAL_QUERY_RATE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_SERVER_ID, &cfg_type_serverid, 0, NULL },
+ { CFG_CLAUSE_SESSION_KEYALG, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_SESSION_KEYFILE, &cfg_type_qstringornone, 0, NULL },
+ { CFG_CLAUSE_SESSION_KEYNAME, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_SIG0CHECKS_QUOTA, &cfg_type_uint32, CFG_CLAUSEFLAG_EXPERIMENTAL,
NULL },
- { "sig0checks-quota-exempt", &cfg_type_bracketed_aml,
+ { CFG_CLAUSE_SIG0CHECKS_QUOTA_EXEMPT, &cfg_type_bracketed_aml,
CFG_CLAUSEFLAG_EXPERIMENTAL, NULL },
- { "sit-secret", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "stacksize", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "startup-notify-rate", &cfg_type_uint32, 0, NULL },
- { "statistics-file", &cfg_type_qstring, 0, NULL },
- { "statistics-interval", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "tcp-advertised-timeout", &cfg_type_uint32, 0, NULL },
- { "tcp-clients", &cfg_type_uint32, 0, NULL },
- { "tcp-idle-timeout", &cfg_type_uint32, 0, NULL },
- { "tcp-initial-timeout", &cfg_type_uint32, 0, NULL },
- { "tcp-keepalive-timeout", &cfg_type_uint32, 0, NULL },
- { "tcp-listen-queue", &cfg_type_uint32, 0, NULL },
- { "tcp-primaries-timeout", &cfg_type_uint32, 0, NULL },
- { "tcp-receive-buffer", &cfg_type_uint32, 0, NULL },
- { "tcp-send-buffer", &cfg_type_uint32, 0, NULL },
- { "tkey-dhkey", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "tkey-domain", &cfg_type_qstring, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "tkey-gssapi-credential", &cfg_type_qstring, CFG_CLAUSEFLAG_ANCIENT,
+ { CFG_CLAUSE_SIT_SECRET, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_STACKSIZE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_STARTUP_NOTIFY_RATE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_STATISTICS_FILE, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE_STATISTICS_INTERVAL, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_TCP_ADVERTISED_TIMEOUT, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TCP_CLIENTS, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TCP_IDLE_TIMEOUT, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TCP_INITIAL_TIMEOUT, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TCP_KEEPALIVE_TIMEOUT, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TCP_LISTEN_QUEUE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TCP_PRIMARIES_TIMEOUT, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TCP_RECEIVE_BUFFER, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TCP_SEND_BUFFER, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TKEY_DHKEY, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_TKEY_DOMAIN, &cfg_type_qstring, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_TKEY_GSSAPI_CREDENTIAL, &cfg_type_qstring, CFG_CLAUSEFLAG_ANCIENT,
NULL },
- { "tkey-gssapi-keytab", &cfg_type_qstring, 0, NULL },
- { "transfer-message-size", &cfg_type_uint32, 0, NULL },
- { "transfers-in", &cfg_type_uint32, 0, NULL },
- { "transfers-out", &cfg_type_uint32, 0, NULL },
- { "transfers-per-ns", &cfg_type_uint32, 0, NULL },
- { "treat-cr-as-space", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "udp-receive-buffer", &cfg_type_uint32, 0, NULL },
- { "udp-send-buffer", &cfg_type_uint32, 0, NULL },
- { "update-quota", &cfg_type_uint32, 0, NULL },
- { "use-id-pool", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "use-ixfr", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "use-v4-udp-ports", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "use-v6-udp-ports", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "version", &cfg_type_qstringornone, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_TKEY_GSSAPI_KEYTAB, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE_TRANSFER_MESSAGE_SIZE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TRANSFERS_IN, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TRANSFERS_OUT, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TRANSFERS_PER_NS, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_TREAT_CR_AS_SPACE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_UDP_RECEIVE_BUFFER, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_UDP_SEND_BUFFER, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_UPDATE_QUOTA, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_USE_ID_POOL, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_USE_IXFR, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_USE_V4_UDP_PORTS, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_USE_V6_UDP_PORTS, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_VERSION, &cfg_type_qstringornone, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_type_t cfg_type_namelist = { "namelist",
* rate-limit
*/
static cfg_clausedef_t rrl_clauses[] = {
- { "all-per-second", &cfg_type_uint32, 0, NULL },
- { "errors-per-second", &cfg_type_uint32, 0, NULL },
- { "exempt-clients", &cfg_type_bracketed_aml, 0, NULL },
- { "ipv4-prefix-length", &cfg_type_uint32, 0, NULL },
- { "ipv6-prefix-length", &cfg_type_uint32, 0, NULL },
- { "log-only", &cfg_type_boolean, 0, NULL },
- { "max-table-size", &cfg_type_uint32, 0, NULL },
- { "min-table-size", &cfg_type_uint32, 0, NULL },
- { "nodata-per-second", &cfg_type_uint32, 0, NULL },
- { "nxdomains-per-second", &cfg_type_uint32, 0, NULL },
- { "qps-scale", &cfg_type_uint32, 0, NULL },
- { "referrals-per-second", &cfg_type_uint32, 0, NULL },
- { "responses-per-second", &cfg_type_uint32, 0, NULL },
- { "slip", &cfg_type_uint32, 0, NULL },
- { "window", &cfg_type_uint32, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_ALL_PER_SECOND, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_ERRORS_PER_SECOND, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_EXEMPT_CLIENTS, &cfg_type_bracketed_aml, 0, NULL },
+ { CFG_CLAUSE_IPV4_PREFIX_LENGTH, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_IPV6_PREFIX_LENGTH, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_LOG_ONLY, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_MAX_TABLE_SIZE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_MIN_TABLE_SIZE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_NODATA_PER_SECOND, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_NXDOMAINS_PER_SECOND, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_QPS_SCALE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_REFERRALS_PER_SECOND, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_RESPONSES_PER_SECOND, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_SLIP, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_WINDOW, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *rrl_clausesets[] = { rrl_clauses, NULL };
* DNS64.
*/
static cfg_clausedef_t dns64_clauses[] = {
- { "break-dnssec", &cfg_type_boolean, 0, NULL },
- { "clients", &cfg_type_bracketed_aml, 0, NULL },
- { "exclude", &cfg_type_bracketed_aml, 0, NULL },
- { "mapped", &cfg_type_bracketed_aml, 0, NULL },
- { "recursive-only", &cfg_type_boolean, 0, NULL },
- { "suffix", &cfg_type_netaddr6, 0, NULL },
- { NULL, NULL, 0, NULL },
+ { CFG_CLAUSE_BREAK_DNSSEC, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_CLIENTS, &cfg_type_bracketed_aml, 0, NULL },
+ { CFG_CLAUSE_EXCLUDE, &cfg_type_bracketed_aml, 0, NULL },
+ { CFG_CLAUSE_MAPPED, &cfg_type_bracketed_aml, 0, NULL },
+ { CFG_CLAUSE_RECURSIVE_ONLY, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_SUFFIX, &cfg_type_netaddr6, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL },
};
static cfg_clausedef_t *dns64_clausesets[] = { dns64_clauses, NULL };
*/
static cfg_clausedef_t view_clauses[] = {
- { "acache-cleaning-interval", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "acache-enable", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "additional-from-auth", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "additional-from-cache", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "allow-new-zones", &cfg_type_boolean, 0, NULL },
- { "allow-proxy", &cfg_type_bracketed_aml, CFG_CLAUSEFLAG_EXPERIMENTAL,
+ { CFG_CLAUSE_ACACHE_CLEANING_INTERVAL, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_ACACHE_ENABLE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_ADDITIONAL_FROM_AUTH, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_ADDITIONAL_FROM_CACHE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_ALLOW_NEW_ZONES, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_ALLOW_PROXY, &cfg_type_bracketed_aml, CFG_CLAUSEFLAG_EXPERIMENTAL,
NULL },
- { "allow-proxy-on", &cfg_type_bracketed_aml,
+ { CFG_CLAUSE_ALLOW_PROXY_ON, &cfg_type_bracketed_aml,
CFG_CLAUSEFLAG_EXPERIMENTAL, NULL },
- { "allow-query-cache", &cfg_type_bracketed_aml, 0, NULL },
- { "allow-query-cache-on", &cfg_type_bracketed_aml, 0, NULL },
- { "allow-recursion", &cfg_type_bracketed_aml, 0, NULL },
- { "allow-recursion-on", &cfg_type_bracketed_aml, 0, NULL },
- { "allow-v6-synthesis", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "attach-cache", &cfg_type_astring, 0, NULL },
- { "auth-nxdomain", &cfg_type_boolean, 0, NULL },
- { "cache-file", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "catalog-zones", &cfg_type_catz, 0, NULL },
- { "check-names", &cfg_type_checknames, CFG_CLAUSEFLAG_MULTI,
+ { CFG_CLAUSE_ALLOW_QUERY_CACHE, &cfg_type_bracketed_aml, 0, NULL },
+ { CFG_CLAUSE_ALLOW_QUERY_CACHE_ON, &cfg_type_bracketed_aml, 0, NULL },
+ { CFG_CLAUSE_ALLOW_RECURSION, &cfg_type_bracketed_aml, 0, NULL },
+ { CFG_CLAUSE_ALLOW_RECURSION_ON, &cfg_type_bracketed_aml, 0, NULL },
+ { CFG_CLAUSE_ALLOW_V6_SYNTHESIS, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_ATTACH_CACHE, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_AUTH_NXDOMAIN, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_CACHE_FILE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_CATALOG_ZONES, &cfg_type_catz, 0, NULL },
+ { CFG_CLAUSE_CHECK_NAMES, &cfg_type_checknames, CFG_CLAUSEFLAG_MULTI,
checknames_merge },
- { "cleaning-interval", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "clients-per-query", &cfg_type_uint32, 0, NULL },
- { "deny-answer-addresses", &cfg_type_denyaddresses, 0, NULL },
- { "deny-answer-aliases", &cfg_type_denyaliases, 0, NULL },
- { "disable-algorithms", &cfg_type_disablealgorithm,
+ { CFG_CLAUSE_CLEANING_INTERVAL, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_CLIENTS_PER_QUERY, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_DENY_ANSWER_ADDRESSES, &cfg_type_denyaddresses, 0, NULL },
+ { CFG_CLAUSE_DENY_ANSWER_ALIASES, &cfg_type_denyaliases, 0, NULL },
+ { CFG_CLAUSE_DISABLE_ALGORITHMS, &cfg_type_disablealgorithm,
CFG_CLAUSEFLAG_MULTI, NULL },
- { "disable-ds-digests", &cfg_type_disabledsdigest, CFG_CLAUSEFLAG_MULTI,
+ { CFG_CLAUSE_DISABLE_DS_DIGESTS, &cfg_type_disabledsdigest, CFG_CLAUSEFLAG_MULTI,
NULL },
- { "disable-empty-zone", &cfg_type_astring, CFG_CLAUSEFLAG_MULTI, NULL },
- { "dns64", &cfg_type_dns64, CFG_CLAUSEFLAG_MULTI, NULL },
- { "dns64-contact", &cfg_type_astring, 0, NULL },
- { "dns64-server", &cfg_type_astring, 0, NULL },
- { "dnsrps-enable", &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE, NULL },
- { "dnsrps-options", &cfg_type_bracketed_text, CFG_CLAUSEFLAG_OBSOLETE,
+ { CFG_CLAUSE_DISABLE_EMPTY_ZONE, &cfg_type_astring, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_DNS64, &cfg_type_dns64, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_DNS64_CONTACT, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_DNS64_SERVER, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_DNSRPS_ENABLE, &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE, NULL },
+ { CFG_CLAUSE_DNSRPS_OPTIONS, &cfg_type_bracketed_text, CFG_CLAUSEFLAG_OBSOLETE,
NULL },
- { "dnssec-accept-expired", &cfg_type_boolean, 0, NULL },
- { "dnssec-enable", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "dnssec-lookaside", NULL,
+ { CFG_CLAUSE_DNSSEC_ACCEPT_EXPIRED, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_DNSSEC_ENABLE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_DNSSEC_LOOKASIDE, NULL,
CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "dnssec-must-be-secure", NULL,
+ { CFG_CLAUSE_DNSSEC_MUST_BE_SECURE, NULL,
CFG_CLAUSEFLAG_MULTI | CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "dnssec-validation", &cfg_type_boolorauto, 0, NULL },
+ { CFG_CLAUSE_DNSSEC_VALIDATION, &cfg_type_boolorauto, 0, NULL },
#ifdef HAVE_DNSTAP
- { "dnstap", &cfg_type_dnstap, CFG_CLAUSEFLAG_OPTIONAL, NULL },
+ { CFG_CLAUSE_DNSTAP, &cfg_type_dnstap, CFG_CLAUSEFLAG_OPTIONAL, NULL },
#else /* ifdef HAVE_DNSTAP */
- { "dnstap", &cfg_type_dnstap, CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
+ { CFG_CLAUSE_DNSTAP, &cfg_type_dnstap, CFG_CLAUSEFLAG_NOTCONFIGURED, NULL },
#endif /* HAVE_DNSTAP */
- { "dual-stack-servers", &cfg_type_nameportiplist, 0, NULL },
- { "edns-udp-size", &cfg_type_uint32, 0, NULL },
- { "empty-contact", &cfg_type_astring, 0, NULL },
- { "empty-server", &cfg_type_astring, 0, NULL },
- { "empty-zones-enable", &cfg_type_boolean, 0, NULL },
- { "fetch-glue", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "fetch-quota-params", &cfg_type_fetchquota, 0, NULL },
- { "fetches-per-server", &cfg_type_fetchesper, 0, NULL },
- { "fetches-per-zone", &cfg_type_fetchesper, 0, NULL },
- { "filter-aaaa", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "filter-aaaa-on-v4", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "filter-aaaa-on-v6", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "glue-cache", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "ipv4only-enable", &cfg_type_boolean, 0, NULL },
- { "ipv4only-contact", &cfg_type_astring, 0, NULL },
- { "ipv4only-server", &cfg_type_astring, 0, NULL },
- { "ixfr-from-differences", &cfg_type_ixfrdifftype, 0, NULL },
- { "lame-ttl", &cfg_type_duration, 0, NULL },
- { "lmdb-mapsize", &cfg_type_sizeval, CFG_CLAUSEFLAG_OPTIONAL, NULL },
- { "max-acache-size", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "max-cache-size", &cfg_type_maxcachesize, 0, NULL },
- { "max-cache-ttl", &cfg_type_duration, 0, NULL },
- { "max-clients-per-query", &cfg_type_uint32, 0, NULL },
- { "max-delegation-servers", &cfg_type_uint32,
+ { CFG_CLAUSE_DUAL_STACK_SERVERS, &cfg_type_nameportiplist, 0, NULL },
+ { CFG_CLAUSE_EDNS_UDP_SIZE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_EMPTY_CONTACT, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_EMPTY_SERVER, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_EMPTY_ZONES_ENABLE, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_FETCH_GLUE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_FETCH_QUOTA_PARAMS, &cfg_type_fetchquota, 0, NULL },
+ { CFG_CLAUSE_FETCHES_PER_SERVER, &cfg_type_fetchesper, 0, NULL },
+ { CFG_CLAUSE_FETCHES_PER_ZONE, &cfg_type_fetchesper, 0, NULL },
+ { CFG_CLAUSE_FILTER_AAAA, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_FILTER_AAAA_ON_V4, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_FILTER_AAAA_ON_V6, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_GLUE_CACHE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_IPV4ONLY_ENABLE, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_IPV4ONLY_CONTACT, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_IPV4ONLY_SERVER, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_IXFR_FROM_DIFFERENCES, &cfg_type_ixfrdifftype, 0, NULL },
+ { CFG_CLAUSE_LAME_TTL, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_LMDB_MAPSIZE, &cfg_type_sizeval, CFG_CLAUSEFLAG_OPTIONAL, NULL },
+ { CFG_CLAUSE_MAX_ACACHE_SIZE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_MAX_CACHE_SIZE, &cfg_type_maxcachesize, 0, NULL },
+ { CFG_CLAUSE_MAX_CACHE_TTL, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_MAX_CLIENTS_PER_QUERY, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_MAX_DELEGATION_SERVERS, &cfg_type_uint32,
CFG_CLAUSEFLAG_EXPERIMENTAL, NULL },
- { "max-ncache-ttl", &cfg_type_duration, 0, NULL },
- { "max-recursion-depth", &cfg_type_uint32, 0, NULL },
- { "max-recursion-queries", &cfg_type_uint32, 0, NULL },
- { "max-query-count", &cfg_type_uint32, 0, NULL },
- { "max-query-restarts", &cfg_type_uint32, 0, NULL },
- { "max-stale-ttl", &cfg_type_duration, 0, NULL },
- { "max-udp-size", &cfg_type_uint32, 0, NULL },
- { "max-validations-per-fetch", &cfg_type_uint32,
+ { CFG_CLAUSE_MAX_NCACHE_TTL, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_MAX_RECURSION_DEPTH, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_MAX_RECURSION_QUERIES, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_MAX_QUERY_COUNT, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_MAX_QUERY_RESTARTS, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_MAX_STALE_TTL, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_MAX_UDP_SIZE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_MAX_VALIDATIONS_PER_FETCH, &cfg_type_uint32,
CFG_CLAUSEFLAG_EXPERIMENTAL, NULL },
- { "max-validation-failures-per-fetch", &cfg_type_uint32,
+ { CFG_CLAUSE_MAX_VALIDATION_FAILURES_PER_FETCH, &cfg_type_uint32,
CFG_CLAUSEFLAG_EXPERIMENTAL, NULL },
- { "message-compression", &cfg_type_boolean, 0, NULL },
- { "min-cache-ttl", &cfg_type_duration, 0, NULL },
- { "min-ncache-ttl", &cfg_type_duration, 0, NULL },
- { "min-roots", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "minimal-any", &cfg_type_boolean, 0, NULL },
- { "minimal-responses", &cfg_type_minimal, 0, NULL },
- { "new-zones-directory", &cfg_type_qstring, 0, NULL },
- { "no-case-compress", &cfg_type_bracketed_aml, 0, NULL },
- { "nocookie-udp-size", &cfg_type_uint32, 0, NULL },
- { "nosit-udp-size", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "nta-lifetime", &cfg_type_duration, 0, NULL },
- { "nta-recheck", &cfg_type_duration, 0, NULL },
- { "nxdomain-redirect", &cfg_type_astring, 0, NULL },
- { "preferred-glue", &cfg_type_astring, 0, NULL },
- { "prefetch", &cfg_type_prefetch, 0, prefetch_merge },
- { "provide-ixfr", &cfg_type_boolean, 0, NULL },
- { "qname-minimization", &cfg_type_qminmethod, 0, NULL },
+ { CFG_CLAUSE_MESSAGE_COMPRESSION, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_MIN_CACHE_TTL, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_MIN_NCACHE_TTL, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_MIN_ROOTS, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_MINIMAL_ANY, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_MINIMAL_RESPONSES, &cfg_type_minimal, 0, NULL },
+ { CFG_CLAUSE_NEW_ZONES_DIRECTORY, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE_NO_CASE_COMPRESS, &cfg_type_bracketed_aml, 0, NULL },
+ { CFG_CLAUSE_NOCOOKIE_UDP_SIZE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_NOSIT_UDP_SIZE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_NTA_LIFETIME, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_NTA_RECHECK, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_NXDOMAIN_REDIRECT, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_PREFERRED_GLUE, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_PREFETCH, &cfg_type_prefetch, 0, prefetch_merge },
+ { CFG_CLAUSE_PROVIDE_IXFR, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_QNAME_MINIMIZATION, &cfg_type_qminmethod, 0, NULL },
/*
* Note that the query-source option syntax is different
* from the other -source options.
*/
- { "query-source", &cfg_type_querysource4, 0, NULL },
- { "query-source-v6", &cfg_type_querysource6, 0, NULL },
- { "queryport-pool-ports", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "queryport-pool-updateinterval", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "rate-limit", &cfg_type_rrl, 0, NULL },
- { "recursion", &cfg_type_boolean, 0, NULL },
- { "request-nsid", &cfg_type_boolean, 0, NULL },
- { "request-sit", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "request-zoneversion", &cfg_type_boolean, 0, NULL },
- { "require-server-cookie", &cfg_type_boolean, 0, NULL },
- { "resolver-nonbackoff-tries", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "resolver-query-timeout", &cfg_type_uint32, 0, NULL },
- { "resolver-retry-interval", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "response-padding", &cfg_type_resppadding, 0, NULL },
- { "response-policy", &cfg_type_rpz, 0, NULL },
- { "rfc2308-type1", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "root-delegation-only", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "root-key-sentinel", &cfg_type_boolean, 0, NULL },
- { "rrset-order", &cfg_type_rrsetorder, 0, NULL },
- { "send-cookie", &cfg_type_boolean, 0, NULL },
- { "servfail-ttl", &cfg_type_duration, 0, NULL },
- { "sig0key-checks-limit", &cfg_type_uint32, 0, NULL },
- { "sig0message-checks-limit", &cfg_type_uint32, 0, NULL },
- { "sortlist", &cfg_type_bracketed_aml, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "stale-answer-enable", &cfg_type_boolean, 0, NULL },
- { "stale-answer-client-timeout", &cfg_type_staleanswerclienttimeout, 0,
+ { CFG_CLAUSE_QUERY_SOURCE, &cfg_type_querysource4, 0, NULL },
+ { CFG_CLAUSE_QUERY_SOURCE_V6, &cfg_type_querysource6, 0, NULL },
+ { CFG_CLAUSE_QUERYPORT_POOL_PORTS, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_QUERYPORT_POOL_UPDATEINTERVAL, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_RATE_LIMIT, &cfg_type_rrl, 0, NULL },
+ { CFG_CLAUSE_RECURSION, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_REQUEST_NSID, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_REQUEST_SIT, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_REQUEST_ZONEVERSION, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_REQUIRE_SERVER_COOKIE, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_RESOLVER_NONBACKOFF_TRIES, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_RESOLVER_QUERY_TIMEOUT, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_RESOLVER_RETRY_INTERVAL, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_RESPONSE_PADDING, &cfg_type_resppadding, 0, NULL },
+ { CFG_CLAUSE_RESPONSE_POLICY, &cfg_type_rpz, 0, NULL },
+ { CFG_CLAUSE_RFC2308_TYPE1, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_ROOT_DELEGATION_ONLY, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_ROOT_KEY_SENTINEL, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_RRSET_ORDER, &cfg_type_rrsetorder, 0, NULL },
+ { CFG_CLAUSE_SEND_COOKIE, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_SERVFAIL_TTL, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_SIG0KEY_CHECKS_LIMIT, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_SIG0MESSAGE_CHECKS_LIMIT, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_SORTLIST, &cfg_type_bracketed_aml, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_STALE_ANSWER_ENABLE, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_STALE_ANSWER_CLIENT_TIMEOUT, &cfg_type_staleanswerclienttimeout, 0,
NULL },
- { "stale-answer-ttl", &cfg_type_duration, 0, NULL },
- { "stale-cache-enable", &cfg_type_boolean, 0, NULL },
- { "stale-refresh-time", &cfg_type_duration, 0, NULL },
- { "suppress-initial-notify", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "synth-from-dnssec", &cfg_type_boolean, 0, NULL },
- { "topology", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "transfer-format", &cfg_type_transferformat, 0, NULL },
- { "trust-anchor-telemetry", &cfg_type_boolean, 0, NULL },
- { "resolver-use-dns64", &cfg_type_boolean, 0, NULL },
- { "use-queryport-pool", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "validate-except", &cfg_type_namelist, 0, NULL },
- { "v6-bias", &cfg_type_uint32, 0, NULL },
- { "zero-no-soa-ttl-cache", &cfg_type_boolean, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_STALE_ANSWER_TTL, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_STALE_CACHE_ENABLE, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_STALE_REFRESH_TIME, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_SUPPRESS_INITIAL_NOTIFY, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_SYNTH_FROM_DNSSEC, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_TOPOLOGY, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_TRANSFER_FORMAT, &cfg_type_transferformat, 0, NULL },
+ { CFG_CLAUSE_TRUST_ANCHOR_TELEMETRY, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_RESOLVER_USE_DNS64, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_USE_QUERYPORT_POOL, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_VALIDATE_EXCEPT, &cfg_type_namelist, 0, NULL },
+ { CFG_CLAUSE_V6_BIAS, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_ZERO_NO_SOA_TTL_CACHE, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
/*%
* Clauses that can be found within the 'view' statement only.
*/
static cfg_clausedef_t view_only_clauses[] = {
- { "match-clients", &cfg_type_bracketed_aml, 0, NULL },
- { "match-destinations", &cfg_type_bracketed_aml, 0, NULL },
- { "match-recursive-only", &cfg_type_boolean, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_MATCH_CLIENTS, &cfg_type_bracketed_aml, 0, NULL },
+ { CFG_CLAUSE_MATCH_DESTINATIONS, &cfg_type_bracketed_aml, 0, NULL },
+ { CFG_CLAUSE_MATCH_RECURSIVE_ONLY, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
/*%
* Clauses that can be found in a 'dnssec-policy' statement.
*/
static cfg_clausedef_t dnssecpolicy_clauses[] = {
- { "cdnskey", &cfg_type_boolean, 0, NULL },
- { "cds-digest-types", &cfg_type_algorithmlist, 0, NULL },
- { "dnskey-ttl", &cfg_type_duration, 0, NULL },
- { "inline-signing", &cfg_type_boolean, 0, NULL },
- { "keys", &cfg_type_kaspkeys, 0, NULL },
- { "manual-mode", &cfg_type_boolean, 0, NULL },
- { "max-zone-ttl", &cfg_type_duration, 0, NULL },
- { "nsec3param", &cfg_type_nsec3, 0, NULL },
- { "offline-ksk", &cfg_type_boolean, 0, NULL },
- { "parent-ds-ttl", &cfg_type_duration, 0, NULL },
- { "parent-propagation-delay", &cfg_type_duration, 0, NULL },
- { "parent-registration-delay", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "publish-safety", &cfg_type_duration, 0, NULL },
- { "purge-keys", &cfg_type_duration, 0, NULL },
- { "retire-safety", &cfg_type_duration, 0, NULL },
- { "signatures-jitter", &cfg_type_duration, 0, NULL },
- { "signatures-refresh", &cfg_type_duration, 0, NULL },
- { "signatures-validity", &cfg_type_duration, 0, NULL },
- { "signatures-validity-dnskey", &cfg_type_duration, 0, NULL },
- { "zone-propagation-delay", &cfg_type_duration, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_CDNSKEY, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_CDS_DIGEST_TYPES, &cfg_type_algorithmlist, 0, NULL },
+ { CFG_CLAUSE_DNSKEY_TTL, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_INLINE_SIGNING, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_KEYS, &cfg_type_kaspkeys, 0, NULL },
+ { CFG_CLAUSE_MANUAL_MODE, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_MAX_ZONE_TTL, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_NSEC3PARAM, &cfg_type_nsec3, 0, NULL },
+ { CFG_CLAUSE_OFFLINE_KSK, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_PARENT_DS_TTL, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_PARENT_PROPAGATION_DELAY, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_PARENT_REGISTRATION_DELAY, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_PUBLISH_SAFETY, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_PURGE_KEYS, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_RETIRE_SAFETY, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_SIGNATURES_JITTER, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_SIGNATURES_REFRESH, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_SIGNATURES_VALIDITY, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_SIGNATURES_VALIDITY_DNSKEY, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE_ZONE_PROPAGATION_DELAY, &cfg_type_duration, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
/*
* Example: allow-transfer port 853 protocol tls { ... };
*/
static cfg_clausedef_t zone_clauses[] = {
- { "allow-notify", &cfg_type_bracketed_aml,
+ { CFG_CLAUSE_ALLOW_NOTIFY, &cfg_type_bracketed_aml,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "allow-query", &cfg_type_bracketed_aml,
+ { CFG_CLAUSE_ALLOW_QUERY, &cfg_type_bracketed_aml,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_ZONE_STUB | CFG_ZONE_REDIRECT | CFG_ZONE_STATICSTUB,
NULL },
- { "allow-query-on", &cfg_type_bracketed_aml,
+ { CFG_CLAUSE_ALLOW_QUERY_ON, &cfg_type_bracketed_aml,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_ZONE_STUB | CFG_ZONE_REDIRECT | CFG_ZONE_STATICSTUB,
NULL },
- { "allow-transfer", &cfg_type_transport_acl,
+ { CFG_CLAUSE_ALLOW_TRANSFER, &cfg_type_transport_acl,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "allow-update", &cfg_type_bracketed_aml, CFG_ZONE_PRIMARY, NULL },
- { "allow-update-forwarding", &cfg_type_bracketed_aml,
+ { CFG_CLAUSE_ALLOW_UPDATE, &cfg_type_bracketed_aml, CFG_ZONE_PRIMARY, NULL },
+ { CFG_CLAUSE_ALLOW_UPDATE_FORWARDING, &cfg_type_bracketed_aml,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "also-notify", &cfg_type_namesockaddrkeylist,
+ { CFG_CLAUSE_ALSO_NOTIFY, &cfg_type_namesockaddrkeylist,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "alt-transfer-source", NULL,
+ { CFG_CLAUSE_ALT_TRANSFER_SOURCE, NULL,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_CLAUSEFLAG_ANCIENT,
NULL },
- { "alt-transfer-source-v6", NULL,
+ { CFG_CLAUSE_ALT_TRANSFER_SOURCE_V6, NULL,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_CLAUSEFLAG_ANCIENT,
NULL },
- { "auto-dnssec", NULL,
+ { CFG_CLAUSE_AUTO_DNSSEC, NULL,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_CLAUSEFLAG_ANCIENT,
NULL },
- { "check-dup-records", &cfg_type_checkmode, CFG_ZONE_PRIMARY, NULL },
- { "check-integrity", &cfg_type_boolean, CFG_ZONE_PRIMARY, NULL },
- { "check-mx", &cfg_type_checkmode, CFG_ZONE_PRIMARY, NULL },
- { "check-mx-cname", &cfg_type_checkmode, CFG_ZONE_PRIMARY, NULL },
- { "check-sibling", &cfg_type_boolean, CFG_ZONE_PRIMARY, NULL },
- { "check-spf", &cfg_type_warn, CFG_ZONE_PRIMARY, NULL },
- { "check-srv-cname", &cfg_type_checkmode, CFG_ZONE_PRIMARY, NULL },
- { "check-svcb", &cfg_type_boolean, CFG_ZONE_PRIMARY, NULL },
- { "check-wildcard", &cfg_type_boolean, CFG_ZONE_PRIMARY, NULL },
- { "dialup", NULL,
+ { CFG_CLAUSE_CHECK_DUP_RECORDS, &cfg_type_checkmode, CFG_ZONE_PRIMARY, NULL },
+ { CFG_CLAUSE_CHECK_INTEGRITY, &cfg_type_boolean, CFG_ZONE_PRIMARY, NULL },
+ { CFG_CLAUSE_CHECK_MX, &cfg_type_checkmode, CFG_ZONE_PRIMARY, NULL },
+ { CFG_CLAUSE_CHECK_MX_CNAME, &cfg_type_checkmode, CFG_ZONE_PRIMARY, NULL },
+ { CFG_CLAUSE_CHECK_SIBLING, &cfg_type_boolean, CFG_ZONE_PRIMARY, NULL },
+ { CFG_CLAUSE_CHECK_SPF, &cfg_type_warn, CFG_ZONE_PRIMARY, NULL },
+ { CFG_CLAUSE_CHECK_SRV_CNAME, &cfg_type_checkmode, CFG_ZONE_PRIMARY, NULL },
+ { CFG_CLAUSE_CHECK_SVCB, &cfg_type_boolean, CFG_ZONE_PRIMARY, NULL },
+ { CFG_CLAUSE_CHECK_WILDCARD, &cfg_type_boolean, CFG_ZONE_PRIMARY, NULL },
+ { CFG_CLAUSE_DIALUP, NULL,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_STUB |
CFG_CLAUSEFLAG_ANCIENT,
NULL },
- { "dnssec-dnskey-kskonly", &cfg_type_boolean,
+ { CFG_CLAUSE_DNSSEC_DNSKEY_KSKONLY, &cfg_type_boolean,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_CLAUSEFLAG_OBSOLETE,
NULL },
- { "dnssec-loadkeys-interval", &cfg_type_uint32,
+ { CFG_CLAUSE_DNSSEC_LOADKEYS_INTERVAL, &cfg_type_uint32,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "dnssec-policy", &cfg_type_astring,
+ { CFG_CLAUSE_DNSSEC_POLICY, &cfg_type_astring,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "dnssec-secure-to-insecure", &cfg_type_boolean,
+ { CFG_CLAUSE_DNSSEC_SECURE_TO_INSECURE, &cfg_type_boolean,
CFG_ZONE_PRIMARY | CFG_CLAUSEFLAG_OBSOLETE, NULL },
- { "dnssec-update-mode", &cfg_type_dnssecupdatemode,
+ { CFG_CLAUSE_DNSSEC_UPDATE_MODE, &cfg_type_dnssecupdatemode,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_CLAUSEFLAG_OBSOLETE,
NULL },
- { "forward", &cfg_type_forwardtype,
+ { CFG_CLAUSE_FORWARD, &cfg_type_forwardtype,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_STUB |
CFG_ZONE_STATICSTUB | CFG_ZONE_FORWARD,
NULL },
- { "forwarders", &cfg_type_portiplist,
+ { CFG_CLAUSE_FORWARDERS, &cfg_type_portiplist,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_STUB |
CFG_ZONE_STATICSTUB | CFG_ZONE_FORWARD,
NULL },
- { "key-directory", &cfg_type_qstring,
+ { CFG_CLAUSE_KEY_DIRECTORY, &cfg_type_qstring,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "maintain-ixfr-base", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "masterfile-format", &cfg_type_masterformat,
+ { CFG_CLAUSE_MAINTAIN_IXFR_BASE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_MASTERFILE_FORMAT, &cfg_type_masterformat,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_ZONE_STUB | CFG_ZONE_REDIRECT,
NULL },
- { "masterfile-style", &cfg_type_masterstyle,
+ { CFG_CLAUSE_MASTERFILE_STYLE, &cfg_type_masterstyle,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_ZONE_STUB | CFG_ZONE_REDIRECT,
NULL },
- { "max-ixfr-log-size", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "max-ixfr-ratio", &cfg_type_ixfrratio,
+ { CFG_CLAUSE_MAX_IXFR_LOG_SIZE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_MAX_IXFR_RATIO, &cfg_type_ixfrratio,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "max-journal-size", &cfg_type_size,
+ { CFG_CLAUSE_MAX_JOURNAL_SIZE, &cfg_type_size,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "max-records", &cfg_type_uint32,
+ { CFG_CLAUSE_MAX_RECORDS, &cfg_type_uint32,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_ZONE_STUB | CFG_ZONE_STATICSTUB | CFG_ZONE_REDIRECT,
NULL },
- { "max-records-per-type", &cfg_type_uint32,
+ { CFG_CLAUSE_MAX_RECORDS_PER_TYPE, &cfg_type_uint32,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_ZONE_STUB | CFG_ZONE_STATICSTUB | CFG_ZONE_REDIRECT,
NULL },
- { "max-types-per-name", &cfg_type_uint32,
+ { CFG_CLAUSE_MAX_TYPES_PER_NAME, &cfg_type_uint32,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_ZONE_STUB | CFG_ZONE_STATICSTUB | CFG_ZONE_REDIRECT,
NULL },
- { "max-refresh-time", &cfg_type_uint32,
+ { CFG_CLAUSE_MAX_REFRESH_TIME, &cfg_type_uint32,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR | CFG_ZONE_STUB, NULL },
- { "max-retry-time", &cfg_type_uint32,
+ { CFG_CLAUSE_MAX_RETRY_TIME, &cfg_type_uint32,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR | CFG_ZONE_STUB, NULL },
- { "min-transfer-rate-in", &cfg_type_min_transfer_rate_in,
+ { CFG_CLAUSE_MIN_TRANSFER_RATE_IN, &cfg_type_min_transfer_rate_in,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR | CFG_ZONE_STUB, NULL },
- { "max-transfer-idle-in", &cfg_type_uint32,
+ { CFG_CLAUSE_MAX_TRANSFER_IDLE_IN, &cfg_type_uint32,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR | CFG_ZONE_STUB, NULL },
- { "max-transfer-idle-out", &cfg_type_uint32,
+ { CFG_CLAUSE_MAX_TRANSFER_IDLE_OUT, &cfg_type_uint32,
CFG_ZONE_PRIMARY | CFG_ZONE_MIRROR | CFG_ZONE_SECONDARY, NULL },
- { "max-transfer-time-in", &cfg_type_uint32,
+ { CFG_CLAUSE_MAX_TRANSFER_TIME_IN, &cfg_type_uint32,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR | CFG_ZONE_STUB, NULL },
- { "max-transfer-time-out", &cfg_type_uint32,
+ { CFG_CLAUSE_MAX_TRANSFER_TIME_OUT, &cfg_type_uint32,
CFG_ZONE_PRIMARY | CFG_ZONE_MIRROR | CFG_ZONE_SECONDARY, NULL },
- { "max-zone-ttl", &cfg_type_maxduration,
+ { CFG_CLAUSE_MAX_ZONE_TTL, &cfg_type_maxduration,
CFG_ZONE_PRIMARY | CFG_ZONE_REDIRECT | CFG_CLAUSEFLAG_DEPRECATED,
NULL },
- { "min-refresh-time", &cfg_type_uint32,
+ { CFG_CLAUSE_MIN_REFRESH_TIME, &cfg_type_uint32,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR | CFG_ZONE_STUB, NULL },
- { "min-retry-time", &cfg_type_uint32,
+ { CFG_CLAUSE_MIN_RETRY_TIME, &cfg_type_uint32,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR | CFG_ZONE_STUB, NULL },
- { "multi-master", &cfg_type_boolean,
+ { CFG_CLAUSE_MULTI_MASTER, &cfg_type_boolean,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR | CFG_ZONE_STUB, NULL },
- { "notify", &cfg_type_notifytype,
+ { CFG_CLAUSE_NOTIFY, &cfg_type_notifytype,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "notify-cfg", &cfg_type_notifycfg,
+ { CFG_CLAUSE_NOTIFY_CFG, &cfg_type_notifycfg,
CFG_CLAUSEFLAG_MULTI | CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY |
CFG_ZONE_MIRROR,
NULL },
- { "notify-defer", &cfg_type_uint32,
+ { CFG_CLAUSE_NOTIFY_DEFER, &cfg_type_uint32,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "notify-delay", &cfg_type_uint32,
+ { CFG_CLAUSE_NOTIFY_DELAY, &cfg_type_uint32,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "notify-source", &cfg_type_sockaddr4wild,
+ { CFG_CLAUSE_NOTIFY_SOURCE, &cfg_type_sockaddr4wild,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "notify-source-v6", &cfg_type_sockaddr6wild,
+ { CFG_CLAUSE_NOTIFY_SOURCE_V6, &cfg_type_sockaddr6wild,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "notify-to-soa", &cfg_type_boolean,
+ { CFG_CLAUSE_NOTIFY_TO_SOA, &cfg_type_boolean,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "nsec3-test-zone", &cfg_type_boolean,
+ { CFG_CLAUSE_NSEC3_TEST_ZONE, &cfg_type_boolean,
CFG_CLAUSEFLAG_TESTONLY | CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY,
NULL },
- { "parental-source", &cfg_type_sockaddr4wild,
+ { CFG_CLAUSE_PARENTAL_SOURCE, &cfg_type_sockaddr4wild,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "parental-source-v6", &cfg_type_sockaddr6wild,
+ { CFG_CLAUSE_PARENTAL_SOURCE_V6, &cfg_type_sockaddr6wild,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "provide-zoneversion", &cfg_type_boolean,
+ { CFG_CLAUSE_PROVIDE_ZONEVERSION, &cfg_type_boolean,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "send-report-channel", &cfg_type_astring,
+ { CFG_CLAUSE_SEND_REPORT_CHANNEL, &cfg_type_astring,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "request-expire", &cfg_type_boolean,
+ { CFG_CLAUSE_REQUEST_EXPIRE, &cfg_type_boolean,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "request-ixfr", &cfg_type_boolean,
+ { CFG_CLAUSE_REQUEST_IXFR, &cfg_type_boolean,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "request-ixfr-max-diffs", &cfg_type_uint32,
+ { CFG_CLAUSE_REQUEST_IXFR_MAX_DIFFS, &cfg_type_uint32,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "serial-update-method", &cfg_type_updatemethod, CFG_ZONE_PRIMARY,
+ { CFG_CLAUSE_SERIAL_UPDATE_METHOD, &cfg_type_updatemethod, CFG_ZONE_PRIMARY,
NULL },
- { "sig-signing-nodes", &cfg_type_uint32,
+ { CFG_CLAUSE_SIG_SIGNING_NODES, &cfg_type_uint32,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "sig-signing-signatures", &cfg_type_uint32,
+ { CFG_CLAUSE_SIG_SIGNING_SIGNATURES, &cfg_type_uint32,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "sig-signing-type", &cfg_type_uint32,
+ { CFG_CLAUSE_SIG_SIGNING_TYPE, &cfg_type_uint32,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "sig-validity-interval", &cfg_type_validityinterval,
+ { CFG_CLAUSE_SIG_VALIDITY_INTERVAL, &cfg_type_validityinterval,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_CLAUSEFLAG_OBSOLETE,
NULL },
- { "dnskey-sig-validity", &cfg_type_uint32,
+ { CFG_CLAUSE_DNSKEY_SIG_VALIDITY, &cfg_type_uint32,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_CLAUSEFLAG_OBSOLETE,
NULL },
- { "transfer-source", &cfg_type_sockaddr4wild,
+ { CFG_CLAUSE_TRANSFER_SOURCE, &cfg_type_sockaddr4wild,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR | CFG_ZONE_STUB, NULL },
- { "transfer-source-v6", &cfg_type_sockaddr6wild,
+ { CFG_CLAUSE_TRANSFER_SOURCE_V6, &cfg_type_sockaddr6wild,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR | CFG_ZONE_STUB, NULL },
- { "try-tcp-refresh", &cfg_type_boolean,
+ { CFG_CLAUSE_TRY_TCP_REFRESH, &cfg_type_boolean,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "update-check-ksk", &cfg_type_boolean,
+ { CFG_CLAUSE_UPDATE_CHECK_KSK, &cfg_type_boolean,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_CLAUSEFLAG_OBSOLETE,
NULL },
- { "use-alt-transfer-source", NULL,
+ { CFG_CLAUSE_USE_ALT_TRANSFER_SOURCE, NULL,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR | CFG_ZONE_STUB |
CFG_CLAUSEFLAG_ANCIENT,
NULL },
- { "zero-no-soa-ttl", &cfg_type_boolean,
+ { CFG_CLAUSE_ZERO_NO_SOA_TTL, &cfg_type_boolean,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "zone-statistics", &cfg_type_zonestat,
+ { CFG_CLAUSE_ZONE_STATISTICS, &cfg_type_zonestat,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_ZONE_STUB | CFG_ZONE_STATICSTUB | CFG_ZONE_REDIRECT,
NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
/*%
* Note that the format of the check-names option is different between
* the zone options and the global/view options. Ugh.
*/
- { "type", &cfg_type_zonetype,
+ { CFG_CLAUSE_TYPE, &cfg_type_zonetype,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_ZONE_STUB | CFG_ZONE_STATICSTUB | CFG_ZONE_HINT |
CFG_ZONE_REDIRECT | CFG_ZONE_FORWARD,
NULL },
- { "check-names", &cfg_type_checkmode,
+ { CFG_CLAUSE_CHECK_NAMES, &cfg_type_checkmode,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_ZONE_HINT | CFG_ZONE_STUB,
NULL },
- { "checkds", &cfg_type_checkdstype,
+ { CFG_CLAUSE_CHECKDS, &cfg_type_checkdstype,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "database", &cfg_type_astring,
+ { CFG_CLAUSE_DATABASE, &cfg_type_astring,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_ZONE_STUB,
NULL },
- { "delegation-only", NULL,
+ { CFG_CLAUSE_DELEGATION_ONLY, NULL,
CFG_ZONE_HINT | CFG_ZONE_STUB | CFG_ZONE_FORWARD |
CFG_CLAUSEFLAG_ANCIENT,
NULL },
- { "dlz", &cfg_type_astring,
+ { CFG_CLAUSE_DLZ, &cfg_type_astring,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_REDIRECT, NULL },
- { "file", &cfg_type_qstring,
+ { CFG_CLAUSE_FILE, &cfg_type_qstring,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_ZONE_STUB | CFG_ZONE_HINT | CFG_ZONE_REDIRECT,
NULL },
- { "initial-file", &cfg_type_qstring, CFG_ZONE_PRIMARY, NULL },
- { "inline-signing", &cfg_type_boolean,
+ { CFG_CLAUSE_INITIAL_FILE, &cfg_type_qstring, CFG_ZONE_PRIMARY, NULL },
+ { CFG_CLAUSE_INLINE_SIGNING, &cfg_type_boolean,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "ixfr-base", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "ixfr-from-differences", &cfg_type_boolean,
+ { CFG_CLAUSE_IXFR_BASE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_IXFR_FROM_DIFFERENCES, &cfg_type_boolean,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "ixfr-tmp-file", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "journal", &cfg_type_qstring,
+ { CFG_CLAUSE_IXFR_TMP_FILE, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_JOURNAL, &cfg_type_qstring,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR, NULL },
- { "log-report-channel", &cfg_type_boolean,
+ { CFG_CLAUSE_LOG_REPORT_CHANNEL, &cfg_type_boolean,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "masters", &cfg_type_namesockaddrkeylist,
+ { CFG_CLAUSE_MASTERS, &cfg_type_namesockaddrkeylist,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR | CFG_ZONE_STUB |
CFG_ZONE_REDIRECT | CFG_CLAUSEFLAG_NODOC,
NULL },
- { "parental-agents", &cfg_type_namesockaddrkeylist,
+ { CFG_CLAUSE_PARENTAL_AGENTS, &cfg_type_namesockaddrkeylist,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY, NULL },
- { "plugin", &cfg_type_plugin,
+ { CFG_CLAUSE_PLUGIN, &cfg_type_plugin,
CFG_CLAUSEFLAG_MULTI | CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY |
CFG_ZONE_REDIRECT | CFG_ZONE_MIRROR,
NULL },
- { "primaries", &cfg_type_namesockaddrkeylist,
+ { CFG_CLAUSE_PRIMARIES, &cfg_type_namesockaddrkeylist,
CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR | CFG_ZONE_STUB |
CFG_ZONE_REDIRECT,
NULL },
- { "pubkey", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "server-addresses", &cfg_type_bracketed_netaddrlist,
+ { CFG_CLAUSE_PUBKEY, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_SERVER_ADDRESSES, &cfg_type_bracketed_netaddrlist,
CFG_ZONE_STATICSTUB, NULL },
- { "server-names", &cfg_type_namelist, CFG_ZONE_STATICSTUB, NULL },
- { "update-policy", &cfg_type_updatepolicy, CFG_ZONE_PRIMARY, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_SERVER_NAMES, &cfg_type_namelist, CFG_ZONE_STATICSTUB, NULL },
+ { CFG_CLAUSE_UPDATE_POLICY, &cfg_type_updatepolicy, CFG_ZONE_PRIMARY, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t non_template_clauses[] = {
- { "in-view", &cfg_type_astring, CFG_ZONE_INVIEW, NULL },
- { "template", &cfg_type_astring,
+ { CFG_CLAUSE_IN_VIEW, &cfg_type_astring, CFG_ZONE_INVIEW, NULL },
+ { CFG_CLAUSE_TEMPLATE, &cfg_type_astring,
CFG_ZONE_PRIMARY | CFG_ZONE_SECONDARY | CFG_ZONE_MIRROR |
CFG_ZONE_STUB | CFG_ZONE_STATICSTUB | CFG_ZONE_HINT |
CFG_ZONE_REDIRECT | CFG_ZONE_FORWARD,
NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
/*% The top-level named.conf syntax. */
/*% The "dynamically loadable zones" statement syntax. */
static cfg_clausedef_t dlz_clauses[] = {
- { "database", &cfg_type_astring, 0, NULL },
- { "search", &cfg_type_boolean, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_DATABASE, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_SEARCH, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *dlz_clausesets[] = { dlz_clauses, NULL };
static cfg_type_t cfg_type_dlz = { "dlz", cfg_parse_named_map,
* Clauses that can be found within the 'key' statement.
*/
static cfg_clausedef_t key_clauses[] = {
- { "algorithm", &cfg_type_astring, 0, NULL },
- { "secret", &cfg_type_sstring, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_ALGORITHM, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_SECRET, &cfg_type_sstring, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *key_clausesets[] = { key_clauses, NULL };
* A key-store statement.
*/
static cfg_clausedef_t keystore_clauses[] = {
- { "directory", &cfg_type_astring, 0, NULL },
- { "pkcs11-uri", &cfg_type_qstring, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_DIRECTORY, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_PKCS11_URI, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *keystore_clausesets[] = { keystore_clauses, NULL };
* exercise the new clause when adding new clauses.
*/
static cfg_clausedef_t server_clauses[] = {
- { "bogus", &cfg_type_boolean, 0, NULL },
- { "edns", &cfg_type_boolean, 0, NULL },
- { "edns-udp-size", &cfg_type_uint32, 0, NULL },
- { "edns-version", &cfg_type_uint32, 0, NULL },
- { "keys", &cfg_type_server_key_kludge, 0, NULL },
- { "max-udp-size", &cfg_type_uint32, 0, NULL },
- { "notify-source", &cfg_type_sockaddr4wild, 0, NULL },
- { "notify-source-v6", &cfg_type_sockaddr6wild, 0, NULL },
- { "padding", &cfg_type_uint32, 0, NULL },
- { "provide-ixfr", &cfg_type_boolean, 0, NULL },
- { "query-source", &cfg_type_server_querysource4, 0, NULL },
- { "query-source-v6", &cfg_type_server_querysource6, 0, NULL },
- { "request-expire", &cfg_type_boolean, 0, NULL },
- { "request-ixfr", &cfg_type_boolean, 0, NULL },
- { "request-ixfr-max-diffs", &cfg_type_uint32, 0, NULL },
- { "request-nsid", &cfg_type_boolean, 0, NULL },
- { "request-zoneversion", &cfg_type_boolean, 0, NULL },
- { "request-sit", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "require-cookie", &cfg_type_boolean, 0, NULL },
- { "send-cookie", &cfg_type_boolean, 0, NULL },
- { "support-ixfr", NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
- { "tcp-keepalive", &cfg_type_boolean, 0, NULL },
- { "tcp-only", &cfg_type_boolean, 0, NULL },
- { "transfer-format", &cfg_type_transferformat, 0, NULL },
- { "transfer-source", &cfg_type_sockaddr4wild, 0, NULL },
- { "transfer-source-v6", &cfg_type_sockaddr6wild, 0, NULL },
- { "transfers", &cfg_type_uint32, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_BOGUS, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_EDNS, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_EDNS_UDP_SIZE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_EDNS_VERSION, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_KEYS, &cfg_type_server_key_kludge, 0, NULL },
+ { CFG_CLAUSE_MAX_UDP_SIZE, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_NOTIFY_SOURCE, &cfg_type_sockaddr4wild, 0, NULL },
+ { CFG_CLAUSE_NOTIFY_SOURCE_V6, &cfg_type_sockaddr6wild, 0, NULL },
+ { CFG_CLAUSE_PADDING, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_PROVIDE_IXFR, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_QUERY_SOURCE, &cfg_type_server_querysource4, 0, NULL },
+ { CFG_CLAUSE_QUERY_SOURCE_V6, &cfg_type_server_querysource6, 0, NULL },
+ { CFG_CLAUSE_REQUEST_EXPIRE, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_REQUEST_IXFR, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_REQUEST_IXFR_MAX_DIFFS, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_REQUEST_NSID, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_REQUEST_ZONEVERSION, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_REQUEST_SIT, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_REQUIRE_COOKIE, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_SEND_COOKIE, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_SUPPORT_IXFR, NULL, CFG_CLAUSEFLAG_ANCIENT, NULL },
+ { CFG_CLAUSE_TCP_KEEPALIVE, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_TCP_ONLY, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_TRANSFER_FORMAT, &cfg_type_transferformat, 0, NULL },
+ { CFG_CLAUSE_TRANSFER_SOURCE, &cfg_type_sockaddr4wild, 0, NULL },
+ { CFG_CLAUSE_TRANSFER_SOURCE_V6, &cfg_type_sockaddr6wild, 0, NULL },
+ { CFG_CLAUSE_TRANSFERS, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *server_clausesets[] = { server_clauses, NULL };
static cfg_type_t cfg_type_server = { "server", cfg_parse_netprefix_map,
static cfg_clausedef_t channel_clauses[] = {
/* Destinations. We no longer require these to be first. */
- { "file", &cfg_type_logfile, 0, NULL },
- { "syslog", &cfg_type_optional_facility, 0, NULL },
- { "null", &cfg_type_void, 0, NULL },
- { "stderr", &cfg_type_void, 0, NULL },
+ { CFG_CLAUSE_FILE, &cfg_type_logfile, 0, NULL },
+ { CFG_CLAUSE_SYSLOG, &cfg_type_optional_facility, 0, NULL },
+ { CFG_CLAUSE_NULL, &cfg_type_void, 0, NULL },
+ { CFG_CLAUSE_STDERR, &cfg_type_void, 0, NULL },
/* Options. We now accept these for the null channel, too. */
- { "severity", &cfg_type_logseverity, 0, NULL },
- { "print-time", &cfg_type_printtime, 0, NULL },
- { "print-severity", &cfg_type_boolean, 0, NULL },
- { "print-category", &cfg_type_boolean, 0, NULL },
- { "buffered", &cfg_type_boolean, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_SEVERITY, &cfg_type_logseverity, 0, NULL },
+ { CFG_CLAUSE_PRINT_TIME, &cfg_type_printtime, 0, NULL },
+ { CFG_CLAUSE_PRINT_SEVERITY, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_PRINT_CATEGORY, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_BUFFERED, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *channel_clausesets[] = { channel_clauses, NULL };
static cfg_type_t cfg_type_channel = { "channel", cfg_parse_named_map,
* Clauses that can be found in a 'logging' statement.
*/
static cfg_clausedef_t logging_clauses[] = {
- { "channel", &cfg_type_channel, CFG_CLAUSEFLAG_MULTI, NULL },
- { "category", &cfg_type_category, CFG_CLAUSEFLAG_MULTI, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_CHANNEL, &cfg_type_channel, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_CATEGORY, &cfg_type_category, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *logging_clausesets[] = { logging_clauses, NULL };
static cfg_type_t cfg_type_logging = { "logging", cfg_parse_map,
cfg_print_tuple, cfg_doc_tuple,
&cfg_rep_tuple, addzone_fields };
-static cfg_clausedef_t addzoneconf_clauses[] = { { "zone", &cfg_type_addzone,
+static cfg_clausedef_t addzoneconf_clauses[] = { { CFG_CLAUSE_ZONE, &cfg_type_addzone,
CFG_CLAUSEFLAG_MULTI, NULL },
- { NULL, NULL, 0, NULL } };
+ { CFG_CLAUSE__NONE, NULL, 0, NULL } };
static cfg_clausedef_t *addzoneconf_clausesets[] = { addzoneconf_clauses,
NULL };
* Generalized DNS Notifications.
*/
static cfg_clausedef_t notify_clauses[] = {
- { "notify", &cfg_type_boolean, 0, NULL }, /* this limits the options for
+ { CFG_CLAUSE_NOTIFY, &cfg_type_boolean, 0, NULL }, /* this limits the options for
NOTIFY(SOA) */
- { "notify-defer", &cfg_type_uint32, 0, NULL },
- { "notify-delay", &cfg_type_uint32, 0, NULL },
- { "notify-source", &cfg_type_sockaddr4wild, 0, NULL },
- { "notify-source-v6", &cfg_type_sockaddr6wild, 0, NULL },
- { NULL, NULL, 0, NULL },
+ { CFG_CLAUSE_NOTIFY_DEFER, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_NOTIFY_DELAY, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_NOTIFY_SOURCE, &cfg_type_sockaddr4wild, 0, NULL },
+ { CFG_CLAUSE_NOTIFY_SOURCE_V6, &cfg_type_sockaddr6wild, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL },
};
static cfg_clausedef_t *notify_clausesets[] = { notify_clauses, NULL };
};
static cfg_clausedef_t controls_clauses[] = {
- { "inet", &cfg_type_inetcontrol, CFG_CLAUSEFLAG_MULTI, NULL },
- { "unix", &cfg_type_unixcontrol, CFG_CLAUSEFLAG_MULTI, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_INET, &cfg_type_inetcontrol, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_UNIX, &cfg_type_unixcontrol, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *controls_clausesets[] = { controls_clauses, NULL };
};
static cfg_clausedef_t statservers_clauses[] = {
- { "inet", &cfg_type_statschannel, CFG_CLAUSEFLAG_MULTI, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_INET, &cfg_type_statschannel, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *statservers_clausesets[] = { statservers_clauses,
*/
static cfg_clausedef_t rndcconf_options_clauses[] = {
- { "default-key", &cfg_type_astring, 0, NULL },
- { "default-port", &cfg_type_uint32, 0, NULL },
- { "default-server", &cfg_type_astring, 0, NULL },
- { "default-source-address", &cfg_type_netaddr4wild, 0, NULL },
- { "default-source-address-v6", &cfg_type_netaddr6wild, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_DEFAULT_KEY, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_DEFAULT_PORT, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_DEFAULT_SERVER, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_DEFAULT_SOURCE_ADDRESS, &cfg_type_netaddr4wild, 0, NULL },
+ { CFG_CLAUSE_DEFAULT_SOURCE_ADDRESS_V6, &cfg_type_netaddr6wild, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *rndcconf_options_clausesets[] = {
};
static cfg_clausedef_t rndcconf_server_clauses[] = {
- { "key", &cfg_type_astring, 0, NULL },
- { "port", &cfg_type_uint32, 0, NULL },
- { "source-address", &cfg_type_netaddr4wild, 0, NULL },
- { "source-address-v6", &cfg_type_netaddr6wild, 0, NULL },
- { "addresses", &cfg_type_bracketed_sockaddrnameportlist, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_KEY, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_PORT, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_SOURCE_ADDRESS, &cfg_type_netaddr4wild, 0, NULL },
+ { CFG_CLAUSE_SOURCE_ADDRESS_V6, &cfg_type_netaddr6wild, 0, NULL },
+ { CFG_CLAUSE_ADDRESSES, &cfg_type_bracketed_sockaddrnameportlist, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *rndcconf_server_clausesets[] = {
};
static cfg_clausedef_t rndcconf_clauses[] = {
- { "key", &cfg_type_key, CFG_CLAUSEFLAG_MULTI, NULL },
- { "server", &cfg_type_rndcconf_server, CFG_CLAUSEFLAG_MULTI, NULL },
- { "options", &cfg_type_rndcconf_options, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_KEY, &cfg_type_key, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_SERVER, &cfg_type_rndcconf_server, CFG_CLAUSEFLAG_MULTI, NULL },
+ { CFG_CLAUSE_OPTIONS, &cfg_type_rndcconf_options, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *rndcconf_clausesets[] = { rndcconf_clauses, NULL };
cfg_print_mapbody, cfg_doc_mapbody,
&cfg_rep_map, rndcconf_clausesets };
-static cfg_clausedef_t rndckey_clauses[] = { { "key", &cfg_type_key, 0, NULL },
- { NULL, NULL, 0, NULL } };
+static cfg_clausedef_t rndckey_clauses[] = { { CFG_CLAUSE_KEY, &cfg_type_key, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL } };
static cfg_clausedef_t *rndckey_clausesets[] = { rndckey_clauses, NULL };
cmp_clause(const void *ap, const void *bp) {
const cfg_clausedef_t *a = (const cfg_clausedef_t *)ap;
const cfg_clausedef_t *b = (const cfg_clausedef_t *)bp;
- return strcmp(a->name, b->name);
+ return (a->name > b->name) - (a->name < b->name);
}
bool
-cfg_clause_validforzone(const char *name, unsigned int ztype) {
+cfg_clause_validforzone(enum cfg_clause name, unsigned int ztype) {
const cfg_clausedef_t *clause;
bool valid = false;
- for (clause = zone_clauses; clause->name != NULL; clause++) {
+ for (clause = zone_clauses; clause->name != CFG_CLAUSE__NONE; clause++) {
if ((clause->flags & ztype) == 0 ||
- strcmp(clause->name, name) != 0)
+ clause->name != name)
{
continue;
}
valid = true;
}
- for (clause = zone_only_clauses; clause->name != NULL; clause++) {
+ for (clause = zone_only_clauses; clause->name != CFG_CLAUSE__NONE; clause++) {
if ((clause->flags & ztype) == 0 ||
- strcmp(clause->name, name) != 0)
+ clause->name != name)
{
continue;
}
valid = true;
}
- for (clause = non_template_clauses; clause->name != NULL; clause++) {
+ for (clause = non_template_clauses; clause->name != CFG_CLAUSE__NONE; clause++) {
if ((clause->flags & ztype) == 0 ||
- strcmp(clause->name, name) != 0)
+ clause->name != name)
{
continue;
}
&cfg_type_astring };
static cfg_clausedef_t tls_clauses[] = {
- { "key-file", &cfg_type_qstring, 0, NULL },
- { "cert-file", &cfg_type_qstring, 0, NULL },
- { "ca-file", &cfg_type_qstring, 0, NULL },
- { "remote-hostname", &cfg_type_qstring, 0, NULL },
- { "dhparam-file", &cfg_type_qstring, 0, NULL },
- { "protocols", &cfg_type_tlsprotos, 0, NULL },
- { "ciphers", &cfg_type_astring, 0, NULL },
- { "cipher-suites", &cfg_type_astring, 0, NULL },
- { "prefer-server-ciphers", &cfg_type_boolean, 0, NULL },
- { "session-tickets", &cfg_type_boolean, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_KEY_FILE, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE_CERT_FILE, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE_CA_FILE, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE_REMOTE_HOSTNAME, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE_DHPARAM_FILE, &cfg_type_qstring, 0, NULL },
+ { CFG_CLAUSE_PROTOCOLS, &cfg_type_tlsprotos, 0, NULL },
+ { CFG_CLAUSE_CIPHERS, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_CIPHER_SUITES, &cfg_type_astring, 0, NULL },
+ { CFG_CLAUSE_PREFER_SERVER_CIPHERS, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE_SESSION_TICKETS, &cfg_type_boolean, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *tls_clausesets[] = { tls_clauses, NULL };
};
static cfg_clausedef_t cfg_http_description_clauses[] = {
- { "endpoints", &cfg_type_bracketed_http_endpoint_list, 0, NULL },
- { "listener-clients", &cfg_type_uint32, 0, NULL },
- { "streams-per-connection", &cfg_type_uint32, 0, NULL },
- { NULL, NULL, 0, NULL }
+ { CFG_CLAUSE_ENDPOINTS, &cfg_type_bracketed_http_endpoint_list, 0, NULL },
+ { CFG_CLAUSE_LISTENER_CLIENTS, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE_STREAMS_PER_CONNECTION, &cfg_type_uint32, 0, NULL },
+ { CFG_CLAUSE__NONE, NULL, 0, NULL }
};
static cfg_clausedef_t *http_description_clausesets[] = {