From: George Thessalonikefs Date: Wed, 2 Mar 2022 13:29:56 +0000 (+0100) Subject: - Various fixes for #632: variable initialisation, convert the qinfo X-Git-Tag: release-1.16.0rc1~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b8e7dfa01e6f80656c339e8bb3f6d7a12d8704a6;p=thirdparty%2Funbound.git - Various fixes for #632: variable initialisation, convert the qinfo to str once, accept trailing dot in the local-zone ipset option. --- diff --git a/doc/Changelog b/doc/Changelog index b8dfa6f33..b3311201b 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,7 @@ 2 March 2022: George - Merge PR #632 from scottrw93: Match cnames in ipset. + - Various fixes for #632: variable initialisation, convert the qinfo + to str once, accept trailing dot in the local-zone ipset option. 1 March 2022: Wouter - Fix pythonmod for change in iter_dp_is_useless function prototype. diff --git a/ipset/ipset.c b/ipset/ipset.c index 065cde5ba..c61ebc205 100644 --- a/ipset/ipset.c +++ b/ipset/ipset.c @@ -138,12 +138,11 @@ ipset_add_rrset_data(struct ipset_env *ie, struct mnl_socket *mnl, static int ipset_check_zones_for_rrset(struct module_env *env, struct ipset_env *ie, struct mnl_socket *mnl, struct ub_packed_rrset_key *rrset, - struct query_info qinfo, const char *setname, int af) + const char *qname, const int qlen, const char *setname, int af) { static char dname[BUFF_LEN]; - static char qname[BUFF_LEN]; const char *ds, *qs; - int dlen, plen, qlen; + int dlen, plen; struct config_strlist *p; struct packed_rrset_data *d; @@ -153,16 +152,10 @@ ipset_check_zones_for_rrset(struct module_env *env, struct ipset_env *ie, log_err("bad domain name"); return -1; } - if (dname[dlen - 1] == '.') { - dlen--; - } - - qlen = sldns_wire2str_dname_buf(qinfo.qname, qinfo.qname_len, qname, BUFF_LEN); - if (qname[qlen - 1] == '.') { - qlen--; - } for (p = env->cfg->local_zones_ipset; p; p = p->next) { + ds = NULL; + qs = NULL; plen = strlen(p->str); if (dlen >= plen) { @@ -186,47 +179,46 @@ static int ipset_update(struct module_env *env, struct dns_msg *return_msg, struct query_info qinfo, struct ipset_env *ie) { struct mnl_socket *mnl; - size_t i; - const char *setname; - struct ub_packed_rrset_key *rrset; - int af; - + static char qname[BUFF_LEN]; + int qlen; mnl = (struct mnl_socket *)ie->mnl; if (!mnl) { - // retry to create mnl socket + /* retry to create mnl socket */ mnl = open_mnl_socket(); if (!mnl) { return -1; } - ie->mnl = mnl; } - for (i = 0; i < return_msg->rep->rrset_count; ++i) { - setname = NULL; + qlen = sldns_wire2str_dname_buf(qinfo.qname, qinfo.qname_len, + qname, BUFF_LEN); + if(qlen == 0) { + log_err("bad domain name"); + return -1; + } + for(i = 0; i < return_msg->rep->rrset_count; i++) { + setname = NULL; rrset = return_msg->rep->rrsets[i]; - - if (rrset->rk.type == htons(LDNS_RR_TYPE_A)) { + if(ntohs(rrset->rk.type) == LDNS_RR_TYPE_A && + ie->v4_enabled == 1) { af = AF_INET; - if ((ie->v4_enabled == 1)) { - setname = ie->name_v4; - } - } else { + setname = ie->name_v4; + } else if(ntohs(rrset->rk.type) == LDNS_RR_TYPE_AAAA && + ie->v6_enabled == 1) { af = AF_INET6; - if ((ie->v6_enabled == 1)) { - setname = ie->name_v6; - } + setname = ie->name_v6; } if (setname) { if(ipset_check_zones_for_rrset(env, ie, mnl, rrset, - qinfo, setname, af) == -1) + qname, qlen, setname, af) == -1) return -1; } } diff --git a/testdata/ipset.tdir/ipset.conf b/testdata/ipset.tdir/ipset.conf index a53db66f2..7cc34912d 100644 --- a/testdata/ipset.tdir/ipset.conf +++ b/testdata/ipset.tdir/ipset.conf @@ -11,7 +11,7 @@ server: chroot: "" username: "" do-not-query-localhost: no - local-zone: "example.net" ipset + local-zone: "example.net." ipset stub-zone: name: "example.net." stub-addr: "127.0.0.1@@TOPORT@" diff --git a/util/configparser.c b/util/configparser.c index 3a5ee57fc..13b83a593 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.6.4. */ +/* A Bison parser, made by GNU Bison 3.7.6. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -45,11 +45,11 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -/* Identify Bison output. */ -#define YYBISON 1 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30706 -/* Bison version. */ -#define YYBISON_VERSION "3.6.4" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.6" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -119,701 +119,7 @@ extern struct config_parser_state* cfg_parser; # endif # endif -/* Use api.header.include to #include this header - instead of duplicating it here. */ -#ifndef YY_YY_UTIL_CONFIGPARSER_H_INCLUDED -# define YY_YY_UTIL_CONFIGPARSER_H_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - -/* Token kinds. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - YYEMPTY = -2, - YYEOF = 0, /* "end of file" */ - YYerror = 256, /* error */ - YYUNDEF = 257, /* "invalid token" */ - SPACE = 258, /* SPACE */ - LETTER = 259, /* LETTER */ - NEWLINE = 260, /* NEWLINE */ - COMMENT = 261, /* COMMENT */ - COLON = 262, /* COLON */ - ANY = 263, /* ANY */ - ZONESTR = 264, /* ZONESTR */ - STRING_ARG = 265, /* STRING_ARG */ - VAR_FORCE_TOPLEVEL = 266, /* VAR_FORCE_TOPLEVEL */ - VAR_SERVER = 267, /* VAR_SERVER */ - VAR_VERBOSITY = 268, /* VAR_VERBOSITY */ - VAR_NUM_THREADS = 269, /* VAR_NUM_THREADS */ - VAR_PORT = 270, /* VAR_PORT */ - VAR_OUTGOING_RANGE = 271, /* VAR_OUTGOING_RANGE */ - VAR_INTERFACE = 272, /* VAR_INTERFACE */ - VAR_PREFER_IP4 = 273, /* VAR_PREFER_IP4 */ - VAR_DO_IP4 = 274, /* VAR_DO_IP4 */ - VAR_DO_IP6 = 275, /* VAR_DO_IP6 */ - VAR_PREFER_IP6 = 276, /* VAR_PREFER_IP6 */ - VAR_DO_UDP = 277, /* VAR_DO_UDP */ - VAR_DO_TCP = 278, /* VAR_DO_TCP */ - VAR_TCP_MSS = 279, /* VAR_TCP_MSS */ - VAR_OUTGOING_TCP_MSS = 280, /* VAR_OUTGOING_TCP_MSS */ - VAR_TCP_IDLE_TIMEOUT = 281, /* VAR_TCP_IDLE_TIMEOUT */ - VAR_EDNS_TCP_KEEPALIVE = 282, /* VAR_EDNS_TCP_KEEPALIVE */ - VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 283, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ - VAR_CHROOT = 284, /* VAR_CHROOT */ - VAR_USERNAME = 285, /* VAR_USERNAME */ - VAR_DIRECTORY = 286, /* VAR_DIRECTORY */ - VAR_LOGFILE = 287, /* VAR_LOGFILE */ - VAR_PIDFILE = 288, /* VAR_PIDFILE */ - VAR_MSG_CACHE_SIZE = 289, /* VAR_MSG_CACHE_SIZE */ - VAR_MSG_CACHE_SLABS = 290, /* VAR_MSG_CACHE_SLABS */ - VAR_NUM_QUERIES_PER_THREAD = 291, /* VAR_NUM_QUERIES_PER_THREAD */ - VAR_RRSET_CACHE_SIZE = 292, /* VAR_RRSET_CACHE_SIZE */ - VAR_RRSET_CACHE_SLABS = 293, /* VAR_RRSET_CACHE_SLABS */ - VAR_OUTGOING_NUM_TCP = 294, /* VAR_OUTGOING_NUM_TCP */ - VAR_INFRA_HOST_TTL = 295, /* VAR_INFRA_HOST_TTL */ - VAR_INFRA_LAME_TTL = 296, /* VAR_INFRA_LAME_TTL */ - VAR_INFRA_CACHE_SLABS = 297, /* VAR_INFRA_CACHE_SLABS */ - VAR_INFRA_CACHE_NUMHOSTS = 298, /* VAR_INFRA_CACHE_NUMHOSTS */ - VAR_INFRA_CACHE_LAME_SIZE = 299, /* VAR_INFRA_CACHE_LAME_SIZE */ - VAR_NAME = 300, /* VAR_NAME */ - VAR_STUB_ZONE = 301, /* VAR_STUB_ZONE */ - VAR_STUB_HOST = 302, /* VAR_STUB_HOST */ - VAR_STUB_ADDR = 303, /* VAR_STUB_ADDR */ - VAR_TARGET_FETCH_POLICY = 304, /* VAR_TARGET_FETCH_POLICY */ - VAR_HARDEN_SHORT_BUFSIZE = 305, /* VAR_HARDEN_SHORT_BUFSIZE */ - VAR_HARDEN_LARGE_QUERIES = 306, /* VAR_HARDEN_LARGE_QUERIES */ - VAR_FORWARD_ZONE = 307, /* VAR_FORWARD_ZONE */ - VAR_FORWARD_HOST = 308, /* VAR_FORWARD_HOST */ - VAR_FORWARD_ADDR = 309, /* VAR_FORWARD_ADDR */ - VAR_DO_NOT_QUERY_ADDRESS = 310, /* VAR_DO_NOT_QUERY_ADDRESS */ - VAR_HIDE_IDENTITY = 311, /* VAR_HIDE_IDENTITY */ - VAR_HIDE_VERSION = 312, /* VAR_HIDE_VERSION */ - VAR_IDENTITY = 313, /* VAR_IDENTITY */ - VAR_VERSION = 314, /* VAR_VERSION */ - VAR_HARDEN_GLUE = 315, /* VAR_HARDEN_GLUE */ - VAR_MODULE_CONF = 316, /* VAR_MODULE_CONF */ - VAR_TRUST_ANCHOR_FILE = 317, /* VAR_TRUST_ANCHOR_FILE */ - VAR_TRUST_ANCHOR = 318, /* VAR_TRUST_ANCHOR */ - VAR_VAL_OVERRIDE_DATE = 319, /* VAR_VAL_OVERRIDE_DATE */ - VAR_BOGUS_TTL = 320, /* VAR_BOGUS_TTL */ - VAR_VAL_CLEAN_ADDITIONAL = 321, /* VAR_VAL_CLEAN_ADDITIONAL */ - VAR_VAL_PERMISSIVE_MODE = 322, /* VAR_VAL_PERMISSIVE_MODE */ - VAR_INCOMING_NUM_TCP = 323, /* VAR_INCOMING_NUM_TCP */ - VAR_MSG_BUFFER_SIZE = 324, /* VAR_MSG_BUFFER_SIZE */ - VAR_KEY_CACHE_SIZE = 325, /* VAR_KEY_CACHE_SIZE */ - VAR_KEY_CACHE_SLABS = 326, /* VAR_KEY_CACHE_SLABS */ - VAR_TRUSTED_KEYS_FILE = 327, /* VAR_TRUSTED_KEYS_FILE */ - VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 328, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ - VAR_USE_SYSLOG = 329, /* VAR_USE_SYSLOG */ - VAR_OUTGOING_INTERFACE = 330, /* VAR_OUTGOING_INTERFACE */ - VAR_ROOT_HINTS = 331, /* VAR_ROOT_HINTS */ - VAR_DO_NOT_QUERY_LOCALHOST = 332, /* VAR_DO_NOT_QUERY_LOCALHOST */ - VAR_CACHE_MAX_TTL = 333, /* VAR_CACHE_MAX_TTL */ - VAR_HARDEN_DNSSEC_STRIPPED = 334, /* VAR_HARDEN_DNSSEC_STRIPPED */ - VAR_ACCESS_CONTROL = 335, /* VAR_ACCESS_CONTROL */ - VAR_LOCAL_ZONE = 336, /* VAR_LOCAL_ZONE */ - VAR_LOCAL_DATA = 337, /* VAR_LOCAL_DATA */ - VAR_INTERFACE_AUTOMATIC = 338, /* VAR_INTERFACE_AUTOMATIC */ - VAR_STATISTICS_INTERVAL = 339, /* VAR_STATISTICS_INTERVAL */ - VAR_DO_DAEMONIZE = 340, /* VAR_DO_DAEMONIZE */ - VAR_USE_CAPS_FOR_ID = 341, /* VAR_USE_CAPS_FOR_ID */ - VAR_STATISTICS_CUMULATIVE = 342, /* VAR_STATISTICS_CUMULATIVE */ - VAR_OUTGOING_PORT_PERMIT = 343, /* VAR_OUTGOING_PORT_PERMIT */ - VAR_OUTGOING_PORT_AVOID = 344, /* VAR_OUTGOING_PORT_AVOID */ - VAR_DLV_ANCHOR_FILE = 345, /* VAR_DLV_ANCHOR_FILE */ - VAR_DLV_ANCHOR = 346, /* VAR_DLV_ANCHOR */ - VAR_NEG_CACHE_SIZE = 347, /* VAR_NEG_CACHE_SIZE */ - VAR_HARDEN_REFERRAL_PATH = 348, /* VAR_HARDEN_REFERRAL_PATH */ - VAR_PRIVATE_ADDRESS = 349, /* VAR_PRIVATE_ADDRESS */ - VAR_PRIVATE_DOMAIN = 350, /* VAR_PRIVATE_DOMAIN */ - VAR_REMOTE_CONTROL = 351, /* VAR_REMOTE_CONTROL */ - VAR_CONTROL_ENABLE = 352, /* VAR_CONTROL_ENABLE */ - VAR_CONTROL_INTERFACE = 353, /* VAR_CONTROL_INTERFACE */ - VAR_CONTROL_PORT = 354, /* VAR_CONTROL_PORT */ - VAR_SERVER_KEY_FILE = 355, /* VAR_SERVER_KEY_FILE */ - VAR_SERVER_CERT_FILE = 356, /* VAR_SERVER_CERT_FILE */ - VAR_CONTROL_KEY_FILE = 357, /* VAR_CONTROL_KEY_FILE */ - VAR_CONTROL_CERT_FILE = 358, /* VAR_CONTROL_CERT_FILE */ - VAR_CONTROL_USE_CERT = 359, /* VAR_CONTROL_USE_CERT */ - VAR_TCP_REUSE_TIMEOUT = 360, /* VAR_TCP_REUSE_TIMEOUT */ - VAR_MAX_REUSE_TCP_QUERIES = 361, /* VAR_MAX_REUSE_TCP_QUERIES */ - VAR_EXTENDED_STATISTICS = 362, /* VAR_EXTENDED_STATISTICS */ - VAR_LOCAL_DATA_PTR = 363, /* VAR_LOCAL_DATA_PTR */ - VAR_JOSTLE_TIMEOUT = 364, /* VAR_JOSTLE_TIMEOUT */ - VAR_STUB_PRIME = 365, /* VAR_STUB_PRIME */ - VAR_UNWANTED_REPLY_THRESHOLD = 366, /* VAR_UNWANTED_REPLY_THRESHOLD */ - VAR_LOG_TIME_ASCII = 367, /* VAR_LOG_TIME_ASCII */ - VAR_DOMAIN_INSECURE = 368, /* VAR_DOMAIN_INSECURE */ - VAR_PYTHON = 369, /* VAR_PYTHON */ - VAR_PYTHON_SCRIPT = 370, /* VAR_PYTHON_SCRIPT */ - VAR_VAL_SIG_SKEW_MIN = 371, /* VAR_VAL_SIG_SKEW_MIN */ - VAR_VAL_SIG_SKEW_MAX = 372, /* VAR_VAL_SIG_SKEW_MAX */ - VAR_VAL_MAX_RESTART = 373, /* VAR_VAL_MAX_RESTART */ - VAR_CACHE_MIN_TTL = 374, /* VAR_CACHE_MIN_TTL */ - VAR_VAL_LOG_LEVEL = 375, /* VAR_VAL_LOG_LEVEL */ - VAR_AUTO_TRUST_ANCHOR_FILE = 376, /* VAR_AUTO_TRUST_ANCHOR_FILE */ - VAR_KEEP_MISSING = 377, /* VAR_KEEP_MISSING */ - VAR_ADD_HOLDDOWN = 378, /* VAR_ADD_HOLDDOWN */ - VAR_DEL_HOLDDOWN = 379, /* VAR_DEL_HOLDDOWN */ - VAR_SO_RCVBUF = 380, /* VAR_SO_RCVBUF */ - VAR_EDNS_BUFFER_SIZE = 381, /* VAR_EDNS_BUFFER_SIZE */ - VAR_PREFETCH = 382, /* VAR_PREFETCH */ - VAR_PREFETCH_KEY = 383, /* VAR_PREFETCH_KEY */ - VAR_SO_SNDBUF = 384, /* VAR_SO_SNDBUF */ - VAR_SO_REUSEPORT = 385, /* VAR_SO_REUSEPORT */ - VAR_HARDEN_BELOW_NXDOMAIN = 386, /* VAR_HARDEN_BELOW_NXDOMAIN */ - VAR_IGNORE_CD_FLAG = 387, /* VAR_IGNORE_CD_FLAG */ - VAR_LOG_QUERIES = 388, /* VAR_LOG_QUERIES */ - VAR_LOG_REPLIES = 389, /* VAR_LOG_REPLIES */ - VAR_LOG_LOCAL_ACTIONS = 390, /* VAR_LOG_LOCAL_ACTIONS */ - VAR_TCP_UPSTREAM = 391, /* VAR_TCP_UPSTREAM */ - VAR_SSL_UPSTREAM = 392, /* VAR_SSL_UPSTREAM */ - VAR_TCP_AUTH_QUERY_TIMEOUT = 393, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ - VAR_SSL_SERVICE_KEY = 394, /* VAR_SSL_SERVICE_KEY */ - VAR_SSL_SERVICE_PEM = 395, /* VAR_SSL_SERVICE_PEM */ - VAR_SSL_PORT = 396, /* VAR_SSL_PORT */ - VAR_FORWARD_FIRST = 397, /* VAR_FORWARD_FIRST */ - VAR_STUB_SSL_UPSTREAM = 398, /* VAR_STUB_SSL_UPSTREAM */ - VAR_FORWARD_SSL_UPSTREAM = 399, /* VAR_FORWARD_SSL_UPSTREAM */ - VAR_TLS_CERT_BUNDLE = 400, /* VAR_TLS_CERT_BUNDLE */ - VAR_STUB_TCP_UPSTREAM = 401, /* VAR_STUB_TCP_UPSTREAM */ - VAR_FORWARD_TCP_UPSTREAM = 402, /* VAR_FORWARD_TCP_UPSTREAM */ - VAR_HTTPS_PORT = 403, /* VAR_HTTPS_PORT */ - VAR_HTTP_ENDPOINT = 404, /* VAR_HTTP_ENDPOINT */ - VAR_HTTP_MAX_STREAMS = 405, /* VAR_HTTP_MAX_STREAMS */ - VAR_HTTP_QUERY_BUFFER_SIZE = 406, /* VAR_HTTP_QUERY_BUFFER_SIZE */ - VAR_HTTP_RESPONSE_BUFFER_SIZE = 407, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ - VAR_HTTP_NODELAY = 408, /* VAR_HTTP_NODELAY */ - VAR_HTTP_NOTLS_DOWNSTREAM = 409, /* VAR_HTTP_NOTLS_DOWNSTREAM */ - VAR_STUB_FIRST = 410, /* VAR_STUB_FIRST */ - VAR_MINIMAL_RESPONSES = 411, /* VAR_MINIMAL_RESPONSES */ - VAR_RRSET_ROUNDROBIN = 412, /* VAR_RRSET_ROUNDROBIN */ - VAR_MAX_UDP_SIZE = 413, /* VAR_MAX_UDP_SIZE */ - VAR_DELAY_CLOSE = 414, /* VAR_DELAY_CLOSE */ - VAR_UDP_CONNECT = 415, /* VAR_UDP_CONNECT */ - VAR_UNBLOCK_LAN_ZONES = 416, /* VAR_UNBLOCK_LAN_ZONES */ - VAR_INSECURE_LAN_ZONES = 417, /* VAR_INSECURE_LAN_ZONES */ - VAR_INFRA_CACHE_MIN_RTT = 418, /* VAR_INFRA_CACHE_MIN_RTT */ - VAR_INFRA_KEEP_PROBING = 419, /* VAR_INFRA_KEEP_PROBING */ - VAR_DNS64_PREFIX = 420, /* VAR_DNS64_PREFIX */ - VAR_DNS64_SYNTHALL = 421, /* VAR_DNS64_SYNTHALL */ - VAR_DNS64_IGNORE_AAAA = 422, /* VAR_DNS64_IGNORE_AAAA */ - VAR_DNSTAP = 423, /* VAR_DNSTAP */ - VAR_DNSTAP_ENABLE = 424, /* VAR_DNSTAP_ENABLE */ - VAR_DNSTAP_SOCKET_PATH = 425, /* VAR_DNSTAP_SOCKET_PATH */ - VAR_DNSTAP_IP = 426, /* VAR_DNSTAP_IP */ - VAR_DNSTAP_TLS = 427, /* VAR_DNSTAP_TLS */ - VAR_DNSTAP_TLS_SERVER_NAME = 428, /* VAR_DNSTAP_TLS_SERVER_NAME */ - VAR_DNSTAP_TLS_CERT_BUNDLE = 429, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ - VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 430, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ - VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 431, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ - VAR_DNSTAP_SEND_IDENTITY = 432, /* VAR_DNSTAP_SEND_IDENTITY */ - VAR_DNSTAP_SEND_VERSION = 433, /* VAR_DNSTAP_SEND_VERSION */ - VAR_DNSTAP_BIDIRECTIONAL = 434, /* VAR_DNSTAP_BIDIRECTIONAL */ - VAR_DNSTAP_IDENTITY = 435, /* VAR_DNSTAP_IDENTITY */ - VAR_DNSTAP_VERSION = 436, /* VAR_DNSTAP_VERSION */ - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 437, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 438, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 439, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 440, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 441, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 442, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ - VAR_RESPONSE_IP_TAG = 443, /* VAR_RESPONSE_IP_TAG */ - VAR_RESPONSE_IP = 444, /* VAR_RESPONSE_IP */ - VAR_RESPONSE_IP_DATA = 445, /* VAR_RESPONSE_IP_DATA */ - VAR_HARDEN_ALGO_DOWNGRADE = 446, /* VAR_HARDEN_ALGO_DOWNGRADE */ - VAR_IP_TRANSPARENT = 447, /* VAR_IP_TRANSPARENT */ - VAR_IP_DSCP = 448, /* VAR_IP_DSCP */ - VAR_DISABLE_DNSSEC_LAME_CHECK = 449, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ - VAR_IP_RATELIMIT = 450, /* VAR_IP_RATELIMIT */ - VAR_IP_RATELIMIT_SLABS = 451, /* VAR_IP_RATELIMIT_SLABS */ - VAR_IP_RATELIMIT_SIZE = 452, /* VAR_IP_RATELIMIT_SIZE */ - VAR_RATELIMIT = 453, /* VAR_RATELIMIT */ - VAR_RATELIMIT_SLABS = 454, /* VAR_RATELIMIT_SLABS */ - VAR_RATELIMIT_SIZE = 455, /* VAR_RATELIMIT_SIZE */ - VAR_OUTBOUND_MSG_RETRY = 456, /* VAR_OUTBOUND_MSG_RETRY */ - VAR_RATELIMIT_FOR_DOMAIN = 457, /* VAR_RATELIMIT_FOR_DOMAIN */ - VAR_RATELIMIT_BELOW_DOMAIN = 458, /* VAR_RATELIMIT_BELOW_DOMAIN */ - VAR_IP_RATELIMIT_FACTOR = 459, /* VAR_IP_RATELIMIT_FACTOR */ - VAR_RATELIMIT_FACTOR = 460, /* VAR_RATELIMIT_FACTOR */ - VAR_IP_RATELIMIT_BACKOFF = 461, /* VAR_IP_RATELIMIT_BACKOFF */ - VAR_RATELIMIT_BACKOFF = 462, /* VAR_RATELIMIT_BACKOFF */ - VAR_SEND_CLIENT_SUBNET = 463, /* VAR_SEND_CLIENT_SUBNET */ - VAR_CLIENT_SUBNET_ZONE = 464, /* VAR_CLIENT_SUBNET_ZONE */ - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 465, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ - VAR_CLIENT_SUBNET_OPCODE = 466, /* VAR_CLIENT_SUBNET_OPCODE */ - VAR_MAX_CLIENT_SUBNET_IPV4 = 467, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ - VAR_MAX_CLIENT_SUBNET_IPV6 = 468, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ - VAR_MIN_CLIENT_SUBNET_IPV4 = 469, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ - VAR_MIN_CLIENT_SUBNET_IPV6 = 470, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ - VAR_MAX_ECS_TREE_SIZE_IPV4 = 471, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ - VAR_MAX_ECS_TREE_SIZE_IPV6 = 472, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ - VAR_CAPS_WHITELIST = 473, /* VAR_CAPS_WHITELIST */ - VAR_CACHE_MAX_NEGATIVE_TTL = 474, /* VAR_CACHE_MAX_NEGATIVE_TTL */ - VAR_PERMIT_SMALL_HOLDDOWN = 475, /* VAR_PERMIT_SMALL_HOLDDOWN */ - VAR_QNAME_MINIMISATION = 476, /* VAR_QNAME_MINIMISATION */ - VAR_QNAME_MINIMISATION_STRICT = 477, /* VAR_QNAME_MINIMISATION_STRICT */ - VAR_IP_FREEBIND = 478, /* VAR_IP_FREEBIND */ - VAR_DEFINE_TAG = 479, /* VAR_DEFINE_TAG */ - VAR_LOCAL_ZONE_TAG = 480, /* VAR_LOCAL_ZONE_TAG */ - VAR_ACCESS_CONTROL_TAG = 481, /* VAR_ACCESS_CONTROL_TAG */ - VAR_LOCAL_ZONE_OVERRIDE = 482, /* VAR_LOCAL_ZONE_OVERRIDE */ - VAR_ACCESS_CONTROL_TAG_ACTION = 483, /* VAR_ACCESS_CONTROL_TAG_ACTION */ - VAR_ACCESS_CONTROL_TAG_DATA = 484, /* VAR_ACCESS_CONTROL_TAG_DATA */ - VAR_VIEW = 485, /* VAR_VIEW */ - VAR_ACCESS_CONTROL_VIEW = 486, /* VAR_ACCESS_CONTROL_VIEW */ - VAR_VIEW_FIRST = 487, /* VAR_VIEW_FIRST */ - VAR_SERVE_EXPIRED = 488, /* VAR_SERVE_EXPIRED */ - VAR_SERVE_EXPIRED_TTL = 489, /* VAR_SERVE_EXPIRED_TTL */ - VAR_SERVE_EXPIRED_TTL_RESET = 490, /* VAR_SERVE_EXPIRED_TTL_RESET */ - VAR_SERVE_EXPIRED_REPLY_TTL = 491, /* VAR_SERVE_EXPIRED_REPLY_TTL */ - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 492, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ - VAR_SERVE_ORIGINAL_TTL = 493, /* VAR_SERVE_ORIGINAL_TTL */ - VAR_FAKE_DSA = 494, /* VAR_FAKE_DSA */ - VAR_FAKE_SHA1 = 495, /* VAR_FAKE_SHA1 */ - VAR_LOG_IDENTITY = 496, /* VAR_LOG_IDENTITY */ - VAR_HIDE_TRUSTANCHOR = 497, /* VAR_HIDE_TRUSTANCHOR */ - VAR_HIDE_HTTP_USER_AGENT = 498, /* VAR_HIDE_HTTP_USER_AGENT */ - VAR_HTTP_USER_AGENT = 499, /* VAR_HTTP_USER_AGENT */ - VAR_TRUST_ANCHOR_SIGNALING = 500, /* VAR_TRUST_ANCHOR_SIGNALING */ - VAR_AGGRESSIVE_NSEC = 501, /* VAR_AGGRESSIVE_NSEC */ - VAR_USE_SYSTEMD = 502, /* VAR_USE_SYSTEMD */ - VAR_SHM_ENABLE = 503, /* VAR_SHM_ENABLE */ - VAR_SHM_KEY = 504, /* VAR_SHM_KEY */ - VAR_ROOT_KEY_SENTINEL = 505, /* VAR_ROOT_KEY_SENTINEL */ - VAR_DNSCRYPT = 506, /* VAR_DNSCRYPT */ - VAR_DNSCRYPT_ENABLE = 507, /* VAR_DNSCRYPT_ENABLE */ - VAR_DNSCRYPT_PORT = 508, /* VAR_DNSCRYPT_PORT */ - VAR_DNSCRYPT_PROVIDER = 509, /* VAR_DNSCRYPT_PROVIDER */ - VAR_DNSCRYPT_SECRET_KEY = 510, /* VAR_DNSCRYPT_SECRET_KEY */ - VAR_DNSCRYPT_PROVIDER_CERT = 511, /* VAR_DNSCRYPT_PROVIDER_CERT */ - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 512, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 513, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 514, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 515, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 516, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ - VAR_PAD_RESPONSES = 517, /* VAR_PAD_RESPONSES */ - VAR_PAD_RESPONSES_BLOCK_SIZE = 518, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ - VAR_PAD_QUERIES = 519, /* VAR_PAD_QUERIES */ - VAR_PAD_QUERIES_BLOCK_SIZE = 520, /* VAR_PAD_QUERIES_BLOCK_SIZE */ - VAR_IPSECMOD_ENABLED = 521, /* VAR_IPSECMOD_ENABLED */ - VAR_IPSECMOD_HOOK = 522, /* VAR_IPSECMOD_HOOK */ - VAR_IPSECMOD_IGNORE_BOGUS = 523, /* VAR_IPSECMOD_IGNORE_BOGUS */ - VAR_IPSECMOD_MAX_TTL = 524, /* VAR_IPSECMOD_MAX_TTL */ - VAR_IPSECMOD_WHITELIST = 525, /* VAR_IPSECMOD_WHITELIST */ - VAR_IPSECMOD_STRICT = 526, /* VAR_IPSECMOD_STRICT */ - VAR_CACHEDB = 527, /* VAR_CACHEDB */ - VAR_CACHEDB_BACKEND = 528, /* VAR_CACHEDB_BACKEND */ - VAR_CACHEDB_SECRETSEED = 529, /* VAR_CACHEDB_SECRETSEED */ - VAR_CACHEDB_REDISHOST = 530, /* VAR_CACHEDB_REDISHOST */ - VAR_CACHEDB_REDISPORT = 531, /* VAR_CACHEDB_REDISPORT */ - VAR_CACHEDB_REDISTIMEOUT = 532, /* VAR_CACHEDB_REDISTIMEOUT */ - VAR_CACHEDB_REDISEXPIRERECORDS = 533, /* VAR_CACHEDB_REDISEXPIRERECORDS */ - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 534, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ - VAR_FOR_UPSTREAM = 535, /* VAR_FOR_UPSTREAM */ - VAR_AUTH_ZONE = 536, /* VAR_AUTH_ZONE */ - VAR_ZONEFILE = 537, /* VAR_ZONEFILE */ - VAR_MASTER = 538, /* VAR_MASTER */ - VAR_URL = 539, /* VAR_URL */ - VAR_FOR_DOWNSTREAM = 540, /* VAR_FOR_DOWNSTREAM */ - VAR_FALLBACK_ENABLED = 541, /* VAR_FALLBACK_ENABLED */ - VAR_TLS_ADDITIONAL_PORT = 542, /* VAR_TLS_ADDITIONAL_PORT */ - VAR_LOW_RTT = 543, /* VAR_LOW_RTT */ - VAR_LOW_RTT_PERMIL = 544, /* VAR_LOW_RTT_PERMIL */ - VAR_FAST_SERVER_PERMIL = 545, /* VAR_FAST_SERVER_PERMIL */ - VAR_FAST_SERVER_NUM = 546, /* VAR_FAST_SERVER_NUM */ - VAR_ALLOW_NOTIFY = 547, /* VAR_ALLOW_NOTIFY */ - VAR_TLS_WIN_CERT = 548, /* VAR_TLS_WIN_CERT */ - VAR_TCP_CONNECTION_LIMIT = 549, /* VAR_TCP_CONNECTION_LIMIT */ - VAR_FORWARD_NO_CACHE = 550, /* VAR_FORWARD_NO_CACHE */ - VAR_STUB_NO_CACHE = 551, /* VAR_STUB_NO_CACHE */ - VAR_LOG_SERVFAIL = 552, /* VAR_LOG_SERVFAIL */ - VAR_DENY_ANY = 553, /* VAR_DENY_ANY */ - VAR_UNKNOWN_SERVER_TIME_LIMIT = 554, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ - VAR_LOG_TAG_QUERYREPLY = 555, /* VAR_LOG_TAG_QUERYREPLY */ - VAR_STREAM_WAIT_SIZE = 556, /* VAR_STREAM_WAIT_SIZE */ - VAR_TLS_CIPHERS = 557, /* VAR_TLS_CIPHERS */ - VAR_TLS_CIPHERSUITES = 558, /* VAR_TLS_CIPHERSUITES */ - VAR_TLS_USE_SNI = 559, /* VAR_TLS_USE_SNI */ - VAR_IPSET = 560, /* VAR_IPSET */ - VAR_IPSET_NAME_V4 = 561, /* VAR_IPSET_NAME_V4 */ - VAR_IPSET_NAME_V6 = 562, /* VAR_IPSET_NAME_V6 */ - VAR_TLS_SESSION_TICKET_KEYS = 563, /* VAR_TLS_SESSION_TICKET_KEYS */ - VAR_RPZ = 564, /* VAR_RPZ */ - VAR_TAGS = 565, /* VAR_TAGS */ - VAR_RPZ_ACTION_OVERRIDE = 566, /* VAR_RPZ_ACTION_OVERRIDE */ - VAR_RPZ_CNAME_OVERRIDE = 567, /* VAR_RPZ_CNAME_OVERRIDE */ - VAR_RPZ_LOG = 568, /* VAR_RPZ_LOG */ - VAR_RPZ_LOG_NAME = 569, /* VAR_RPZ_LOG_NAME */ - VAR_DYNLIB = 570, /* VAR_DYNLIB */ - VAR_DYNLIB_FILE = 571, /* VAR_DYNLIB_FILE */ - VAR_EDNS_CLIENT_STRING = 572, /* VAR_EDNS_CLIENT_STRING */ - VAR_EDNS_CLIENT_STRING_OPCODE = 573, /* VAR_EDNS_CLIENT_STRING_OPCODE */ - VAR_NSID = 574, /* VAR_NSID */ - VAR_ZONEMD_PERMISSIVE_MODE = 575, /* VAR_ZONEMD_PERMISSIVE_MODE */ - VAR_ZONEMD_CHECK = 576, /* VAR_ZONEMD_CHECK */ - VAR_ZONEMD_REJECT_ABSENCE = 577, /* VAR_ZONEMD_REJECT_ABSENCE */ - VAR_RPZ_SIGNAL_NXDOMAIN_RA = 578, /* VAR_RPZ_SIGNAL_NXDOMAIN_RA */ - VAR_INTERFACE_AUTOMATIC_PORTS = 579 /* VAR_INTERFACE_AUTOMATIC_PORTS */ - }; - typedef enum yytokentype yytoken_kind_t; -#endif -/* Token kinds. */ -#define YYEOF 0 -#define YYerror 256 -#define YYUNDEF 257 -#define SPACE 258 -#define LETTER 259 -#define NEWLINE 260 -#define COMMENT 261 -#define COLON 262 -#define ANY 263 -#define ZONESTR 264 -#define STRING_ARG 265 -#define VAR_FORCE_TOPLEVEL 266 -#define VAR_SERVER 267 -#define VAR_VERBOSITY 268 -#define VAR_NUM_THREADS 269 -#define VAR_PORT 270 -#define VAR_OUTGOING_RANGE 271 -#define VAR_INTERFACE 272 -#define VAR_PREFER_IP4 273 -#define VAR_DO_IP4 274 -#define VAR_DO_IP6 275 -#define VAR_PREFER_IP6 276 -#define VAR_DO_UDP 277 -#define VAR_DO_TCP 278 -#define VAR_TCP_MSS 279 -#define VAR_OUTGOING_TCP_MSS 280 -#define VAR_TCP_IDLE_TIMEOUT 281 -#define VAR_EDNS_TCP_KEEPALIVE 282 -#define VAR_EDNS_TCP_KEEPALIVE_TIMEOUT 283 -#define VAR_CHROOT 284 -#define VAR_USERNAME 285 -#define VAR_DIRECTORY 286 -#define VAR_LOGFILE 287 -#define VAR_PIDFILE 288 -#define VAR_MSG_CACHE_SIZE 289 -#define VAR_MSG_CACHE_SLABS 290 -#define VAR_NUM_QUERIES_PER_THREAD 291 -#define VAR_RRSET_CACHE_SIZE 292 -#define VAR_RRSET_CACHE_SLABS 293 -#define VAR_OUTGOING_NUM_TCP 294 -#define VAR_INFRA_HOST_TTL 295 -#define VAR_INFRA_LAME_TTL 296 -#define VAR_INFRA_CACHE_SLABS 297 -#define VAR_INFRA_CACHE_NUMHOSTS 298 -#define VAR_INFRA_CACHE_LAME_SIZE 299 -#define VAR_NAME 300 -#define VAR_STUB_ZONE 301 -#define VAR_STUB_HOST 302 -#define VAR_STUB_ADDR 303 -#define VAR_TARGET_FETCH_POLICY 304 -#define VAR_HARDEN_SHORT_BUFSIZE 305 -#define VAR_HARDEN_LARGE_QUERIES 306 -#define VAR_FORWARD_ZONE 307 -#define VAR_FORWARD_HOST 308 -#define VAR_FORWARD_ADDR 309 -#define VAR_DO_NOT_QUERY_ADDRESS 310 -#define VAR_HIDE_IDENTITY 311 -#define VAR_HIDE_VERSION 312 -#define VAR_IDENTITY 313 -#define VAR_VERSION 314 -#define VAR_HARDEN_GLUE 315 -#define VAR_MODULE_CONF 316 -#define VAR_TRUST_ANCHOR_FILE 317 -#define VAR_TRUST_ANCHOR 318 -#define VAR_VAL_OVERRIDE_DATE 319 -#define VAR_BOGUS_TTL 320 -#define VAR_VAL_CLEAN_ADDITIONAL 321 -#define VAR_VAL_PERMISSIVE_MODE 322 -#define VAR_INCOMING_NUM_TCP 323 -#define VAR_MSG_BUFFER_SIZE 324 -#define VAR_KEY_CACHE_SIZE 325 -#define VAR_KEY_CACHE_SLABS 326 -#define VAR_TRUSTED_KEYS_FILE 327 -#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 328 -#define VAR_USE_SYSLOG 329 -#define VAR_OUTGOING_INTERFACE 330 -#define VAR_ROOT_HINTS 331 -#define VAR_DO_NOT_QUERY_LOCALHOST 332 -#define VAR_CACHE_MAX_TTL 333 -#define VAR_HARDEN_DNSSEC_STRIPPED 334 -#define VAR_ACCESS_CONTROL 335 -#define VAR_LOCAL_ZONE 336 -#define VAR_LOCAL_DATA 337 -#define VAR_INTERFACE_AUTOMATIC 338 -#define VAR_STATISTICS_INTERVAL 339 -#define VAR_DO_DAEMONIZE 340 -#define VAR_USE_CAPS_FOR_ID 341 -#define VAR_STATISTICS_CUMULATIVE 342 -#define VAR_OUTGOING_PORT_PERMIT 343 -#define VAR_OUTGOING_PORT_AVOID 344 -#define VAR_DLV_ANCHOR_FILE 345 -#define VAR_DLV_ANCHOR 346 -#define VAR_NEG_CACHE_SIZE 347 -#define VAR_HARDEN_REFERRAL_PATH 348 -#define VAR_PRIVATE_ADDRESS 349 -#define VAR_PRIVATE_DOMAIN 350 -#define VAR_REMOTE_CONTROL 351 -#define VAR_CONTROL_ENABLE 352 -#define VAR_CONTROL_INTERFACE 353 -#define VAR_CONTROL_PORT 354 -#define VAR_SERVER_KEY_FILE 355 -#define VAR_SERVER_CERT_FILE 356 -#define VAR_CONTROL_KEY_FILE 357 -#define VAR_CONTROL_CERT_FILE 358 -#define VAR_CONTROL_USE_CERT 359 -#define VAR_TCP_REUSE_TIMEOUT 360 -#define VAR_MAX_REUSE_TCP_QUERIES 361 -#define VAR_EXTENDED_STATISTICS 362 -#define VAR_LOCAL_DATA_PTR 363 -#define VAR_JOSTLE_TIMEOUT 364 -#define VAR_STUB_PRIME 365 -#define VAR_UNWANTED_REPLY_THRESHOLD 366 -#define VAR_LOG_TIME_ASCII 367 -#define VAR_DOMAIN_INSECURE 368 -#define VAR_PYTHON 369 -#define VAR_PYTHON_SCRIPT 370 -#define VAR_VAL_SIG_SKEW_MIN 371 -#define VAR_VAL_SIG_SKEW_MAX 372 -#define VAR_VAL_MAX_RESTART 373 -#define VAR_CACHE_MIN_TTL 374 -#define VAR_VAL_LOG_LEVEL 375 -#define VAR_AUTO_TRUST_ANCHOR_FILE 376 -#define VAR_KEEP_MISSING 377 -#define VAR_ADD_HOLDDOWN 378 -#define VAR_DEL_HOLDDOWN 379 -#define VAR_SO_RCVBUF 380 -#define VAR_EDNS_BUFFER_SIZE 381 -#define VAR_PREFETCH 382 -#define VAR_PREFETCH_KEY 383 -#define VAR_SO_SNDBUF 384 -#define VAR_SO_REUSEPORT 385 -#define VAR_HARDEN_BELOW_NXDOMAIN 386 -#define VAR_IGNORE_CD_FLAG 387 -#define VAR_LOG_QUERIES 388 -#define VAR_LOG_REPLIES 389 -#define VAR_LOG_LOCAL_ACTIONS 390 -#define VAR_TCP_UPSTREAM 391 -#define VAR_SSL_UPSTREAM 392 -#define VAR_TCP_AUTH_QUERY_TIMEOUT 393 -#define VAR_SSL_SERVICE_KEY 394 -#define VAR_SSL_SERVICE_PEM 395 -#define VAR_SSL_PORT 396 -#define VAR_FORWARD_FIRST 397 -#define VAR_STUB_SSL_UPSTREAM 398 -#define VAR_FORWARD_SSL_UPSTREAM 399 -#define VAR_TLS_CERT_BUNDLE 400 -#define VAR_STUB_TCP_UPSTREAM 401 -#define VAR_FORWARD_TCP_UPSTREAM 402 -#define VAR_HTTPS_PORT 403 -#define VAR_HTTP_ENDPOINT 404 -#define VAR_HTTP_MAX_STREAMS 405 -#define VAR_HTTP_QUERY_BUFFER_SIZE 406 -#define VAR_HTTP_RESPONSE_BUFFER_SIZE 407 -#define VAR_HTTP_NODELAY 408 -#define VAR_HTTP_NOTLS_DOWNSTREAM 409 -#define VAR_STUB_FIRST 410 -#define VAR_MINIMAL_RESPONSES 411 -#define VAR_RRSET_ROUNDROBIN 412 -#define VAR_MAX_UDP_SIZE 413 -#define VAR_DELAY_CLOSE 414 -#define VAR_UDP_CONNECT 415 -#define VAR_UNBLOCK_LAN_ZONES 416 -#define VAR_INSECURE_LAN_ZONES 417 -#define VAR_INFRA_CACHE_MIN_RTT 418 -#define VAR_INFRA_KEEP_PROBING 419 -#define VAR_DNS64_PREFIX 420 -#define VAR_DNS64_SYNTHALL 421 -#define VAR_DNS64_IGNORE_AAAA 422 -#define VAR_DNSTAP 423 -#define VAR_DNSTAP_ENABLE 424 -#define VAR_DNSTAP_SOCKET_PATH 425 -#define VAR_DNSTAP_IP 426 -#define VAR_DNSTAP_TLS 427 -#define VAR_DNSTAP_TLS_SERVER_NAME 428 -#define VAR_DNSTAP_TLS_CERT_BUNDLE 429 -#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 430 -#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 431 -#define VAR_DNSTAP_SEND_IDENTITY 432 -#define VAR_DNSTAP_SEND_VERSION 433 -#define VAR_DNSTAP_BIDIRECTIONAL 434 -#define VAR_DNSTAP_IDENTITY 435 -#define VAR_DNSTAP_VERSION 436 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 437 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 438 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 439 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 440 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 441 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 442 -#define VAR_RESPONSE_IP_TAG 443 -#define VAR_RESPONSE_IP 444 -#define VAR_RESPONSE_IP_DATA 445 -#define VAR_HARDEN_ALGO_DOWNGRADE 446 -#define VAR_IP_TRANSPARENT 447 -#define VAR_IP_DSCP 448 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 449 -#define VAR_IP_RATELIMIT 450 -#define VAR_IP_RATELIMIT_SLABS 451 -#define VAR_IP_RATELIMIT_SIZE 452 -#define VAR_RATELIMIT 453 -#define VAR_RATELIMIT_SLABS 454 -#define VAR_RATELIMIT_SIZE 455 -#define VAR_OUTBOUND_MSG_RETRY 456 -#define VAR_RATELIMIT_FOR_DOMAIN 457 -#define VAR_RATELIMIT_BELOW_DOMAIN 458 -#define VAR_IP_RATELIMIT_FACTOR 459 -#define VAR_RATELIMIT_FACTOR 460 -#define VAR_IP_RATELIMIT_BACKOFF 461 -#define VAR_RATELIMIT_BACKOFF 462 -#define VAR_SEND_CLIENT_SUBNET 463 -#define VAR_CLIENT_SUBNET_ZONE 464 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 465 -#define VAR_CLIENT_SUBNET_OPCODE 466 -#define VAR_MAX_CLIENT_SUBNET_IPV4 467 -#define VAR_MAX_CLIENT_SUBNET_IPV6 468 -#define VAR_MIN_CLIENT_SUBNET_IPV4 469 -#define VAR_MIN_CLIENT_SUBNET_IPV6 470 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 471 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 472 -#define VAR_CAPS_WHITELIST 473 -#define VAR_CACHE_MAX_NEGATIVE_TTL 474 -#define VAR_PERMIT_SMALL_HOLDDOWN 475 -#define VAR_QNAME_MINIMISATION 476 -#define VAR_QNAME_MINIMISATION_STRICT 477 -#define VAR_IP_FREEBIND 478 -#define VAR_DEFINE_TAG 479 -#define VAR_LOCAL_ZONE_TAG 480 -#define VAR_ACCESS_CONTROL_TAG 481 -#define VAR_LOCAL_ZONE_OVERRIDE 482 -#define VAR_ACCESS_CONTROL_TAG_ACTION 483 -#define VAR_ACCESS_CONTROL_TAG_DATA 484 -#define VAR_VIEW 485 -#define VAR_ACCESS_CONTROL_VIEW 486 -#define VAR_VIEW_FIRST 487 -#define VAR_SERVE_EXPIRED 488 -#define VAR_SERVE_EXPIRED_TTL 489 -#define VAR_SERVE_EXPIRED_TTL_RESET 490 -#define VAR_SERVE_EXPIRED_REPLY_TTL 491 -#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 492 -#define VAR_SERVE_ORIGINAL_TTL 493 -#define VAR_FAKE_DSA 494 -#define VAR_FAKE_SHA1 495 -#define VAR_LOG_IDENTITY 496 -#define VAR_HIDE_TRUSTANCHOR 497 -#define VAR_HIDE_HTTP_USER_AGENT 498 -#define VAR_HTTP_USER_AGENT 499 -#define VAR_TRUST_ANCHOR_SIGNALING 500 -#define VAR_AGGRESSIVE_NSEC 501 -#define VAR_USE_SYSTEMD 502 -#define VAR_SHM_ENABLE 503 -#define VAR_SHM_KEY 504 -#define VAR_ROOT_KEY_SENTINEL 505 -#define VAR_DNSCRYPT 506 -#define VAR_DNSCRYPT_ENABLE 507 -#define VAR_DNSCRYPT_PORT 508 -#define VAR_DNSCRYPT_PROVIDER 509 -#define VAR_DNSCRYPT_SECRET_KEY 510 -#define VAR_DNSCRYPT_PROVIDER_CERT 511 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 512 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 513 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 514 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 515 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 516 -#define VAR_PAD_RESPONSES 517 -#define VAR_PAD_RESPONSES_BLOCK_SIZE 518 -#define VAR_PAD_QUERIES 519 -#define VAR_PAD_QUERIES_BLOCK_SIZE 520 -#define VAR_IPSECMOD_ENABLED 521 -#define VAR_IPSECMOD_HOOK 522 -#define VAR_IPSECMOD_IGNORE_BOGUS 523 -#define VAR_IPSECMOD_MAX_TTL 524 -#define VAR_IPSECMOD_WHITELIST 525 -#define VAR_IPSECMOD_STRICT 526 -#define VAR_CACHEDB 527 -#define VAR_CACHEDB_BACKEND 528 -#define VAR_CACHEDB_SECRETSEED 529 -#define VAR_CACHEDB_REDISHOST 530 -#define VAR_CACHEDB_REDISPORT 531 -#define VAR_CACHEDB_REDISTIMEOUT 532 -#define VAR_CACHEDB_REDISEXPIRERECORDS 533 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 534 -#define VAR_FOR_UPSTREAM 535 -#define VAR_AUTH_ZONE 536 -#define VAR_ZONEFILE 537 -#define VAR_MASTER 538 -#define VAR_URL 539 -#define VAR_FOR_DOWNSTREAM 540 -#define VAR_FALLBACK_ENABLED 541 -#define VAR_TLS_ADDITIONAL_PORT 542 -#define VAR_LOW_RTT 543 -#define VAR_LOW_RTT_PERMIL 544 -#define VAR_FAST_SERVER_PERMIL 545 -#define VAR_FAST_SERVER_NUM 546 -#define VAR_ALLOW_NOTIFY 547 -#define VAR_TLS_WIN_CERT 548 -#define VAR_TCP_CONNECTION_LIMIT 549 -#define VAR_FORWARD_NO_CACHE 550 -#define VAR_STUB_NO_CACHE 551 -#define VAR_LOG_SERVFAIL 552 -#define VAR_DENY_ANY 553 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 554 -#define VAR_LOG_TAG_QUERYREPLY 555 -#define VAR_STREAM_WAIT_SIZE 556 -#define VAR_TLS_CIPHERS 557 -#define VAR_TLS_CIPHERSUITES 558 -#define VAR_TLS_USE_SNI 559 -#define VAR_IPSET 560 -#define VAR_IPSET_NAME_V4 561 -#define VAR_IPSET_NAME_V6 562 -#define VAR_TLS_SESSION_TICKET_KEYS 563 -#define VAR_RPZ 564 -#define VAR_TAGS 565 -#define VAR_RPZ_ACTION_OVERRIDE 566 -#define VAR_RPZ_CNAME_OVERRIDE 567 -#define VAR_RPZ_LOG 568 -#define VAR_RPZ_LOG_NAME 569 -#define VAR_DYNLIB 570 -#define VAR_DYNLIB_FILE 571 -#define VAR_EDNS_CLIENT_STRING 572 -#define VAR_EDNS_CLIENT_STRING_OPCODE 573 -#define VAR_NSID 574 -#define VAR_ZONEMD_PERMISSIVE_MODE 575 -#define VAR_ZONEMD_CHECK 576 -#define VAR_ZONEMD_REJECT_ABSENCE 577 -#define VAR_RPZ_SIGNAL_NXDOMAIN_RA 578 -#define VAR_INTERFACE_AUTOMATIC_PORTS 579 - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 66 "./util/configparser.y" - - char* str; - -#line 804 "util/configparser.c" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE yylval; - -int yyparse (void); - -#endif /* !YY_YY_UTIL_CONFIGPARSER_H_INCLUDED */ +#include "configparser.h" /* Symbol kind. */ enum yysymbol_kind_t { @@ -1536,6 +842,18 @@ typedef int_least16_t yytype_int16; typedef short yytype_int16; #endif +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ @@ -1633,9 +951,9 @@ typedef int yy_state_fast_t; /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ @@ -1813,6 +1131,7 @@ union yyalloc /* YYNSTATES -- Number of states. */ #define YYNSTATES 1006 +/* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 579 @@ -1938,27 +1257,27 @@ static const yytype_int16 yyrline[] = 1779, 1788, 1797, 1806, 1815, 1822, 1832, 1852, 1859, 1877, 1890, 1903, 1916, 1925, 1934, 1943, 1952, 1962, 1972, 1983, 1992, 2001, 2010, 2019, 2028, 2037, 2046, 2059, 2072, 2081, - 2088, 2097, 2106, 2115, 2124, 2133, 2141, 2154, 2162, 2207, - 2214, 2229, 2239, 2249, 2256, 2263, 2270, 2279, 2287, 2301, - 2322, 2343, 2355, 2367, 2379, 2388, 2409, 2418, 2427, 2435, - 2443, 2456, 2469, 2484, 2499, 2508, 2517, 2527, 2537, 2546, - 2552, 2561, 2570, 2580, 2590, 2600, 2609, 2619, 2628, 2641, - 2654, 2666, 2680, 2692, 2706, 2715, 2727, 2737, 2744, 2751, - 2760, 2769, 2779, 2789, 2799, 2809, 2816, 2823, 2832, 2841, - 2851, 2861, 2871, 2878, 2885, 2892, 2900, 2910, 2920, 2930, - 2940, 2950, 2960, 3006, 3016, 3024, 3032, 3047, 3056, 3061, - 3062, 3063, 3063, 3063, 3064, 3064, 3064, 3065, 3065, 3067, - 3077, 3086, 3093, 3100, 3107, 3114, 3121, 3128, 3133, 3134, - 3135, 3135, 3135, 3136, 3136, 3136, 3137, 3138, 3138, 3139, - 3139, 3140, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3148, - 3157, 3167, 3174, 3181, 3190, 3197, 3204, 3211, 3218, 3227, - 3236, 3243, 3250, 3260, 3270, 3280, 3290, 3300, 3310, 3315, - 3316, 3317, 3319, 3325, 3330, 3331, 3332, 3334, 3340, 3350, - 3357, 3366, 3374, 3379, 3380, 3382, 3382, 3382, 3383, 3383, - 3384, 3385, 3386, 3387, 3388, 3390, 3400, 3409, 3416, 3425, - 3432, 3441, 3449, 3462, 3470, 3483, 3488, 3489, 3490, 3490, - 3491, 3491, 3491, 3492, 3494, 3506, 3518, 3530, 3545, 3558, - 3571, 3582, 3587, 3588, 3589, 3589, 3591, 3606 + 2088, 2097, 2106, 2115, 2124, 2133, 2141, 2154, 2162, 2217, + 2224, 2239, 2249, 2259, 2266, 2273, 2280, 2289, 2297, 2311, + 2332, 2353, 2365, 2377, 2389, 2398, 2419, 2428, 2437, 2445, + 2453, 2466, 2479, 2494, 2509, 2518, 2527, 2537, 2547, 2556, + 2562, 2571, 2580, 2590, 2600, 2610, 2619, 2629, 2638, 2651, + 2664, 2676, 2690, 2702, 2716, 2725, 2737, 2747, 2754, 2761, + 2770, 2779, 2789, 2799, 2809, 2819, 2826, 2833, 2842, 2851, + 2861, 2871, 2881, 2888, 2895, 2902, 2910, 2920, 2930, 2940, + 2950, 2960, 2970, 3026, 3036, 3044, 3052, 3067, 3076, 3081, + 3082, 3083, 3083, 3083, 3084, 3084, 3084, 3085, 3085, 3087, + 3097, 3106, 3113, 3120, 3127, 3134, 3141, 3148, 3153, 3154, + 3155, 3155, 3155, 3156, 3156, 3156, 3157, 3158, 3158, 3159, + 3159, 3160, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3168, + 3177, 3187, 3194, 3201, 3210, 3217, 3224, 3231, 3238, 3247, + 3256, 3263, 3270, 3280, 3290, 3300, 3310, 3320, 3330, 3335, + 3336, 3337, 3339, 3345, 3350, 3351, 3352, 3354, 3360, 3370, + 3377, 3386, 3394, 3399, 3400, 3402, 3402, 3402, 3403, 3403, + 3404, 3405, 3406, 3407, 3408, 3410, 3420, 3429, 3436, 3445, + 3452, 3461, 3469, 3482, 3490, 3503, 3508, 3509, 3510, 3510, + 3511, 3511, 3511, 3512, 3514, 3526, 3538, 3550, 3565, 3578, + 3591, 3602, 3607, 3608, 3609, 3609, 3611, 3626 }; #endif @@ -2556,7 +1875,7 @@ static const yytype_int16 yypgoto[] = /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 17, 18, 19, 32, 267, 20, 33, 498, + 0, 1, 17, 18, 19, 32, 267, 20, 33, 498, 21, 34, 514, 22, 35, 529, 23, 36, 547, 564, 565, 566, 567, 568, 569, 24, 37, 570, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, @@ -3071,7 +2390,7 @@ yy_symbol_value_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { FILE *yyoutput = yyo; - YYUSE (yyoutput); + YY_USE (yyoutput); if (!yyvaluep) return; # ifdef YYPRINT @@ -3079,7 +2398,7 @@ yy_symbol_value_print (FILE *yyo, YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yykind); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -3193,18 +2512,18 @@ static void yydestruct (const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { - YYUSE (yyvaluep); + YY_USE (yyvaluep); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yykind); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -3222,34 +2541,30 @@ int yynerrs; int yyparse (void) { - yy_state_fast_t yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. + int yyerrstatus = 0; - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* Their size. */ - YYPTRDIFF_T yystacksize; + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The state stack. */ + /* The state stack: array, bottom, top. */ yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss; - yy_state_t *yyssp; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - /* The semantic value stack. */ + /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; int yyn; /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ + /* Lookahead symbol kind. */ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ @@ -3263,15 +2578,6 @@ yyparse (void) Keep to zero when no symbol should be popped. */ int yylen = 0; - yynerrs = 0; - yystate = 0; - yyerrstatus = 0; - - yystacksize = YYINITDEPTH; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - - YYDPRINTF ((stderr, "Starting parse\n")); yychar = YYEMPTY; /* Cause a token to be read. */ @@ -3472,23 +2778,23 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 18: + case 18: /* force_toplevel: VAR_FORCE_TOPLEVEL */ #line 204 "./util/configparser.y" { OUTYY(("\nP(force-toplevel)\n")); } -#line 3481 "util/configparser.c" +#line 2787 "util/configparser.c" break; - case 19: + case 19: /* serverstart: VAR_SERVER */ #line 210 "./util/configparser.y" { OUTYY(("\nP(server:)\n")); } -#line 3489 "util/configparser.c" +#line 2795 "util/configparser.c" break; - case 244: + case 244: /* stubstart: VAR_STUB_ZONE */ #line 319 "./util/configparser.y" { struct config_stub* s; @@ -3501,10 +2807,10 @@ yyreduce: yyerror("out of memory"); } } -#line 3505 "util/configparser.c" +#line 2811 "util/configparser.c" break; - case 255: + case 255: /* forwardstart: VAR_FORWARD_ZONE */ #line 337 "./util/configparser.y" { struct config_stub* s; @@ -3517,10 +2823,10 @@ yyreduce: yyerror("out of memory"); } } -#line 3521 "util/configparser.c" +#line 2827 "util/configparser.c" break; - case 265: + case 265: /* viewstart: VAR_VIEW */ #line 355 "./util/configparser.y" { struct config_view* s; @@ -3535,10 +2841,10 @@ yyreduce: yyerror("out of memory"); } } -#line 3539 "util/configparser.c" +#line 2845 "util/configparser.c" break; - case 275: + case 275: /* authstart: VAR_AUTH_ZONE */ #line 375 "./util/configparser.y" { struct config_auth* s; @@ -3558,10 +2864,10 @@ yyreduce: yyerror("out of memory"); } } -#line 3562 "util/configparser.c" +#line 2868 "util/configparser.c" break; - case 288: + case 288: /* rpz_tag: VAR_TAGS STRING_ARG */ #line 402 "./util/configparser.y" { uint8_t* bitlist; @@ -3579,10 +2885,10 @@ yyreduce: } } -#line 3583 "util/configparser.c" +#line 2889 "util/configparser.c" break; - case 289: + case 289: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */ #line 421 "./util/configparser.y" { OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); @@ -3598,20 +2904,20 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 3602 "util/configparser.c" +#line 2908 "util/configparser.c" break; - case 290: + case 290: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */ #line 438 "./util/configparser.y" { OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_cname); cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); } -#line 3612 "util/configparser.c" +#line 2918 "util/configparser.c" break; - case 291: + case 291: /* rpz_log: VAR_RPZ_LOG STRING_ARG */ #line 446 "./util/configparser.y" { OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); @@ -3620,20 +2926,20 @@ yyreduce: else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3624 "util/configparser.c" +#line 2930 "util/configparser.c" break; - case 292: + case 292: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */ #line 456 "./util/configparser.y" { OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_log_name); cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); } -#line 3634 "util/configparser.c" +#line 2940 "util/configparser.c" break; - case 293: + case 293: /* rpz_signal_nxdomain_ra: VAR_RPZ_SIGNAL_NXDOMAIN_RA STRING_ARG */ #line 463 "./util/configparser.y" { OUTYY(("P(rpz_signal_nxdomain_ra:%s)\n", (yyvsp[0].str))); @@ -3642,10 +2948,10 @@ yyreduce: else cfg_parser->cfg->auths->rpz_signal_nxdomain_ra = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3646 "util/configparser.c" +#line 2952 "util/configparser.c" break; - case 294: + case 294: /* rpzstart: VAR_RPZ */ #line 473 "./util/configparser.y" { struct config_auth* s; @@ -3663,10 +2969,10 @@ yyreduce: yyerror("out of memory"); } } -#line 3667 "util/configparser.c" +#line 2973 "util/configparser.c" break; - case 309: + case 309: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */ #line 497 "./util/configparser.y" { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); @@ -3675,10 +2981,10 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3679 "util/configparser.c" +#line 2985 "util/configparser.c" break; - case 310: + case 310: /* server_verbosity: VAR_VERBOSITY STRING_ARG */ #line 506 "./util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); @@ -3687,10 +2993,10 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3691 "util/configparser.c" +#line 2997 "util/configparser.c" break; - case 311: + case 311: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */ #line 515 "./util/configparser.y" { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); @@ -3701,10 +3007,10 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3705 "util/configparser.c" +#line 3011 "util/configparser.c" break; - case 312: + case 312: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */ #line 526 "./util/configparser.y" { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); @@ -3713,10 +3019,10 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3717 "util/configparser.c" +#line 3023 "util/configparser.c" break; - case 313: + case 313: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */ #line 535 "./util/configparser.y" { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); @@ -3725,10 +3031,10 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3729 "util/configparser.c" +#line 3035 "util/configparser.c" break; - case 314: + case 314: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */ #line 544 "./util/configparser.y" { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); @@ -3737,10 +3043,10 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3741 "util/configparser.c" +#line 3047 "util/configparser.c" break; - case 315: + case 315: /* server_shm_key: VAR_SHM_KEY STRING_ARG */ #line 553 "./util/configparser.y" { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); @@ -3751,10 +3057,10 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3755 "util/configparser.c" +#line 3061 "util/configparser.c" break; - case 316: + case 316: /* server_port: VAR_PORT STRING_ARG */ #line 564 "./util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); @@ -3763,10 +3069,10 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3767 "util/configparser.c" +#line 3073 "util/configparser.c" break; - case 317: + case 317: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */ #line 573 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3778,10 +3084,10 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3782 "util/configparser.c" +#line 3088 "util/configparser.c" break; - case 318: + case 318: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */ #line 585 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3794,10 +3100,10 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3798 "util/configparser.c" +#line 3104 "util/configparser.c" break; - case 319: + case 319: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */ #line 599 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3812,10 +3118,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3816 "util/configparser.c" +#line 3122 "util/configparser.c" break; - case 320: + case 320: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */ #line 614 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3826,10 +3132,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3830 "util/configparser.c" +#line 3136 "util/configparser.c" break; - case 321: + case 321: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */ #line 625 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3846,10 +3152,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3850 "util/configparser.c" +#line 3156 "util/configparser.c" break; - case 322: + case 322: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */ #line 642 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3866,10 +3172,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3870 "util/configparser.c" +#line 3176 "util/configparser.c" break; - case 323: + case 323: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */ #line 659 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3886,10 +3192,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3890 "util/configparser.c" +#line 3196 "util/configparser.c" break; - case 324: + case 324: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */ #line 676 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3906,10 +3212,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3910 "util/configparser.c" +#line 3216 "util/configparser.c" break; - case 325: + case 325: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */ #line 693 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3924,10 +3230,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3928 "util/configparser.c" +#line 3234 "util/configparser.c" break; - case 326: + case 326: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */ #line 708 "./util/configparser.y" { #ifdef CLIENT_SUBNET @@ -3942,10 +3248,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3946 "util/configparser.c" +#line 3252 "util/configparser.c" break; - case 327: + case 327: /* server_interface: VAR_INTERFACE STRING_ARG */ #line 723 "./util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); @@ -3958,10 +3264,10 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3962 "util/configparser.c" +#line 3268 "util/configparser.c" break; - case 328: + case 328: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */ #line 736 "./util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); @@ -3976,10 +3282,10 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3980 "util/configparser.c" +#line 3286 "util/configparser.c" break; - case 329: + case 329: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */ #line 751 "./util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); @@ -3988,10 +3294,10 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3992 "util/configparser.c" +#line 3298 "util/configparser.c" break; - case 330: + case 330: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */ #line 760 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); @@ -4000,10 +3306,10 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 4004 "util/configparser.c" +#line 3310 "util/configparser.c" break; - case 331: + case 331: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */ #line 769 "./util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); @@ -4012,10 +3318,10 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 4016 "util/configparser.c" +#line 3322 "util/configparser.c" break; - case 332: + case 332: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */ #line 778 "./util/configparser.y" { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); @@ -4024,10 +3330,10 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4028 "util/configparser.c" +#line 3334 "util/configparser.c" break; - case 333: + case 333: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */ #line 787 "./util/configparser.y" { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); @@ -4036,10 +3342,10 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4040 "util/configparser.c" +#line 3346 "util/configparser.c" break; - case 334: + case 334: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */ #line 796 "./util/configparser.y" { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); @@ -4048,20 +3354,20 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4052 "util/configparser.c" +#line 3358 "util/configparser.c" break; - case 335: + case 335: /* server_interface_automatic_ports: VAR_INTERFACE_AUTOMATIC_PORTS STRING_ARG */ #line 805 "./util/configparser.y" { OUTYY(("P(server_interface_automatic_ports:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->if_automatic_ports); cfg_parser->cfg->if_automatic_ports = (yyvsp[0].str); } -#line 4062 "util/configparser.c" +#line 3368 "util/configparser.c" break; - case 336: + case 336: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */ #line 812 "./util/configparser.y" { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); @@ -4070,10 +3376,10 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4074 "util/configparser.c" +#line 3380 "util/configparser.c" break; - case 337: + case 337: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */ #line 821 "./util/configparser.y" { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); @@ -4082,10 +3388,10 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4086 "util/configparser.c" +#line 3392 "util/configparser.c" break; - case 338: + case 338: /* server_do_udp: VAR_DO_UDP STRING_ARG */ #line 830 "./util/configparser.y" { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); @@ -4094,10 +3400,10 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4098 "util/configparser.c" +#line 3404 "util/configparser.c" break; - case 339: + case 339: /* server_do_tcp: VAR_DO_TCP STRING_ARG */ #line 839 "./util/configparser.y" { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); @@ -4106,10 +3412,10 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4110 "util/configparser.c" +#line 3416 "util/configparser.c" break; - case 340: + case 340: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */ #line 848 "./util/configparser.y" { OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); @@ -4118,10 +3424,10 @@ yyreduce: else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4122 "util/configparser.c" +#line 3428 "util/configparser.c" break; - case 341: + case 341: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */ #line 857 "./util/configparser.y" { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); @@ -4130,10 +3436,10 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4134 "util/configparser.c" +#line 3440 "util/configparser.c" break; - case 342: + case 342: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */ #line 866 "./util/configparser.y" { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); @@ -4142,10 +3448,10 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4146 "util/configparser.c" +#line 3452 "util/configparser.c" break; - case 343: + case 343: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */ #line 875 "./util/configparser.y" { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); @@ -4154,10 +3460,10 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4158 "util/configparser.c" +#line 3464 "util/configparser.c" break; - case 344: + case 344: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */ #line 884 "./util/configparser.y" { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); @@ -4170,10 +3476,10 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4174 "util/configparser.c" +#line 3480 "util/configparser.c" break; - case 345: + case 345: /* server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG */ #line 897 "./util/configparser.y" { OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str))); @@ -4184,10 +3490,10 @@ yyreduce: else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4188 "util/configparser.c" +#line 3494 "util/configparser.c" break; - case 346: + case 346: /* server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG */ #line 908 "./util/configparser.y" { OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str))); @@ -4198,10 +3504,10 @@ yyreduce: else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4202 "util/configparser.c" +#line 3508 "util/configparser.c" break; - case 347: + case 347: /* server_tcp_auth_query_timeout: VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG */ #line 919 "./util/configparser.y" { OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[0].str))); @@ -4212,10 +3518,10 @@ yyreduce: else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4216 "util/configparser.c" +#line 3522 "util/configparser.c" break; - case 348: + case 348: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */ #line 930 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); @@ -4224,10 +3530,10 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4228 "util/configparser.c" +#line 3534 "util/configparser.c" break; - case 349: + case 349: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */ #line 939 "./util/configparser.y" { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); @@ -4240,10 +3546,10 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4244 "util/configparser.c" +#line 3550 "util/configparser.c" break; - case 350: + case 350: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */ #line 952 "./util/configparser.y" { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); @@ -4252,10 +3558,10 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4256 "util/configparser.c" +#line 3562 "util/configparser.c" break; - case 351: + case 351: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */ #line 961 "./util/configparser.y" { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); @@ -4264,10 +3570,10 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4268 "util/configparser.c" +#line 3574 "util/configparser.c" break; - case 352: + case 352: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */ #line 970 "./util/configparser.y" { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); @@ -4276,30 +3582,30 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4280 "util/configparser.c" +#line 3586 "util/configparser.c" break; - case 353: + case 353: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */ #line 979 "./util/configparser.y" { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } -#line 4290 "util/configparser.c" +#line 3596 "util/configparser.c" break; - case 354: + case 354: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */ #line 986 "./util/configparser.y" { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } -#line 4300 "util/configparser.c" +#line 3606 "util/configparser.c" break; - case 355: + case 355: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */ #line 993 "./util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); @@ -4308,20 +3614,20 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4312 "util/configparser.c" +#line 3618 "util/configparser.c" break; - case 356: + case 356: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */ #line 1002 "./util/configparser.y" { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } -#line 4322 "util/configparser.c" +#line 3628 "util/configparser.c" break; - case 357: + case 357: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */ #line 1009 "./util/configparser.y" { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); @@ -4330,10 +3636,10 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4334 "util/configparser.c" +#line 3640 "util/configparser.c" break; - case 358: + case 358: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */ #line 1018 "./util/configparser.y" { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); @@ -4341,30 +3647,30 @@ yyreduce: (yyvsp[0].str))) yyerror("out of memory"); } -#line 4345 "util/configparser.c" +#line 3651 "util/configparser.c" break; - case 359: + case 359: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */ #line 1026 "./util/configparser.y" { OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphers); cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); } -#line 4355 "util/configparser.c" +#line 3661 "util/configparser.c" break; - case 360: + case 360: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */ #line 1033 "./util/configparser.y" { OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphersuites); cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); } -#line 4365 "util/configparser.c" +#line 3671 "util/configparser.c" break; - case 361: + case 361: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */ #line 1040 "./util/configparser.y" { OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); @@ -4372,10 +3678,10 @@ yyreduce: (yyvsp[0].str))) yyerror("out of memory"); } -#line 4376 "util/configparser.c" +#line 3682 "util/configparser.c" break; - case 362: + case 362: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */ #line 1048 "./util/configparser.y" { OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); @@ -4384,10 +3690,10 @@ yyreduce: else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4388 "util/configparser.c" +#line 3694 "util/configparser.c" break; - case 363: + case 363: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */ #line 1057 "./util/configparser.y" { OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); @@ -4396,10 +3702,10 @@ yyreduce: else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4400 "util/configparser.c" +#line 3706 "util/configparser.c" break; - case 364: + case 364: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */ #line 1065 "./util/configparser.y" { OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); @@ -4416,10 +3722,10 @@ yyreduce: cfg_parser->cfg->http_endpoint = (yyvsp[0].str); } } -#line 4420 "util/configparser.c" +#line 3726 "util/configparser.c" break; - case 365: + case 365: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */ #line 1081 "./util/configparser.y" { OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); @@ -4428,10 +3734,10 @@ yyreduce: else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4432 "util/configparser.c" +#line 3738 "util/configparser.c" break; - case 366: + case 366: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */ #line 1089 "./util/configparser.y" { OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); @@ -4440,10 +3746,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4444 "util/configparser.c" +#line 3750 "util/configparser.c" break; - case 367: + case 367: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */ #line 1097 "./util/configparser.y" { OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); @@ -4452,10 +3758,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4456 "util/configparser.c" +#line 3762 "util/configparser.c" break; - case 368: + case 368: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */ #line 1105 "./util/configparser.y" { OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str))); @@ -4464,10 +3770,10 @@ yyreduce: else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4468 "util/configparser.c" +#line 3774 "util/configparser.c" break; - case 369: + case 369: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */ #line 1113 "./util/configparser.y" { OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str))); @@ -4476,10 +3782,10 @@ yyreduce: else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4480 "util/configparser.c" +#line 3786 "util/configparser.c" break; - case 370: + case 370: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */ #line 1121 "./util/configparser.y" { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); @@ -4488,10 +3794,10 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4492 "util/configparser.c" +#line 3798 "util/configparser.c" break; - case 371: + case 371: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */ #line 1130 "./util/configparser.y" { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); @@ -4500,10 +3806,10 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4504 "util/configparser.c" +#line 3810 "util/configparser.c" break; - case 372: + case 372: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */ #line 1139 "./util/configparser.y" { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); @@ -4517,10 +3823,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4521 "util/configparser.c" +#line 3827 "util/configparser.c" break; - case 373: + case 373: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */ #line 1153 "./util/configparser.y" { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); @@ -4529,10 +3835,10 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4533 "util/configparser.c" +#line 3839 "util/configparser.c" break; - case 374: + case 374: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */ #line 1162 "./util/configparser.y" { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); @@ -4541,10 +3847,10 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4545 "util/configparser.c" +#line 3851 "util/configparser.c" break; - case 375: + case 375: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */ #line 1171 "./util/configparser.y" { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); @@ -4553,10 +3859,10 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4557 "util/configparser.c" +#line 3863 "util/configparser.c" break; - case 376: + case 376: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */ #line 1180 "./util/configparser.y" { OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); @@ -4565,10 +3871,10 @@ yyreduce: else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4569 "util/configparser.c" +#line 3875 "util/configparser.c" break; - case 377: + case 377: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */ #line 1189 "./util/configparser.y" { OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); @@ -4577,10 +3883,10 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4581 "util/configparser.c" +#line 3887 "util/configparser.c" break; - case 378: + case 378: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */ #line 1198 "./util/configparser.y" { OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); @@ -4589,30 +3895,30 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4593 "util/configparser.c" +#line 3899 "util/configparser.c" break; - case 379: + case 379: /* server_chroot: VAR_CHROOT STRING_ARG */ #line 1207 "./util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 4603 "util/configparser.c" +#line 3909 "util/configparser.c" break; - case 380: + case 380: /* server_username: VAR_USERNAME STRING_ARG */ #line 1214 "./util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 4613 "util/configparser.c" +#line 3919 "util/configparser.c" break; - case 381: + case 381: /* server_directory: VAR_DIRECTORY STRING_ARG */ #line 1221 "./util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); @@ -4638,10 +3944,10 @@ yyreduce: } } } -#line 4642 "util/configparser.c" +#line 3948 "util/configparser.c" break; - case 382: + case 382: /* server_logfile: VAR_LOGFILE STRING_ARG */ #line 1247 "./util/configparser.y" { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); @@ -4649,50 +3955,50 @@ yyreduce: cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } -#line 4653 "util/configparser.c" +#line 3959 "util/configparser.c" break; - case 383: + case 383: /* server_pidfile: VAR_PIDFILE STRING_ARG */ #line 1255 "./util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 4663 "util/configparser.c" +#line 3969 "util/configparser.c" break; - case 384: + case 384: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */ #line 1262 "./util/configparser.y" { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4673 "util/configparser.c" +#line 3979 "util/configparser.c" break; - case 385: + case 385: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */ #line 1269 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 4683 "util/configparser.c" +#line 3989 "util/configparser.c" break; - case 386: + case 386: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */ #line 1276 "./util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 4693 "util/configparser.c" +#line 3999 "util/configparser.c" break; - case 387: + case 387: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */ #line 1283 "./util/configparser.y" { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); @@ -4700,10 +4006,10 @@ yyreduce: auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4704 "util/configparser.c" +#line 4010 "util/configparser.c" break; - case 388: + case 388: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */ #line 1291 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); @@ -4711,10 +4017,10 @@ yyreduce: trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4715 "util/configparser.c" +#line 4021 "util/configparser.c" break; - case 389: + case 389: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */ #line 1299 "./util/configparser.y" { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); @@ -4722,20 +4028,20 @@ yyreduce: trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4726 "util/configparser.c" +#line 4032 "util/configparser.c" break; - case 390: + case 390: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */ #line 1307 "./util/configparser.y" { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4736 "util/configparser.c" +#line 4042 "util/configparser.c" break; - case 391: + case 391: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */ #line 1314 "./util/configparser.y" { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); @@ -4746,10 +4052,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4750 "util/configparser.c" +#line 4056 "util/configparser.c" break; - case 392: + case 392: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */ #line 1325 "./util/configparser.y" { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); @@ -4760,20 +4066,20 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4764 "util/configparser.c" +#line 4070 "util/configparser.c" break; - case 393: + case 393: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */ #line 1336 "./util/configparser.y" { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4774 "util/configparser.c" +#line 4080 "util/configparser.c" break; - case 394: + case 394: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */ #line 1343 "./util/configparser.y" { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); @@ -4782,10 +4088,10 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4786 "util/configparser.c" +#line 4092 "util/configparser.c" break; - case 395: + case 395: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */ #line 1352 "./util/configparser.y" { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); @@ -4794,10 +4100,10 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4798 "util/configparser.c" +#line 4104 "util/configparser.c" break; - case 396: + case 396: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */ #line 1361 "./util/configparser.y" { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); @@ -4806,10 +4112,10 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4810 "util/configparser.c" +#line 4116 "util/configparser.c" break; - case 397: + case 397: /* server_hide_http_user_agent: VAR_HIDE_HTTP_USER_AGENT STRING_ARG */ #line 1370 "./util/configparser.y" { OUTYY(("P(server_hide_user_agent:%s)\n", (yyvsp[0].str))); @@ -4818,40 +4124,40 @@ yyreduce: else cfg_parser->cfg->hide_http_user_agent = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4822 "util/configparser.c" +#line 4128 "util/configparser.c" break; - case 398: + case 398: /* server_identity: VAR_IDENTITY STRING_ARG */ #line 1379 "./util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 4832 "util/configparser.c" +#line 4138 "util/configparser.c" break; - case 399: + case 399: /* server_version: VAR_VERSION STRING_ARG */ #line 1386 "./util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 4842 "util/configparser.c" +#line 4148 "util/configparser.c" break; - case 400: + case 400: /* server_http_user_agent: VAR_HTTP_USER_AGENT STRING_ARG */ #line 1393 "./util/configparser.y" { OUTYY(("P(server_http_user_agent:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_user_agent); cfg_parser->cfg->http_user_agent = (yyvsp[0].str); } -#line 4852 "util/configparser.c" +#line 4158 "util/configparser.c" break; - case 401: + case 401: /* server_nsid: VAR_NSID STRING_ARG */ #line 1400 "./util/configparser.y" { OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str))); @@ -4867,10 +4173,10 @@ yyreduce: yyerror("the NSID must be either a hex string or an " "ascii character string prepended with ascii_."); } -#line 4871 "util/configparser.c" +#line 4177 "util/configparser.c" break; - case 402: + case 402: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */ #line 1416 "./util/configparser.y" { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); @@ -4878,10 +4184,10 @@ yyreduce: yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4882 "util/configparser.c" +#line 4188 "util/configparser.c" break; - case 403: + case 403: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */ #line 1424 "./util/configparser.y" { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); @@ -4889,10 +4195,10 @@ yyreduce: yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4893 "util/configparser.c" +#line 4199 "util/configparser.c" break; - case 404: + case 404: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */ #line 1432 "./util/configparser.y" { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); @@ -4902,10 +4208,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4906 "util/configparser.c" +#line 4212 "util/configparser.c" break; - case 405: + case 405: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */ #line 1442 "./util/configparser.y" { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); @@ -4915,10 +4221,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4919 "util/configparser.c" +#line 4225 "util/configparser.c" break; - case 406: + case 406: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */ #line 1452 "./util/configparser.y" { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); @@ -4928,10 +4234,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4932 "util/configparser.c" +#line 4238 "util/configparser.c" break; - case 407: + case 407: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */ #line 1462 "./util/configparser.y" { OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); @@ -4945,10 +4251,10 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4949 "util/configparser.c" +#line 4255 "util/configparser.c" break; - case 408: + case 408: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */ #line 1476 "./util/configparser.y" { OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); @@ -4956,10 +4262,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4960 "util/configparser.c" +#line 4266 "util/configparser.c" break; - case 409: + case 409: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */ #line 1484 "./util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); @@ -4972,10 +4278,10 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4976 "util/configparser.c" +#line 4282 "util/configparser.c" break; - case 410: + case 410: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */ #line 1497 "./util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); @@ -4986,10 +4292,10 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4990 "util/configparser.c" +#line 4296 "util/configparser.c" break; - case 411: + case 411: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */ #line 1508 "./util/configparser.y" { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); @@ -4997,10 +4303,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5001 "util/configparser.c" +#line 4307 "util/configparser.c" break; - case 412: + case 412: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */ #line 1516 "./util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); @@ -5013,10 +4319,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5017 "util/configparser.c" +#line 4323 "util/configparser.c" break; - case 413: + case 413: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */ #line 1529 "./util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); @@ -5025,10 +4331,10 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5029 "util/configparser.c" +#line 4335 "util/configparser.c" break; - case 414: + case 414: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */ #line 1538 "./util/configparser.y" { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); @@ -5037,10 +4343,10 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5041 "util/configparser.c" +#line 4347 "util/configparser.c" break; - case 415: + case 415: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */ #line 1547 "./util/configparser.y" { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); @@ -5049,10 +4355,10 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5053 "util/configparser.c" +#line 4359 "util/configparser.c" break; - case 416: + case 416: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */ #line 1556 "./util/configparser.y" { OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str))); @@ -5061,10 +4367,10 @@ yyreduce: else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5065 "util/configparser.c" +#line 4371 "util/configparser.c" break; - case 417: + case 417: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */ #line 1565 "./util/configparser.y" { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); @@ -5074,10 +4380,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5078 "util/configparser.c" +#line 4384 "util/configparser.c" break; - case 418: + case 418: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */ #line 1575 "./util/configparser.y" { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); @@ -5087,10 +4393,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5091 "util/configparser.c" +#line 4397 "util/configparser.c" break; - case 419: + case 419: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */ #line 1585 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); @@ -5098,10 +4404,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5102 "util/configparser.c" +#line 4408 "util/configparser.c" break; - case 420: + case 420: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */ #line 1593 "./util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); @@ -5114,10 +4420,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5118 "util/configparser.c" +#line 4424 "util/configparser.c" break; - case 421: + case 421: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */ #line 1606 "./util/configparser.y" { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); @@ -5126,10 +4432,10 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5130 "util/configparser.c" +#line 4436 "util/configparser.c" break; - case 422: + case 422: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */ #line 1615 "./util/configparser.y" { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); @@ -5137,10 +4443,10 @@ yyreduce: "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5141 "util/configparser.c" +#line 4447 "util/configparser.c" break; - case 423: + case 423: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */ #line 1623 "./util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); @@ -5149,10 +4455,10 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5153 "util/configparser.c" +#line 4459 "util/configparser.c" break; - case 424: + case 424: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */ #line 1632 "./util/configparser.y" { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); @@ -5160,10 +4466,10 @@ yyreduce: "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5164 "util/configparser.c" +#line 4470 "util/configparser.c" break; - case 425: + case 425: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */ #line 1640 "./util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); @@ -5176,10 +4482,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5180 "util/configparser.c" +#line 4486 "util/configparser.c" break; - case 426: + case 426: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */ #line 1653 "./util/configparser.y" { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); @@ -5188,10 +4494,10 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5192 "util/configparser.c" +#line 4498 "util/configparser.c" break; - case 427: + case 427: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */ #line 1662 "./util/configparser.y" { OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str))); @@ -5201,20 +4507,20 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5205 "util/configparser.c" +#line 4511 "util/configparser.c" break; - case 428: + case 428: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */ #line 1672 "./util/configparser.y" { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } -#line 5215 "util/configparser.c" +#line 4521 "util/configparser.c" break; - case 429: + case 429: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */ #line 1679 "./util/configparser.y" { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); @@ -5224,10 +4530,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5228 "util/configparser.c" +#line 4534 "util/configparser.c" break; - case 430: + case 430: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */ #line 1689 "./util/configparser.y" { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); @@ -5237,10 +4543,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5241 "util/configparser.c" +#line 4547 "util/configparser.c" break; - case 431: + case 431: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */ #line 1699 "./util/configparser.y" { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); @@ -5250,10 +4556,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5254 "util/configparser.c" +#line 4560 "util/configparser.c" break; - case 432: + case 432: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */ #line 1709 "./util/configparser.y" { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); @@ -5263,10 +4569,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5267 "util/configparser.c" +#line 4573 "util/configparser.c" break; - case 433: + case 433: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */ #line 1719 "./util/configparser.y" { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); @@ -5276,10 +4582,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5280 "util/configparser.c" +#line 4586 "util/configparser.c" break; - case 434: + case 434: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */ #line 1729 "./util/configparser.y" { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); @@ -5289,10 +4595,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5293 "util/configparser.c" +#line 4599 "util/configparser.c" break; - case 435: + case 435: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */ #line 1739 "./util/configparser.y" { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); @@ -5302,10 +4608,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5306 "util/configparser.c" +#line 4612 "util/configparser.c" break; - case 436: + case 436: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */ #line 1749 "./util/configparser.y" { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); @@ -5315,40 +4621,40 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5319 "util/configparser.c" +#line 4625 "util/configparser.c" break; - case 437: + case 437: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */ #line 1759 "./util/configparser.y" { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5329 "util/configparser.c" +#line 4635 "util/configparser.c" break; - case 438: + case 438: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */ #line 1766 "./util/configparser.y" { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5339 "util/configparser.c" +#line 4645 "util/configparser.c" break; - case 439: + case 439: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */ #line 1773 "./util/configparser.y" { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5349 "util/configparser.c" +#line 4655 "util/configparser.c" break; - case 440: + case 440: /* server_prefetch: VAR_PREFETCH STRING_ARG */ #line 1780 "./util/configparser.y" { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); @@ -5357,10 +4663,10 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5361 "util/configparser.c" +#line 4667 "util/configparser.c" break; - case 441: + case 441: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */ #line 1789 "./util/configparser.y" { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); @@ -5369,10 +4675,10 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5373 "util/configparser.c" +#line 4679 "util/configparser.c" break; - case 442: + case 442: /* server_deny_any: VAR_DENY_ANY STRING_ARG */ #line 1798 "./util/configparser.y" { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); @@ -5381,10 +4687,10 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5385 "util/configparser.c" +#line 4691 "util/configparser.c" break; - case 443: + case 443: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */ #line 1807 "./util/configparser.y" { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); @@ -5393,20 +4699,20 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5397 "util/configparser.c" +#line 4703 "util/configparser.c" break; - case 444: + case 444: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */ #line 1816 "./util/configparser.y" { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 5407 "util/configparser.c" +#line 4713 "util/configparser.c" break; - case 445: + case 445: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */ #line 1823 "./util/configparser.y" { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); @@ -5416,10 +4722,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5420 "util/configparser.c" +#line 4726 "util/configparser.c" break; - case 446: + case 446: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */ #line 1833 "./util/configparser.y" { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); @@ -5439,20 +4745,20 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 5443 "util/configparser.c" +#line 4749 "util/configparser.c" break; - case 447: + case 447: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */ #line 1853 "./util/configparser.y" { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } -#line 5453 "util/configparser.c" +#line 4759 "util/configparser.c" break; - case 448: + case 448: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */ #line 1860 "./util/configparser.y" { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); @@ -5470,10 +4776,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5474 "util/configparser.c" +#line 4780 "util/configparser.c" break; - case 449: + case 449: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */ #line 1878 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); @@ -5486,10 +4792,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5490 "util/configparser.c" +#line 4796 "util/configparser.c" break; - case 450: + case 450: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */ #line 1891 "./util/configparser.y" { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); @@ -5502,10 +4808,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5506 "util/configparser.c" +#line 4812 "util/configparser.c" break; - case 451: + case 451: /* server_val_max_restart: VAR_VAL_MAX_RESTART STRING_ARG */ #line 1904 "./util/configparser.y" { OUTYY(("P(server_val_max_restart:%s)\n", (yyvsp[0].str))); @@ -5518,10 +4824,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5522 "util/configparser.c" +#line 4828 "util/configparser.c" break; - case 452: + case 452: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */ #line 1917 "./util/configparser.y" { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); @@ -5530,10 +4836,10 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5534 "util/configparser.c" +#line 4840 "util/configparser.c" break; - case 453: + case 453: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */ #line 1926 "./util/configparser.y" { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); @@ -5542,10 +4848,10 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5546 "util/configparser.c" +#line 4852 "util/configparser.c" break; - case 454: + case 454: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */ #line 1935 "./util/configparser.y" { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); @@ -5554,10 +4860,10 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5558 "util/configparser.c" +#line 4864 "util/configparser.c" break; - case 455: + case 455: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */ #line 1944 "./util/configparser.y" { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); @@ -5566,10 +4872,10 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5570 "util/configparser.c" +#line 4876 "util/configparser.c" break; - case 456: + case 456: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */ #line 1953 "./util/configparser.y" { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); @@ -5579,10 +4885,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5583 "util/configparser.c" +#line 4889 "util/configparser.c" break; - case 457: + case 457: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */ #line 1963 "./util/configparser.y" { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); @@ -5592,10 +4898,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5596 "util/configparser.c" +#line 4902 "util/configparser.c" break; - case 458: + case 458: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */ #line 1973 "./util/configparser.y" { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); @@ -5606,10 +4912,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5610 "util/configparser.c" +#line 4916 "util/configparser.c" break; - case 459: + case 459: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */ #line 1984 "./util/configparser.y" { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); @@ -5618,10 +4924,10 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5622 "util/configparser.c" +#line 4928 "util/configparser.c" break; - case 460: + case 460: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */ #line 1993 "./util/configparser.y" { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); @@ -5630,10 +4936,10 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5634 "util/configparser.c" +#line 4940 "util/configparser.c" break; - case 461: + case 461: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */ #line 2002 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); @@ -5642,10 +4948,10 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5646 "util/configparser.c" +#line 4952 "util/configparser.c" break; - case 462: + case 462: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */ #line 2011 "./util/configparser.y" { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); @@ -5654,10 +4960,10 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5658 "util/configparser.c" +#line 4964 "util/configparser.c" break; - case 463: + case 463: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */ #line 2020 "./util/configparser.y" { OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); @@ -5666,10 +4972,10 @@ yyreduce: else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5670 "util/configparser.c" +#line 4976 "util/configparser.c" break; - case 464: + case 464: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */ #line 2029 "./util/configparser.y" { OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); @@ -5678,10 +4984,10 @@ yyreduce: else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5682 "util/configparser.c" +#line 4988 "util/configparser.c" break; - case 465: + case 465: /* server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG */ #line 2038 "./util/configparser.y" { OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str))); @@ -5690,10 +4996,10 @@ yyreduce: else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5694 "util/configparser.c" +#line 5000 "util/configparser.c" break; - case 466: + case 466: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */ #line 2047 "./util/configparser.y" { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); @@ -5706,10 +5012,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5710 "util/configparser.c" +#line 5016 "util/configparser.c" break; - case 467: + case 467: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */ #line 2060 "./util/configparser.y" { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); @@ -5722,10 +5028,10 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5726 "util/configparser.c" +#line 5032 "util/configparser.c" break; - case 468: + case 468: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */ #line 2073 "./util/configparser.y" { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); @@ -5734,20 +5040,20 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5738 "util/configparser.c" +#line 5044 "util/configparser.c" break; - case 469: + case 469: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */ #line 2082 "./util/configparser.y" { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } -#line 5748 "util/configparser.c" +#line 5054 "util/configparser.c" break; - case 470: + case 470: /* server_zonemd_permissive_mode: VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG */ #line 2089 "./util/configparser.y" { OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[0].str))); @@ -5756,10 +5062,10 @@ yyreduce: else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5760 "util/configparser.c" +#line 5066 "util/configparser.c" break; - case 471: + case 471: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */ #line 2098 "./util/configparser.y" { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); @@ -5768,10 +5074,10 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5772 "util/configparser.c" +#line 5078 "util/configparser.c" break; - case 472: + case 472: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */ #line 2107 "./util/configparser.y" { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); @@ -5780,10 +5086,10 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5784 "util/configparser.c" +#line 5090 "util/configparser.c" break; - case 473: + case 473: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */ #line 2116 "./util/configparser.y" { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); @@ -5792,10 +5098,10 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5796 "util/configparser.c" +#line 5102 "util/configparser.c" break; - case 474: + case 474: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */ #line 2125 "./util/configparser.y" { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); @@ -5805,10 +5111,10 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5809 "util/configparser.c" +#line 5115 "util/configparser.c" break; - case 475: + case 475: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */ #line 2134 "./util/configparser.y" { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); @@ -5816,10 +5122,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5820 "util/configparser.c" +#line 5126 "util/configparser.c" break; - case 476: + case 476: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */ #line 2142 "./util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); @@ -5832,10 +5138,10 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5836 "util/configparser.c" +#line 5142 "util/configparser.c" break; - case 477: + case 477: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */ #line 2155 "./util/configparser.y" { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); @@ -5843,10 +5149,10 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5847 "util/configparser.c" +#line 5153 "util/configparser.c" break; - case 478: + case 478: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ #line 2163 "./util/configparser.y" { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); @@ -5863,7 +5169,7 @@ yyreduce: && strcmp((yyvsp[0].str), "noview")!=0 && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0 && strcmp((yyvsp[0].str), "inform_redirect") != 0 - && strcmp((yyvsp[0].str), "ipset") != 0) { + && strcmp((yyvsp[0].str), "ipset") != 0) { yyerror("local-zone type: expected static, deny, " "refuse, redirect, transparent, " "typetransparent, inform, inform_deny, " @@ -5880,6 +5186,16 @@ yyreduce: free((yyvsp[0].str)); #ifdef USE_IPSET } else if(strcmp((yyvsp[0].str), "ipset")==0) { + size_t len = strlen((yyvsp[-1].str)); + /* Make sure to add the trailing dot. + * These are str compared to domain names. */ + if((yyvsp[-1].str)[len-1] != '.') { + if(!((yyvsp[-1].str) = realloc((yyvsp[-1].str), len+2))) { + fatal_exit("out of memory adding local-zone"); + } + (yyvsp[-1].str)[len] = '.'; + (yyvsp[-1].str)[len+1] = 0; + } if(!cfg_strlist_insert(&cfg_parser->cfg-> local_zones_ipset, (yyvsp[-1].str))) fatal_exit("out of memory adding local-zone"); @@ -5891,21 +5207,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5895 "util/configparser.c" +#line 5211 "util/configparser.c" break; - case 479: -#line 2208 "./util/configparser.y" + case 479: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */ +#line 2218 "./util/configparser.y" { OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } -#line 5905 "util/configparser.c" +#line 5221 "util/configparser.c" break; - case 480: -#line 2215 "./util/configparser.y" + case 480: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ +#line 2225 "./util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5919,11 +5235,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5923 "util/configparser.c" +#line 5239 "util/configparser.c" break; - case 481: -#line 2230 "./util/configparser.y" + case 481: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */ +#line 2240 "./util/configparser.y" { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5932,11 +5248,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5936 "util/configparser.c" +#line 5252 "util/configparser.c" break; - case 482: -#line 2240 "./util/configparser.y" + case 482: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */ +#line 2250 "./util/configparser.y" { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5945,41 +5261,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5949 "util/configparser.c" +#line 5265 "util/configparser.c" break; - case 483: -#line 2250 "./util/configparser.y" + case 483: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */ +#line 2260 "./util/configparser.y" { OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5959 "util/configparser.c" +#line 5275 "util/configparser.c" break; - case 484: -#line 2257 "./util/configparser.y" + case 484: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */ +#line 2267 "./util/configparser.y" { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5969 "util/configparser.c" +#line 5285 "util/configparser.c" break; - case 485: -#line 2264 "./util/configparser.y" + case 485: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */ +#line 2274 "./util/configparser.y" { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } -#line 5979 "util/configparser.c" +#line 5295 "util/configparser.c" break; - case 486: -#line 2271 "./util/configparser.y" + case 486: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */ +#line 2281 "./util/configparser.y" { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5987,22 +5303,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5991 "util/configparser.c" +#line 5307 "util/configparser.c" break; - case 487: -#line 2280 "./util/configparser.y" + case 487: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */ +#line 2290 "./util/configparser.y" { OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } -#line 6002 "util/configparser.c" +#line 5318 "util/configparser.c" break; - case 488: -#line 2288 "./util/configparser.y" + case 488: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */ +#line 2298 "./util/configparser.y" { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -6015,11 +5331,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6019 "util/configparser.c" +#line 5335 "util/configparser.c" break; - case 489: -#line 2302 "./util/configparser.y" + case 489: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */ +#line 2312 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -6039,11 +5355,11 @@ yyreduce: } } } -#line 6043 "util/configparser.c" +#line 5359 "util/configparser.c" break; - case 490: -#line 2323 "./util/configparser.y" + case 490: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */ +#line 2333 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -6063,11 +5379,11 @@ yyreduce: } } } -#line 6067 "util/configparser.c" +#line 5383 "util/configparser.c" break; - case 491: -#line 2344 "./util/configparser.y" + case 491: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */ +#line 2354 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, @@ -6078,11 +5394,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 6082 "util/configparser.c" +#line 5398 "util/configparser.c" break; - case 492: -#line 2356 "./util/configparser.y" + case 492: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */ +#line 2366 "./util/configparser.y" { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, @@ -6093,11 +5409,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 6097 "util/configparser.c" +#line 5413 "util/configparser.c" break; - case 493: -#line 2368 "./util/configparser.y" + case 493: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */ +#line 2378 "./util/configparser.y" { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, @@ -6108,11 +5424,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 6112 "util/configparser.c" +#line 5428 "util/configparser.c" break; - case 494: -#line 2380 "./util/configparser.y" + case 494: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */ +#line 2390 "./util/configparser.y" { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, @@ -6120,11 +5436,11 @@ yyreduce: yyerror("out of memory"); } } -#line 6124 "util/configparser.c" +#line 5440 "util/configparser.c" break; - case 495: -#line 2389 "./util/configparser.y" + case 495: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */ +#line 2399 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -6144,11 +5460,11 @@ yyreduce: } } } -#line 6148 "util/configparser.c" +#line 5464 "util/configparser.c" break; - case 496: -#line 2410 "./util/configparser.y" + case 496: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */ +#line 2420 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6156,11 +5472,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6160 "util/configparser.c" +#line 5476 "util/configparser.c" break; - case 497: -#line 2419 "./util/configparser.y" + case 497: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */ +#line 2429 "./util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6168,33 +5484,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6172 "util/configparser.c" +#line 5488 "util/configparser.c" break; - case 498: -#line 2428 "./util/configparser.y" + case 498: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */ +#line 2438 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 6183 "util/configparser.c" +#line 5499 "util/configparser.c" break; - case 499: -#line 2436 "./util/configparser.y" + case 499: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */ +#line 2446 "./util/configparser.y" { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 6194 "util/configparser.c" +#line 5510 "util/configparser.c" break; - case 500: -#line 2444 "./util/configparser.y" + case 500: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */ +#line 2454 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) { @@ -6206,11 +5522,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6210 "util/configparser.c" +#line 5526 "util/configparser.c" break; - case 501: -#line 2457 "./util/configparser.y" + case 501: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */ +#line 2467 "./util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) { @@ -6222,11 +5538,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6226 "util/configparser.c" +#line 5542 "util/configparser.c" break; - case 502: -#line 2470 "./util/configparser.y" + case 502: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */ +#line 2480 "./util/configparser.y" { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -6240,11 +5556,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 6244 "util/configparser.c" +#line 5560 "util/configparser.c" break; - case 503: -#line 2485 "./util/configparser.y" + case 503: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */ +#line 2495 "./util/configparser.y" { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { @@ -6258,11 +5574,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 6262 "util/configparser.c" +#line 5578 "util/configparser.c" break; - case 504: -#line 2500 "./util/configparser.y" + case 504: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */ +#line 2510 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6270,11 +5586,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6274 "util/configparser.c" +#line 5590 "util/configparser.c" break; - case 505: -#line 2509 "./util/configparser.y" + case 505: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */ +#line 2519 "./util/configparser.y" { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6282,11 +5598,11 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6286 "util/configparser.c" +#line 5602 "util/configparser.c" break; - case 506: -#line 2518 "./util/configparser.y" + case 506: /* server_ip_ratelimit_backoff: VAR_IP_RATELIMIT_BACKOFF STRING_ARG */ +#line 2528 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_backoff:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6295,11 +5611,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6299 "util/configparser.c" +#line 5615 "util/configparser.c" break; - case 507: -#line 2528 "./util/configparser.y" + case 507: /* server_ratelimit_backoff: VAR_RATELIMIT_BACKOFF STRING_ARG */ +#line 2538 "./util/configparser.y" { OUTYY(("P(server_ratelimit_backoff:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6308,11 +5624,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6312 "util/configparser.c" +#line 5628 "util/configparser.c" break; - case 508: -#line 2538 "./util/configparser.y" + case 508: /* server_outbound_msg_retry: VAR_OUTBOUND_MSG_RETRY STRING_ARG */ +#line 2548 "./util/configparser.y" { OUTYY(("P(server_outbound_msg_retry:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6320,20 +5636,20 @@ yyreduce: else cfg_parser->cfg->outbound_msg_retry = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6324 "util/configparser.c" +#line 5640 "util/configparser.c" break; - case 509: -#line 2547 "./util/configparser.y" + case 509: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */ +#line 2557 "./util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 6333 "util/configparser.c" +#line 5649 "util/configparser.c" break; - case 510: -#line 2553 "./util/configparser.y" + case 510: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */ +#line 2563 "./util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -6341,11 +5657,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6345 "util/configparser.c" +#line 5661 "util/configparser.c" break; - case 511: -#line 2562 "./util/configparser.y" + case 511: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */ +#line 2572 "./util/configparser.y" { OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6353,11 +5669,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6357 "util/configparser.c" +#line 5673 "util/configparser.c" break; - case 512: -#line 2571 "./util/configparser.y" + case 512: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */ +#line 2581 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6366,11 +5682,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6370 "util/configparser.c" +#line 5686 "util/configparser.c" break; - case 513: -#line 2581 "./util/configparser.y" + case 513: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */ +#line 2591 "./util/configparser.y" { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6379,11 +5695,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6383 "util/configparser.c" +#line 5699 "util/configparser.c" break; - case 514: -#line 2591 "./util/configparser.y" + case 514: /* server_pad_responses: VAR_PAD_RESPONSES STRING_ARG */ +#line 2601 "./util/configparser.y" { OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6392,11 +5708,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6396 "util/configparser.c" +#line 5712 "util/configparser.c" break; - case 515: -#line 2601 "./util/configparser.y" + case 515: /* server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG */ +#line 2611 "./util/configparser.y" { OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6404,11 +5720,11 @@ yyreduce: else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6408 "util/configparser.c" +#line 5724 "util/configparser.c" break; - case 516: -#line 2610 "./util/configparser.y" + case 516: /* server_pad_queries: VAR_PAD_QUERIES STRING_ARG */ +#line 2620 "./util/configparser.y" { OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6417,11 +5733,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6421 "util/configparser.c" +#line 5737 "util/configparser.c" break; - case 517: -#line 2620 "./util/configparser.y" + case 517: /* server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG */ +#line 2630 "./util/configparser.y" { OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6429,11 +5745,11 @@ yyreduce: else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6433 "util/configparser.c" +#line 5749 "util/configparser.c" break; - case 518: -#line 2629 "./util/configparser.y" + case 518: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */ +#line 2639 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -6445,11 +5761,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6449 "util/configparser.c" +#line 5765 "util/configparser.c" break; - case 519: -#line 2642 "./util/configparser.y" + case 519: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */ +#line 2652 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -6461,11 +5777,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6465 "util/configparser.c" +#line 5781 "util/configparser.c" break; - case 520: -#line 2655 "./util/configparser.y" + case 520: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */ +#line 2665 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -6476,11 +5792,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6480 "util/configparser.c" +#line 5796 "util/configparser.c" break; - case 521: -#line 2667 "./util/configparser.y" + case 521: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */ +#line 2677 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -6493,11 +5809,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6497 "util/configparser.c" +#line 5813 "util/configparser.c" break; - case 522: -#line 2681 "./util/configparser.y" + case 522: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */ +#line 2691 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -6508,11 +5824,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6512 "util/configparser.c" +#line 5828 "util/configparser.c" break; - case 523: -#line 2693 "./util/configparser.y" + case 523: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */ +#line 2703 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -6525,11 +5841,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6529 "util/configparser.c" +#line 5845 "util/configparser.c" break; - case 524: -#line 2707 "./util/configparser.y" + case 524: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */ +#line 2717 "./util/configparser.y" { OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert( @@ -6537,11 +5853,11 @@ yyreduce: fatal_exit("out of memory adding " "edns-client-string"); } -#line 6541 "util/configparser.c" +#line 5857 "util/configparser.c" break; - case 525: -#line 2716 "./util/configparser.y" + case 525: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */ +#line 2726 "./util/configparser.y" { OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -6552,11 +5868,11 @@ yyreduce: free((yyvsp[0].str)); } -#line 6556 "util/configparser.c" +#line 5872 "util/configparser.c" break; - case 526: -#line 2728 "./util/configparser.y" + case 526: /* stub_name: VAR_NAME STRING_ARG */ +#line 2738 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -6565,31 +5881,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 6569 "util/configparser.c" +#line 5885 "util/configparser.c" break; - case 527: -#line 2738 "./util/configparser.y" + case 527: /* stub_host: VAR_STUB_HOST STRING_ARG */ +#line 2748 "./util/configparser.y" { OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6579 "util/configparser.c" +#line 5895 "util/configparser.c" break; - case 528: -#line 2745 "./util/configparser.y" + case 528: /* stub_addr: VAR_STUB_ADDR STRING_ARG */ +#line 2755 "./util/configparser.y" { OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6589 "util/configparser.c" +#line 5905 "util/configparser.c" break; - case 529: -#line 2752 "./util/configparser.y" + case 529: /* stub_first: VAR_STUB_FIRST STRING_ARG */ +#line 2762 "./util/configparser.y" { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6597,11 +5913,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6601 "util/configparser.c" +#line 5917 "util/configparser.c" break; - case 530: -#line 2761 "./util/configparser.y" + case 530: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */ +#line 2771 "./util/configparser.y" { OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6609,11 +5925,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6613 "util/configparser.c" +#line 5929 "util/configparser.c" break; - case 531: -#line 2770 "./util/configparser.y" + case 531: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */ +#line 2780 "./util/configparser.y" { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6622,11 +5938,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6626 "util/configparser.c" +#line 5942 "util/configparser.c" break; - case 532: -#line 2780 "./util/configparser.y" + case 532: /* stub_tcp_upstream: VAR_STUB_TCP_UPSTREAM STRING_ARG */ +#line 2790 "./util/configparser.y" { OUTYY(("P(stub-tcp-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6635,11 +5951,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6639 "util/configparser.c" +#line 5955 "util/configparser.c" break; - case 533: -#line 2790 "./util/configparser.y" + case 533: /* stub_prime: VAR_STUB_PRIME STRING_ARG */ +#line 2800 "./util/configparser.y" { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6648,11 +5964,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6652 "util/configparser.c" +#line 5968 "util/configparser.c" break; - case 534: -#line 2800 "./util/configparser.y" + case 534: /* forward_name: VAR_NAME STRING_ARG */ +#line 2810 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -6661,31 +5977,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 6665 "util/configparser.c" +#line 5981 "util/configparser.c" break; - case 535: -#line 2810 "./util/configparser.y" + case 535: /* forward_host: VAR_FORWARD_HOST STRING_ARG */ +#line 2820 "./util/configparser.y" { OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6675 "util/configparser.c" +#line 5991 "util/configparser.c" break; - case 536: -#line 2817 "./util/configparser.y" + case 536: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */ +#line 2827 "./util/configparser.y" { OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6685 "util/configparser.c" +#line 6001 "util/configparser.c" break; - case 537: -#line 2824 "./util/configparser.y" + case 537: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */ +#line 2834 "./util/configparser.y" { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6693,11 +6009,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6697 "util/configparser.c" +#line 6013 "util/configparser.c" break; - case 538: -#line 2833 "./util/configparser.y" + case 538: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */ +#line 2843 "./util/configparser.y" { OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6705,11 +6021,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6709 "util/configparser.c" +#line 6025 "util/configparser.c" break; - case 539: -#line 2842 "./util/configparser.y" + case 539: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */ +#line 2852 "./util/configparser.y" { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6718,11 +6034,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6722 "util/configparser.c" +#line 6038 "util/configparser.c" break; - case 540: -#line 2852 "./util/configparser.y" + case 540: /* forward_tcp_upstream: VAR_FORWARD_TCP_UPSTREAM STRING_ARG */ +#line 2862 "./util/configparser.y" { OUTYY(("P(forward-tcp-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6731,11 +6047,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6735 "util/configparser.c" +#line 6051 "util/configparser.c" break; - case 541: -#line 2862 "./util/configparser.y" + case 541: /* auth_name: VAR_NAME STRING_ARG */ +#line 2872 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -6744,52 +6060,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 6748 "util/configparser.c" +#line 6064 "util/configparser.c" break; - case 542: -#line 2872 "./util/configparser.y" + case 542: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */ +#line 2882 "./util/configparser.y" { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } -#line 6758 "util/configparser.c" +#line 6074 "util/configparser.c" break; - case 543: -#line 2879 "./util/configparser.y" + case 543: /* auth_master: VAR_MASTER STRING_ARG */ +#line 2889 "./util/configparser.y" { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6768 "util/configparser.c" +#line 6084 "util/configparser.c" break; - case 544: -#line 2886 "./util/configparser.y" + case 544: /* auth_url: VAR_URL STRING_ARG */ +#line 2896 "./util/configparser.y" { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6778 "util/configparser.c" +#line 6094 "util/configparser.c" break; - case 545: -#line 2893 "./util/configparser.y" + case 545: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */ +#line 2903 "./util/configparser.y" { OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6789 "util/configparser.c" +#line 6105 "util/configparser.c" break; - case 546: -#line 2901 "./util/configparser.y" + case 546: /* auth_zonemd_check: VAR_ZONEMD_CHECK STRING_ARG */ +#line 2911 "./util/configparser.y" { OUTYY(("P(zonemd-check:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6798,11 +6114,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6802 "util/configparser.c" +#line 6118 "util/configparser.c" break; - case 547: -#line 2911 "./util/configparser.y" + case 547: /* auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG */ +#line 2921 "./util/configparser.y" { OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6811,11 +6127,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6815 "util/configparser.c" +#line 6131 "util/configparser.c" break; - case 548: -#line 2921 "./util/configparser.y" + case 548: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */ +#line 2931 "./util/configparser.y" { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6824,11 +6140,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6828 "util/configparser.c" +#line 6144 "util/configparser.c" break; - case 549: -#line 2931 "./util/configparser.y" + case 549: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */ +#line 2941 "./util/configparser.y" { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6837,11 +6153,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6841 "util/configparser.c" +#line 6157 "util/configparser.c" break; - case 550: -#line 2941 "./util/configparser.y" + case 550: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */ +#line 2951 "./util/configparser.y" { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6850,11 +6166,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6854 "util/configparser.c" +#line 6170 "util/configparser.c" break; - case 551: -#line 2951 "./util/configparser.y" + case 551: /* view_name: VAR_NAME STRING_ARG */ +#line 2961 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -6863,11 +6179,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 6867 "util/configparser.c" +#line 6183 "util/configparser.c" break; - case 552: -#line 2961 "./util/configparser.y" + case 552: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ +#line 2971 "./util/configparser.y" { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && @@ -6900,6 +6216,16 @@ yyreduce: free((yyvsp[0].str)); #ifdef USE_IPSET } else if(strcmp((yyvsp[0].str), "ipset")==0) { + size_t len = strlen((yyvsp[-1].str)); + /* Make sure to add the trailing dot. + * These are str compared to domain names. */ + if((yyvsp[-1].str)[len-1] != '.') { + if(!((yyvsp[-1].str) = realloc((yyvsp[-1].str), len+2))) { + fatal_exit("out of memory adding local-zone"); + } + (yyvsp[-1].str)[len] = '.'; + (yyvsp[-1].str)[len+1] = 0; + } if(!cfg_strlist_insert(&cfg_parser->cfg->views-> local_zones_ipset, (yyvsp[-1].str))) fatal_exit("out of memory adding local-zone"); @@ -6912,11 +6238,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 6916 "util/configparser.c" +#line 6242 "util/configparser.c" break; - case 553: -#line 3007 "./util/configparser.y" + case 553: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ +#line 3027 "./util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6925,33 +6251,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 6929 "util/configparser.c" +#line 6255 "util/configparser.c" break; - case 554: -#line 3017 "./util/configparser.y" + case 554: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ +#line 3037 "./util/configparser.y" { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 6940 "util/configparser.c" +#line 6266 "util/configparser.c" break; - case 555: -#line 3025 "./util/configparser.y" + case 555: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */ +#line 3045 "./util/configparser.y" { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { fatal_exit("out of memory adding local-data"); } } -#line 6951 "util/configparser.c" +#line 6277 "util/configparser.c" break; - case 556: -#line 3033 "./util/configparser.y" + case 556: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ +#line 3053 "./util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -6965,11 +6291,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 6969 "util/configparser.c" +#line 6295 "util/configparser.c" break; - case 557: -#line 3048 "./util/configparser.y" + case 557: /* view_first: VAR_VIEW_FIRST STRING_ARG */ +#line 3068 "./util/configparser.y" { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6977,19 +6303,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6981 "util/configparser.c" +#line 6307 "util/configparser.c" break; - case 558: -#line 3057 "./util/configparser.y" + case 558: /* rcstart: VAR_REMOTE_CONTROL */ +#line 3077 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 6989 "util/configparser.c" +#line 6315 "util/configparser.c" break; - case 569: -#line 3068 "./util/configparser.y" + case 569: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */ +#line 3088 "./util/configparser.y" { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -6998,11 +6324,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7002 "util/configparser.c" +#line 6328 "util/configparser.c" break; - case 570: -#line 3078 "./util/configparser.y" + case 570: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */ +#line 3098 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7010,79 +6336,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 7014 "util/configparser.c" +#line 6340 "util/configparser.c" break; - case 571: -#line 3087 "./util/configparser.y" + case 571: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */ +#line 3107 "./util/configparser.y" { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 7024 "util/configparser.c" +#line 6350 "util/configparser.c" break; - case 572: -#line 3094 "./util/configparser.y" + case 572: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */ +#line 3114 "./util/configparser.y" { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7034 "util/configparser.c" +#line 6360 "util/configparser.c" break; - case 573: -#line 3101 "./util/configparser.y" + case 573: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */ +#line 3121 "./util/configparser.y" { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); cfg_parser->cfg->server_key_file = (yyvsp[0].str); } -#line 7044 "util/configparser.c" +#line 6370 "util/configparser.c" break; - case 574: -#line 3108 "./util/configparser.y" + case 574: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */ +#line 3128 "./util/configparser.y" { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } -#line 7054 "util/configparser.c" +#line 6380 "util/configparser.c" break; - case 575: -#line 3115 "./util/configparser.y" + case 575: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */ +#line 3135 "./util/configparser.y" { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); cfg_parser->cfg->control_key_file = (yyvsp[0].str); } -#line 7064 "util/configparser.c" +#line 6390 "util/configparser.c" break; - case 576: -#line 3122 "./util/configparser.y" + case 576: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */ +#line 3142 "./util/configparser.y" { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } -#line 7074 "util/configparser.c" +#line 6400 "util/configparser.c" break; - case 577: -#line 3129 "./util/configparser.y" + case 577: /* dtstart: VAR_DNSTAP */ +#line 3149 "./util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 7082 "util/configparser.c" +#line 6408 "util/configparser.c" break; - case 599: -#line 3149 "./util/configparser.y" + case 599: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */ +#line 3169 "./util/configparser.y" { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7090,11 +6416,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7094 "util/configparser.c" +#line 6420 "util/configparser.c" break; - case 600: -#line 3158 "./util/configparser.y" + case 600: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */ +#line 3178 "./util/configparser.y" { OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7103,31 +6429,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7107 "util/configparser.c" +#line 6433 "util/configparser.c" break; - case 601: -#line 3168 "./util/configparser.y" + case 601: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */ +#line 3188 "./util/configparser.y" { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } -#line 7117 "util/configparser.c" +#line 6443 "util/configparser.c" break; - case 602: -#line 3175 "./util/configparser.y" + case 602: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */ +#line 3195 "./util/configparser.y" { OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_ip); cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); } -#line 7127 "util/configparser.c" +#line 6453 "util/configparser.c" break; - case 603: -#line 3182 "./util/configparser.y" + case 603: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */ +#line 3202 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7135,51 +6461,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7139 "util/configparser.c" +#line 6465 "util/configparser.c" break; - case 604: -#line 3191 "./util/configparser.y" + case 604: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */ +#line 3211 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_server_name); cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); } -#line 7149 "util/configparser.c" +#line 6475 "util/configparser.c" break; - case 605: -#line 3198 "./util/configparser.y" + case 605: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */ +#line 3218 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_cert_bundle); cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); } -#line 7159 "util/configparser.c" +#line 6485 "util/configparser.c" break; - case 606: -#line 3205 "./util/configparser.y" + case 606: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */ +#line 3225 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_key_file); cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); } -#line 7169 "util/configparser.c" +#line 6495 "util/configparser.c" break; - case 607: -#line 3212 "./util/configparser.y" + case 607: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */ +#line 3232 "./util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_cert_file); cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); } -#line 7179 "util/configparser.c" +#line 6505 "util/configparser.c" break; - case 608: -#line 3219 "./util/configparser.y" + case 608: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */ +#line 3239 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7187,11 +6513,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7191 "util/configparser.c" +#line 6517 "util/configparser.c" break; - case 609: -#line 3228 "./util/configparser.y" + case 609: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */ +#line 3248 "./util/configparser.y" { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7199,31 +6525,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7203 "util/configparser.c" +#line 6529 "util/configparser.c" break; - case 610: -#line 3237 "./util/configparser.y" + case 610: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */ +#line 3257 "./util/configparser.y" { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } -#line 7213 "util/configparser.c" +#line 6539 "util/configparser.c" break; - case 611: -#line 3244 "./util/configparser.y" + case 611: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */ +#line 3264 "./util/configparser.y" { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } -#line 7223 "util/configparser.c" +#line 6549 "util/configparser.c" break; - case 612: -#line 3251 "./util/configparser.y" + case 612: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */ +#line 3271 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7232,11 +6558,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7236 "util/configparser.c" +#line 6562 "util/configparser.c" break; - case 613: -#line 3261 "./util/configparser.y" + case 613: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */ +#line 3281 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7245,11 +6571,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7249 "util/configparser.c" +#line 6575 "util/configparser.c" break; - case 614: -#line 3271 "./util/configparser.y" + case 614: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */ +#line 3291 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7258,11 +6584,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7262 "util/configparser.c" +#line 6588 "util/configparser.c" break; - case 615: -#line 3281 "./util/configparser.y" + case 615: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */ +#line 3301 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7271,11 +6597,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7275 "util/configparser.c" +#line 6601 "util/configparser.c" break; - case 616: -#line 3291 "./util/configparser.y" + case 616: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */ +#line 3311 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7284,11 +6610,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7288 "util/configparser.c" +#line 6614 "util/configparser.c" break; - case 617: -#line 3301 "./util/configparser.y" + case 617: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */ +#line 3321 "./util/configparser.y" { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7297,47 +6623,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7301 "util/configparser.c" +#line 6627 "util/configparser.c" break; - case 618: -#line 3311 "./util/configparser.y" + case 618: /* pythonstart: VAR_PYTHON */ +#line 3331 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 7309 "util/configparser.c" +#line 6635 "util/configparser.c" break; - case 622: -#line 3320 "./util/configparser.y" + case 622: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */ +#line 3340 "./util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) yyerror("out of memory"); } -#line 7319 "util/configparser.c" +#line 6645 "util/configparser.c" break; - case 623: -#line 3326 "./util/configparser.y" + case 623: /* dynlibstart: VAR_DYNLIB */ +#line 3346 "./util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 7327 "util/configparser.c" +#line 6653 "util/configparser.c" break; - case 627: -#line 3335 "./util/configparser.y" + case 627: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */ +#line 3355 "./util/configparser.y" { OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) yyerror("out of memory"); } -#line 7337 "util/configparser.c" +#line 6663 "util/configparser.c" break; - case 628: -#line 3341 "./util/configparser.y" + case 628: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */ +#line 3361 "./util/configparser.y" { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7346,21 +6672,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7350 "util/configparser.c" +#line 6676 "util/configparser.c" break; - case 629: -#line 3351 "./util/configparser.y" + case 629: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */ +#line 3371 "./util/configparser.y" { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } -#line 7360 "util/configparser.c" +#line 6686 "util/configparser.c" break; - case 630: -#line 3358 "./util/configparser.y" + case 630: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ +#line 3378 "./util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -7368,30 +6694,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 7372 "util/configparser.c" +#line 6698 "util/configparser.c" break; - case 631: -#line 3367 "./util/configparser.y" + case 631: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ +#line 3387 "./util/configparser.y" { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } -#line 7383 "util/configparser.c" +#line 6709 "util/configparser.c" break; - case 632: -#line 3375 "./util/configparser.y" + case 632: /* dnscstart: VAR_DNSCRYPT */ +#line 3395 "./util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 7391 "util/configparser.c" +#line 6717 "util/configparser.c" break; - case 645: -#line 3391 "./util/configparser.y" + case 645: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */ +#line 3411 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -7399,11 +6725,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 7403 "util/configparser.c" +#line 6729 "util/configparser.c" break; - case 646: -#line 3401 "./util/configparser.y" + case 646: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */ +#line 3421 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -7411,21 +6737,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 7415 "util/configparser.c" +#line 6741 "util/configparser.c" break; - case 647: -#line 3410 "./util/configparser.y" + case 647: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */ +#line 3430 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } -#line 7425 "util/configparser.c" +#line 6751 "util/configparser.c" break; - case 648: -#line 3417 "./util/configparser.y" + case 648: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */ +#line 3437 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) @@ -7433,21 +6759,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 7437 "util/configparser.c" +#line 6763 "util/configparser.c" break; - case 649: -#line 3426 "./util/configparser.y" + case 649: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */ +#line 3446 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } -#line 7447 "util/configparser.c" +#line 6773 "util/configparser.c" break; - case 650: -#line 3433 "./util/configparser.y" + case 650: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */ +#line 3453 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) @@ -7455,22 +6781,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 7459 "util/configparser.c" +#line 6785 "util/configparser.c" break; - case 651: -#line 3442 "./util/configparser.y" + case 651: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */ +#line 3462 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 7470 "util/configparser.c" +#line 6796 "util/configparser.c" break; - case 652: -#line 3450 "./util/configparser.y" + case 652: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */ +#line 3470 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) { @@ -7482,22 +6808,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 7486 "util/configparser.c" +#line 6812 "util/configparser.c" break; - case 653: -#line 3463 "./util/configparser.y" + case 653: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */ +#line 3483 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 7497 "util/configparser.c" +#line 6823 "util/configparser.c" break; - case 654: -#line 3471 "./util/configparser.y" + case 654: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */ +#line 3491 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) { @@ -7509,19 +6835,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 7513 "util/configparser.c" +#line 6839 "util/configparser.c" break; - case 655: -#line 3484 "./util/configparser.y" + case 655: /* cachedbstart: VAR_CACHEDB */ +#line 3504 "./util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 7521 "util/configparser.c" +#line 6847 "util/configparser.c" break; - case 664: -#line 3495 "./util/configparser.y" + case 664: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */ +#line 3515 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -7532,11 +6858,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7536 "util/configparser.c" +#line 6862 "util/configparser.c" break; - case 665: -#line 3507 "./util/configparser.y" + case 665: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */ +#line 3527 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -7547,11 +6873,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7551 "util/configparser.c" +#line 6877 "util/configparser.c" break; - case 666: -#line 3519 "./util/configparser.y" + case 666: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */ +#line 3539 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -7562,11 +6888,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7566 "util/configparser.c" +#line 6892 "util/configparser.c" break; - case 667: -#line 3531 "./util/configparser.y" + case 667: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */ +#line 3551 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -7580,11 +6906,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7584 "util/configparser.c" +#line 6910 "util/configparser.c" break; - case 668: -#line 3546 "./util/configparser.y" + case 668: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */ +#line 3566 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -7596,11 +6922,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7600 "util/configparser.c" +#line 6926 "util/configparser.c" break; - case 669: -#line 3559 "./util/configparser.y" + case 669: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */ +#line 3579 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -7612,11 +6938,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 7616 "util/configparser.c" +#line 6942 "util/configparser.c" break; - case 670: -#line 3572 "./util/configparser.y" + case 670: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */ +#line 3592 "./util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -7626,19 +6952,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 7630 "util/configparser.c" +#line 6956 "util/configparser.c" break; - case 671: -#line 3583 "./util/configparser.y" + case 671: /* ipsetstart: VAR_IPSET */ +#line 3603 "./util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 7638 "util/configparser.c" +#line 6964 "util/configparser.c" break; - case 676: -#line 3592 "./util/configparser.y" + case 676: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */ +#line 3612 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -7652,11 +6978,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7656 "util/configparser.c" +#line 6982 "util/configparser.c" break; - case 677: -#line 3607 "./util/configparser.y" + case 677: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */ +#line 3627 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -7670,11 +6996,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 7674 "util/configparser.c" +#line 7000 "util/configparser.c" break; -#line 7678 "util/configparser.c" +#line 7004 "util/configparser.c" default: break; } @@ -7834,13 +7160,13 @@ yyabortlab: yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -7868,7 +7194,7 @@ yyreturn: return yyresult; } -#line 3621 "./util/configparser.y" +#line 3641 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 6dcbcb41e..c299937c8 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.6.4. */ +/* A Bison parser, made by GNU Bison 3.7.6. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -380,6 +380,7 @@ extern int yydebug; typedef enum yytokentype yytoken_kind_t; #endif /* Token kinds. */ +#define YYEMPTY -2 #define YYEOF 0 #define YYerror 256 #define YYUNDEF 257 @@ -714,7 +715,7 @@ union YYSTYPE char* str; -#line 718 "util/configparser.h" +#line 719 "util/configparser.h" }; typedef union YYSTYPE YYSTYPE; diff --git a/util/configparser.y b/util/configparser.y index 4ec9e6350..946bd432e 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -2175,7 +2175,7 @@ server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG && strcmp($3, "noview")!=0 && strcmp($3, "inform")!=0 && strcmp($3, "inform_deny")!=0 && strcmp($3, "inform_redirect") != 0 - && strcmp($3, "ipset") != 0) { + && strcmp($3, "ipset") != 0) { yyerror("local-zone type: expected static, deny, " "refuse, redirect, transparent, " "typetransparent, inform, inform_deny, " @@ -2192,6 +2192,16 @@ server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG free($3); #ifdef USE_IPSET } else if(strcmp($3, "ipset")==0) { + size_t len = strlen($2); + /* Make sure to add the trailing dot. + * These are str compared to domain names. */ + if($2[len-1] != '.') { + if(!($2 = realloc($2, len+2))) { + fatal_exit("out of memory adding local-zone"); + } + $2[len] = '.'; + $2[len+1] = 0; + } if(!cfg_strlist_insert(&cfg_parser->cfg-> local_zones_ipset, $2)) fatal_exit("out of memory adding local-zone"); @@ -2990,6 +3000,16 @@ view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG free($3); #ifdef USE_IPSET } else if(strcmp($3, "ipset")==0) { + size_t len = strlen($2); + /* Make sure to add the trailing dot. + * These are str compared to domain names. */ + if($2[len-1] != '.') { + if(!($2 = realloc($2, len+2))) { + fatal_exit("out of memory adding local-zone"); + } + $2[len] = '.'; + $2[len+1] = 0; + } if(!cfg_strlist_insert(&cfg_parser->cfg->views-> local_zones_ipset, $2)) fatal_exit("out of memory adding local-zone");