1*46d2f618SCy Schubert /* A Bison parser, made by GNU Bison 3.7.6. */ 2b7c0c8c1SCy Schubert 3b7c0c8c1SCy Schubert /* Bison implementation for Yacc-like parsers in C 4b7c0c8c1SCy Schubert 5b7c0c8c1SCy Schubert Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, 6b7c0c8c1SCy Schubert Inc. 7b7c0c8c1SCy Schubert 8b7c0c8c1SCy Schubert This program is free software: you can redistribute it and/or modify 9b7c0c8c1SCy Schubert it under the terms of the GNU General Public License as published by 10b7c0c8c1SCy Schubert the Free Software Foundation, either version 3 of the License, or 11b7c0c8c1SCy Schubert (at your option) any later version. 12b7c0c8c1SCy Schubert 13b7c0c8c1SCy Schubert This program is distributed in the hope that it will be useful, 14b7c0c8c1SCy Schubert but WITHOUT ANY WARRANTY; without even the implied warranty of 15b7c0c8c1SCy Schubert MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16b7c0c8c1SCy Schubert GNU General Public License for more details. 17b7c0c8c1SCy Schubert 18b7c0c8c1SCy Schubert You should have received a copy of the GNU General Public License 19b7c0c8c1SCy Schubert along with this program. If not, see <https://www.gnu.org/licenses/>. */ 20b7c0c8c1SCy Schubert 21b7c0c8c1SCy Schubert /* As a special exception, you may create a larger work that contains 22b7c0c8c1SCy Schubert part or all of the Bison parser skeleton and distribute that work 23b7c0c8c1SCy Schubert under terms of your choice, so long as that work isn't itself a 24b7c0c8c1SCy Schubert parser generator using the skeleton or a modified version thereof 25b7c0c8c1SCy Schubert as a parser skeleton. Alternatively, if you modify or redistribute 26b7c0c8c1SCy Schubert the parser skeleton itself, you may (at your option) remove this 27b7c0c8c1SCy Schubert special exception, which will cause the skeleton and the resulting 28b7c0c8c1SCy Schubert Bison output files to be licensed under the GNU General Public 29b7c0c8c1SCy Schubert License without this special exception. 30b7c0c8c1SCy Schubert 31b7c0c8c1SCy Schubert This special exception was added by the Free Software Foundation in 32b7c0c8c1SCy Schubert version 2.2 of Bison. */ 33b7c0c8c1SCy Schubert 34b7c0c8c1SCy Schubert /* C LALR(1) parser skeleton written by Richard Stallman, by 35b7c0c8c1SCy Schubert simplifying the original so-called "semantic" parser. */ 36b7c0c8c1SCy Schubert 37b7c0c8c1SCy Schubert /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, 38b7c0c8c1SCy Schubert especially those whose name start with YY_ or yy_. They are 39b7c0c8c1SCy Schubert private implementation details that can be changed or removed. */ 40b7c0c8c1SCy Schubert 41b7c0c8c1SCy Schubert /* All symbols defined below should begin with yy or YY, to avoid 42b7c0c8c1SCy Schubert infringing on user name space. This should be done even for local 43b7c0c8c1SCy Schubert variables, as they might otherwise be expanded by user macros. 44b7c0c8c1SCy Schubert There are some unavoidable exceptions within include files to 45b7c0c8c1SCy Schubert define necessary library symbols; they are noted "INFRINGES ON 46b7c0c8c1SCy Schubert USER NAME SPACE" below. */ 47b7c0c8c1SCy Schubert 48b7c0c8c1SCy Schubert /* Identify Bison output, and Bison version. */ 49*46d2f618SCy Schubert #define YYBISON 30706 50b7c0c8c1SCy Schubert 51b7c0c8c1SCy Schubert /* Bison version string. */ 52*46d2f618SCy Schubert #define YYBISON_VERSION "3.7.6" 53b7c0c8c1SCy Schubert 54b7c0c8c1SCy Schubert /* Skeleton name. */ 55b7c0c8c1SCy Schubert #define YYSKELETON_NAME "yacc.c" 56b7c0c8c1SCy Schubert 57b7c0c8c1SCy Schubert /* Pure parsers. */ 58b7c0c8c1SCy Schubert #define YYPURE 0 59b7c0c8c1SCy Schubert 60b7c0c8c1SCy Schubert /* Push parsers. */ 61b7c0c8c1SCy Schubert #define YYPUSH 0 62b7c0c8c1SCy Schubert 63b7c0c8c1SCy Schubert /* Pull parsers. */ 64b7c0c8c1SCy Schubert #define YYPULL 1 65b7c0c8c1SCy Schubert 66b7c0c8c1SCy Schubert 67b7c0c8c1SCy Schubert 68b7c0c8c1SCy Schubert 69b7c0c8c1SCy Schubert /* First part of user prologue. */ 70b7c0c8c1SCy Schubert #line 38 "util/configparser.y" 71b7c0c8c1SCy Schubert 72b7c0c8c1SCy Schubert #include "config.h" 73b7c0c8c1SCy Schubert 74b7c0c8c1SCy Schubert #include <stdarg.h> 75b7c0c8c1SCy Schubert #include <stdio.h> 76b7c0c8c1SCy Schubert #include <string.h> 77b7c0c8c1SCy Schubert #include <stdlib.h> 78b7c0c8c1SCy Schubert #include <assert.h> 79b7c0c8c1SCy Schubert 80b7c0c8c1SCy Schubert #include "util/configyyrename.h" 81b7c0c8c1SCy Schubert #include "util/config_file.h" 82b7c0c8c1SCy Schubert #include "util/net_help.h" 83b7c0c8c1SCy Schubert #include "sldns/str2wire.h" 84b7c0c8c1SCy Schubert 85b7c0c8c1SCy Schubert int ub_c_lex(void); 86b7c0c8c1SCy Schubert void ub_c_error(const char *message); 87b7c0c8c1SCy Schubert 88b7c0c8c1SCy Schubert static void validate_respip_action(const char* action); 89b7c0c8c1SCy Schubert static void validate_acl_action(const char* action); 90b7c0c8c1SCy Schubert 91b7c0c8c1SCy Schubert /* these need to be global, otherwise they cannot be used inside yacc */ 92b7c0c8c1SCy Schubert extern struct config_parser_state* cfg_parser; 93b7c0c8c1SCy Schubert 94b7c0c8c1SCy Schubert #if 0 95b7c0c8c1SCy Schubert #define OUTYY(s) printf s /* used ONLY when debugging */ 96b7c0c8c1SCy Schubert #else 97b7c0c8c1SCy Schubert #define OUTYY(s) 98b7c0c8c1SCy Schubert #endif 99b7c0c8c1SCy Schubert 100b7c0c8c1SCy Schubert 101b7c0c8c1SCy Schubert #line 102 "util/configparser.c" 102b7c0c8c1SCy Schubert 103b7c0c8c1SCy Schubert # ifndef YY_CAST 104b7c0c8c1SCy Schubert # ifdef __cplusplus 105b7c0c8c1SCy Schubert # define YY_CAST(Type, Val) static_cast<Type> (Val) 106b7c0c8c1SCy Schubert # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) 107b7c0c8c1SCy Schubert # else 108b7c0c8c1SCy Schubert # define YY_CAST(Type, Val) ((Type) (Val)) 109b7c0c8c1SCy Schubert # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) 110b7c0c8c1SCy Schubert # endif 111b7c0c8c1SCy Schubert # endif 112b7c0c8c1SCy Schubert # ifndef YY_NULLPTR 113b7c0c8c1SCy Schubert # if defined __cplusplus 114b7c0c8c1SCy Schubert # if 201103L <= __cplusplus 115b7c0c8c1SCy Schubert # define YY_NULLPTR nullptr 116b7c0c8c1SCy Schubert # else 117b7c0c8c1SCy Schubert # define YY_NULLPTR 0 118b7c0c8c1SCy Schubert # endif 119b7c0c8c1SCy Schubert # else 120b7c0c8c1SCy Schubert # define YY_NULLPTR ((void*)0) 121b7c0c8c1SCy Schubert # endif 122b7c0c8c1SCy Schubert # endif 123b7c0c8c1SCy Schubert 124b7c0c8c1SCy Schubert #include "configparser.h" 125b7c0c8c1SCy Schubert /* Symbol kind. */ 126b7c0c8c1SCy Schubert enum yysymbol_kind_t 127b7c0c8c1SCy Schubert { 128b7c0c8c1SCy Schubert YYSYMBOL_YYEMPTY = -2, 129b7c0c8c1SCy Schubert YYSYMBOL_YYEOF = 0, /* "end of file" */ 130b7c0c8c1SCy Schubert YYSYMBOL_YYerror = 1, /* error */ 131b7c0c8c1SCy Schubert YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ 132b7c0c8c1SCy Schubert YYSYMBOL_SPACE = 3, /* SPACE */ 133b7c0c8c1SCy Schubert YYSYMBOL_LETTER = 4, /* LETTER */ 134b7c0c8c1SCy Schubert YYSYMBOL_NEWLINE = 5, /* NEWLINE */ 135b7c0c8c1SCy Schubert YYSYMBOL_COMMENT = 6, /* COMMENT */ 136b7c0c8c1SCy Schubert YYSYMBOL_COLON = 7, /* COLON */ 137b7c0c8c1SCy Schubert YYSYMBOL_ANY = 8, /* ANY */ 138b7c0c8c1SCy Schubert YYSYMBOL_ZONESTR = 9, /* ZONESTR */ 139b7c0c8c1SCy Schubert YYSYMBOL_STRING_ARG = 10, /* STRING_ARG */ 140b7c0c8c1SCy Schubert YYSYMBOL_VAR_FORCE_TOPLEVEL = 11, /* VAR_FORCE_TOPLEVEL */ 141b7c0c8c1SCy Schubert YYSYMBOL_VAR_SERVER = 12, /* VAR_SERVER */ 142b7c0c8c1SCy Schubert YYSYMBOL_VAR_VERBOSITY = 13, /* VAR_VERBOSITY */ 143b7c0c8c1SCy Schubert YYSYMBOL_VAR_NUM_THREADS = 14, /* VAR_NUM_THREADS */ 144b7c0c8c1SCy Schubert YYSYMBOL_VAR_PORT = 15, /* VAR_PORT */ 145b7c0c8c1SCy Schubert YYSYMBOL_VAR_OUTGOING_RANGE = 16, /* VAR_OUTGOING_RANGE */ 146b7c0c8c1SCy Schubert YYSYMBOL_VAR_INTERFACE = 17, /* VAR_INTERFACE */ 147b7c0c8c1SCy Schubert YYSYMBOL_VAR_PREFER_IP4 = 18, /* VAR_PREFER_IP4 */ 148b7c0c8c1SCy Schubert YYSYMBOL_VAR_DO_IP4 = 19, /* VAR_DO_IP4 */ 149b7c0c8c1SCy Schubert YYSYMBOL_VAR_DO_IP6 = 20, /* VAR_DO_IP6 */ 150b7c0c8c1SCy Schubert YYSYMBOL_VAR_DO_NAT64 = 21, /* VAR_DO_NAT64 */ 151b7c0c8c1SCy Schubert YYSYMBOL_VAR_PREFER_IP6 = 22, /* VAR_PREFER_IP6 */ 152b7c0c8c1SCy Schubert YYSYMBOL_VAR_DO_UDP = 23, /* VAR_DO_UDP */ 153b7c0c8c1SCy Schubert YYSYMBOL_VAR_DO_TCP = 24, /* VAR_DO_TCP */ 154b7c0c8c1SCy Schubert YYSYMBOL_VAR_TCP_MSS = 25, /* VAR_TCP_MSS */ 155b7c0c8c1SCy Schubert YYSYMBOL_VAR_OUTGOING_TCP_MSS = 26, /* VAR_OUTGOING_TCP_MSS */ 156b7c0c8c1SCy Schubert YYSYMBOL_VAR_TCP_IDLE_TIMEOUT = 27, /* VAR_TCP_IDLE_TIMEOUT */ 157b7c0c8c1SCy Schubert YYSYMBOL_VAR_EDNS_TCP_KEEPALIVE = 28, /* VAR_EDNS_TCP_KEEPALIVE */ 158b7c0c8c1SCy Schubert YYSYMBOL_VAR_EDNS_TCP_KEEPALIVE_TIMEOUT = 29, /* VAR_EDNS_TCP_KEEPALIVE_TIMEOUT */ 159b7c0c8c1SCy Schubert YYSYMBOL_VAR_SOCK_QUEUE_TIMEOUT = 30, /* VAR_SOCK_QUEUE_TIMEOUT */ 160b7c0c8c1SCy Schubert YYSYMBOL_VAR_CHROOT = 31, /* VAR_CHROOT */ 161b7c0c8c1SCy Schubert YYSYMBOL_VAR_USERNAME = 32, /* VAR_USERNAME */ 162b7c0c8c1SCy Schubert YYSYMBOL_VAR_DIRECTORY = 33, /* VAR_DIRECTORY */ 163b7c0c8c1SCy Schubert YYSYMBOL_VAR_LOGFILE = 34, /* VAR_LOGFILE */ 164b7c0c8c1SCy Schubert YYSYMBOL_VAR_PIDFILE = 35, /* VAR_PIDFILE */ 165b7c0c8c1SCy Schubert YYSYMBOL_VAR_MSG_CACHE_SIZE = 36, /* VAR_MSG_CACHE_SIZE */ 166b7c0c8c1SCy Schubert YYSYMBOL_VAR_MSG_CACHE_SLABS = 37, /* VAR_MSG_CACHE_SLABS */ 167b7c0c8c1SCy Schubert YYSYMBOL_VAR_NUM_QUERIES_PER_THREAD = 38, /* VAR_NUM_QUERIES_PER_THREAD */ 168b7c0c8c1SCy Schubert YYSYMBOL_VAR_RRSET_CACHE_SIZE = 39, /* VAR_RRSET_CACHE_SIZE */ 169b7c0c8c1SCy Schubert YYSYMBOL_VAR_RRSET_CACHE_SLABS = 40, /* VAR_RRSET_CACHE_SLABS */ 170b7c0c8c1SCy Schubert YYSYMBOL_VAR_OUTGOING_NUM_TCP = 41, /* VAR_OUTGOING_NUM_TCP */ 171b7c0c8c1SCy Schubert YYSYMBOL_VAR_INFRA_HOST_TTL = 42, /* VAR_INFRA_HOST_TTL */ 172b7c0c8c1SCy Schubert YYSYMBOL_VAR_INFRA_LAME_TTL = 43, /* VAR_INFRA_LAME_TTL */ 173b7c0c8c1SCy Schubert YYSYMBOL_VAR_INFRA_CACHE_SLABS = 44, /* VAR_INFRA_CACHE_SLABS */ 174b7c0c8c1SCy Schubert YYSYMBOL_VAR_INFRA_CACHE_NUMHOSTS = 45, /* VAR_INFRA_CACHE_NUMHOSTS */ 175b7c0c8c1SCy Schubert YYSYMBOL_VAR_INFRA_CACHE_LAME_SIZE = 46, /* VAR_INFRA_CACHE_LAME_SIZE */ 176b7c0c8c1SCy Schubert YYSYMBOL_VAR_NAME = 47, /* VAR_NAME */ 177b7c0c8c1SCy Schubert YYSYMBOL_VAR_STUB_ZONE = 48, /* VAR_STUB_ZONE */ 178b7c0c8c1SCy Schubert YYSYMBOL_VAR_STUB_HOST = 49, /* VAR_STUB_HOST */ 179b7c0c8c1SCy Schubert YYSYMBOL_VAR_STUB_ADDR = 50, /* VAR_STUB_ADDR */ 180b7c0c8c1SCy Schubert YYSYMBOL_VAR_TARGET_FETCH_POLICY = 51, /* VAR_TARGET_FETCH_POLICY */ 181b7c0c8c1SCy Schubert YYSYMBOL_VAR_HARDEN_SHORT_BUFSIZE = 52, /* VAR_HARDEN_SHORT_BUFSIZE */ 182b7c0c8c1SCy Schubert YYSYMBOL_VAR_HARDEN_LARGE_QUERIES = 53, /* VAR_HARDEN_LARGE_QUERIES */ 183b7c0c8c1SCy Schubert YYSYMBOL_VAR_FORWARD_ZONE = 54, /* VAR_FORWARD_ZONE */ 184b7c0c8c1SCy Schubert YYSYMBOL_VAR_FORWARD_HOST = 55, /* VAR_FORWARD_HOST */ 185b7c0c8c1SCy Schubert YYSYMBOL_VAR_FORWARD_ADDR = 56, /* VAR_FORWARD_ADDR */ 186b7c0c8c1SCy Schubert YYSYMBOL_VAR_DO_NOT_QUERY_ADDRESS = 57, /* VAR_DO_NOT_QUERY_ADDRESS */ 187b7c0c8c1SCy Schubert YYSYMBOL_VAR_HIDE_IDENTITY = 58, /* VAR_HIDE_IDENTITY */ 188b7c0c8c1SCy Schubert YYSYMBOL_VAR_HIDE_VERSION = 59, /* VAR_HIDE_VERSION */ 189b7c0c8c1SCy Schubert YYSYMBOL_VAR_IDENTITY = 60, /* VAR_IDENTITY */ 190b7c0c8c1SCy Schubert YYSYMBOL_VAR_VERSION = 61, /* VAR_VERSION */ 191b7c0c8c1SCy Schubert YYSYMBOL_VAR_HARDEN_GLUE = 62, /* VAR_HARDEN_GLUE */ 192b7c0c8c1SCy Schubert YYSYMBOL_VAR_MODULE_CONF = 63, /* VAR_MODULE_CONF */ 193b7c0c8c1SCy Schubert YYSYMBOL_VAR_TRUST_ANCHOR_FILE = 64, /* VAR_TRUST_ANCHOR_FILE */ 194b7c0c8c1SCy Schubert YYSYMBOL_VAR_TRUST_ANCHOR = 65, /* VAR_TRUST_ANCHOR */ 195b7c0c8c1SCy Schubert YYSYMBOL_VAR_VAL_OVERRIDE_DATE = 66, /* VAR_VAL_OVERRIDE_DATE */ 196b7c0c8c1SCy Schubert YYSYMBOL_VAR_BOGUS_TTL = 67, /* VAR_BOGUS_TTL */ 197b7c0c8c1SCy Schubert YYSYMBOL_VAR_VAL_CLEAN_ADDITIONAL = 68, /* VAR_VAL_CLEAN_ADDITIONAL */ 198b7c0c8c1SCy Schubert YYSYMBOL_VAR_VAL_PERMISSIVE_MODE = 69, /* VAR_VAL_PERMISSIVE_MODE */ 199b7c0c8c1SCy Schubert YYSYMBOL_VAR_INCOMING_NUM_TCP = 70, /* VAR_INCOMING_NUM_TCP */ 200b7c0c8c1SCy Schubert YYSYMBOL_VAR_MSG_BUFFER_SIZE = 71, /* VAR_MSG_BUFFER_SIZE */ 201b7c0c8c1SCy Schubert YYSYMBOL_VAR_KEY_CACHE_SIZE = 72, /* VAR_KEY_CACHE_SIZE */ 202b7c0c8c1SCy Schubert YYSYMBOL_VAR_KEY_CACHE_SLABS = 73, /* VAR_KEY_CACHE_SLABS */ 203b7c0c8c1SCy Schubert YYSYMBOL_VAR_TRUSTED_KEYS_FILE = 74, /* VAR_TRUSTED_KEYS_FILE */ 204b7c0c8c1SCy Schubert YYSYMBOL_VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 75, /* VAR_VAL_NSEC3_KEYSIZE_ITERATIONS */ 205b7c0c8c1SCy Schubert YYSYMBOL_VAR_USE_SYSLOG = 76, /* VAR_USE_SYSLOG */ 206b7c0c8c1SCy Schubert YYSYMBOL_VAR_OUTGOING_INTERFACE = 77, /* VAR_OUTGOING_INTERFACE */ 207b7c0c8c1SCy Schubert YYSYMBOL_VAR_ROOT_HINTS = 78, /* VAR_ROOT_HINTS */ 208b7c0c8c1SCy Schubert YYSYMBOL_VAR_DO_NOT_QUERY_LOCALHOST = 79, /* VAR_DO_NOT_QUERY_LOCALHOST */ 209b7c0c8c1SCy Schubert YYSYMBOL_VAR_CACHE_MAX_TTL = 80, /* VAR_CACHE_MAX_TTL */ 210b7c0c8c1SCy Schubert YYSYMBOL_VAR_HARDEN_DNSSEC_STRIPPED = 81, /* VAR_HARDEN_DNSSEC_STRIPPED */ 211b7c0c8c1SCy Schubert YYSYMBOL_VAR_ACCESS_CONTROL = 82, /* VAR_ACCESS_CONTROL */ 212b7c0c8c1SCy Schubert YYSYMBOL_VAR_LOCAL_ZONE = 83, /* VAR_LOCAL_ZONE */ 213b7c0c8c1SCy Schubert YYSYMBOL_VAR_LOCAL_DATA = 84, /* VAR_LOCAL_DATA */ 214b7c0c8c1SCy Schubert YYSYMBOL_VAR_INTERFACE_AUTOMATIC = 85, /* VAR_INTERFACE_AUTOMATIC */ 215b7c0c8c1SCy Schubert YYSYMBOL_VAR_STATISTICS_INTERVAL = 86, /* VAR_STATISTICS_INTERVAL */ 216b7c0c8c1SCy Schubert YYSYMBOL_VAR_DO_DAEMONIZE = 87, /* VAR_DO_DAEMONIZE */ 217b7c0c8c1SCy Schubert YYSYMBOL_VAR_USE_CAPS_FOR_ID = 88, /* VAR_USE_CAPS_FOR_ID */ 218b7c0c8c1SCy Schubert YYSYMBOL_VAR_STATISTICS_CUMULATIVE = 89, /* VAR_STATISTICS_CUMULATIVE */ 219b7c0c8c1SCy Schubert YYSYMBOL_VAR_OUTGOING_PORT_PERMIT = 90, /* VAR_OUTGOING_PORT_PERMIT */ 220b7c0c8c1SCy Schubert YYSYMBOL_VAR_OUTGOING_PORT_AVOID = 91, /* VAR_OUTGOING_PORT_AVOID */ 221b7c0c8c1SCy Schubert YYSYMBOL_VAR_DLV_ANCHOR_FILE = 92, /* VAR_DLV_ANCHOR_FILE */ 222b7c0c8c1SCy Schubert YYSYMBOL_VAR_DLV_ANCHOR = 93, /* VAR_DLV_ANCHOR */ 223b7c0c8c1SCy Schubert YYSYMBOL_VAR_NEG_CACHE_SIZE = 94, /* VAR_NEG_CACHE_SIZE */ 224b7c0c8c1SCy Schubert YYSYMBOL_VAR_HARDEN_REFERRAL_PATH = 95, /* VAR_HARDEN_REFERRAL_PATH */ 225b7c0c8c1SCy Schubert YYSYMBOL_VAR_PRIVATE_ADDRESS = 96, /* VAR_PRIVATE_ADDRESS */ 226b7c0c8c1SCy Schubert YYSYMBOL_VAR_PRIVATE_DOMAIN = 97, /* VAR_PRIVATE_DOMAIN */ 227b7c0c8c1SCy Schubert YYSYMBOL_VAR_REMOTE_CONTROL = 98, /* VAR_REMOTE_CONTROL */ 228b7c0c8c1SCy Schubert YYSYMBOL_VAR_CONTROL_ENABLE = 99, /* VAR_CONTROL_ENABLE */ 229b7c0c8c1SCy Schubert YYSYMBOL_VAR_CONTROL_INTERFACE = 100, /* VAR_CONTROL_INTERFACE */ 230b7c0c8c1SCy Schubert YYSYMBOL_VAR_CONTROL_PORT = 101, /* VAR_CONTROL_PORT */ 231b7c0c8c1SCy Schubert YYSYMBOL_VAR_SERVER_KEY_FILE = 102, /* VAR_SERVER_KEY_FILE */ 232b7c0c8c1SCy Schubert YYSYMBOL_VAR_SERVER_CERT_FILE = 103, /* VAR_SERVER_CERT_FILE */ 233b7c0c8c1SCy Schubert YYSYMBOL_VAR_CONTROL_KEY_FILE = 104, /* VAR_CONTROL_KEY_FILE */ 234b7c0c8c1SCy Schubert YYSYMBOL_VAR_CONTROL_CERT_FILE = 105, /* VAR_CONTROL_CERT_FILE */ 235b7c0c8c1SCy Schubert YYSYMBOL_VAR_CONTROL_USE_CERT = 106, /* VAR_CONTROL_USE_CERT */ 236b7c0c8c1SCy Schubert YYSYMBOL_VAR_TCP_REUSE_TIMEOUT = 107, /* VAR_TCP_REUSE_TIMEOUT */ 237b7c0c8c1SCy Schubert YYSYMBOL_VAR_MAX_REUSE_TCP_QUERIES = 108, /* VAR_MAX_REUSE_TCP_QUERIES */ 238b7c0c8c1SCy Schubert YYSYMBOL_VAR_EXTENDED_STATISTICS = 109, /* VAR_EXTENDED_STATISTICS */ 239b7c0c8c1SCy Schubert YYSYMBOL_VAR_LOCAL_DATA_PTR = 110, /* VAR_LOCAL_DATA_PTR */ 240b7c0c8c1SCy Schubert YYSYMBOL_VAR_JOSTLE_TIMEOUT = 111, /* VAR_JOSTLE_TIMEOUT */ 241b7c0c8c1SCy Schubert YYSYMBOL_VAR_STUB_PRIME = 112, /* VAR_STUB_PRIME */ 242b7c0c8c1SCy Schubert YYSYMBOL_VAR_UNWANTED_REPLY_THRESHOLD = 113, /* VAR_UNWANTED_REPLY_THRESHOLD */ 243b7c0c8c1SCy Schubert YYSYMBOL_VAR_LOG_TIME_ASCII = 114, /* VAR_LOG_TIME_ASCII */ 244b7c0c8c1SCy Schubert YYSYMBOL_VAR_DOMAIN_INSECURE = 115, /* VAR_DOMAIN_INSECURE */ 245b7c0c8c1SCy Schubert YYSYMBOL_VAR_PYTHON = 116, /* VAR_PYTHON */ 246b7c0c8c1SCy Schubert YYSYMBOL_VAR_PYTHON_SCRIPT = 117, /* VAR_PYTHON_SCRIPT */ 247b7c0c8c1SCy Schubert YYSYMBOL_VAR_VAL_SIG_SKEW_MIN = 118, /* VAR_VAL_SIG_SKEW_MIN */ 248b7c0c8c1SCy Schubert YYSYMBOL_VAR_VAL_SIG_SKEW_MAX = 119, /* VAR_VAL_SIG_SKEW_MAX */ 249b7c0c8c1SCy Schubert YYSYMBOL_VAR_VAL_MAX_RESTART = 120, /* VAR_VAL_MAX_RESTART */ 250b7c0c8c1SCy Schubert YYSYMBOL_VAR_CACHE_MIN_TTL = 121, /* VAR_CACHE_MIN_TTL */ 251b7c0c8c1SCy Schubert YYSYMBOL_VAR_VAL_LOG_LEVEL = 122, /* VAR_VAL_LOG_LEVEL */ 252b7c0c8c1SCy Schubert YYSYMBOL_VAR_AUTO_TRUST_ANCHOR_FILE = 123, /* VAR_AUTO_TRUST_ANCHOR_FILE */ 253b7c0c8c1SCy Schubert YYSYMBOL_VAR_KEEP_MISSING = 124, /* VAR_KEEP_MISSING */ 254b7c0c8c1SCy Schubert YYSYMBOL_VAR_ADD_HOLDDOWN = 125, /* VAR_ADD_HOLDDOWN */ 255b7c0c8c1SCy Schubert YYSYMBOL_VAR_DEL_HOLDDOWN = 126, /* VAR_DEL_HOLDDOWN */ 256b7c0c8c1SCy Schubert YYSYMBOL_VAR_SO_RCVBUF = 127, /* VAR_SO_RCVBUF */ 257b7c0c8c1SCy Schubert YYSYMBOL_VAR_EDNS_BUFFER_SIZE = 128, /* VAR_EDNS_BUFFER_SIZE */ 258b7c0c8c1SCy Schubert YYSYMBOL_VAR_PREFETCH = 129, /* VAR_PREFETCH */ 259b7c0c8c1SCy Schubert YYSYMBOL_VAR_PREFETCH_KEY = 130, /* VAR_PREFETCH_KEY */ 260b7c0c8c1SCy Schubert YYSYMBOL_VAR_SO_SNDBUF = 131, /* VAR_SO_SNDBUF */ 261b7c0c8c1SCy Schubert YYSYMBOL_VAR_SO_REUSEPORT = 132, /* VAR_SO_REUSEPORT */ 262b7c0c8c1SCy Schubert YYSYMBOL_VAR_HARDEN_BELOW_NXDOMAIN = 133, /* VAR_HARDEN_BELOW_NXDOMAIN */ 263b7c0c8c1SCy Schubert YYSYMBOL_VAR_IGNORE_CD_FLAG = 134, /* VAR_IGNORE_CD_FLAG */ 264b7c0c8c1SCy Schubert YYSYMBOL_VAR_LOG_QUERIES = 135, /* VAR_LOG_QUERIES */ 265b7c0c8c1SCy Schubert YYSYMBOL_VAR_LOG_REPLIES = 136, /* VAR_LOG_REPLIES */ 266b7c0c8c1SCy Schubert YYSYMBOL_VAR_LOG_LOCAL_ACTIONS = 137, /* VAR_LOG_LOCAL_ACTIONS */ 267b7c0c8c1SCy Schubert YYSYMBOL_VAR_TCP_UPSTREAM = 138, /* VAR_TCP_UPSTREAM */ 268b7c0c8c1SCy Schubert YYSYMBOL_VAR_SSL_UPSTREAM = 139, /* VAR_SSL_UPSTREAM */ 269b7c0c8c1SCy Schubert YYSYMBOL_VAR_TCP_AUTH_QUERY_TIMEOUT = 140, /* VAR_TCP_AUTH_QUERY_TIMEOUT */ 270b7c0c8c1SCy Schubert YYSYMBOL_VAR_SSL_SERVICE_KEY = 141, /* VAR_SSL_SERVICE_KEY */ 271b7c0c8c1SCy Schubert YYSYMBOL_VAR_SSL_SERVICE_PEM = 142, /* VAR_SSL_SERVICE_PEM */ 272b7c0c8c1SCy Schubert YYSYMBOL_VAR_SSL_PORT = 143, /* VAR_SSL_PORT */ 273b7c0c8c1SCy Schubert YYSYMBOL_VAR_FORWARD_FIRST = 144, /* VAR_FORWARD_FIRST */ 274b7c0c8c1SCy Schubert YYSYMBOL_VAR_STUB_SSL_UPSTREAM = 145, /* VAR_STUB_SSL_UPSTREAM */ 275b7c0c8c1SCy Schubert YYSYMBOL_VAR_FORWARD_SSL_UPSTREAM = 146, /* VAR_FORWARD_SSL_UPSTREAM */ 276b7c0c8c1SCy Schubert YYSYMBOL_VAR_TLS_CERT_BUNDLE = 147, /* VAR_TLS_CERT_BUNDLE */ 277b7c0c8c1SCy Schubert YYSYMBOL_VAR_STUB_TCP_UPSTREAM = 148, /* VAR_STUB_TCP_UPSTREAM */ 278b7c0c8c1SCy Schubert YYSYMBOL_VAR_FORWARD_TCP_UPSTREAM = 149, /* VAR_FORWARD_TCP_UPSTREAM */ 279b7c0c8c1SCy Schubert YYSYMBOL_VAR_HTTPS_PORT = 150, /* VAR_HTTPS_PORT */ 280b7c0c8c1SCy Schubert YYSYMBOL_VAR_HTTP_ENDPOINT = 151, /* VAR_HTTP_ENDPOINT */ 281b7c0c8c1SCy Schubert YYSYMBOL_VAR_HTTP_MAX_STREAMS = 152, /* VAR_HTTP_MAX_STREAMS */ 282b7c0c8c1SCy Schubert YYSYMBOL_VAR_HTTP_QUERY_BUFFER_SIZE = 153, /* VAR_HTTP_QUERY_BUFFER_SIZE */ 283b7c0c8c1SCy Schubert YYSYMBOL_VAR_HTTP_RESPONSE_BUFFER_SIZE = 154, /* VAR_HTTP_RESPONSE_BUFFER_SIZE */ 284b7c0c8c1SCy Schubert YYSYMBOL_VAR_HTTP_NODELAY = 155, /* VAR_HTTP_NODELAY */ 285b7c0c8c1SCy Schubert YYSYMBOL_VAR_HTTP_NOTLS_DOWNSTREAM = 156, /* VAR_HTTP_NOTLS_DOWNSTREAM */ 286b7c0c8c1SCy Schubert YYSYMBOL_VAR_STUB_FIRST = 157, /* VAR_STUB_FIRST */ 287b7c0c8c1SCy Schubert YYSYMBOL_VAR_MINIMAL_RESPONSES = 158, /* VAR_MINIMAL_RESPONSES */ 288b7c0c8c1SCy Schubert YYSYMBOL_VAR_RRSET_ROUNDROBIN = 159, /* VAR_RRSET_ROUNDROBIN */ 289b7c0c8c1SCy Schubert YYSYMBOL_VAR_MAX_UDP_SIZE = 160, /* VAR_MAX_UDP_SIZE */ 290b7c0c8c1SCy Schubert YYSYMBOL_VAR_DELAY_CLOSE = 161, /* VAR_DELAY_CLOSE */ 291b7c0c8c1SCy Schubert YYSYMBOL_VAR_UDP_CONNECT = 162, /* VAR_UDP_CONNECT */ 292b7c0c8c1SCy Schubert YYSYMBOL_VAR_UNBLOCK_LAN_ZONES = 163, /* VAR_UNBLOCK_LAN_ZONES */ 293b7c0c8c1SCy Schubert YYSYMBOL_VAR_INSECURE_LAN_ZONES = 164, /* VAR_INSECURE_LAN_ZONES */ 294b7c0c8c1SCy Schubert YYSYMBOL_VAR_INFRA_CACHE_MIN_RTT = 165, /* VAR_INFRA_CACHE_MIN_RTT */ 295b7c0c8c1SCy Schubert YYSYMBOL_VAR_INFRA_CACHE_MAX_RTT = 166, /* VAR_INFRA_CACHE_MAX_RTT */ 296b7c0c8c1SCy Schubert YYSYMBOL_VAR_INFRA_KEEP_PROBING = 167, /* VAR_INFRA_KEEP_PROBING */ 297b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNS64_PREFIX = 168, /* VAR_DNS64_PREFIX */ 298b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNS64_SYNTHALL = 169, /* VAR_DNS64_SYNTHALL */ 299b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNS64_IGNORE_AAAA = 170, /* VAR_DNS64_IGNORE_AAAA */ 300b7c0c8c1SCy Schubert YYSYMBOL_VAR_NAT64_PREFIX = 171, /* VAR_NAT64_PREFIX */ 301b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP = 172, /* VAR_DNSTAP */ 302b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_ENABLE = 173, /* VAR_DNSTAP_ENABLE */ 303b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_SOCKET_PATH = 174, /* VAR_DNSTAP_SOCKET_PATH */ 304b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_IP = 175, /* VAR_DNSTAP_IP */ 305b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_TLS = 176, /* VAR_DNSTAP_TLS */ 306b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_TLS_SERVER_NAME = 177, /* VAR_DNSTAP_TLS_SERVER_NAME */ 307b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_TLS_CERT_BUNDLE = 178, /* VAR_DNSTAP_TLS_CERT_BUNDLE */ 308b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 179, /* VAR_DNSTAP_TLS_CLIENT_KEY_FILE */ 309b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 180, /* VAR_DNSTAP_TLS_CLIENT_CERT_FILE */ 310b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_SEND_IDENTITY = 181, /* VAR_DNSTAP_SEND_IDENTITY */ 311b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_SEND_VERSION = 182, /* VAR_DNSTAP_SEND_VERSION */ 312b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_BIDIRECTIONAL = 183, /* VAR_DNSTAP_BIDIRECTIONAL */ 313b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_IDENTITY = 184, /* VAR_DNSTAP_IDENTITY */ 314b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_VERSION = 185, /* VAR_DNSTAP_VERSION */ 315b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 186, /* VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES */ 316b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 187, /* VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES */ 317b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 188, /* VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES */ 318b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 189, /* VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES */ 319b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 190, /* VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES */ 320b7c0c8c1SCy Schubert YYSYMBOL_VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 191, /* VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES */ 32156850988SCy Schubert YYSYMBOL_VAR_DNSTAP_SAMPLE_RATE = 192, /* VAR_DNSTAP_SAMPLE_RATE */ 32256850988SCy Schubert YYSYMBOL_VAR_RESPONSE_IP_TAG = 193, /* VAR_RESPONSE_IP_TAG */ 32356850988SCy Schubert YYSYMBOL_VAR_RESPONSE_IP = 194, /* VAR_RESPONSE_IP */ 32456850988SCy Schubert YYSYMBOL_VAR_RESPONSE_IP_DATA = 195, /* VAR_RESPONSE_IP_DATA */ 32556850988SCy Schubert YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 196, /* VAR_HARDEN_ALGO_DOWNGRADE */ 32656850988SCy Schubert YYSYMBOL_VAR_IP_TRANSPARENT = 197, /* VAR_IP_TRANSPARENT */ 32756850988SCy Schubert YYSYMBOL_VAR_IP_DSCP = 198, /* VAR_IP_DSCP */ 32856850988SCy Schubert YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 199, /* VAR_DISABLE_DNSSEC_LAME_CHECK */ 32956850988SCy Schubert YYSYMBOL_VAR_IP_RATELIMIT = 200, /* VAR_IP_RATELIMIT */ 33056850988SCy Schubert YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 201, /* VAR_IP_RATELIMIT_SLABS */ 33156850988SCy Schubert YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 202, /* VAR_IP_RATELIMIT_SIZE */ 33256850988SCy Schubert YYSYMBOL_VAR_RATELIMIT = 203, /* VAR_RATELIMIT */ 33356850988SCy Schubert YYSYMBOL_VAR_RATELIMIT_SLABS = 204, /* VAR_RATELIMIT_SLABS */ 33456850988SCy Schubert YYSYMBOL_VAR_RATELIMIT_SIZE = 205, /* VAR_RATELIMIT_SIZE */ 33556850988SCy Schubert YYSYMBOL_VAR_OUTBOUND_MSG_RETRY = 206, /* VAR_OUTBOUND_MSG_RETRY */ 33656850988SCy Schubert YYSYMBOL_VAR_MAX_SENT_COUNT = 207, /* VAR_MAX_SENT_COUNT */ 33756850988SCy Schubert YYSYMBOL_VAR_MAX_QUERY_RESTARTS = 208, /* VAR_MAX_QUERY_RESTARTS */ 33856850988SCy Schubert YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 209, /* VAR_RATELIMIT_FOR_DOMAIN */ 33956850988SCy Schubert YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 210, /* VAR_RATELIMIT_BELOW_DOMAIN */ 34056850988SCy Schubert YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 211, /* VAR_IP_RATELIMIT_FACTOR */ 34156850988SCy Schubert YYSYMBOL_VAR_RATELIMIT_FACTOR = 212, /* VAR_RATELIMIT_FACTOR */ 34256850988SCy Schubert YYSYMBOL_VAR_IP_RATELIMIT_BACKOFF = 213, /* VAR_IP_RATELIMIT_BACKOFF */ 34356850988SCy Schubert YYSYMBOL_VAR_RATELIMIT_BACKOFF = 214, /* VAR_RATELIMIT_BACKOFF */ 34456850988SCy Schubert YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 215, /* VAR_SEND_CLIENT_SUBNET */ 34556850988SCy Schubert YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 216, /* VAR_CLIENT_SUBNET_ZONE */ 34656850988SCy Schubert YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 217, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */ 34756850988SCy Schubert YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 218, /* VAR_CLIENT_SUBNET_OPCODE */ 34856850988SCy Schubert YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 219, /* VAR_MAX_CLIENT_SUBNET_IPV4 */ 34956850988SCy Schubert YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 220, /* VAR_MAX_CLIENT_SUBNET_IPV6 */ 35056850988SCy Schubert YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 221, /* VAR_MIN_CLIENT_SUBNET_IPV4 */ 35156850988SCy Schubert YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 222, /* VAR_MIN_CLIENT_SUBNET_IPV6 */ 35256850988SCy Schubert YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 223, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */ 35356850988SCy Schubert YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 224, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */ 35456850988SCy Schubert YYSYMBOL_VAR_CAPS_WHITELIST = 225, /* VAR_CAPS_WHITELIST */ 35556850988SCy Schubert YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 226, /* VAR_CACHE_MAX_NEGATIVE_TTL */ 35656850988SCy Schubert YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 227, /* VAR_PERMIT_SMALL_HOLDDOWN */ 35756850988SCy Schubert YYSYMBOL_VAR_CACHE_MIN_NEGATIVE_TTL = 228, /* VAR_CACHE_MIN_NEGATIVE_TTL */ 35856850988SCy Schubert YYSYMBOL_VAR_QNAME_MINIMISATION = 229, /* VAR_QNAME_MINIMISATION */ 35956850988SCy Schubert YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 230, /* VAR_QNAME_MINIMISATION_STRICT */ 36056850988SCy Schubert YYSYMBOL_VAR_IP_FREEBIND = 231, /* VAR_IP_FREEBIND */ 36156850988SCy Schubert YYSYMBOL_VAR_DEFINE_TAG = 232, /* VAR_DEFINE_TAG */ 36256850988SCy Schubert YYSYMBOL_VAR_LOCAL_ZONE_TAG = 233, /* VAR_LOCAL_ZONE_TAG */ 36356850988SCy Schubert YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 234, /* VAR_ACCESS_CONTROL_TAG */ 36456850988SCy Schubert YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 235, /* VAR_LOCAL_ZONE_OVERRIDE */ 36556850988SCy Schubert YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 236, /* VAR_ACCESS_CONTROL_TAG_ACTION */ 36656850988SCy Schubert YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 237, /* VAR_ACCESS_CONTROL_TAG_DATA */ 36756850988SCy Schubert YYSYMBOL_VAR_VIEW = 238, /* VAR_VIEW */ 36856850988SCy Schubert YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 239, /* VAR_ACCESS_CONTROL_VIEW */ 36956850988SCy Schubert YYSYMBOL_VAR_VIEW_FIRST = 240, /* VAR_VIEW_FIRST */ 37056850988SCy Schubert YYSYMBOL_VAR_SERVE_EXPIRED = 241, /* VAR_SERVE_EXPIRED */ 37156850988SCy Schubert YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 242, /* VAR_SERVE_EXPIRED_TTL */ 37256850988SCy Schubert YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 243, /* VAR_SERVE_EXPIRED_TTL_RESET */ 37356850988SCy Schubert YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 244, /* VAR_SERVE_EXPIRED_REPLY_TTL */ 37456850988SCy Schubert YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 245, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */ 37556850988SCy Schubert YYSYMBOL_VAR_EDE_SERVE_EXPIRED = 246, /* VAR_EDE_SERVE_EXPIRED */ 37656850988SCy Schubert YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 247, /* VAR_SERVE_ORIGINAL_TTL */ 37756850988SCy Schubert YYSYMBOL_VAR_FAKE_DSA = 248, /* VAR_FAKE_DSA */ 37856850988SCy Schubert YYSYMBOL_VAR_FAKE_SHA1 = 249, /* VAR_FAKE_SHA1 */ 37956850988SCy Schubert YYSYMBOL_VAR_LOG_IDENTITY = 250, /* VAR_LOG_IDENTITY */ 38056850988SCy Schubert YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 251, /* VAR_HIDE_TRUSTANCHOR */ 38156850988SCy Schubert YYSYMBOL_VAR_HIDE_HTTP_USER_AGENT = 252, /* VAR_HIDE_HTTP_USER_AGENT */ 38256850988SCy Schubert YYSYMBOL_VAR_HTTP_USER_AGENT = 253, /* VAR_HTTP_USER_AGENT */ 38356850988SCy Schubert YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 254, /* VAR_TRUST_ANCHOR_SIGNALING */ 38456850988SCy Schubert YYSYMBOL_VAR_AGGRESSIVE_NSEC = 255, /* VAR_AGGRESSIVE_NSEC */ 38556850988SCy Schubert YYSYMBOL_VAR_USE_SYSTEMD = 256, /* VAR_USE_SYSTEMD */ 38656850988SCy Schubert YYSYMBOL_VAR_SHM_ENABLE = 257, /* VAR_SHM_ENABLE */ 38756850988SCy Schubert YYSYMBOL_VAR_SHM_KEY = 258, /* VAR_SHM_KEY */ 38856850988SCy Schubert YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 259, /* VAR_ROOT_KEY_SENTINEL */ 38956850988SCy Schubert YYSYMBOL_VAR_DNSCRYPT = 260, /* VAR_DNSCRYPT */ 39056850988SCy Schubert YYSYMBOL_VAR_DNSCRYPT_ENABLE = 261, /* VAR_DNSCRYPT_ENABLE */ 39156850988SCy Schubert YYSYMBOL_VAR_DNSCRYPT_PORT = 262, /* VAR_DNSCRYPT_PORT */ 39256850988SCy Schubert YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 263, /* VAR_DNSCRYPT_PROVIDER */ 39356850988SCy Schubert YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 264, /* VAR_DNSCRYPT_SECRET_KEY */ 39456850988SCy Schubert YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 265, /* VAR_DNSCRYPT_PROVIDER_CERT */ 39556850988SCy Schubert YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 266, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */ 39656850988SCy Schubert YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 267, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */ 39756850988SCy Schubert YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 268, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */ 39856850988SCy Schubert YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 269, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */ 39956850988SCy Schubert YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 270, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */ 40056850988SCy Schubert YYSYMBOL_VAR_PAD_RESPONSES = 271, /* VAR_PAD_RESPONSES */ 40156850988SCy Schubert YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 272, /* VAR_PAD_RESPONSES_BLOCK_SIZE */ 40256850988SCy Schubert YYSYMBOL_VAR_PAD_QUERIES = 273, /* VAR_PAD_QUERIES */ 40356850988SCy Schubert YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 274, /* VAR_PAD_QUERIES_BLOCK_SIZE */ 40456850988SCy Schubert YYSYMBOL_VAR_IPSECMOD_ENABLED = 275, /* VAR_IPSECMOD_ENABLED */ 40556850988SCy Schubert YYSYMBOL_VAR_IPSECMOD_HOOK = 276, /* VAR_IPSECMOD_HOOK */ 40656850988SCy Schubert YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 277, /* VAR_IPSECMOD_IGNORE_BOGUS */ 40756850988SCy Schubert YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 278, /* VAR_IPSECMOD_MAX_TTL */ 40856850988SCy Schubert YYSYMBOL_VAR_IPSECMOD_WHITELIST = 279, /* VAR_IPSECMOD_WHITELIST */ 40956850988SCy Schubert YYSYMBOL_VAR_IPSECMOD_STRICT = 280, /* VAR_IPSECMOD_STRICT */ 41056850988SCy Schubert YYSYMBOL_VAR_CACHEDB = 281, /* VAR_CACHEDB */ 41156850988SCy Schubert YYSYMBOL_VAR_CACHEDB_BACKEND = 282, /* VAR_CACHEDB_BACKEND */ 41256850988SCy Schubert YYSYMBOL_VAR_CACHEDB_SECRETSEED = 283, /* VAR_CACHEDB_SECRETSEED */ 41356850988SCy Schubert YYSYMBOL_VAR_CACHEDB_REDISHOST = 284, /* VAR_CACHEDB_REDISHOST */ 41456850988SCy Schubert YYSYMBOL_VAR_CACHEDB_REDISPORT = 285, /* VAR_CACHEDB_REDISPORT */ 41556850988SCy Schubert YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 286, /* VAR_CACHEDB_REDISTIMEOUT */ 41656850988SCy Schubert YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 287, /* VAR_CACHEDB_REDISEXPIRERECORDS */ 41756850988SCy Schubert YYSYMBOL_VAR_CACHEDB_REDISPATH = 288, /* VAR_CACHEDB_REDISPATH */ 41856850988SCy Schubert YYSYMBOL_VAR_CACHEDB_REDISPASSWORD = 289, /* VAR_CACHEDB_REDISPASSWORD */ 41956850988SCy Schubert YYSYMBOL_VAR_CACHEDB_REDISLOGICALDB = 290, /* VAR_CACHEDB_REDISLOGICALDB */ 420*46d2f618SCy Schubert YYSYMBOL_VAR_CACHEDB_REDISCOMMANDTIMEOUT = 291, /* VAR_CACHEDB_REDISCOMMANDTIMEOUT */ 421*46d2f618SCy Schubert YYSYMBOL_VAR_CACHEDB_REDISCONNECTTIMEOUT = 292, /* VAR_CACHEDB_REDISCONNECTTIMEOUT */ 422*46d2f618SCy Schubert YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 293, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */ 423*46d2f618SCy Schubert YYSYMBOL_VAR_FOR_UPSTREAM = 294, /* VAR_FOR_UPSTREAM */ 424*46d2f618SCy Schubert YYSYMBOL_VAR_AUTH_ZONE = 295, /* VAR_AUTH_ZONE */ 425*46d2f618SCy Schubert YYSYMBOL_VAR_ZONEFILE = 296, /* VAR_ZONEFILE */ 426*46d2f618SCy Schubert YYSYMBOL_VAR_MASTER = 297, /* VAR_MASTER */ 427*46d2f618SCy Schubert YYSYMBOL_VAR_URL = 298, /* VAR_URL */ 428*46d2f618SCy Schubert YYSYMBOL_VAR_FOR_DOWNSTREAM = 299, /* VAR_FOR_DOWNSTREAM */ 429*46d2f618SCy Schubert YYSYMBOL_VAR_FALLBACK_ENABLED = 300, /* VAR_FALLBACK_ENABLED */ 430*46d2f618SCy Schubert YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 301, /* VAR_TLS_ADDITIONAL_PORT */ 431*46d2f618SCy Schubert YYSYMBOL_VAR_LOW_RTT = 302, /* VAR_LOW_RTT */ 432*46d2f618SCy Schubert YYSYMBOL_VAR_LOW_RTT_PERMIL = 303, /* VAR_LOW_RTT_PERMIL */ 433*46d2f618SCy Schubert YYSYMBOL_VAR_FAST_SERVER_PERMIL = 304, /* VAR_FAST_SERVER_PERMIL */ 434*46d2f618SCy Schubert YYSYMBOL_VAR_FAST_SERVER_NUM = 305, /* VAR_FAST_SERVER_NUM */ 435*46d2f618SCy Schubert YYSYMBOL_VAR_ALLOW_NOTIFY = 306, /* VAR_ALLOW_NOTIFY */ 436*46d2f618SCy Schubert YYSYMBOL_VAR_TLS_WIN_CERT = 307, /* VAR_TLS_WIN_CERT */ 437*46d2f618SCy Schubert YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 308, /* VAR_TCP_CONNECTION_LIMIT */ 438*46d2f618SCy Schubert YYSYMBOL_VAR_ANSWER_COOKIE = 309, /* VAR_ANSWER_COOKIE */ 439*46d2f618SCy Schubert YYSYMBOL_VAR_COOKIE_SECRET = 310, /* VAR_COOKIE_SECRET */ 440*46d2f618SCy Schubert YYSYMBOL_VAR_IP_RATELIMIT_COOKIE = 311, /* VAR_IP_RATELIMIT_COOKIE */ 441*46d2f618SCy Schubert YYSYMBOL_VAR_FORWARD_NO_CACHE = 312, /* VAR_FORWARD_NO_CACHE */ 442*46d2f618SCy Schubert YYSYMBOL_VAR_STUB_NO_CACHE = 313, /* VAR_STUB_NO_CACHE */ 443*46d2f618SCy Schubert YYSYMBOL_VAR_LOG_SERVFAIL = 314, /* VAR_LOG_SERVFAIL */ 444*46d2f618SCy Schubert YYSYMBOL_VAR_DENY_ANY = 315, /* VAR_DENY_ANY */ 445*46d2f618SCy Schubert YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 316, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */ 446*46d2f618SCy Schubert YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 317, /* VAR_LOG_TAG_QUERYREPLY */ 447*46d2f618SCy Schubert YYSYMBOL_VAR_DISCARD_TIMEOUT = 318, /* VAR_DISCARD_TIMEOUT */ 448*46d2f618SCy Schubert YYSYMBOL_VAR_WAIT_LIMIT = 319, /* VAR_WAIT_LIMIT */ 449*46d2f618SCy Schubert YYSYMBOL_VAR_WAIT_LIMIT_COOKIE = 320, /* VAR_WAIT_LIMIT_COOKIE */ 450*46d2f618SCy Schubert YYSYMBOL_VAR_WAIT_LIMIT_NETBLOCK = 321, /* VAR_WAIT_LIMIT_NETBLOCK */ 451*46d2f618SCy Schubert YYSYMBOL_VAR_WAIT_LIMIT_COOKIE_NETBLOCK = 322, /* VAR_WAIT_LIMIT_COOKIE_NETBLOCK */ 452*46d2f618SCy Schubert YYSYMBOL_VAR_STREAM_WAIT_SIZE = 323, /* VAR_STREAM_WAIT_SIZE */ 453*46d2f618SCy Schubert YYSYMBOL_VAR_TLS_CIPHERS = 324, /* VAR_TLS_CIPHERS */ 454*46d2f618SCy Schubert YYSYMBOL_VAR_TLS_CIPHERSUITES = 325, /* VAR_TLS_CIPHERSUITES */ 455*46d2f618SCy Schubert YYSYMBOL_VAR_TLS_USE_SNI = 326, /* VAR_TLS_USE_SNI */ 456*46d2f618SCy Schubert YYSYMBOL_VAR_IPSET = 327, /* VAR_IPSET */ 457*46d2f618SCy Schubert YYSYMBOL_VAR_IPSET_NAME_V4 = 328, /* VAR_IPSET_NAME_V4 */ 458*46d2f618SCy Schubert YYSYMBOL_VAR_IPSET_NAME_V6 = 329, /* VAR_IPSET_NAME_V6 */ 459*46d2f618SCy Schubert YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 330, /* VAR_TLS_SESSION_TICKET_KEYS */ 460*46d2f618SCy Schubert YYSYMBOL_VAR_RPZ = 331, /* VAR_RPZ */ 461*46d2f618SCy Schubert YYSYMBOL_VAR_TAGS = 332, /* VAR_TAGS */ 462*46d2f618SCy Schubert YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 333, /* VAR_RPZ_ACTION_OVERRIDE */ 463*46d2f618SCy Schubert YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 334, /* VAR_RPZ_CNAME_OVERRIDE */ 464*46d2f618SCy Schubert YYSYMBOL_VAR_RPZ_LOG = 335, /* VAR_RPZ_LOG */ 465*46d2f618SCy Schubert YYSYMBOL_VAR_RPZ_LOG_NAME = 336, /* VAR_RPZ_LOG_NAME */ 466*46d2f618SCy Schubert YYSYMBOL_VAR_DYNLIB = 337, /* VAR_DYNLIB */ 467*46d2f618SCy Schubert YYSYMBOL_VAR_DYNLIB_FILE = 338, /* VAR_DYNLIB_FILE */ 468*46d2f618SCy Schubert YYSYMBOL_VAR_EDNS_CLIENT_STRING = 339, /* VAR_EDNS_CLIENT_STRING */ 469*46d2f618SCy Schubert YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 340, /* VAR_EDNS_CLIENT_STRING_OPCODE */ 470*46d2f618SCy Schubert YYSYMBOL_VAR_NSID = 341, /* VAR_NSID */ 471*46d2f618SCy Schubert YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 342, /* VAR_ZONEMD_PERMISSIVE_MODE */ 472*46d2f618SCy Schubert YYSYMBOL_VAR_ZONEMD_CHECK = 343, /* VAR_ZONEMD_CHECK */ 473*46d2f618SCy Schubert YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 344, /* VAR_ZONEMD_REJECT_ABSENCE */ 474*46d2f618SCy Schubert YYSYMBOL_VAR_RPZ_SIGNAL_NXDOMAIN_RA = 345, /* VAR_RPZ_SIGNAL_NXDOMAIN_RA */ 475*46d2f618SCy Schubert YYSYMBOL_VAR_INTERFACE_AUTOMATIC_PORTS = 346, /* VAR_INTERFACE_AUTOMATIC_PORTS */ 476*46d2f618SCy Schubert YYSYMBOL_VAR_EDE = 347, /* VAR_EDE */ 477*46d2f618SCy Schubert YYSYMBOL_VAR_INTERFACE_ACTION = 348, /* VAR_INTERFACE_ACTION */ 478*46d2f618SCy Schubert YYSYMBOL_VAR_INTERFACE_VIEW = 349, /* VAR_INTERFACE_VIEW */ 479*46d2f618SCy Schubert YYSYMBOL_VAR_INTERFACE_TAG = 350, /* VAR_INTERFACE_TAG */ 480*46d2f618SCy Schubert YYSYMBOL_VAR_INTERFACE_TAG_ACTION = 351, /* VAR_INTERFACE_TAG_ACTION */ 481*46d2f618SCy Schubert YYSYMBOL_VAR_INTERFACE_TAG_DATA = 352, /* VAR_INTERFACE_TAG_DATA */ 482*46d2f618SCy Schubert YYSYMBOL_VAR_QUIC_PORT = 353, /* VAR_QUIC_PORT */ 483*46d2f618SCy Schubert YYSYMBOL_VAR_QUIC_SIZE = 354, /* VAR_QUIC_SIZE */ 484*46d2f618SCy Schubert YYSYMBOL_VAR_PROXY_PROTOCOL_PORT = 355, /* VAR_PROXY_PROTOCOL_PORT */ 485*46d2f618SCy Schubert YYSYMBOL_VAR_STATISTICS_INHIBIT_ZERO = 356, /* VAR_STATISTICS_INHIBIT_ZERO */ 486*46d2f618SCy Schubert YYSYMBOL_VAR_HARDEN_UNKNOWN_ADDITIONAL = 357, /* VAR_HARDEN_UNKNOWN_ADDITIONAL */ 487*46d2f618SCy Schubert YYSYMBOL_VAR_DISABLE_EDNS_DO = 358, /* VAR_DISABLE_EDNS_DO */ 488*46d2f618SCy Schubert YYSYMBOL_VAR_CACHEDB_NO_STORE = 359, /* VAR_CACHEDB_NO_STORE */ 489*46d2f618SCy Schubert YYSYMBOL_VAR_LOG_DESTADDR = 360, /* VAR_LOG_DESTADDR */ 490*46d2f618SCy Schubert YYSYMBOL_VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED = 361, /* VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED */ 491*46d2f618SCy Schubert YYSYMBOL_VAR_COOKIE_SECRET_FILE = 362, /* VAR_COOKIE_SECRET_FILE */ 492*46d2f618SCy Schubert YYSYMBOL_VAR_ITER_SCRUB_NS = 363, /* VAR_ITER_SCRUB_NS */ 493*46d2f618SCy Schubert YYSYMBOL_VAR_ITER_SCRUB_CNAME = 364, /* VAR_ITER_SCRUB_CNAME */ 494*46d2f618SCy Schubert YYSYMBOL_VAR_MAX_GLOBAL_QUOTA = 365, /* VAR_MAX_GLOBAL_QUOTA */ 495*46d2f618SCy Schubert YYSYMBOL_VAR_HARDEN_UNVERIFIED_GLUE = 366, /* VAR_HARDEN_UNVERIFIED_GLUE */ 496*46d2f618SCy Schubert YYSYMBOL_VAR_LOG_TIME_ISO = 367, /* VAR_LOG_TIME_ISO */ 497*46d2f618SCy Schubert YYSYMBOL_YYACCEPT = 368, /* $accept */ 498*46d2f618SCy Schubert YYSYMBOL_toplevelvars = 369, /* toplevelvars */ 499*46d2f618SCy Schubert YYSYMBOL_toplevelvar = 370, /* toplevelvar */ 500*46d2f618SCy Schubert YYSYMBOL_force_toplevel = 371, /* force_toplevel */ 501*46d2f618SCy Schubert YYSYMBOL_serverstart = 372, /* serverstart */ 502*46d2f618SCy Schubert YYSYMBOL_contents_server = 373, /* contents_server */ 503*46d2f618SCy Schubert YYSYMBOL_content_server = 374, /* content_server */ 504*46d2f618SCy Schubert YYSYMBOL_stub_clause = 375, /* stub_clause */ 505*46d2f618SCy Schubert YYSYMBOL_stubstart = 376, /* stubstart */ 506*46d2f618SCy Schubert YYSYMBOL_contents_stub = 377, /* contents_stub */ 507*46d2f618SCy Schubert YYSYMBOL_content_stub = 378, /* content_stub */ 508*46d2f618SCy Schubert YYSYMBOL_forward_clause = 379, /* forward_clause */ 509*46d2f618SCy Schubert YYSYMBOL_forwardstart = 380, /* forwardstart */ 510*46d2f618SCy Schubert YYSYMBOL_contents_forward = 381, /* contents_forward */ 511*46d2f618SCy Schubert YYSYMBOL_content_forward = 382, /* content_forward */ 512*46d2f618SCy Schubert YYSYMBOL_view_clause = 383, /* view_clause */ 513*46d2f618SCy Schubert YYSYMBOL_viewstart = 384, /* viewstart */ 514*46d2f618SCy Schubert YYSYMBOL_contents_view = 385, /* contents_view */ 515*46d2f618SCy Schubert YYSYMBOL_content_view = 386, /* content_view */ 516*46d2f618SCy Schubert YYSYMBOL_authstart = 387, /* authstart */ 517*46d2f618SCy Schubert YYSYMBOL_contents_auth = 388, /* contents_auth */ 518*46d2f618SCy Schubert YYSYMBOL_content_auth = 389, /* content_auth */ 519*46d2f618SCy Schubert YYSYMBOL_rpz_tag = 390, /* rpz_tag */ 520*46d2f618SCy Schubert YYSYMBOL_rpz_action_override = 391, /* rpz_action_override */ 521*46d2f618SCy Schubert YYSYMBOL_rpz_cname_override = 392, /* rpz_cname_override */ 522*46d2f618SCy Schubert YYSYMBOL_rpz_log = 393, /* rpz_log */ 523*46d2f618SCy Schubert YYSYMBOL_rpz_log_name = 394, /* rpz_log_name */ 524*46d2f618SCy Schubert YYSYMBOL_rpz_signal_nxdomain_ra = 395, /* rpz_signal_nxdomain_ra */ 525*46d2f618SCy Schubert YYSYMBOL_rpzstart = 396, /* rpzstart */ 526*46d2f618SCy Schubert YYSYMBOL_contents_rpz = 397, /* contents_rpz */ 527*46d2f618SCy Schubert YYSYMBOL_content_rpz = 398, /* content_rpz */ 528*46d2f618SCy Schubert YYSYMBOL_server_num_threads = 399, /* server_num_threads */ 529*46d2f618SCy Schubert YYSYMBOL_server_verbosity = 400, /* server_verbosity */ 530*46d2f618SCy Schubert YYSYMBOL_server_statistics_interval = 401, /* server_statistics_interval */ 531*46d2f618SCy Schubert YYSYMBOL_server_statistics_cumulative = 402, /* server_statistics_cumulative */ 532*46d2f618SCy Schubert YYSYMBOL_server_extended_statistics = 403, /* server_extended_statistics */ 533*46d2f618SCy Schubert YYSYMBOL_server_statistics_inhibit_zero = 404, /* server_statistics_inhibit_zero */ 534*46d2f618SCy Schubert YYSYMBOL_server_shm_enable = 405, /* server_shm_enable */ 535*46d2f618SCy Schubert YYSYMBOL_server_shm_key = 406, /* server_shm_key */ 536*46d2f618SCy Schubert YYSYMBOL_server_port = 407, /* server_port */ 537*46d2f618SCy Schubert YYSYMBOL_server_send_client_subnet = 408, /* server_send_client_subnet */ 538*46d2f618SCy Schubert YYSYMBOL_server_client_subnet_zone = 409, /* server_client_subnet_zone */ 539*46d2f618SCy Schubert YYSYMBOL_server_client_subnet_always_forward = 410, /* server_client_subnet_always_forward */ 540*46d2f618SCy Schubert YYSYMBOL_server_client_subnet_opcode = 411, /* server_client_subnet_opcode */ 541*46d2f618SCy Schubert YYSYMBOL_server_max_client_subnet_ipv4 = 412, /* server_max_client_subnet_ipv4 */ 542*46d2f618SCy Schubert YYSYMBOL_server_max_client_subnet_ipv6 = 413, /* server_max_client_subnet_ipv6 */ 543*46d2f618SCy Schubert YYSYMBOL_server_min_client_subnet_ipv4 = 414, /* server_min_client_subnet_ipv4 */ 544*46d2f618SCy Schubert YYSYMBOL_server_min_client_subnet_ipv6 = 415, /* server_min_client_subnet_ipv6 */ 545*46d2f618SCy Schubert YYSYMBOL_server_max_ecs_tree_size_ipv4 = 416, /* server_max_ecs_tree_size_ipv4 */ 546*46d2f618SCy Schubert YYSYMBOL_server_max_ecs_tree_size_ipv6 = 417, /* server_max_ecs_tree_size_ipv6 */ 547*46d2f618SCy Schubert YYSYMBOL_server_interface = 418, /* server_interface */ 548*46d2f618SCy Schubert YYSYMBOL_server_outgoing_interface = 419, /* server_outgoing_interface */ 549*46d2f618SCy Schubert YYSYMBOL_server_outgoing_range = 420, /* server_outgoing_range */ 550*46d2f618SCy Schubert YYSYMBOL_server_outgoing_port_permit = 421, /* server_outgoing_port_permit */ 551*46d2f618SCy Schubert YYSYMBOL_server_outgoing_port_avoid = 422, /* server_outgoing_port_avoid */ 552*46d2f618SCy Schubert YYSYMBOL_server_outgoing_num_tcp = 423, /* server_outgoing_num_tcp */ 553*46d2f618SCy Schubert YYSYMBOL_server_incoming_num_tcp = 424, /* server_incoming_num_tcp */ 554*46d2f618SCy Schubert YYSYMBOL_server_interface_automatic = 425, /* server_interface_automatic */ 555*46d2f618SCy Schubert YYSYMBOL_server_interface_automatic_ports = 426, /* server_interface_automatic_ports */ 556*46d2f618SCy Schubert YYSYMBOL_server_do_ip4 = 427, /* server_do_ip4 */ 557*46d2f618SCy Schubert YYSYMBOL_server_do_ip6 = 428, /* server_do_ip6 */ 558*46d2f618SCy Schubert YYSYMBOL_server_do_nat64 = 429, /* server_do_nat64 */ 559*46d2f618SCy Schubert YYSYMBOL_server_do_udp = 430, /* server_do_udp */ 560*46d2f618SCy Schubert YYSYMBOL_server_do_tcp = 431, /* server_do_tcp */ 561*46d2f618SCy Schubert YYSYMBOL_server_prefer_ip4 = 432, /* server_prefer_ip4 */ 562*46d2f618SCy Schubert YYSYMBOL_server_prefer_ip6 = 433, /* server_prefer_ip6 */ 563*46d2f618SCy Schubert YYSYMBOL_server_tcp_mss = 434, /* server_tcp_mss */ 564*46d2f618SCy Schubert YYSYMBOL_server_outgoing_tcp_mss = 435, /* server_outgoing_tcp_mss */ 565*46d2f618SCy Schubert YYSYMBOL_server_tcp_idle_timeout = 436, /* server_tcp_idle_timeout */ 566*46d2f618SCy Schubert YYSYMBOL_server_max_reuse_tcp_queries = 437, /* server_max_reuse_tcp_queries */ 567*46d2f618SCy Schubert YYSYMBOL_server_tcp_reuse_timeout = 438, /* server_tcp_reuse_timeout */ 568*46d2f618SCy Schubert YYSYMBOL_server_tcp_auth_query_timeout = 439, /* server_tcp_auth_query_timeout */ 569*46d2f618SCy Schubert YYSYMBOL_server_tcp_keepalive = 440, /* server_tcp_keepalive */ 570*46d2f618SCy Schubert YYSYMBOL_server_tcp_keepalive_timeout = 441, /* server_tcp_keepalive_timeout */ 571*46d2f618SCy Schubert YYSYMBOL_server_sock_queue_timeout = 442, /* server_sock_queue_timeout */ 572*46d2f618SCy Schubert YYSYMBOL_server_tcp_upstream = 443, /* server_tcp_upstream */ 573*46d2f618SCy Schubert YYSYMBOL_server_udp_upstream_without_downstream = 444, /* server_udp_upstream_without_downstream */ 574*46d2f618SCy Schubert YYSYMBOL_server_ssl_upstream = 445, /* server_ssl_upstream */ 575*46d2f618SCy Schubert YYSYMBOL_server_ssl_service_key = 446, /* server_ssl_service_key */ 576*46d2f618SCy Schubert YYSYMBOL_server_ssl_service_pem = 447, /* server_ssl_service_pem */ 577*46d2f618SCy Schubert YYSYMBOL_server_ssl_port = 448, /* server_ssl_port */ 578*46d2f618SCy Schubert YYSYMBOL_server_tls_cert_bundle = 449, /* server_tls_cert_bundle */ 579*46d2f618SCy Schubert YYSYMBOL_server_tls_win_cert = 450, /* server_tls_win_cert */ 580*46d2f618SCy Schubert YYSYMBOL_server_tls_additional_port = 451, /* server_tls_additional_port */ 581*46d2f618SCy Schubert YYSYMBOL_server_tls_ciphers = 452, /* server_tls_ciphers */ 582*46d2f618SCy Schubert YYSYMBOL_server_tls_ciphersuites = 453, /* server_tls_ciphersuites */ 583*46d2f618SCy Schubert YYSYMBOL_server_tls_session_ticket_keys = 454, /* server_tls_session_ticket_keys */ 584*46d2f618SCy Schubert YYSYMBOL_server_tls_use_sni = 455, /* server_tls_use_sni */ 585*46d2f618SCy Schubert YYSYMBOL_server_https_port = 456, /* server_https_port */ 586*46d2f618SCy Schubert YYSYMBOL_server_http_endpoint = 457, /* server_http_endpoint */ 587*46d2f618SCy Schubert YYSYMBOL_server_http_max_streams = 458, /* server_http_max_streams */ 588*46d2f618SCy Schubert YYSYMBOL_server_http_query_buffer_size = 459, /* server_http_query_buffer_size */ 589*46d2f618SCy Schubert YYSYMBOL_server_http_response_buffer_size = 460, /* server_http_response_buffer_size */ 590*46d2f618SCy Schubert YYSYMBOL_server_http_nodelay = 461, /* server_http_nodelay */ 591*46d2f618SCy Schubert YYSYMBOL_server_http_notls_downstream = 462, /* server_http_notls_downstream */ 592*46d2f618SCy Schubert YYSYMBOL_server_quic_port = 463, /* server_quic_port */ 593*46d2f618SCy Schubert YYSYMBOL_server_quic_size = 464, /* server_quic_size */ 594*46d2f618SCy Schubert YYSYMBOL_server_use_systemd = 465, /* server_use_systemd */ 595*46d2f618SCy Schubert YYSYMBOL_server_do_daemonize = 466, /* server_do_daemonize */ 596*46d2f618SCy Schubert YYSYMBOL_server_use_syslog = 467, /* server_use_syslog */ 597*46d2f618SCy Schubert YYSYMBOL_server_log_time_ascii = 468, /* server_log_time_ascii */ 598*46d2f618SCy Schubert YYSYMBOL_server_log_time_iso = 469, /* server_log_time_iso */ 599*46d2f618SCy Schubert YYSYMBOL_server_log_queries = 470, /* server_log_queries */ 600*46d2f618SCy Schubert YYSYMBOL_server_log_replies = 471, /* server_log_replies */ 601*46d2f618SCy Schubert YYSYMBOL_server_log_tag_queryreply = 472, /* server_log_tag_queryreply */ 602*46d2f618SCy Schubert YYSYMBOL_server_log_servfail = 473, /* server_log_servfail */ 603*46d2f618SCy Schubert YYSYMBOL_server_log_destaddr = 474, /* server_log_destaddr */ 604*46d2f618SCy Schubert YYSYMBOL_server_log_local_actions = 475, /* server_log_local_actions */ 605*46d2f618SCy Schubert YYSYMBOL_server_chroot = 476, /* server_chroot */ 606*46d2f618SCy Schubert YYSYMBOL_server_username = 477, /* server_username */ 607*46d2f618SCy Schubert YYSYMBOL_server_directory = 478, /* server_directory */ 608*46d2f618SCy Schubert YYSYMBOL_server_logfile = 479, /* server_logfile */ 609*46d2f618SCy Schubert YYSYMBOL_server_pidfile = 480, /* server_pidfile */ 610*46d2f618SCy Schubert YYSYMBOL_server_root_hints = 481, /* server_root_hints */ 611*46d2f618SCy Schubert YYSYMBOL_server_dlv_anchor_file = 482, /* server_dlv_anchor_file */ 612*46d2f618SCy Schubert YYSYMBOL_server_dlv_anchor = 483, /* server_dlv_anchor */ 613*46d2f618SCy Schubert YYSYMBOL_server_auto_trust_anchor_file = 484, /* server_auto_trust_anchor_file */ 614*46d2f618SCy Schubert YYSYMBOL_server_trust_anchor_file = 485, /* server_trust_anchor_file */ 615*46d2f618SCy Schubert YYSYMBOL_server_trusted_keys_file = 486, /* server_trusted_keys_file */ 616*46d2f618SCy Schubert YYSYMBOL_server_trust_anchor = 487, /* server_trust_anchor */ 617*46d2f618SCy Schubert YYSYMBOL_server_trust_anchor_signaling = 488, /* server_trust_anchor_signaling */ 618*46d2f618SCy Schubert YYSYMBOL_server_root_key_sentinel = 489, /* server_root_key_sentinel */ 619*46d2f618SCy Schubert YYSYMBOL_server_domain_insecure = 490, /* server_domain_insecure */ 620*46d2f618SCy Schubert YYSYMBOL_server_hide_identity = 491, /* server_hide_identity */ 621*46d2f618SCy Schubert YYSYMBOL_server_hide_version = 492, /* server_hide_version */ 622*46d2f618SCy Schubert YYSYMBOL_server_hide_trustanchor = 493, /* server_hide_trustanchor */ 623*46d2f618SCy Schubert YYSYMBOL_server_hide_http_user_agent = 494, /* server_hide_http_user_agent */ 624*46d2f618SCy Schubert YYSYMBOL_server_identity = 495, /* server_identity */ 625*46d2f618SCy Schubert YYSYMBOL_server_version = 496, /* server_version */ 626*46d2f618SCy Schubert YYSYMBOL_server_http_user_agent = 497, /* server_http_user_agent */ 627*46d2f618SCy Schubert YYSYMBOL_server_nsid = 498, /* server_nsid */ 628*46d2f618SCy Schubert YYSYMBOL_server_so_rcvbuf = 499, /* server_so_rcvbuf */ 629*46d2f618SCy Schubert YYSYMBOL_server_so_sndbuf = 500, /* server_so_sndbuf */ 630*46d2f618SCy Schubert YYSYMBOL_server_so_reuseport = 501, /* server_so_reuseport */ 631*46d2f618SCy Schubert YYSYMBOL_server_ip_transparent = 502, /* server_ip_transparent */ 632*46d2f618SCy Schubert YYSYMBOL_server_ip_freebind = 503, /* server_ip_freebind */ 633*46d2f618SCy Schubert YYSYMBOL_server_ip_dscp = 504, /* server_ip_dscp */ 634*46d2f618SCy Schubert YYSYMBOL_server_stream_wait_size = 505, /* server_stream_wait_size */ 635*46d2f618SCy Schubert YYSYMBOL_server_edns_buffer_size = 506, /* server_edns_buffer_size */ 636*46d2f618SCy Schubert YYSYMBOL_server_msg_buffer_size = 507, /* server_msg_buffer_size */ 637*46d2f618SCy Schubert YYSYMBOL_server_msg_cache_size = 508, /* server_msg_cache_size */ 638*46d2f618SCy Schubert YYSYMBOL_server_msg_cache_slabs = 509, /* server_msg_cache_slabs */ 639*46d2f618SCy Schubert YYSYMBOL_server_num_queries_per_thread = 510, /* server_num_queries_per_thread */ 640*46d2f618SCy Schubert YYSYMBOL_server_jostle_timeout = 511, /* server_jostle_timeout */ 641*46d2f618SCy Schubert YYSYMBOL_server_delay_close = 512, /* server_delay_close */ 642*46d2f618SCy Schubert YYSYMBOL_server_udp_connect = 513, /* server_udp_connect */ 643*46d2f618SCy Schubert YYSYMBOL_server_unblock_lan_zones = 514, /* server_unblock_lan_zones */ 644*46d2f618SCy Schubert YYSYMBOL_server_insecure_lan_zones = 515, /* server_insecure_lan_zones */ 645*46d2f618SCy Schubert YYSYMBOL_server_rrset_cache_size = 516, /* server_rrset_cache_size */ 646*46d2f618SCy Schubert YYSYMBOL_server_rrset_cache_slabs = 517, /* server_rrset_cache_slabs */ 647*46d2f618SCy Schubert YYSYMBOL_server_infra_host_ttl = 518, /* server_infra_host_ttl */ 648*46d2f618SCy Schubert YYSYMBOL_server_infra_lame_ttl = 519, /* server_infra_lame_ttl */ 649*46d2f618SCy Schubert YYSYMBOL_server_infra_cache_numhosts = 520, /* server_infra_cache_numhosts */ 650*46d2f618SCy Schubert YYSYMBOL_server_infra_cache_lame_size = 521, /* server_infra_cache_lame_size */ 651*46d2f618SCy Schubert YYSYMBOL_server_infra_cache_slabs = 522, /* server_infra_cache_slabs */ 652*46d2f618SCy Schubert YYSYMBOL_server_infra_cache_min_rtt = 523, /* server_infra_cache_min_rtt */ 653*46d2f618SCy Schubert YYSYMBOL_server_infra_cache_max_rtt = 524, /* server_infra_cache_max_rtt */ 654*46d2f618SCy Schubert YYSYMBOL_server_infra_keep_probing = 525, /* server_infra_keep_probing */ 655*46d2f618SCy Schubert YYSYMBOL_server_target_fetch_policy = 526, /* server_target_fetch_policy */ 656*46d2f618SCy Schubert YYSYMBOL_server_harden_short_bufsize = 527, /* server_harden_short_bufsize */ 657*46d2f618SCy Schubert YYSYMBOL_server_harden_large_queries = 528, /* server_harden_large_queries */ 658*46d2f618SCy Schubert YYSYMBOL_server_harden_glue = 529, /* server_harden_glue */ 659*46d2f618SCy Schubert YYSYMBOL_server_harden_unverified_glue = 530, /* server_harden_unverified_glue */ 660*46d2f618SCy Schubert YYSYMBOL_server_harden_dnssec_stripped = 531, /* server_harden_dnssec_stripped */ 661*46d2f618SCy Schubert YYSYMBOL_server_harden_below_nxdomain = 532, /* server_harden_below_nxdomain */ 662*46d2f618SCy Schubert YYSYMBOL_server_harden_referral_path = 533, /* server_harden_referral_path */ 663*46d2f618SCy Schubert YYSYMBOL_server_harden_algo_downgrade = 534, /* server_harden_algo_downgrade */ 664*46d2f618SCy Schubert YYSYMBOL_server_harden_unknown_additional = 535, /* server_harden_unknown_additional */ 665*46d2f618SCy Schubert YYSYMBOL_server_use_caps_for_id = 536, /* server_use_caps_for_id */ 666*46d2f618SCy Schubert YYSYMBOL_server_caps_whitelist = 537, /* server_caps_whitelist */ 667*46d2f618SCy Schubert YYSYMBOL_server_private_address = 538, /* server_private_address */ 668*46d2f618SCy Schubert YYSYMBOL_server_private_domain = 539, /* server_private_domain */ 669*46d2f618SCy Schubert YYSYMBOL_server_prefetch = 540, /* server_prefetch */ 670*46d2f618SCy Schubert YYSYMBOL_server_prefetch_key = 541, /* server_prefetch_key */ 671*46d2f618SCy Schubert YYSYMBOL_server_deny_any = 542, /* server_deny_any */ 672*46d2f618SCy Schubert YYSYMBOL_server_unwanted_reply_threshold = 543, /* server_unwanted_reply_threshold */ 673*46d2f618SCy Schubert YYSYMBOL_server_do_not_query_address = 544, /* server_do_not_query_address */ 674*46d2f618SCy Schubert YYSYMBOL_server_do_not_query_localhost = 545, /* server_do_not_query_localhost */ 675*46d2f618SCy Schubert YYSYMBOL_server_access_control = 546, /* server_access_control */ 676*46d2f618SCy Schubert YYSYMBOL_server_interface_action = 547, /* server_interface_action */ 677*46d2f618SCy Schubert YYSYMBOL_server_module_conf = 548, /* server_module_conf */ 678*46d2f618SCy Schubert YYSYMBOL_server_val_override_date = 549, /* server_val_override_date */ 679*46d2f618SCy Schubert YYSYMBOL_server_val_sig_skew_min = 550, /* server_val_sig_skew_min */ 680*46d2f618SCy Schubert YYSYMBOL_server_val_sig_skew_max = 551, /* server_val_sig_skew_max */ 681*46d2f618SCy Schubert YYSYMBOL_server_val_max_restart = 552, /* server_val_max_restart */ 682*46d2f618SCy Schubert YYSYMBOL_server_cache_max_ttl = 553, /* server_cache_max_ttl */ 683*46d2f618SCy Schubert YYSYMBOL_server_cache_max_negative_ttl = 554, /* server_cache_max_negative_ttl */ 684*46d2f618SCy Schubert YYSYMBOL_server_cache_min_negative_ttl = 555, /* server_cache_min_negative_ttl */ 685*46d2f618SCy Schubert YYSYMBOL_server_cache_min_ttl = 556, /* server_cache_min_ttl */ 686*46d2f618SCy Schubert YYSYMBOL_server_bogus_ttl = 557, /* server_bogus_ttl */ 687*46d2f618SCy Schubert YYSYMBOL_server_val_clean_additional = 558, /* server_val_clean_additional */ 688*46d2f618SCy Schubert YYSYMBOL_server_val_permissive_mode = 559, /* server_val_permissive_mode */ 689*46d2f618SCy Schubert YYSYMBOL_server_aggressive_nsec = 560, /* server_aggressive_nsec */ 690*46d2f618SCy Schubert YYSYMBOL_server_ignore_cd_flag = 561, /* server_ignore_cd_flag */ 691*46d2f618SCy Schubert YYSYMBOL_server_disable_edns_do = 562, /* server_disable_edns_do */ 692*46d2f618SCy Schubert YYSYMBOL_server_serve_expired = 563, /* server_serve_expired */ 693*46d2f618SCy Schubert YYSYMBOL_server_serve_expired_ttl = 564, /* server_serve_expired_ttl */ 694*46d2f618SCy Schubert YYSYMBOL_server_serve_expired_ttl_reset = 565, /* server_serve_expired_ttl_reset */ 695*46d2f618SCy Schubert YYSYMBOL_server_serve_expired_reply_ttl = 566, /* server_serve_expired_reply_ttl */ 696*46d2f618SCy Schubert YYSYMBOL_server_serve_expired_client_timeout = 567, /* server_serve_expired_client_timeout */ 697*46d2f618SCy Schubert YYSYMBOL_server_ede_serve_expired = 568, /* server_ede_serve_expired */ 698*46d2f618SCy Schubert YYSYMBOL_server_serve_original_ttl = 569, /* server_serve_original_ttl */ 699*46d2f618SCy Schubert YYSYMBOL_server_fake_dsa = 570, /* server_fake_dsa */ 700*46d2f618SCy Schubert YYSYMBOL_server_fake_sha1 = 571, /* server_fake_sha1 */ 701*46d2f618SCy Schubert YYSYMBOL_server_val_log_level = 572, /* server_val_log_level */ 702*46d2f618SCy Schubert YYSYMBOL_server_val_nsec3_keysize_iterations = 573, /* server_val_nsec3_keysize_iterations */ 703*46d2f618SCy Schubert YYSYMBOL_server_zonemd_permissive_mode = 574, /* server_zonemd_permissive_mode */ 704*46d2f618SCy Schubert YYSYMBOL_server_add_holddown = 575, /* server_add_holddown */ 705*46d2f618SCy Schubert YYSYMBOL_server_del_holddown = 576, /* server_del_holddown */ 706*46d2f618SCy Schubert YYSYMBOL_server_keep_missing = 577, /* server_keep_missing */ 707*46d2f618SCy Schubert YYSYMBOL_server_permit_small_holddown = 578, /* server_permit_small_holddown */ 708*46d2f618SCy Schubert YYSYMBOL_server_key_cache_size = 579, /* server_key_cache_size */ 709*46d2f618SCy Schubert YYSYMBOL_server_key_cache_slabs = 580, /* server_key_cache_slabs */ 710*46d2f618SCy Schubert YYSYMBOL_server_neg_cache_size = 581, /* server_neg_cache_size */ 711*46d2f618SCy Schubert YYSYMBOL_server_local_zone = 582, /* server_local_zone */ 712*46d2f618SCy Schubert YYSYMBOL_server_local_data = 583, /* server_local_data */ 713*46d2f618SCy Schubert YYSYMBOL_server_local_data_ptr = 584, /* server_local_data_ptr */ 714*46d2f618SCy Schubert YYSYMBOL_server_minimal_responses = 585, /* server_minimal_responses */ 715*46d2f618SCy Schubert YYSYMBOL_server_rrset_roundrobin = 586, /* server_rrset_roundrobin */ 716*46d2f618SCy Schubert YYSYMBOL_server_unknown_server_time_limit = 587, /* server_unknown_server_time_limit */ 717*46d2f618SCy Schubert YYSYMBOL_server_discard_timeout = 588, /* server_discard_timeout */ 718*46d2f618SCy Schubert YYSYMBOL_server_wait_limit = 589, /* server_wait_limit */ 719*46d2f618SCy Schubert YYSYMBOL_server_wait_limit_cookie = 590, /* server_wait_limit_cookie */ 720*46d2f618SCy Schubert YYSYMBOL_server_wait_limit_netblock = 591, /* server_wait_limit_netblock */ 721*46d2f618SCy Schubert YYSYMBOL_server_wait_limit_cookie_netblock = 592, /* server_wait_limit_cookie_netblock */ 722*46d2f618SCy Schubert YYSYMBOL_server_max_udp_size = 593, /* server_max_udp_size */ 723*46d2f618SCy Schubert YYSYMBOL_server_dns64_prefix = 594, /* server_dns64_prefix */ 724*46d2f618SCy Schubert YYSYMBOL_server_dns64_synthall = 595, /* server_dns64_synthall */ 725*46d2f618SCy Schubert YYSYMBOL_server_dns64_ignore_aaaa = 596, /* server_dns64_ignore_aaaa */ 726*46d2f618SCy Schubert YYSYMBOL_server_nat64_prefix = 597, /* server_nat64_prefix */ 727*46d2f618SCy Schubert YYSYMBOL_server_define_tag = 598, /* server_define_tag */ 728*46d2f618SCy Schubert YYSYMBOL_server_local_zone_tag = 599, /* server_local_zone_tag */ 729*46d2f618SCy Schubert YYSYMBOL_server_access_control_tag = 600, /* server_access_control_tag */ 730*46d2f618SCy Schubert YYSYMBOL_server_access_control_tag_action = 601, /* server_access_control_tag_action */ 731*46d2f618SCy Schubert YYSYMBOL_server_access_control_tag_data = 602, /* server_access_control_tag_data */ 732*46d2f618SCy Schubert YYSYMBOL_server_local_zone_override = 603, /* server_local_zone_override */ 733*46d2f618SCy Schubert YYSYMBOL_server_access_control_view = 604, /* server_access_control_view */ 734*46d2f618SCy Schubert YYSYMBOL_server_interface_tag = 605, /* server_interface_tag */ 735*46d2f618SCy Schubert YYSYMBOL_server_interface_tag_action = 606, /* server_interface_tag_action */ 736*46d2f618SCy Schubert YYSYMBOL_server_interface_tag_data = 607, /* server_interface_tag_data */ 737*46d2f618SCy Schubert YYSYMBOL_server_interface_view = 608, /* server_interface_view */ 738*46d2f618SCy Schubert YYSYMBOL_server_response_ip_tag = 609, /* server_response_ip_tag */ 739*46d2f618SCy Schubert YYSYMBOL_server_ip_ratelimit = 610, /* server_ip_ratelimit */ 740*46d2f618SCy Schubert YYSYMBOL_server_ip_ratelimit_cookie = 611, /* server_ip_ratelimit_cookie */ 741*46d2f618SCy Schubert YYSYMBOL_server_ratelimit = 612, /* server_ratelimit */ 742*46d2f618SCy Schubert YYSYMBOL_server_ip_ratelimit_size = 613, /* server_ip_ratelimit_size */ 743*46d2f618SCy Schubert YYSYMBOL_server_ratelimit_size = 614, /* server_ratelimit_size */ 744*46d2f618SCy Schubert YYSYMBOL_server_ip_ratelimit_slabs = 615, /* server_ip_ratelimit_slabs */ 745*46d2f618SCy Schubert YYSYMBOL_server_ratelimit_slabs = 616, /* server_ratelimit_slabs */ 746*46d2f618SCy Schubert YYSYMBOL_server_ratelimit_for_domain = 617, /* server_ratelimit_for_domain */ 747*46d2f618SCy Schubert YYSYMBOL_server_ratelimit_below_domain = 618, /* server_ratelimit_below_domain */ 748*46d2f618SCy Schubert YYSYMBOL_server_ip_ratelimit_factor = 619, /* server_ip_ratelimit_factor */ 749*46d2f618SCy Schubert YYSYMBOL_server_ratelimit_factor = 620, /* server_ratelimit_factor */ 750*46d2f618SCy Schubert YYSYMBOL_server_ip_ratelimit_backoff = 621, /* server_ip_ratelimit_backoff */ 751*46d2f618SCy Schubert YYSYMBOL_server_ratelimit_backoff = 622, /* server_ratelimit_backoff */ 752*46d2f618SCy Schubert YYSYMBOL_server_outbound_msg_retry = 623, /* server_outbound_msg_retry */ 753*46d2f618SCy Schubert YYSYMBOL_server_max_sent_count = 624, /* server_max_sent_count */ 754*46d2f618SCy Schubert YYSYMBOL_server_max_query_restarts = 625, /* server_max_query_restarts */ 755*46d2f618SCy Schubert YYSYMBOL_server_low_rtt = 626, /* server_low_rtt */ 756*46d2f618SCy Schubert YYSYMBOL_server_fast_server_num = 627, /* server_fast_server_num */ 757*46d2f618SCy Schubert YYSYMBOL_server_fast_server_permil = 628, /* server_fast_server_permil */ 758*46d2f618SCy Schubert YYSYMBOL_server_qname_minimisation = 629, /* server_qname_minimisation */ 759*46d2f618SCy Schubert YYSYMBOL_server_qname_minimisation_strict = 630, /* server_qname_minimisation_strict */ 760*46d2f618SCy Schubert YYSYMBOL_server_pad_responses = 631, /* server_pad_responses */ 761*46d2f618SCy Schubert YYSYMBOL_server_pad_responses_block_size = 632, /* server_pad_responses_block_size */ 762*46d2f618SCy Schubert YYSYMBOL_server_pad_queries = 633, /* server_pad_queries */ 763*46d2f618SCy Schubert YYSYMBOL_server_pad_queries_block_size = 634, /* server_pad_queries_block_size */ 764*46d2f618SCy Schubert YYSYMBOL_server_ipsecmod_enabled = 635, /* server_ipsecmod_enabled */ 765*46d2f618SCy Schubert YYSYMBOL_server_ipsecmod_ignore_bogus = 636, /* server_ipsecmod_ignore_bogus */ 766*46d2f618SCy Schubert YYSYMBOL_server_ipsecmod_hook = 637, /* server_ipsecmod_hook */ 767*46d2f618SCy Schubert YYSYMBOL_server_ipsecmod_max_ttl = 638, /* server_ipsecmod_max_ttl */ 768*46d2f618SCy Schubert YYSYMBOL_server_ipsecmod_whitelist = 639, /* server_ipsecmod_whitelist */ 769*46d2f618SCy Schubert YYSYMBOL_server_ipsecmod_strict = 640, /* server_ipsecmod_strict */ 770*46d2f618SCy Schubert YYSYMBOL_server_edns_client_string = 641, /* server_edns_client_string */ 771*46d2f618SCy Schubert YYSYMBOL_server_edns_client_string_opcode = 642, /* server_edns_client_string_opcode */ 772*46d2f618SCy Schubert YYSYMBOL_server_ede = 643, /* server_ede */ 773*46d2f618SCy Schubert YYSYMBOL_server_proxy_protocol_port = 644, /* server_proxy_protocol_port */ 774*46d2f618SCy Schubert YYSYMBOL_stub_name = 645, /* stub_name */ 775*46d2f618SCy Schubert YYSYMBOL_stub_host = 646, /* stub_host */ 776*46d2f618SCy Schubert YYSYMBOL_stub_addr = 647, /* stub_addr */ 777*46d2f618SCy Schubert YYSYMBOL_stub_first = 648, /* stub_first */ 778*46d2f618SCy Schubert YYSYMBOL_stub_no_cache = 649, /* stub_no_cache */ 779*46d2f618SCy Schubert YYSYMBOL_stub_ssl_upstream = 650, /* stub_ssl_upstream */ 780*46d2f618SCy Schubert YYSYMBOL_stub_tcp_upstream = 651, /* stub_tcp_upstream */ 781*46d2f618SCy Schubert YYSYMBOL_stub_prime = 652, /* stub_prime */ 782*46d2f618SCy Schubert YYSYMBOL_forward_name = 653, /* forward_name */ 783*46d2f618SCy Schubert YYSYMBOL_forward_host = 654, /* forward_host */ 784*46d2f618SCy Schubert YYSYMBOL_forward_addr = 655, /* forward_addr */ 785*46d2f618SCy Schubert YYSYMBOL_forward_first = 656, /* forward_first */ 786*46d2f618SCy Schubert YYSYMBOL_forward_no_cache = 657, /* forward_no_cache */ 787*46d2f618SCy Schubert YYSYMBOL_forward_ssl_upstream = 658, /* forward_ssl_upstream */ 788*46d2f618SCy Schubert YYSYMBOL_forward_tcp_upstream = 659, /* forward_tcp_upstream */ 789*46d2f618SCy Schubert YYSYMBOL_auth_name = 660, /* auth_name */ 790*46d2f618SCy Schubert YYSYMBOL_auth_zonefile = 661, /* auth_zonefile */ 791*46d2f618SCy Schubert YYSYMBOL_auth_master = 662, /* auth_master */ 792*46d2f618SCy Schubert YYSYMBOL_auth_url = 663, /* auth_url */ 793*46d2f618SCy Schubert YYSYMBOL_auth_allow_notify = 664, /* auth_allow_notify */ 794*46d2f618SCy Schubert YYSYMBOL_auth_zonemd_check = 665, /* auth_zonemd_check */ 795*46d2f618SCy Schubert YYSYMBOL_auth_zonemd_reject_absence = 666, /* auth_zonemd_reject_absence */ 796*46d2f618SCy Schubert YYSYMBOL_auth_for_downstream = 667, /* auth_for_downstream */ 797*46d2f618SCy Schubert YYSYMBOL_auth_for_upstream = 668, /* auth_for_upstream */ 798*46d2f618SCy Schubert YYSYMBOL_auth_fallback_enabled = 669, /* auth_fallback_enabled */ 799*46d2f618SCy Schubert YYSYMBOL_view_name = 670, /* view_name */ 800*46d2f618SCy Schubert YYSYMBOL_view_local_zone = 671, /* view_local_zone */ 801*46d2f618SCy Schubert YYSYMBOL_view_response_ip = 672, /* view_response_ip */ 802*46d2f618SCy Schubert YYSYMBOL_view_response_ip_data = 673, /* view_response_ip_data */ 803*46d2f618SCy Schubert YYSYMBOL_view_local_data = 674, /* view_local_data */ 804*46d2f618SCy Schubert YYSYMBOL_view_local_data_ptr = 675, /* view_local_data_ptr */ 805*46d2f618SCy Schubert YYSYMBOL_view_first = 676, /* view_first */ 806*46d2f618SCy Schubert YYSYMBOL_rcstart = 677, /* rcstart */ 807*46d2f618SCy Schubert YYSYMBOL_contents_rc = 678, /* contents_rc */ 808*46d2f618SCy Schubert YYSYMBOL_content_rc = 679, /* content_rc */ 809*46d2f618SCy Schubert YYSYMBOL_rc_control_enable = 680, /* rc_control_enable */ 810*46d2f618SCy Schubert YYSYMBOL_rc_control_port = 681, /* rc_control_port */ 811*46d2f618SCy Schubert YYSYMBOL_rc_control_interface = 682, /* rc_control_interface */ 812*46d2f618SCy Schubert YYSYMBOL_rc_control_use_cert = 683, /* rc_control_use_cert */ 813*46d2f618SCy Schubert YYSYMBOL_rc_server_key_file = 684, /* rc_server_key_file */ 814*46d2f618SCy Schubert YYSYMBOL_rc_server_cert_file = 685, /* rc_server_cert_file */ 815*46d2f618SCy Schubert YYSYMBOL_rc_control_key_file = 686, /* rc_control_key_file */ 816*46d2f618SCy Schubert YYSYMBOL_rc_control_cert_file = 687, /* rc_control_cert_file */ 817*46d2f618SCy Schubert YYSYMBOL_dtstart = 688, /* dtstart */ 818*46d2f618SCy Schubert YYSYMBOL_contents_dt = 689, /* contents_dt */ 819*46d2f618SCy Schubert YYSYMBOL_content_dt = 690, /* content_dt */ 820*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_enable = 691, /* dt_dnstap_enable */ 821*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_bidirectional = 692, /* dt_dnstap_bidirectional */ 822*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_socket_path = 693, /* dt_dnstap_socket_path */ 823*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_ip = 694, /* dt_dnstap_ip */ 824*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_tls = 695, /* dt_dnstap_tls */ 825*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_tls_server_name = 696, /* dt_dnstap_tls_server_name */ 826*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_tls_cert_bundle = 697, /* dt_dnstap_tls_cert_bundle */ 827*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_tls_client_key_file = 698, /* dt_dnstap_tls_client_key_file */ 828*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_tls_client_cert_file = 699, /* dt_dnstap_tls_client_cert_file */ 829*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_send_identity = 700, /* dt_dnstap_send_identity */ 830*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_send_version = 701, /* dt_dnstap_send_version */ 831*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_identity = 702, /* dt_dnstap_identity */ 832*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_version = 703, /* dt_dnstap_version */ 833*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_log_resolver_query_messages = 704, /* dt_dnstap_log_resolver_query_messages */ 834*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_log_resolver_response_messages = 705, /* dt_dnstap_log_resolver_response_messages */ 835*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_log_client_query_messages = 706, /* dt_dnstap_log_client_query_messages */ 836*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_log_client_response_messages = 707, /* dt_dnstap_log_client_response_messages */ 837*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 708, /* dt_dnstap_log_forwarder_query_messages */ 838*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 709, /* dt_dnstap_log_forwarder_response_messages */ 839*46d2f618SCy Schubert YYSYMBOL_dt_dnstap_sample_rate = 710, /* dt_dnstap_sample_rate */ 840*46d2f618SCy Schubert YYSYMBOL_pythonstart = 711, /* pythonstart */ 841*46d2f618SCy Schubert YYSYMBOL_contents_py = 712, /* contents_py */ 842*46d2f618SCy Schubert YYSYMBOL_content_py = 713, /* content_py */ 843*46d2f618SCy Schubert YYSYMBOL_py_script = 714, /* py_script */ 844*46d2f618SCy Schubert YYSYMBOL_dynlibstart = 715, /* dynlibstart */ 845*46d2f618SCy Schubert YYSYMBOL_contents_dl = 716, /* contents_dl */ 846*46d2f618SCy Schubert YYSYMBOL_content_dl = 717, /* content_dl */ 847*46d2f618SCy Schubert YYSYMBOL_dl_file = 718, /* dl_file */ 848*46d2f618SCy Schubert YYSYMBOL_server_disable_dnssec_lame_check = 719, /* server_disable_dnssec_lame_check */ 849*46d2f618SCy Schubert YYSYMBOL_server_log_identity = 720, /* server_log_identity */ 850*46d2f618SCy Schubert YYSYMBOL_server_response_ip = 721, /* server_response_ip */ 851*46d2f618SCy Schubert YYSYMBOL_server_response_ip_data = 722, /* server_response_ip_data */ 852*46d2f618SCy Schubert YYSYMBOL_dnscstart = 723, /* dnscstart */ 853*46d2f618SCy Schubert YYSYMBOL_contents_dnsc = 724, /* contents_dnsc */ 854*46d2f618SCy Schubert YYSYMBOL_content_dnsc = 725, /* content_dnsc */ 855*46d2f618SCy Schubert YYSYMBOL_dnsc_dnscrypt_enable = 726, /* dnsc_dnscrypt_enable */ 856*46d2f618SCy Schubert YYSYMBOL_dnsc_dnscrypt_port = 727, /* dnsc_dnscrypt_port */ 857*46d2f618SCy Schubert YYSYMBOL_dnsc_dnscrypt_provider = 728, /* dnsc_dnscrypt_provider */ 858*46d2f618SCy Schubert YYSYMBOL_dnsc_dnscrypt_provider_cert = 729, /* dnsc_dnscrypt_provider_cert */ 859*46d2f618SCy Schubert YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 730, /* dnsc_dnscrypt_provider_cert_rotated */ 860*46d2f618SCy Schubert YYSYMBOL_dnsc_dnscrypt_secret_key = 731, /* dnsc_dnscrypt_secret_key */ 861*46d2f618SCy Schubert YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 732, /* dnsc_dnscrypt_shared_secret_cache_size */ 862*46d2f618SCy Schubert YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 733, /* dnsc_dnscrypt_shared_secret_cache_slabs */ 863*46d2f618SCy Schubert YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 734, /* dnsc_dnscrypt_nonce_cache_size */ 864*46d2f618SCy Schubert YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 735, /* dnsc_dnscrypt_nonce_cache_slabs */ 865*46d2f618SCy Schubert YYSYMBOL_cachedbstart = 736, /* cachedbstart */ 866*46d2f618SCy Schubert YYSYMBOL_contents_cachedb = 737, /* contents_cachedb */ 867*46d2f618SCy Schubert YYSYMBOL_content_cachedb = 738, /* content_cachedb */ 868*46d2f618SCy Schubert YYSYMBOL_cachedb_backend_name = 739, /* cachedb_backend_name */ 869*46d2f618SCy Schubert YYSYMBOL_cachedb_secret_seed = 740, /* cachedb_secret_seed */ 870*46d2f618SCy Schubert YYSYMBOL_cachedb_no_store = 741, /* cachedb_no_store */ 871*46d2f618SCy Schubert YYSYMBOL_cachedb_check_when_serve_expired = 742, /* cachedb_check_when_serve_expired */ 872*46d2f618SCy Schubert YYSYMBOL_redis_server_host = 743, /* redis_server_host */ 873*46d2f618SCy Schubert YYSYMBOL_redis_server_port = 744, /* redis_server_port */ 874*46d2f618SCy Schubert YYSYMBOL_redis_server_path = 745, /* redis_server_path */ 875*46d2f618SCy Schubert YYSYMBOL_redis_server_password = 746, /* redis_server_password */ 876*46d2f618SCy Schubert YYSYMBOL_redis_timeout = 747, /* redis_timeout */ 877*46d2f618SCy Schubert YYSYMBOL_redis_command_timeout = 748, /* redis_command_timeout */ 878*46d2f618SCy Schubert YYSYMBOL_redis_connect_timeout = 749, /* redis_connect_timeout */ 879*46d2f618SCy Schubert YYSYMBOL_redis_expire_records = 750, /* redis_expire_records */ 880*46d2f618SCy Schubert YYSYMBOL_redis_logical_db = 751, /* redis_logical_db */ 881*46d2f618SCy Schubert YYSYMBOL_server_tcp_connection_limit = 752, /* server_tcp_connection_limit */ 882*46d2f618SCy Schubert YYSYMBOL_server_answer_cookie = 753, /* server_answer_cookie */ 883*46d2f618SCy Schubert YYSYMBOL_server_cookie_secret = 754, /* server_cookie_secret */ 884*46d2f618SCy Schubert YYSYMBOL_server_cookie_secret_file = 755, /* server_cookie_secret_file */ 885*46d2f618SCy Schubert YYSYMBOL_server_iter_scrub_ns = 756, /* server_iter_scrub_ns */ 886*46d2f618SCy Schubert YYSYMBOL_server_iter_scrub_cname = 757, /* server_iter_scrub_cname */ 887*46d2f618SCy Schubert YYSYMBOL_server_max_global_quota = 758, /* server_max_global_quota */ 888*46d2f618SCy Schubert YYSYMBOL_ipsetstart = 759, /* ipsetstart */ 889*46d2f618SCy Schubert YYSYMBOL_contents_ipset = 760, /* contents_ipset */ 890*46d2f618SCy Schubert YYSYMBOL_content_ipset = 761, /* content_ipset */ 891*46d2f618SCy Schubert YYSYMBOL_ipset_name_v4 = 762, /* ipset_name_v4 */ 892*46d2f618SCy Schubert YYSYMBOL_ipset_name_v6 = 763 /* ipset_name_v6 */ 893b7c0c8c1SCy Schubert }; 894b7c0c8c1SCy Schubert typedef enum yysymbol_kind_t yysymbol_kind_t; 895b7c0c8c1SCy Schubert 896b7c0c8c1SCy Schubert 897b7c0c8c1SCy Schubert 898b7c0c8c1SCy Schubert 899b7c0c8c1SCy Schubert #ifdef short 900b7c0c8c1SCy Schubert # undef short 901b7c0c8c1SCy Schubert #endif 902b7c0c8c1SCy Schubert 903b7c0c8c1SCy Schubert /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure 904b7c0c8c1SCy Schubert <limits.h> and (if available) <stdint.h> are included 905b7c0c8c1SCy Schubert so that the code can choose integer types of a good width. */ 906b7c0c8c1SCy Schubert 907b7c0c8c1SCy Schubert #ifndef __PTRDIFF_MAX__ 908b7c0c8c1SCy Schubert # include <limits.h> /* INFRINGES ON USER NAME SPACE */ 909b7c0c8c1SCy Schubert # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ 910b7c0c8c1SCy Schubert # include <stdint.h> /* INFRINGES ON USER NAME SPACE */ 911b7c0c8c1SCy Schubert # define YY_STDINT_H 912b7c0c8c1SCy Schubert # endif 913b7c0c8c1SCy Schubert #endif 914b7c0c8c1SCy Schubert 915b7c0c8c1SCy Schubert /* Narrow types that promote to a signed type and that can represent a 916b7c0c8c1SCy Schubert signed or unsigned integer of at least N bits. In tables they can 917b7c0c8c1SCy Schubert save space and decrease cache pressure. Promoting to a signed type 918b7c0c8c1SCy Schubert helps avoid bugs in integer arithmetic. */ 919b7c0c8c1SCy Schubert 920b7c0c8c1SCy Schubert #ifdef __INT_LEAST8_MAX__ 921b7c0c8c1SCy Schubert typedef __INT_LEAST8_TYPE__ yytype_int8; 922b7c0c8c1SCy Schubert #elif defined YY_STDINT_H 923b7c0c8c1SCy Schubert typedef int_least8_t yytype_int8; 924b7c0c8c1SCy Schubert #else 925b7c0c8c1SCy Schubert typedef signed char yytype_int8; 926b7c0c8c1SCy Schubert #endif 927b7c0c8c1SCy Schubert 928b7c0c8c1SCy Schubert #ifdef __INT_LEAST16_MAX__ 929b7c0c8c1SCy Schubert typedef __INT_LEAST16_TYPE__ yytype_int16; 930b7c0c8c1SCy Schubert #elif defined YY_STDINT_H 931b7c0c8c1SCy Schubert typedef int_least16_t yytype_int16; 932b7c0c8c1SCy Schubert #else 933b7c0c8c1SCy Schubert typedef short yytype_int16; 934b7c0c8c1SCy Schubert #endif 935b7c0c8c1SCy Schubert 936b7c0c8c1SCy Schubert /* Work around bug in HP-UX 11.23, which defines these macros 937b7c0c8c1SCy Schubert incorrectly for preprocessor constants. This workaround can likely 938b7c0c8c1SCy Schubert be removed in 2023, as HPE has promised support for HP-UX 11.23 939b7c0c8c1SCy Schubert (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of 940b7c0c8c1SCy Schubert <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */ 941b7c0c8c1SCy Schubert #ifdef __hpux 942b7c0c8c1SCy Schubert # undef UINT_LEAST8_MAX 943b7c0c8c1SCy Schubert # undef UINT_LEAST16_MAX 944b7c0c8c1SCy Schubert # define UINT_LEAST8_MAX 255 945b7c0c8c1SCy Schubert # define UINT_LEAST16_MAX 65535 946b7c0c8c1SCy Schubert #endif 947b7c0c8c1SCy Schubert 948b7c0c8c1SCy Schubert #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ 949b7c0c8c1SCy Schubert typedef __UINT_LEAST8_TYPE__ yytype_uint8; 950b7c0c8c1SCy Schubert #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ 951b7c0c8c1SCy Schubert && UINT_LEAST8_MAX <= INT_MAX) 952b7c0c8c1SCy Schubert typedef uint_least8_t yytype_uint8; 953b7c0c8c1SCy Schubert #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX 954b7c0c8c1SCy Schubert typedef unsigned char yytype_uint8; 955b7c0c8c1SCy Schubert #else 956b7c0c8c1SCy Schubert typedef short yytype_uint8; 957b7c0c8c1SCy Schubert #endif 958b7c0c8c1SCy Schubert 959b7c0c8c1SCy Schubert #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ 960b7c0c8c1SCy Schubert typedef __UINT_LEAST16_TYPE__ yytype_uint16; 961b7c0c8c1SCy Schubert #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ 962b7c0c8c1SCy Schubert && UINT_LEAST16_MAX <= INT_MAX) 963b7c0c8c1SCy Schubert typedef uint_least16_t yytype_uint16; 964b7c0c8c1SCy Schubert #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX 965b7c0c8c1SCy Schubert typedef unsigned short yytype_uint16; 966b7c0c8c1SCy Schubert #else 967b7c0c8c1SCy Schubert typedef int yytype_uint16; 968b7c0c8c1SCy Schubert #endif 969b7c0c8c1SCy Schubert 970b7c0c8c1SCy Schubert #ifndef YYPTRDIFF_T 971b7c0c8c1SCy Schubert # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ 972b7c0c8c1SCy Schubert # define YYPTRDIFF_T __PTRDIFF_TYPE__ 973b7c0c8c1SCy Schubert # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ 974b7c0c8c1SCy Schubert # elif defined PTRDIFF_MAX 975b7c0c8c1SCy Schubert # ifndef ptrdiff_t 976b7c0c8c1SCy Schubert # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 977b7c0c8c1SCy Schubert # endif 978b7c0c8c1SCy Schubert # define YYPTRDIFF_T ptrdiff_t 979b7c0c8c1SCy Schubert # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX 980b7c0c8c1SCy Schubert # else 981b7c0c8c1SCy Schubert # define YYPTRDIFF_T long 982b7c0c8c1SCy Schubert # define YYPTRDIFF_MAXIMUM LONG_MAX 983b7c0c8c1SCy Schubert # endif 984b7c0c8c1SCy Schubert #endif 985b7c0c8c1SCy Schubert 986b7c0c8c1SCy Schubert #ifndef YYSIZE_T 987b7c0c8c1SCy Schubert # ifdef __SIZE_TYPE__ 988b7c0c8c1SCy Schubert # define YYSIZE_T __SIZE_TYPE__ 989b7c0c8c1SCy Schubert # elif defined size_t 990b7c0c8c1SCy Schubert # define YYSIZE_T size_t 991b7c0c8c1SCy Schubert # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ 992b7c0c8c1SCy Schubert # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 993b7c0c8c1SCy Schubert # define YYSIZE_T size_t 994b7c0c8c1SCy Schubert # else 995b7c0c8c1SCy Schubert # define YYSIZE_T unsigned 996b7c0c8c1SCy Schubert # endif 997b7c0c8c1SCy Schubert #endif 998b7c0c8c1SCy Schubert 999b7c0c8c1SCy Schubert #define YYSIZE_MAXIMUM \ 1000b7c0c8c1SCy Schubert YY_CAST (YYPTRDIFF_T, \ 1001b7c0c8c1SCy Schubert (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ 1002b7c0c8c1SCy Schubert ? YYPTRDIFF_MAXIMUM \ 1003b7c0c8c1SCy Schubert : YY_CAST (YYSIZE_T, -1))) 1004b7c0c8c1SCy Schubert 1005b7c0c8c1SCy Schubert #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) 1006b7c0c8c1SCy Schubert 1007b7c0c8c1SCy Schubert 1008b7c0c8c1SCy Schubert /* Stored state numbers (used for stacks). */ 1009b7c0c8c1SCy Schubert typedef yytype_int16 yy_state_t; 1010b7c0c8c1SCy Schubert 1011b7c0c8c1SCy Schubert /* State numbers in computations. */ 1012b7c0c8c1SCy Schubert typedef int yy_state_fast_t; 1013b7c0c8c1SCy Schubert 1014b7c0c8c1SCy Schubert #ifndef YY_ 1015b7c0c8c1SCy Schubert # if defined YYENABLE_NLS && YYENABLE_NLS 1016b7c0c8c1SCy Schubert # if ENABLE_NLS 1017b7c0c8c1SCy Schubert # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 1018b7c0c8c1SCy Schubert # define YY_(Msgid) dgettext ("bison-runtime", Msgid) 1019b7c0c8c1SCy Schubert # endif 1020b7c0c8c1SCy Schubert # endif 1021b7c0c8c1SCy Schubert # ifndef YY_ 1022b7c0c8c1SCy Schubert # define YY_(Msgid) Msgid 1023b7c0c8c1SCy Schubert # endif 1024b7c0c8c1SCy Schubert #endif 1025b7c0c8c1SCy Schubert 1026b7c0c8c1SCy Schubert 1027b7c0c8c1SCy Schubert #ifndef YY_ATTRIBUTE_PURE 1028b7c0c8c1SCy Schubert # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) 1029b7c0c8c1SCy Schubert # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) 1030b7c0c8c1SCy Schubert # else 1031b7c0c8c1SCy Schubert # define YY_ATTRIBUTE_PURE 1032b7c0c8c1SCy Schubert # endif 1033b7c0c8c1SCy Schubert #endif 1034b7c0c8c1SCy Schubert 1035b7c0c8c1SCy Schubert #ifndef YY_ATTRIBUTE_UNUSED 1036b7c0c8c1SCy Schubert # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) 1037b7c0c8c1SCy Schubert # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) 1038b7c0c8c1SCy Schubert # else 1039b7c0c8c1SCy Schubert # define YY_ATTRIBUTE_UNUSED 1040b7c0c8c1SCy Schubert # endif 1041b7c0c8c1SCy Schubert #endif 1042b7c0c8c1SCy Schubert 1043b7c0c8c1SCy Schubert /* Suppress unused-variable warnings by "using" E. */ 1044b7c0c8c1SCy Schubert #if ! defined lint || defined __GNUC__ 1045b7c0c8c1SCy Schubert # define YY_USE(E) ((void) (E)) 1046b7c0c8c1SCy Schubert #else 1047b7c0c8c1SCy Schubert # define YY_USE(E) /* empty */ 1048b7c0c8c1SCy Schubert #endif 1049b7c0c8c1SCy Schubert 1050*46d2f618SCy Schubert #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 1051b7c0c8c1SCy Schubert /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 1052b7c0c8c1SCy Schubert # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 1053b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic push") \ 1054b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ 1055b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 1056b7c0c8c1SCy Schubert # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 1057b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic pop") 1058b7c0c8c1SCy Schubert #else 1059b7c0c8c1SCy Schubert # define YY_INITIAL_VALUE(Value) Value 1060b7c0c8c1SCy Schubert #endif 1061b7c0c8c1SCy Schubert #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1062b7c0c8c1SCy Schubert # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1063b7c0c8c1SCy Schubert # define YY_IGNORE_MAYBE_UNINITIALIZED_END 1064b7c0c8c1SCy Schubert #endif 1065b7c0c8c1SCy Schubert #ifndef YY_INITIAL_VALUE 1066b7c0c8c1SCy Schubert # define YY_INITIAL_VALUE(Value) /* Nothing. */ 1067b7c0c8c1SCy Schubert #endif 1068b7c0c8c1SCy Schubert 1069b7c0c8c1SCy Schubert #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ 1070b7c0c8c1SCy Schubert # define YY_IGNORE_USELESS_CAST_BEGIN \ 1071b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic push") \ 1072b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") 1073b7c0c8c1SCy Schubert # define YY_IGNORE_USELESS_CAST_END \ 1074b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic pop") 1075b7c0c8c1SCy Schubert #endif 1076b7c0c8c1SCy Schubert #ifndef YY_IGNORE_USELESS_CAST_BEGIN 1077b7c0c8c1SCy Schubert # define YY_IGNORE_USELESS_CAST_BEGIN 1078b7c0c8c1SCy Schubert # define YY_IGNORE_USELESS_CAST_END 1079b7c0c8c1SCy Schubert #endif 1080b7c0c8c1SCy Schubert 1081b7c0c8c1SCy Schubert 1082b7c0c8c1SCy Schubert #define YY_ASSERT(E) ((void) (0 && (E))) 1083b7c0c8c1SCy Schubert 1084b7c0c8c1SCy Schubert #if !defined yyoverflow 1085b7c0c8c1SCy Schubert 1086b7c0c8c1SCy Schubert /* The parser invokes alloca or malloc; define the necessary symbols. */ 1087b7c0c8c1SCy Schubert 1088b7c0c8c1SCy Schubert # ifdef YYSTACK_USE_ALLOCA 1089b7c0c8c1SCy Schubert # if YYSTACK_USE_ALLOCA 1090b7c0c8c1SCy Schubert # ifdef __GNUC__ 1091b7c0c8c1SCy Schubert # define YYSTACK_ALLOC __builtin_alloca 1092b7c0c8c1SCy Schubert # elif defined __BUILTIN_VA_ARG_INCR 1093b7c0c8c1SCy Schubert # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 1094b7c0c8c1SCy Schubert # elif defined _AIX 1095b7c0c8c1SCy Schubert # define YYSTACK_ALLOC __alloca 1096b7c0c8c1SCy Schubert # elif defined _MSC_VER 1097b7c0c8c1SCy Schubert # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 1098b7c0c8c1SCy Schubert # define alloca _alloca 1099b7c0c8c1SCy Schubert # else 1100b7c0c8c1SCy Schubert # define YYSTACK_ALLOC alloca 1101b7c0c8c1SCy Schubert # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 1102b7c0c8c1SCy Schubert # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 1103b7c0c8c1SCy Schubert /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 1104b7c0c8c1SCy Schubert # ifndef EXIT_SUCCESS 1105b7c0c8c1SCy Schubert # define EXIT_SUCCESS 0 1106b7c0c8c1SCy Schubert # endif 1107b7c0c8c1SCy Schubert # endif 1108b7c0c8c1SCy Schubert # endif 1109b7c0c8c1SCy Schubert # endif 1110b7c0c8c1SCy Schubert # endif 1111b7c0c8c1SCy Schubert 1112b7c0c8c1SCy Schubert # ifdef YYSTACK_ALLOC 1113b7c0c8c1SCy Schubert /* Pacify GCC's 'empty if-body' warning. */ 1114b7c0c8c1SCy Schubert # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 1115b7c0c8c1SCy Schubert # ifndef YYSTACK_ALLOC_MAXIMUM 1116b7c0c8c1SCy Schubert /* The OS might guarantee only one guard page at the bottom of the stack, 1117b7c0c8c1SCy Schubert and a page size can be as small as 4096 bytes. So we cannot safely 1118b7c0c8c1SCy Schubert invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 1119b7c0c8c1SCy Schubert to allow for a few compiler-allocated temporary stack slots. */ 1120b7c0c8c1SCy Schubert # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 1121b7c0c8c1SCy Schubert # endif 1122b7c0c8c1SCy Schubert # else 1123b7c0c8c1SCy Schubert # define YYSTACK_ALLOC YYMALLOC 1124b7c0c8c1SCy Schubert # define YYSTACK_FREE YYFREE 1125b7c0c8c1SCy Schubert # ifndef YYSTACK_ALLOC_MAXIMUM 1126b7c0c8c1SCy Schubert # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 1127b7c0c8c1SCy Schubert # endif 1128b7c0c8c1SCy Schubert # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 1129b7c0c8c1SCy Schubert && ! ((defined YYMALLOC || defined malloc) \ 1130b7c0c8c1SCy Schubert && (defined YYFREE || defined free))) 1131b7c0c8c1SCy Schubert # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 1132b7c0c8c1SCy Schubert # ifndef EXIT_SUCCESS 1133b7c0c8c1SCy Schubert # define EXIT_SUCCESS 0 1134b7c0c8c1SCy Schubert # endif 1135b7c0c8c1SCy Schubert # endif 1136b7c0c8c1SCy Schubert # ifndef YYMALLOC 1137b7c0c8c1SCy Schubert # define YYMALLOC malloc 1138b7c0c8c1SCy Schubert # if ! defined malloc && ! defined EXIT_SUCCESS 1139b7c0c8c1SCy Schubert void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 1140b7c0c8c1SCy Schubert # endif 1141b7c0c8c1SCy Schubert # endif 1142b7c0c8c1SCy Schubert # ifndef YYFREE 1143b7c0c8c1SCy Schubert # define YYFREE free 1144b7c0c8c1SCy Schubert # if ! defined free && ! defined EXIT_SUCCESS 1145b7c0c8c1SCy Schubert void free (void *); /* INFRINGES ON USER NAME SPACE */ 1146b7c0c8c1SCy Schubert # endif 1147b7c0c8c1SCy Schubert # endif 1148b7c0c8c1SCy Schubert # endif 1149b7c0c8c1SCy Schubert #endif /* !defined yyoverflow */ 1150b7c0c8c1SCy Schubert 1151b7c0c8c1SCy Schubert #if (! defined yyoverflow \ 1152b7c0c8c1SCy Schubert && (! defined __cplusplus \ 1153b7c0c8c1SCy Schubert || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 1154b7c0c8c1SCy Schubert 1155b7c0c8c1SCy Schubert /* A type that is properly aligned for any stack member. */ 1156b7c0c8c1SCy Schubert union yyalloc 1157b7c0c8c1SCy Schubert { 1158b7c0c8c1SCy Schubert yy_state_t yyss_alloc; 1159b7c0c8c1SCy Schubert YYSTYPE yyvs_alloc; 1160b7c0c8c1SCy Schubert }; 1161b7c0c8c1SCy Schubert 1162b7c0c8c1SCy Schubert /* The size of the maximum gap between one aligned stack and the next. */ 1163b7c0c8c1SCy Schubert # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) 1164b7c0c8c1SCy Schubert 1165b7c0c8c1SCy Schubert /* The size of an array large to enough to hold all stacks, each with 1166b7c0c8c1SCy Schubert N elements. */ 1167b7c0c8c1SCy Schubert # define YYSTACK_BYTES(N) \ 1168b7c0c8c1SCy Schubert ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ 1169b7c0c8c1SCy Schubert + YYSTACK_GAP_MAXIMUM) 1170b7c0c8c1SCy Schubert 1171b7c0c8c1SCy Schubert # define YYCOPY_NEEDED 1 1172b7c0c8c1SCy Schubert 1173b7c0c8c1SCy Schubert /* Relocate STACK from its old location to the new one. The 1174b7c0c8c1SCy Schubert local variables YYSIZE and YYSTACKSIZE give the old and new number of 1175b7c0c8c1SCy Schubert elements in the stack, and YYPTR gives the new location of the 1176b7c0c8c1SCy Schubert stack. Advance YYPTR to a properly aligned location for the next 1177b7c0c8c1SCy Schubert stack. */ 1178b7c0c8c1SCy Schubert # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 1179b7c0c8c1SCy Schubert do \ 1180b7c0c8c1SCy Schubert { \ 1181b7c0c8c1SCy Schubert YYPTRDIFF_T yynewbytes; \ 1182b7c0c8c1SCy Schubert YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 1183b7c0c8c1SCy Schubert Stack = &yyptr->Stack_alloc; \ 1184b7c0c8c1SCy Schubert yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ 1185b7c0c8c1SCy Schubert yyptr += yynewbytes / YYSIZEOF (*yyptr); \ 1186b7c0c8c1SCy Schubert } \ 1187b7c0c8c1SCy Schubert while (0) 1188b7c0c8c1SCy Schubert 1189b7c0c8c1SCy Schubert #endif 1190b7c0c8c1SCy Schubert 1191b7c0c8c1SCy Schubert #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 1192b7c0c8c1SCy Schubert /* Copy COUNT objects from SRC to DST. The source and destination do 1193b7c0c8c1SCy Schubert not overlap. */ 1194b7c0c8c1SCy Schubert # ifndef YYCOPY 1195b7c0c8c1SCy Schubert # if defined __GNUC__ && 1 < __GNUC__ 1196b7c0c8c1SCy Schubert # define YYCOPY(Dst, Src, Count) \ 1197b7c0c8c1SCy Schubert __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) 1198b7c0c8c1SCy Schubert # else 1199b7c0c8c1SCy Schubert # define YYCOPY(Dst, Src, Count) \ 1200b7c0c8c1SCy Schubert do \ 1201b7c0c8c1SCy Schubert { \ 1202b7c0c8c1SCy Schubert YYPTRDIFF_T yyi; \ 1203b7c0c8c1SCy Schubert for (yyi = 0; yyi < (Count); yyi++) \ 1204b7c0c8c1SCy Schubert (Dst)[yyi] = (Src)[yyi]; \ 1205b7c0c8c1SCy Schubert } \ 1206b7c0c8c1SCy Schubert while (0) 1207b7c0c8c1SCy Schubert # endif 1208b7c0c8c1SCy Schubert # endif 1209b7c0c8c1SCy Schubert #endif /* !YYCOPY_NEEDED */ 1210b7c0c8c1SCy Schubert 1211b7c0c8c1SCy Schubert /* YYFINAL -- State number of the termination state. */ 1212b7c0c8c1SCy Schubert #define YYFINAL 2 1213b7c0c8c1SCy Schubert /* YYLAST -- Last index in YYTABLE. */ 1214*46d2f618SCy Schubert #define YYLAST 786 1215b7c0c8c1SCy Schubert 1216b7c0c8c1SCy Schubert /* YYNTOKENS -- Number of terminals. */ 1217*46d2f618SCy Schubert #define YYNTOKENS 368 1218b7c0c8c1SCy Schubert /* YYNNTS -- Number of nonterminals. */ 1219*46d2f618SCy Schubert #define YYNNTS 396 1220b7c0c8c1SCy Schubert /* YYNRULES -- Number of rules. */ 1221*46d2f618SCy Schubert #define YYNRULES 766 1222b7c0c8c1SCy Schubert /* YYNSTATES -- Number of states. */ 1223*46d2f618SCy Schubert #define YYNSTATES 1147 1224b7c0c8c1SCy Schubert 1225b7c0c8c1SCy Schubert /* YYMAXUTOK -- Last valid token kind. */ 1226*46d2f618SCy Schubert #define YYMAXUTOK 622 1227b7c0c8c1SCy Schubert 1228b7c0c8c1SCy Schubert 1229b7c0c8c1SCy Schubert /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM 1230b7c0c8c1SCy Schubert as returned by yylex, with out-of-bounds checking. */ 1231b7c0c8c1SCy Schubert #define YYTRANSLATE(YYX) \ 1232b7c0c8c1SCy Schubert (0 <= (YYX) && (YYX) <= YYMAXUTOK \ 1233b7c0c8c1SCy Schubert ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ 1234b7c0c8c1SCy Schubert : YYSYMBOL_YYUNDEF) 1235b7c0c8c1SCy Schubert 1236b7c0c8c1SCy Schubert /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 1237b7c0c8c1SCy Schubert as returned by yylex. */ 1238b7c0c8c1SCy Schubert static const yytype_int16 yytranslate[] = 1239b7c0c8c1SCy Schubert { 1240b7c0c8c1SCy Schubert 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1241b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1242b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1243b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1244b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1245b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1246b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1247b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1248b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1249b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1250b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1251b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1252b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1253b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1254b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1255b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1256b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1257b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1258b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1259b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1260b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1261b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1262b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1263b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1264b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1265b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 1266b7c0c8c1SCy Schubert 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1267b7c0c8c1SCy Schubert 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1268b7c0c8c1SCy Schubert 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 1269b7c0c8c1SCy Schubert 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 1270b7c0c8c1SCy Schubert 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 1271b7c0c8c1SCy Schubert 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1272b7c0c8c1SCy Schubert 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 1273b7c0c8c1SCy Schubert 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 1274b7c0c8c1SCy Schubert 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 1275b7c0c8c1SCy Schubert 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 1276b7c0c8c1SCy Schubert 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 1277b7c0c8c1SCy Schubert 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 1278b7c0c8c1SCy Schubert 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 1279b7c0c8c1SCy Schubert 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 1280b7c0c8c1SCy Schubert 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 1281b7c0c8c1SCy Schubert 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 1282b7c0c8c1SCy Schubert 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 1283b7c0c8c1SCy Schubert 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 1284b7c0c8c1SCy Schubert 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 1285b7c0c8c1SCy Schubert 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 1286b7c0c8c1SCy Schubert 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 1287b7c0c8c1SCy Schubert 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 1288b7c0c8c1SCy Schubert 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 1289b7c0c8c1SCy Schubert 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 1290b7c0c8c1SCy Schubert 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 1291b7c0c8c1SCy Schubert 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 1292b7c0c8c1SCy Schubert 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 1293b7c0c8c1SCy Schubert 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 1294b7c0c8c1SCy Schubert 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 1295b7c0c8c1SCy Schubert 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 1296b7c0c8c1SCy Schubert 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 1297b7c0c8c1SCy Schubert 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 1298b7c0c8c1SCy Schubert 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 1299b7c0c8c1SCy Schubert 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 1300335c7cdaSCy Schubert 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 1301*46d2f618SCy Schubert 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 1302*46d2f618SCy Schubert 365, 366, 367 1303b7c0c8c1SCy Schubert }; 1304b7c0c8c1SCy Schubert 1305b7c0c8c1SCy Schubert #if YYDEBUG 1306b7c0c8c1SCy Schubert /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 1307b7c0c8c1SCy Schubert static const yytype_int16 yyrline[] = 1308b7c0c8c1SCy Schubert { 1309*46d2f618SCy Schubert 0, 214, 214, 214, 215, 215, 216, 216, 217, 217, 1310*46d2f618SCy Schubert 217, 218, 218, 219, 219, 220, 220, 221, 223, 230, 1311*46d2f618SCy Schubert 236, 237, 238, 238, 238, 239, 239, 240, 240, 240, 1312*46d2f618SCy Schubert 241, 241, 241, 242, 242, 242, 243, 243, 244, 245, 1313*46d2f618SCy Schubert 245, 245, 246, 246, 246, 247, 247, 248, 248, 249, 1314*46d2f618SCy Schubert 249, 250, 250, 251, 251, 252, 252, 253, 253, 254, 1315*46d2f618SCy Schubert 254, 255, 255, 255, 256, 256, 257, 257, 257, 258, 1316*46d2f618SCy Schubert 258, 258, 259, 259, 260, 260, 261, 261, 262, 262, 1317*46d2f618SCy Schubert 263, 263, 263, 264, 264, 265, 265, 266, 266, 266, 1318*46d2f618SCy Schubert 267, 267, 268, 268, 269, 269, 270, 270, 270, 271, 1319*46d2f618SCy Schubert 271, 272, 272, 273, 273, 274, 274, 275, 275, 276, 1320*46d2f618SCy Schubert 276, 277, 277, 278, 278, 279, 279, 279, 280, 280, 1321*46d2f618SCy Schubert 280, 281, 281, 281, 282, 282, 282, 282, 283, 284, 1322*46d2f618SCy Schubert 284, 284, 285, 285, 285, 286, 286, 287, 287, 288, 1323*46d2f618SCy Schubert 288, 288, 289, 289, 289, 290, 290, 291, 291, 291, 1324*46d2f618SCy Schubert 292, 293, 293, 293, 294, 294, 294, 295, 295, 296, 1325*46d2f618SCy Schubert 296, 297, 297, 298, 299, 299, 300, 300, 301, 301, 1326*46d2f618SCy Schubert 302, 302, 303, 303, 304, 304, 305, 305, 306, 306, 1327*46d2f618SCy Schubert 307, 307, 308, 308, 309, 310, 310, 311, 311, 311, 1328*46d2f618SCy Schubert 312, 312, 313, 313, 314, 314, 315, 315, 315, 316, 1329*46d2f618SCy Schubert 316, 317, 318, 318, 319, 319, 320, 321, 321, 322, 1330*46d2f618SCy Schubert 322, 323, 323, 323, 324, 324, 325, 325, 325, 326, 1331*46d2f618SCy Schubert 326, 326, 327, 327, 328, 329, 329, 330, 330, 331, 1332*46d2f618SCy Schubert 331, 332, 332, 333, 333, 333, 334, 334, 334, 335, 1333*46d2f618SCy Schubert 335, 335, 336, 336, 337, 337, 337, 338, 338, 339, 1334*46d2f618SCy Schubert 339, 340, 340, 341, 341, 341, 342, 342, 343, 343, 1335*46d2f618SCy Schubert 344, 344, 345, 345, 346, 346, 347, 347, 348, 348, 1336*46d2f618SCy Schubert 349, 349, 350, 350, 351, 351, 351, 352, 352, 354, 1337*46d2f618SCy Schubert 362, 376, 377, 378, 378, 378, 378, 378, 379, 379, 1338*46d2f618SCy Schubert 379, 381, 389, 403, 404, 405, 405, 405, 405, 406, 1339*46d2f618SCy Schubert 406, 406, 408, 416, 430, 431, 432, 432, 432, 432, 1340*46d2f618SCy Schubert 433, 433, 433, 435, 456, 457, 458, 458, 458, 458, 1341*46d2f618SCy Schubert 459, 459, 459, 460, 460, 460, 463, 482, 499, 507, 1342*46d2f618SCy Schubert 517, 524, 534, 553, 554, 555, 555, 555, 555, 555, 1343*46d2f618SCy Schubert 556, 556, 556, 557, 557, 557, 557, 559, 568, 577, 1344*46d2f618SCy Schubert 588, 597, 606, 615, 624, 635, 644, 656, 670, 685, 1345*46d2f618SCy Schubert 696, 713, 730, 747, 764, 779, 794, 807, 822, 831, 1346*46d2f618SCy Schubert 840, 849, 858, 867, 876, 883, 892, 901, 910, 919, 1347*46d2f618SCy Schubert 928, 937, 946, 955, 964, 977, 988, 999, 1010, 1019, 1348*46d2f618SCy Schubert 1032, 1045, 1054, 1063, 1072, 1079, 1086, 1095, 1102, 1111, 1349*46d2f618SCy Schubert 1119, 1126, 1133, 1141, 1150, 1158, 1174, 1182, 1190, 1198, 1350*46d2f618SCy Schubert 1206, 1214, 1227, 1234, 1243, 1252, 1266, 1275, 1284, 1293, 1351*46d2f618SCy Schubert 1302, 1311, 1320, 1329, 1338, 1345, 1352, 1378, 1386, 1393, 1352*46d2f618SCy Schubert 1400, 1407, 1414, 1422, 1430, 1438, 1445, 1456, 1467, 1474, 1353*46d2f618SCy Schubert 1483, 1492, 1501, 1510, 1517, 1524, 1531, 1547, 1555, 1563, 1354*46d2f618SCy Schubert 1573, 1583, 1593, 1607, 1615, 1628, 1639, 1647, 1660, 1669, 1355*46d2f618SCy Schubert 1678, 1687, 1696, 1706, 1716, 1724, 1737, 1746, 1754, 1763, 1356*46d2f618SCy Schubert 1771, 1784, 1793, 1802, 1812, 1819, 1829, 1839, 1849, 1859, 1357*46d2f618SCy Schubert 1869, 1879, 1889, 1899, 1909, 1919, 1926, 1933, 1940, 1949, 1358*46d2f618SCy Schubert 1958, 1967, 1976, 1983, 1993, 2001, 2010, 2017, 2035, 2048, 1359*46d2f618SCy Schubert 2061, 2074, 2083, 2092, 2101, 2110, 2119, 2129, 2139, 2150, 1360*46d2f618SCy Schubert 2159, 2168, 2177, 2186, 2195, 2204, 2213, 2222, 2231, 2244, 1361*46d2f618SCy Schubert 2257, 2266, 2273, 2282, 2291, 2300, 2309, 2319, 2327, 2340, 1362*46d2f618SCy Schubert 2348, 2404, 2411, 2426, 2436, 2446, 2453, 2460, 2467, 2474, 1363*46d2f618SCy Schubert 2489, 2504, 2511, 2518, 2527, 2535, 2542, 2556, 2577, 2598, 1364*46d2f618SCy Schubert 2610, 2622, 2634, 2643, 2664, 2676, 2688, 2697, 2718, 2727, 1365*46d2f618SCy Schubert 2736, 2745, 2753, 2761, 2774, 2787, 2802, 2817, 2826, 2835, 1366*46d2f618SCy Schubert 2845, 2855, 2864, 2873, 2882, 2888, 2897, 2906, 2916, 2926, 1367*46d2f618SCy Schubert 2936, 2945, 2955, 2964, 2977, 2990, 3002, 3016, 3028, 3042, 1368*46d2f618SCy Schubert 3051, 3062, 3071, 3078, 3088, 3095, 3102, 3111, 3120, 3130, 1369*46d2f618SCy Schubert 3140, 3150, 3160, 3167, 3174, 3183, 3192, 3202, 3212, 3222, 1370*46d2f618SCy Schubert 3229, 3236, 3243, 3251, 3261, 3271, 3281, 3291, 3301, 3311, 1371*46d2f618SCy Schubert 3367, 3377, 3385, 3393, 3408, 3417, 3423, 3424, 3425, 3425, 1372*46d2f618SCy Schubert 3425, 3426, 3426, 3426, 3427, 3427, 3429, 3439, 3448, 3455, 1373*46d2f618SCy Schubert 3462, 3469, 3476, 3483, 3490, 3496, 3497, 3498, 3498, 3498, 1374*46d2f618SCy Schubert 3499, 3499, 3499, 3500, 3501, 3501, 3502, 3502, 3503, 3503, 1375*46d2f618SCy Schubert 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3512, 3521, 3531, 1376*46d2f618SCy Schubert 3538, 3545, 3554, 3561, 3568, 3575, 3582, 3591, 3600, 3607, 1377*46d2f618SCy Schubert 3614, 3624, 3634, 3644, 3654, 3664, 3674, 3685, 3691, 3692, 1378*46d2f618SCy Schubert 3693, 3695, 3702, 3708, 3709, 3710, 3712, 3719, 3729, 3736, 1379*46d2f618SCy Schubert 3745, 3753, 3759, 3760, 3762, 3762, 3762, 3763, 3763, 3764, 1380*46d2f618SCy Schubert 3765, 3766, 3767, 3768, 3770, 3779, 3788, 3795, 3804, 3811, 1381*46d2f618SCy Schubert 3820, 3828, 3841, 3849, 3862, 3868, 3869, 3870, 3870, 3871, 1382*46d2f618SCy Schubert 3871, 3871, 3872, 3872, 3872, 3873, 3873, 3873, 3874, 3874, 1383*46d2f618SCy Schubert 3876, 3888, 3900, 3913, 3926, 3938, 3953, 3965, 3977, 3990, 1384*46d2f618SCy Schubert 4003, 4016, 4029, 4044, 4055, 4064, 4080, 4087, 4096, 4105, 1385*46d2f618SCy Schubert 4114, 4120, 4121, 4122, 4122, 4124, 4139 1386b7c0c8c1SCy Schubert }; 1387b7c0c8c1SCy Schubert #endif 1388b7c0c8c1SCy Schubert 1389b7c0c8c1SCy Schubert /** Accessing symbol of state STATE. */ 1390b7c0c8c1SCy Schubert #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) 1391b7c0c8c1SCy Schubert 1392b7c0c8c1SCy Schubert #if YYDEBUG || 0 1393b7c0c8c1SCy Schubert /* The user-facing name of the symbol whose (internal) number is 1394b7c0c8c1SCy Schubert YYSYMBOL. No bounds checking. */ 1395b7c0c8c1SCy Schubert static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; 1396b7c0c8c1SCy Schubert 1397b7c0c8c1SCy Schubert /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 1398b7c0c8c1SCy Schubert First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 1399b7c0c8c1SCy Schubert static const char *const yytname[] = 1400b7c0c8c1SCy Schubert { 1401b7c0c8c1SCy Schubert "\"end of file\"", "error", "\"invalid token\"", "SPACE", "LETTER", 1402b7c0c8c1SCy Schubert "NEWLINE", "COMMENT", "COLON", "ANY", "ZONESTR", "STRING_ARG", 1403b7c0c8c1SCy Schubert "VAR_FORCE_TOPLEVEL", "VAR_SERVER", "VAR_VERBOSITY", "VAR_NUM_THREADS", 1404b7c0c8c1SCy Schubert "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE", "VAR_PREFER_IP4", 1405b7c0c8c1SCy Schubert "VAR_DO_IP4", "VAR_DO_IP6", "VAR_DO_NAT64", "VAR_PREFER_IP6", 1406b7c0c8c1SCy Schubert "VAR_DO_UDP", "VAR_DO_TCP", "VAR_TCP_MSS", "VAR_OUTGOING_TCP_MSS", 1407b7c0c8c1SCy Schubert "VAR_TCP_IDLE_TIMEOUT", "VAR_EDNS_TCP_KEEPALIVE", 1408b7c0c8c1SCy Schubert "VAR_EDNS_TCP_KEEPALIVE_TIMEOUT", "VAR_SOCK_QUEUE_TIMEOUT", "VAR_CHROOT", 1409b7c0c8c1SCy Schubert "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE", 1410b7c0c8c1SCy Schubert "VAR_MSG_CACHE_SIZE", "VAR_MSG_CACHE_SLABS", 1411b7c0c8c1SCy Schubert "VAR_NUM_QUERIES_PER_THREAD", "VAR_RRSET_CACHE_SIZE", 1412b7c0c8c1SCy Schubert "VAR_RRSET_CACHE_SLABS", "VAR_OUTGOING_NUM_TCP", "VAR_INFRA_HOST_TTL", 1413b7c0c8c1SCy Schubert "VAR_INFRA_LAME_TTL", "VAR_INFRA_CACHE_SLABS", 1414b7c0c8c1SCy Schubert "VAR_INFRA_CACHE_NUMHOSTS", "VAR_INFRA_CACHE_LAME_SIZE", "VAR_NAME", 1415b7c0c8c1SCy Schubert "VAR_STUB_ZONE", "VAR_STUB_HOST", "VAR_STUB_ADDR", 1416b7c0c8c1SCy Schubert "VAR_TARGET_FETCH_POLICY", "VAR_HARDEN_SHORT_BUFSIZE", 1417b7c0c8c1SCy Schubert "VAR_HARDEN_LARGE_QUERIES", "VAR_FORWARD_ZONE", "VAR_FORWARD_HOST", 1418b7c0c8c1SCy Schubert "VAR_FORWARD_ADDR", "VAR_DO_NOT_QUERY_ADDRESS", "VAR_HIDE_IDENTITY", 1419b7c0c8c1SCy Schubert "VAR_HIDE_VERSION", "VAR_IDENTITY", "VAR_VERSION", "VAR_HARDEN_GLUE", 1420b7c0c8c1SCy Schubert "VAR_MODULE_CONF", "VAR_TRUST_ANCHOR_FILE", "VAR_TRUST_ANCHOR", 1421b7c0c8c1SCy Schubert "VAR_VAL_OVERRIDE_DATE", "VAR_BOGUS_TTL", "VAR_VAL_CLEAN_ADDITIONAL", 1422b7c0c8c1SCy Schubert "VAR_VAL_PERMISSIVE_MODE", "VAR_INCOMING_NUM_TCP", "VAR_MSG_BUFFER_SIZE", 1423b7c0c8c1SCy Schubert "VAR_KEY_CACHE_SIZE", "VAR_KEY_CACHE_SLABS", "VAR_TRUSTED_KEYS_FILE", 1424b7c0c8c1SCy Schubert "VAR_VAL_NSEC3_KEYSIZE_ITERATIONS", "VAR_USE_SYSLOG", 1425b7c0c8c1SCy Schubert "VAR_OUTGOING_INTERFACE", "VAR_ROOT_HINTS", "VAR_DO_NOT_QUERY_LOCALHOST", 1426b7c0c8c1SCy Schubert "VAR_CACHE_MAX_TTL", "VAR_HARDEN_DNSSEC_STRIPPED", "VAR_ACCESS_CONTROL", 1427b7c0c8c1SCy Schubert "VAR_LOCAL_ZONE", "VAR_LOCAL_DATA", "VAR_INTERFACE_AUTOMATIC", 1428b7c0c8c1SCy Schubert "VAR_STATISTICS_INTERVAL", "VAR_DO_DAEMONIZE", "VAR_USE_CAPS_FOR_ID", 1429b7c0c8c1SCy Schubert "VAR_STATISTICS_CUMULATIVE", "VAR_OUTGOING_PORT_PERMIT", 1430b7c0c8c1SCy Schubert "VAR_OUTGOING_PORT_AVOID", "VAR_DLV_ANCHOR_FILE", "VAR_DLV_ANCHOR", 1431b7c0c8c1SCy Schubert "VAR_NEG_CACHE_SIZE", "VAR_HARDEN_REFERRAL_PATH", "VAR_PRIVATE_ADDRESS", 1432b7c0c8c1SCy Schubert "VAR_PRIVATE_DOMAIN", "VAR_REMOTE_CONTROL", "VAR_CONTROL_ENABLE", 1433b7c0c8c1SCy Schubert "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE", 1434b7c0c8c1SCy Schubert "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE", 1435b7c0c8c1SCy Schubert "VAR_CONTROL_USE_CERT", "VAR_TCP_REUSE_TIMEOUT", 1436b7c0c8c1SCy Schubert "VAR_MAX_REUSE_TCP_QUERIES", "VAR_EXTENDED_STATISTICS", 1437b7c0c8c1SCy Schubert "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT", "VAR_STUB_PRIME", 1438b7c0c8c1SCy Schubert "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII", 1439b7c0c8c1SCy Schubert "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT", 1440b7c0c8c1SCy Schubert "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "VAR_VAL_MAX_RESTART", 1441b7c0c8c1SCy Schubert "VAR_CACHE_MIN_TTL", "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE", 1442b7c0c8c1SCy Schubert "VAR_KEEP_MISSING", "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", 1443b7c0c8c1SCy Schubert "VAR_SO_RCVBUF", "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH", 1444b7c0c8c1SCy Schubert "VAR_PREFETCH_KEY", "VAR_SO_SNDBUF", "VAR_SO_REUSEPORT", 1445b7c0c8c1SCy Schubert "VAR_HARDEN_BELOW_NXDOMAIN", "VAR_IGNORE_CD_FLAG", "VAR_LOG_QUERIES", 1446b7c0c8c1SCy Schubert "VAR_LOG_REPLIES", "VAR_LOG_LOCAL_ACTIONS", "VAR_TCP_UPSTREAM", 1447b7c0c8c1SCy Schubert "VAR_SSL_UPSTREAM", "VAR_TCP_AUTH_QUERY_TIMEOUT", "VAR_SSL_SERVICE_KEY", 1448b7c0c8c1SCy Schubert "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT", "VAR_FORWARD_FIRST", 1449b7c0c8c1SCy Schubert "VAR_STUB_SSL_UPSTREAM", "VAR_FORWARD_SSL_UPSTREAM", 1450b7c0c8c1SCy Schubert "VAR_TLS_CERT_BUNDLE", "VAR_STUB_TCP_UPSTREAM", 1451b7c0c8c1SCy Schubert "VAR_FORWARD_TCP_UPSTREAM", "VAR_HTTPS_PORT", "VAR_HTTP_ENDPOINT", 1452b7c0c8c1SCy Schubert "VAR_HTTP_MAX_STREAMS", "VAR_HTTP_QUERY_BUFFER_SIZE", 1453b7c0c8c1SCy Schubert "VAR_HTTP_RESPONSE_BUFFER_SIZE", "VAR_HTTP_NODELAY", 1454b7c0c8c1SCy Schubert "VAR_HTTP_NOTLS_DOWNSTREAM", "VAR_STUB_FIRST", "VAR_MINIMAL_RESPONSES", 1455b7c0c8c1SCy Schubert "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE", "VAR_DELAY_CLOSE", 1456b7c0c8c1SCy Schubert "VAR_UDP_CONNECT", "VAR_UNBLOCK_LAN_ZONES", "VAR_INSECURE_LAN_ZONES", 1457b7c0c8c1SCy Schubert "VAR_INFRA_CACHE_MIN_RTT", "VAR_INFRA_CACHE_MAX_RTT", 1458b7c0c8c1SCy Schubert "VAR_INFRA_KEEP_PROBING", "VAR_DNS64_PREFIX", "VAR_DNS64_SYNTHALL", 1459b7c0c8c1SCy Schubert "VAR_DNS64_IGNORE_AAAA", "VAR_NAT64_PREFIX", "VAR_DNSTAP", 1460b7c0c8c1SCy Schubert "VAR_DNSTAP_ENABLE", "VAR_DNSTAP_SOCKET_PATH", "VAR_DNSTAP_IP", 1461b7c0c8c1SCy Schubert "VAR_DNSTAP_TLS", "VAR_DNSTAP_TLS_SERVER_NAME", 1462b7c0c8c1SCy Schubert "VAR_DNSTAP_TLS_CERT_BUNDLE", "VAR_DNSTAP_TLS_CLIENT_KEY_FILE", 1463b7c0c8c1SCy Schubert "VAR_DNSTAP_TLS_CLIENT_CERT_FILE", "VAR_DNSTAP_SEND_IDENTITY", 1464b7c0c8c1SCy Schubert "VAR_DNSTAP_SEND_VERSION", "VAR_DNSTAP_BIDIRECTIONAL", 1465b7c0c8c1SCy Schubert "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION", 1466b7c0c8c1SCy Schubert "VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES", 1467b7c0c8c1SCy Schubert "VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES", 1468b7c0c8c1SCy Schubert "VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES", 1469b7c0c8c1SCy Schubert "VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES", 1470b7c0c8c1SCy Schubert "VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES", 147156850988SCy Schubert "VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES", "VAR_DNSTAP_SAMPLE_RATE", 147256850988SCy Schubert "VAR_RESPONSE_IP_TAG", "VAR_RESPONSE_IP", "VAR_RESPONSE_IP_DATA", 147356850988SCy Schubert "VAR_HARDEN_ALGO_DOWNGRADE", "VAR_IP_TRANSPARENT", "VAR_IP_DSCP", 147456850988SCy Schubert "VAR_DISABLE_DNSSEC_LAME_CHECK", "VAR_IP_RATELIMIT", 147556850988SCy Schubert "VAR_IP_RATELIMIT_SLABS", "VAR_IP_RATELIMIT_SIZE", "VAR_RATELIMIT", 147656850988SCy Schubert "VAR_RATELIMIT_SLABS", "VAR_RATELIMIT_SIZE", "VAR_OUTBOUND_MSG_RETRY", 147756850988SCy Schubert "VAR_MAX_SENT_COUNT", "VAR_MAX_QUERY_RESTARTS", 1478b7c0c8c1SCy Schubert "VAR_RATELIMIT_FOR_DOMAIN", "VAR_RATELIMIT_BELOW_DOMAIN", 1479b7c0c8c1SCy Schubert "VAR_IP_RATELIMIT_FACTOR", "VAR_RATELIMIT_FACTOR", 1480b7c0c8c1SCy Schubert "VAR_IP_RATELIMIT_BACKOFF", "VAR_RATELIMIT_BACKOFF", 1481b7c0c8c1SCy Schubert "VAR_SEND_CLIENT_SUBNET", "VAR_CLIENT_SUBNET_ZONE", 1482b7c0c8c1SCy Schubert "VAR_CLIENT_SUBNET_ALWAYS_FORWARD", "VAR_CLIENT_SUBNET_OPCODE", 1483b7c0c8c1SCy Schubert "VAR_MAX_CLIENT_SUBNET_IPV4", "VAR_MAX_CLIENT_SUBNET_IPV6", 1484b7c0c8c1SCy Schubert "VAR_MIN_CLIENT_SUBNET_IPV4", "VAR_MIN_CLIENT_SUBNET_IPV6", 1485b7c0c8c1SCy Schubert "VAR_MAX_ECS_TREE_SIZE_IPV4", "VAR_MAX_ECS_TREE_SIZE_IPV6", 1486b7c0c8c1SCy Schubert "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL", 1487335c7cdaSCy Schubert "VAR_PERMIT_SMALL_HOLDDOWN", "VAR_CACHE_MIN_NEGATIVE_TTL", 1488335c7cdaSCy Schubert "VAR_QNAME_MINIMISATION", "VAR_QNAME_MINIMISATION_STRICT", 1489335c7cdaSCy Schubert "VAR_IP_FREEBIND", "VAR_DEFINE_TAG", "VAR_LOCAL_ZONE_TAG", 1490335c7cdaSCy Schubert "VAR_ACCESS_CONTROL_TAG", "VAR_LOCAL_ZONE_OVERRIDE", 1491335c7cdaSCy Schubert "VAR_ACCESS_CONTROL_TAG_ACTION", "VAR_ACCESS_CONTROL_TAG_DATA", 1492335c7cdaSCy Schubert "VAR_VIEW", "VAR_ACCESS_CONTROL_VIEW", "VAR_VIEW_FIRST", 1493335c7cdaSCy Schubert "VAR_SERVE_EXPIRED", "VAR_SERVE_EXPIRED_TTL", 1494b7c0c8c1SCy Schubert "VAR_SERVE_EXPIRED_TTL_RESET", "VAR_SERVE_EXPIRED_REPLY_TTL", 1495b7c0c8c1SCy Schubert "VAR_SERVE_EXPIRED_CLIENT_TIMEOUT", "VAR_EDE_SERVE_EXPIRED", 1496b7c0c8c1SCy Schubert "VAR_SERVE_ORIGINAL_TTL", "VAR_FAKE_DSA", "VAR_FAKE_SHA1", 1497b7c0c8c1SCy Schubert "VAR_LOG_IDENTITY", "VAR_HIDE_TRUSTANCHOR", "VAR_HIDE_HTTP_USER_AGENT", 1498b7c0c8c1SCy Schubert "VAR_HTTP_USER_AGENT", "VAR_TRUST_ANCHOR_SIGNALING", 1499b7c0c8c1SCy Schubert "VAR_AGGRESSIVE_NSEC", "VAR_USE_SYSTEMD", "VAR_SHM_ENABLE", 1500b7c0c8c1SCy Schubert "VAR_SHM_KEY", "VAR_ROOT_KEY_SENTINEL", "VAR_DNSCRYPT", 1501b7c0c8c1SCy Schubert "VAR_DNSCRYPT_ENABLE", "VAR_DNSCRYPT_PORT", "VAR_DNSCRYPT_PROVIDER", 1502b7c0c8c1SCy Schubert "VAR_DNSCRYPT_SECRET_KEY", "VAR_DNSCRYPT_PROVIDER_CERT", 1503b7c0c8c1SCy Schubert "VAR_DNSCRYPT_PROVIDER_CERT_ROTATED", 1504b7c0c8c1SCy Schubert "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE", 1505b7c0c8c1SCy Schubert "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS", 1506b7c0c8c1SCy Schubert "VAR_DNSCRYPT_NONCE_CACHE_SIZE", "VAR_DNSCRYPT_NONCE_CACHE_SLABS", 1507b7c0c8c1SCy Schubert "VAR_PAD_RESPONSES", "VAR_PAD_RESPONSES_BLOCK_SIZE", "VAR_PAD_QUERIES", 1508b7c0c8c1SCy Schubert "VAR_PAD_QUERIES_BLOCK_SIZE", "VAR_IPSECMOD_ENABLED", 1509b7c0c8c1SCy Schubert "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS", "VAR_IPSECMOD_MAX_TTL", 1510b7c0c8c1SCy Schubert "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT", "VAR_CACHEDB", 1511b7c0c8c1SCy Schubert "VAR_CACHEDB_BACKEND", "VAR_CACHEDB_SECRETSEED", "VAR_CACHEDB_REDISHOST", 1512b7c0c8c1SCy Schubert "VAR_CACHEDB_REDISPORT", "VAR_CACHEDB_REDISTIMEOUT", 1513b7c0c8c1SCy Schubert "VAR_CACHEDB_REDISEXPIRERECORDS", "VAR_CACHEDB_REDISPATH", 1514b7c0c8c1SCy Schubert "VAR_CACHEDB_REDISPASSWORD", "VAR_CACHEDB_REDISLOGICALDB", 1515*46d2f618SCy Schubert "VAR_CACHEDB_REDISCOMMANDTIMEOUT", "VAR_CACHEDB_REDISCONNECTTIMEOUT", 1516b7c0c8c1SCy Schubert "VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM", "VAR_FOR_UPSTREAM", 1517b7c0c8c1SCy Schubert "VAR_AUTH_ZONE", "VAR_ZONEFILE", "VAR_MASTER", "VAR_URL", 1518b7c0c8c1SCy Schubert "VAR_FOR_DOWNSTREAM", "VAR_FALLBACK_ENABLED", "VAR_TLS_ADDITIONAL_PORT", 1519b7c0c8c1SCy Schubert "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL", "VAR_FAST_SERVER_PERMIL", 1520b7c0c8c1SCy Schubert "VAR_FAST_SERVER_NUM", "VAR_ALLOW_NOTIFY", "VAR_TLS_WIN_CERT", 1521b7c0c8c1SCy Schubert "VAR_TCP_CONNECTION_LIMIT", "VAR_ANSWER_COOKIE", "VAR_COOKIE_SECRET", 1522b7c0c8c1SCy Schubert "VAR_IP_RATELIMIT_COOKIE", "VAR_FORWARD_NO_CACHE", "VAR_STUB_NO_CACHE", 1523b7c0c8c1SCy Schubert "VAR_LOG_SERVFAIL", "VAR_DENY_ANY", "VAR_UNKNOWN_SERVER_TIME_LIMIT", 1524335c7cdaSCy Schubert "VAR_LOG_TAG_QUERYREPLY", "VAR_DISCARD_TIMEOUT", "VAR_WAIT_LIMIT", 1525335c7cdaSCy Schubert "VAR_WAIT_LIMIT_COOKIE", "VAR_WAIT_LIMIT_NETBLOCK", 1526335c7cdaSCy Schubert "VAR_WAIT_LIMIT_COOKIE_NETBLOCK", "VAR_STREAM_WAIT_SIZE", 1527335c7cdaSCy Schubert "VAR_TLS_CIPHERS", "VAR_TLS_CIPHERSUITES", "VAR_TLS_USE_SNI", 1528335c7cdaSCy Schubert "VAR_IPSET", "VAR_IPSET_NAME_V4", "VAR_IPSET_NAME_V6", 1529335c7cdaSCy Schubert "VAR_TLS_SESSION_TICKET_KEYS", "VAR_RPZ", "VAR_TAGS", 1530335c7cdaSCy Schubert "VAR_RPZ_ACTION_OVERRIDE", "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG", 1531335c7cdaSCy Schubert "VAR_RPZ_LOG_NAME", "VAR_DYNLIB", "VAR_DYNLIB_FILE", 1532335c7cdaSCy Schubert "VAR_EDNS_CLIENT_STRING", "VAR_EDNS_CLIENT_STRING_OPCODE", "VAR_NSID", 1533b7c0c8c1SCy Schubert "VAR_ZONEMD_PERMISSIVE_MODE", "VAR_ZONEMD_CHECK", 1534b7c0c8c1SCy Schubert "VAR_ZONEMD_REJECT_ABSENCE", "VAR_RPZ_SIGNAL_NXDOMAIN_RA", 1535b7c0c8c1SCy Schubert "VAR_INTERFACE_AUTOMATIC_PORTS", "VAR_EDE", "VAR_INTERFACE_ACTION", 1536b7c0c8c1SCy Schubert "VAR_INTERFACE_VIEW", "VAR_INTERFACE_TAG", "VAR_INTERFACE_TAG_ACTION", 1537*46d2f618SCy Schubert "VAR_INTERFACE_TAG_DATA", "VAR_QUIC_PORT", "VAR_QUIC_SIZE", 1538*46d2f618SCy Schubert "VAR_PROXY_PROTOCOL_PORT", "VAR_STATISTICS_INHIBIT_ZERO", 1539*46d2f618SCy Schubert "VAR_HARDEN_UNKNOWN_ADDITIONAL", "VAR_DISABLE_EDNS_DO", 1540*46d2f618SCy Schubert "VAR_CACHEDB_NO_STORE", "VAR_LOG_DESTADDR", 154156850988SCy Schubert "VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED", "VAR_COOKIE_SECRET_FILE", 1542*46d2f618SCy Schubert "VAR_ITER_SCRUB_NS", "VAR_ITER_SCRUB_CNAME", "VAR_MAX_GLOBAL_QUOTA", 1543*46d2f618SCy Schubert "VAR_HARDEN_UNVERIFIED_GLUE", "VAR_LOG_TIME_ISO", "$accept", 1544*46d2f618SCy Schubert "toplevelvars", "toplevelvar", "force_toplevel", "serverstart", 1545*46d2f618SCy Schubert "contents_server", "content_server", "stub_clause", "stubstart", 1546*46d2f618SCy Schubert "contents_stub", "content_stub", "forward_clause", "forwardstart", 1547*46d2f618SCy Schubert "contents_forward", "content_forward", "view_clause", "viewstart", 1548*46d2f618SCy Schubert "contents_view", "content_view", "authstart", "contents_auth", 1549*46d2f618SCy Schubert "content_auth", "rpz_tag", "rpz_action_override", "rpz_cname_override", 1550*46d2f618SCy Schubert "rpz_log", "rpz_log_name", "rpz_signal_nxdomain_ra", "rpzstart", 1551*46d2f618SCy Schubert "contents_rpz", "content_rpz", "server_num_threads", "server_verbosity", 1552*46d2f618SCy Schubert "server_statistics_interval", "server_statistics_cumulative", 1553*46d2f618SCy Schubert "server_extended_statistics", "server_statistics_inhibit_zero", 1554*46d2f618SCy Schubert "server_shm_enable", "server_shm_key", "server_port", 1555*46d2f618SCy Schubert "server_send_client_subnet", "server_client_subnet_zone", 1556b7c0c8c1SCy Schubert "server_client_subnet_always_forward", "server_client_subnet_opcode", 1557b7c0c8c1SCy Schubert "server_max_client_subnet_ipv4", "server_max_client_subnet_ipv6", 1558b7c0c8c1SCy Schubert "server_min_client_subnet_ipv4", "server_min_client_subnet_ipv6", 1559b7c0c8c1SCy Schubert "server_max_ecs_tree_size_ipv4", "server_max_ecs_tree_size_ipv6", 1560b7c0c8c1SCy Schubert "server_interface", "server_outgoing_interface", "server_outgoing_range", 1561b7c0c8c1SCy Schubert "server_outgoing_port_permit", "server_outgoing_port_avoid", 1562b7c0c8c1SCy Schubert "server_outgoing_num_tcp", "server_incoming_num_tcp", 1563b7c0c8c1SCy Schubert "server_interface_automatic", "server_interface_automatic_ports", 1564b7c0c8c1SCy Schubert "server_do_ip4", "server_do_ip6", "server_do_nat64", "server_do_udp", 1565b7c0c8c1SCy Schubert "server_do_tcp", "server_prefer_ip4", "server_prefer_ip6", 1566b7c0c8c1SCy Schubert "server_tcp_mss", "server_outgoing_tcp_mss", "server_tcp_idle_timeout", 1567b7c0c8c1SCy Schubert "server_max_reuse_tcp_queries", "server_tcp_reuse_timeout", 1568b7c0c8c1SCy Schubert "server_tcp_auth_query_timeout", "server_tcp_keepalive", 1569b7c0c8c1SCy Schubert "server_tcp_keepalive_timeout", "server_sock_queue_timeout", 1570b7c0c8c1SCy Schubert "server_tcp_upstream", "server_udp_upstream_without_downstream", 1571b7c0c8c1SCy Schubert "server_ssl_upstream", "server_ssl_service_key", 1572b7c0c8c1SCy Schubert "server_ssl_service_pem", "server_ssl_port", "server_tls_cert_bundle", 1573b7c0c8c1SCy Schubert "server_tls_win_cert", "server_tls_additional_port", 1574b7c0c8c1SCy Schubert "server_tls_ciphers", "server_tls_ciphersuites", 1575b7c0c8c1SCy Schubert "server_tls_session_ticket_keys", "server_tls_use_sni", 1576b7c0c8c1SCy Schubert "server_https_port", "server_http_endpoint", "server_http_max_streams", 1577b7c0c8c1SCy Schubert "server_http_query_buffer_size", "server_http_response_buffer_size", 1578b7c0c8c1SCy Schubert "server_http_nodelay", "server_http_notls_downstream", 1579*46d2f618SCy Schubert "server_quic_port", "server_quic_size", "server_use_systemd", 1580*46d2f618SCy Schubert "server_do_daemonize", "server_use_syslog", "server_log_time_ascii", 1581*46d2f618SCy Schubert "server_log_time_iso", "server_log_queries", "server_log_replies", 1582b7c0c8c1SCy Schubert "server_log_tag_queryreply", "server_log_servfail", 1583b7c0c8c1SCy Schubert "server_log_destaddr", "server_log_local_actions", "server_chroot", 1584b7c0c8c1SCy Schubert "server_username", "server_directory", "server_logfile", 1585b7c0c8c1SCy Schubert "server_pidfile", "server_root_hints", "server_dlv_anchor_file", 1586b7c0c8c1SCy Schubert "server_dlv_anchor", "server_auto_trust_anchor_file", 1587b7c0c8c1SCy Schubert "server_trust_anchor_file", "server_trusted_keys_file", 1588b7c0c8c1SCy Schubert "server_trust_anchor", "server_trust_anchor_signaling", 1589b7c0c8c1SCy Schubert "server_root_key_sentinel", "server_domain_insecure", 1590b7c0c8c1SCy Schubert "server_hide_identity", "server_hide_version", "server_hide_trustanchor", 1591b7c0c8c1SCy Schubert "server_hide_http_user_agent", "server_identity", "server_version", 1592b7c0c8c1SCy Schubert "server_http_user_agent", "server_nsid", "server_so_rcvbuf", 1593b7c0c8c1SCy Schubert "server_so_sndbuf", "server_so_reuseport", "server_ip_transparent", 1594b7c0c8c1SCy Schubert "server_ip_freebind", "server_ip_dscp", "server_stream_wait_size", 1595b7c0c8c1SCy Schubert "server_edns_buffer_size", "server_msg_buffer_size", 1596b7c0c8c1SCy Schubert "server_msg_cache_size", "server_msg_cache_slabs", 1597b7c0c8c1SCy Schubert "server_num_queries_per_thread", "server_jostle_timeout", 1598b7c0c8c1SCy Schubert "server_delay_close", "server_udp_connect", "server_unblock_lan_zones", 1599b7c0c8c1SCy Schubert "server_insecure_lan_zones", "server_rrset_cache_size", 1600b7c0c8c1SCy Schubert "server_rrset_cache_slabs", "server_infra_host_ttl", 1601b7c0c8c1SCy Schubert "server_infra_lame_ttl", "server_infra_cache_numhosts", 1602b7c0c8c1SCy Schubert "server_infra_cache_lame_size", "server_infra_cache_slabs", 1603b7c0c8c1SCy Schubert "server_infra_cache_min_rtt", "server_infra_cache_max_rtt", 1604b7c0c8c1SCy Schubert "server_infra_keep_probing", "server_target_fetch_policy", 1605b7c0c8c1SCy Schubert "server_harden_short_bufsize", "server_harden_large_queries", 1606*46d2f618SCy Schubert "server_harden_glue", "server_harden_unverified_glue", 1607*46d2f618SCy Schubert "server_harden_dnssec_stripped", "server_harden_below_nxdomain", 1608*46d2f618SCy Schubert "server_harden_referral_path", "server_harden_algo_downgrade", 1609*46d2f618SCy Schubert "server_harden_unknown_additional", "server_use_caps_for_id", 1610*46d2f618SCy Schubert "server_caps_whitelist", "server_private_address", 1611*46d2f618SCy Schubert "server_private_domain", "server_prefetch", "server_prefetch_key", 1612*46d2f618SCy Schubert "server_deny_any", "server_unwanted_reply_threshold", 1613*46d2f618SCy Schubert "server_do_not_query_address", "server_do_not_query_localhost", 1614*46d2f618SCy Schubert "server_access_control", "server_interface_action", "server_module_conf", 1615b7c0c8c1SCy Schubert "server_val_override_date", "server_val_sig_skew_min", 1616b7c0c8c1SCy Schubert "server_val_sig_skew_max", "server_val_max_restart", 1617b7c0c8c1SCy Schubert "server_cache_max_ttl", "server_cache_max_negative_ttl", 1618335c7cdaSCy Schubert "server_cache_min_negative_ttl", "server_cache_min_ttl", 1619335c7cdaSCy Schubert "server_bogus_ttl", "server_val_clean_additional", 1620335c7cdaSCy Schubert "server_val_permissive_mode", "server_aggressive_nsec", 1621335c7cdaSCy Schubert "server_ignore_cd_flag", "server_disable_edns_do", 1622335c7cdaSCy Schubert "server_serve_expired", "server_serve_expired_ttl", 1623335c7cdaSCy Schubert "server_serve_expired_ttl_reset", "server_serve_expired_reply_ttl", 1624335c7cdaSCy Schubert "server_serve_expired_client_timeout", "server_ede_serve_expired", 1625335c7cdaSCy Schubert "server_serve_original_ttl", "server_fake_dsa", "server_fake_sha1", 1626335c7cdaSCy Schubert "server_val_log_level", "server_val_nsec3_keysize_iterations", 1627335c7cdaSCy Schubert "server_zonemd_permissive_mode", "server_add_holddown", 1628335c7cdaSCy Schubert "server_del_holddown", "server_keep_missing", 1629b7c0c8c1SCy Schubert "server_permit_small_holddown", "server_key_cache_size", 1630b7c0c8c1SCy Schubert "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone", 1631b7c0c8c1SCy Schubert "server_local_data", "server_local_data_ptr", "server_minimal_responses", 1632b7c0c8c1SCy Schubert "server_rrset_roundrobin", "server_unknown_server_time_limit", 1633335c7cdaSCy Schubert "server_discard_timeout", "server_wait_limit", 1634335c7cdaSCy Schubert "server_wait_limit_cookie", "server_wait_limit_netblock", 1635335c7cdaSCy Schubert "server_wait_limit_cookie_netblock", "server_max_udp_size", 1636335c7cdaSCy Schubert "server_dns64_prefix", "server_dns64_synthall", 1637b7c0c8c1SCy Schubert "server_dns64_ignore_aaaa", "server_nat64_prefix", "server_define_tag", 1638b7c0c8c1SCy Schubert "server_local_zone_tag", "server_access_control_tag", 1639b7c0c8c1SCy Schubert "server_access_control_tag_action", "server_access_control_tag_data", 1640b7c0c8c1SCy Schubert "server_local_zone_override", "server_access_control_view", 1641b7c0c8c1SCy Schubert "server_interface_tag", "server_interface_tag_action", 1642b7c0c8c1SCy Schubert "server_interface_tag_data", "server_interface_view", 1643b7c0c8c1SCy Schubert "server_response_ip_tag", "server_ip_ratelimit", 1644b7c0c8c1SCy Schubert "server_ip_ratelimit_cookie", "server_ratelimit", 1645b7c0c8c1SCy Schubert "server_ip_ratelimit_size", "server_ratelimit_size", 1646b7c0c8c1SCy Schubert "server_ip_ratelimit_slabs", "server_ratelimit_slabs", 1647b7c0c8c1SCy Schubert "server_ratelimit_for_domain", "server_ratelimit_below_domain", 1648b7c0c8c1SCy Schubert "server_ip_ratelimit_factor", "server_ratelimit_factor", 1649b7c0c8c1SCy Schubert "server_ip_ratelimit_backoff", "server_ratelimit_backoff", 1650b7c0c8c1SCy Schubert "server_outbound_msg_retry", "server_max_sent_count", 1651b7c0c8c1SCy Schubert "server_max_query_restarts", "server_low_rtt", "server_fast_server_num", 1652b7c0c8c1SCy Schubert "server_fast_server_permil", "server_qname_minimisation", 1653b7c0c8c1SCy Schubert "server_qname_minimisation_strict", "server_pad_responses", 1654b7c0c8c1SCy Schubert "server_pad_responses_block_size", "server_pad_queries", 1655b7c0c8c1SCy Schubert "server_pad_queries_block_size", "server_ipsecmod_enabled", 1656b7c0c8c1SCy Schubert "server_ipsecmod_ignore_bogus", "server_ipsecmod_hook", 1657b7c0c8c1SCy Schubert "server_ipsecmod_max_ttl", "server_ipsecmod_whitelist", 1658b7c0c8c1SCy Schubert "server_ipsecmod_strict", "server_edns_client_string", 1659b7c0c8c1SCy Schubert "server_edns_client_string_opcode", "server_ede", 1660b7c0c8c1SCy Schubert "server_proxy_protocol_port", "stub_name", "stub_host", "stub_addr", 1661b7c0c8c1SCy Schubert "stub_first", "stub_no_cache", "stub_ssl_upstream", "stub_tcp_upstream", 1662b7c0c8c1SCy Schubert "stub_prime", "forward_name", "forward_host", "forward_addr", 1663b7c0c8c1SCy Schubert "forward_first", "forward_no_cache", "forward_ssl_upstream", 1664b7c0c8c1SCy Schubert "forward_tcp_upstream", "auth_name", "auth_zonefile", "auth_master", 1665b7c0c8c1SCy Schubert "auth_url", "auth_allow_notify", "auth_zonemd_check", 1666b7c0c8c1SCy Schubert "auth_zonemd_reject_absence", "auth_for_downstream", "auth_for_upstream", 1667b7c0c8c1SCy Schubert "auth_fallback_enabled", "view_name", "view_local_zone", 1668b7c0c8c1SCy Schubert "view_response_ip", "view_response_ip_data", "view_local_data", 1669b7c0c8c1SCy Schubert "view_local_data_ptr", "view_first", "rcstart", "contents_rc", 1670b7c0c8c1SCy Schubert "content_rc", "rc_control_enable", "rc_control_port", 1671b7c0c8c1SCy Schubert "rc_control_interface", "rc_control_use_cert", "rc_server_key_file", 1672b7c0c8c1SCy Schubert "rc_server_cert_file", "rc_control_key_file", "rc_control_cert_file", 1673b7c0c8c1SCy Schubert "dtstart", "contents_dt", "content_dt", "dt_dnstap_enable", 1674b7c0c8c1SCy Schubert "dt_dnstap_bidirectional", "dt_dnstap_socket_path", "dt_dnstap_ip", 1675b7c0c8c1SCy Schubert "dt_dnstap_tls", "dt_dnstap_tls_server_name", 1676b7c0c8c1SCy Schubert "dt_dnstap_tls_cert_bundle", "dt_dnstap_tls_client_key_file", 1677b7c0c8c1SCy Schubert "dt_dnstap_tls_client_cert_file", "dt_dnstap_send_identity", 1678b7c0c8c1SCy Schubert "dt_dnstap_send_version", "dt_dnstap_identity", "dt_dnstap_version", 1679b7c0c8c1SCy Schubert "dt_dnstap_log_resolver_query_messages", 1680b7c0c8c1SCy Schubert "dt_dnstap_log_resolver_response_messages", 1681b7c0c8c1SCy Schubert "dt_dnstap_log_client_query_messages", 1682b7c0c8c1SCy Schubert "dt_dnstap_log_client_response_messages", 1683b7c0c8c1SCy Schubert "dt_dnstap_log_forwarder_query_messages", 168456850988SCy Schubert "dt_dnstap_log_forwarder_response_messages", "dt_dnstap_sample_rate", 168556850988SCy Schubert "pythonstart", "contents_py", "content_py", "py_script", "dynlibstart", 168656850988SCy Schubert "contents_dl", "content_dl", "dl_file", 168756850988SCy Schubert "server_disable_dnssec_lame_check", "server_log_identity", 168856850988SCy Schubert "server_response_ip", "server_response_ip_data", "dnscstart", 168956850988SCy Schubert "contents_dnsc", "content_dnsc", "dnsc_dnscrypt_enable", 1690b7c0c8c1SCy Schubert "dnsc_dnscrypt_port", "dnsc_dnscrypt_provider", 1691b7c0c8c1SCy Schubert "dnsc_dnscrypt_provider_cert", "dnsc_dnscrypt_provider_cert_rotated", 1692b7c0c8c1SCy Schubert "dnsc_dnscrypt_secret_key", "dnsc_dnscrypt_shared_secret_cache_size", 1693b7c0c8c1SCy Schubert "dnsc_dnscrypt_shared_secret_cache_slabs", 1694b7c0c8c1SCy Schubert "dnsc_dnscrypt_nonce_cache_size", "dnsc_dnscrypt_nonce_cache_slabs", 1695b7c0c8c1SCy Schubert "cachedbstart", "contents_cachedb", "content_cachedb", 1696b7c0c8c1SCy Schubert "cachedb_backend_name", "cachedb_secret_seed", "cachedb_no_store", 1697335c7cdaSCy Schubert "cachedb_check_when_serve_expired", "redis_server_host", 1698335c7cdaSCy Schubert "redis_server_port", "redis_server_path", "redis_server_password", 1699*46d2f618SCy Schubert "redis_timeout", "redis_command_timeout", "redis_connect_timeout", 1700*46d2f618SCy Schubert "redis_expire_records", "redis_logical_db", 1701335c7cdaSCy Schubert "server_tcp_connection_limit", "server_answer_cookie", 1702*46d2f618SCy Schubert "server_cookie_secret", "server_cookie_secret_file", 1703*46d2f618SCy Schubert "server_iter_scrub_ns", "server_iter_scrub_cname", 1704*46d2f618SCy Schubert "server_max_global_quota", "ipsetstart", "contents_ipset", 1705*46d2f618SCy Schubert "content_ipset", "ipset_name_v4", "ipset_name_v6", YY_NULLPTR 1706b7c0c8c1SCy Schubert }; 1707b7c0c8c1SCy Schubert 1708b7c0c8c1SCy Schubert static const char * 1709b7c0c8c1SCy Schubert yysymbol_name (yysymbol_kind_t yysymbol) 1710b7c0c8c1SCy Schubert { 1711b7c0c8c1SCy Schubert return yytname[yysymbol]; 1712b7c0c8c1SCy Schubert } 1713b7c0c8c1SCy Schubert #endif 1714b7c0c8c1SCy Schubert 1715*46d2f618SCy Schubert #ifdef YYPRINT 1716*46d2f618SCy Schubert /* YYTOKNUM[NUM] -- (External) token number corresponding to the 1717*46d2f618SCy Schubert (internal) symbol number NUM (which must be that of a token). */ 1718*46d2f618SCy Schubert static const yytype_int16 yytoknum[] = 1719b7c0c8c1SCy Schubert { 1720*46d2f618SCy Schubert 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 1721*46d2f618SCy Schubert 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 1722*46d2f618SCy Schubert 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 1723*46d2f618SCy Schubert 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 1724*46d2f618SCy Schubert 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 1725*46d2f618SCy Schubert 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 1726*46d2f618SCy Schubert 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 1727*46d2f618SCy Schubert 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 1728*46d2f618SCy Schubert 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 172956850988SCy Schubert 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 173056850988SCy Schubert 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 173156850988SCy Schubert 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 173256850988SCy Schubert 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 173356850988SCy Schubert 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 173456850988SCy Schubert 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 173556850988SCy Schubert 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 173656850988SCy Schubert 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 173756850988SCy Schubert 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 173856850988SCy Schubert 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 173956850988SCy Schubert 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 174056850988SCy Schubert 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 174156850988SCy Schubert 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 174256850988SCy Schubert 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 174356850988SCy Schubert 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 174456850988SCy Schubert 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 174556850988SCy Schubert 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 174656850988SCy Schubert 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 174756850988SCy Schubert 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 174856850988SCy Schubert 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 174956850988SCy Schubert 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 175056850988SCy Schubert 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 175156850988SCy Schubert 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 175256850988SCy Schubert 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 1753*46d2f618SCy Schubert 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 1754*46d2f618SCy Schubert 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 1755*46d2f618SCy Schubert 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 1756*46d2f618SCy Schubert 615, 616, 617, 618, 619, 620, 621, 622 1757*46d2f618SCy Schubert }; 1758*46d2f618SCy Schubert #endif 1759*46d2f618SCy Schubert 1760*46d2f618SCy Schubert #define YYPACT_NINF (-302) 1761*46d2f618SCy Schubert 1762*46d2f618SCy Schubert #define yypact_value_is_default(Yyn) \ 1763*46d2f618SCy Schubert ((Yyn) == YYPACT_NINF) 1764*46d2f618SCy Schubert 1765*46d2f618SCy Schubert #define YYTABLE_NINF (-1) 1766*46d2f618SCy Schubert 1767*46d2f618SCy Schubert #define yytable_value_is_error(Yyn) \ 1768*46d2f618SCy Schubert 0 1769*46d2f618SCy Schubert 1770*46d2f618SCy Schubert /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1771*46d2f618SCy Schubert STATE-NUM. */ 1772*46d2f618SCy Schubert static const yytype_int16 yypact[] = 1773*46d2f618SCy Schubert { 1774*46d2f618SCy Schubert -302, 270, -302, -302, -302, -302, -302, -302, -302, -302, 1775*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1776*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1777*46d2f618SCy Schubert -302, -302, -302, -302, -302, -13, 309, 221, 236, 97, 1778*46d2f618SCy Schubert 84, 148, -14, -81, -301, 182, 122, -294, 31, 32, 1779*46d2f618SCy Schubert 33, 75, 76, 77, 78, 79, 80, 81, 82, 83, 1780*46d2f618SCy Schubert 89, 93, 94, 123, 125, 126, 169, 215, 217, 245, 1781*46d2f618SCy Schubert 246, 247, 259, 261, 262, 263, 264, 265, 268, 269, 1782*46d2f618SCy Schubert 274, 275, 276, 277, 280, 283, 289, 290, 304, 305, 1783*46d2f618SCy Schubert 306, 311, 312, 313, 315, 320, 321, 322, 338, 345, 1784*46d2f618SCy Schubert 347, 350, 351, 352, 353, 354, 356, 359, 361, 362, 1785*46d2f618SCy Schubert 363, 364, 365, 366, 367, 368, 369, 374, 375, 377, 1786*46d2f618SCy Schubert 378, 379, 382, 388, 389, 390, 391, 392, 405, 412, 1787*46d2f618SCy Schubert 413, 414, 415, 416, 417, 418, 422, 423, 424, 425, 1788*46d2f618SCy Schubert 426, 427, 428, 429, 443, 445, 446, 448, 449, 450, 1789*46d2f618SCy Schubert 451, 452, 453, 454, 455, 457, 458, 459, 460, 461, 1790*46d2f618SCy Schubert 462, 463, 464, 465, 467, 468, 469, 470, 472, 474, 1791*46d2f618SCy Schubert 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 1792*46d2f618SCy Schubert 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 1793*46d2f618SCy Schubert 495, 496, 497, 499, 500, 501, 502, 503, 504, 505, 1794*46d2f618SCy Schubert 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 1795*46d2f618SCy Schubert 516, 517, 518, 519, 521, 522, 524, 525, 526, 527, 1796*46d2f618SCy Schubert 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 1797*46d2f618SCy Schubert 538, 539, 540, 542, 543, 544, 545, 546, 547, 548, 1798*46d2f618SCy Schubert 549, 550, 551, 552, 553, 554, 556, 557, 558, 559, 1799*46d2f618SCy Schubert 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 1800*46d2f618SCy Schubert 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 1801*46d2f618SCy Schubert 580, 581, 582, 583, 584, 585, 586, 588, 589, 590, 1802*46d2f618SCy Schubert 592, 593, 594, 595, 596, 598, 599, 600, 601, 602, 1803*46d2f618SCy Schubert 603, 604, 605, 606, 607, 608, 609, 610, 611, 613, 1804*46d2f618SCy Schubert 614, 615, 616, 617, 618, -302, -302, -302, -302, -302, 1805*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1806*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1807*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1808*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1809*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1810*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1811*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1812*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1813*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1814*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1815*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1816*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1817*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1818*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1819*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1820*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1821*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1822*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1823*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1824*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1825*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1826*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1827*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1828*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1829*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1830*46d2f618SCy Schubert -302, -302, -302, 619, 620, 621, 622, 623, 624, 625, 1831*46d2f618SCy Schubert 626, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1832*46d2f618SCy Schubert 627, 628, 629, 630, 631, 632, 633, -302, -302, -302, 1833*46d2f618SCy Schubert -302, -302, -302, -302, -302, 634, 635, 636, 637, 638, 1834*46d2f618SCy Schubert 639, 640, -302, -302, -302, -302, -302, -302, -302, -302, 1835*46d2f618SCy Schubert 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 1836*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1837*46d2f618SCy Schubert -302, 651, 652, 653, 654, 655, 656, -302, -302, -302, 1838*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1839*46d2f618SCy Schubert 657, 658, 659, 660, 661, 662, 663, 664, -302, -302, 1840*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, 665, 666, 667, 1841*46d2f618SCy Schubert 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 1842*46d2f618SCy Schubert 678, 679, 680, 681, 682, 683, 684, -302, -302, -302, 1843*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1844*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, 685, -302, 1845*46d2f618SCy Schubert -302, 686, -302, -302, 687, 688, 689, 690, 691, 692, 1846*46d2f618SCy Schubert 693, 694, 695, 696, -302, -302, -302, -302, -302, -302, 1847*46d2f618SCy Schubert -302, -302, -302, -302, -302, 697, 698, 699, 700, 701, 1848*46d2f618SCy Schubert 702, 703, 704, 705, 706, 707, 708, 709, -302, -302, 1849*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1850*46d2f618SCy Schubert -302, -302, 710, 711, -302, -302, -302, -302, -302, -302, 1851*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1852*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1853*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1854*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1855*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1856*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, 712, 1857*46d2f618SCy Schubert 713, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1858*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1859*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1860*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1861*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1862*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1863*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1864*46d2f618SCy Schubert -302, 714, 715, 716, -302, -302, -302, -302, -302, -302, 1865*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, 717, 718, -302, 1866*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1867*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1868*46d2f618SCy Schubert -302, 719, 720, 721, 722, 723, 724, -302, -302, -302, 1869*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1870*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1871*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1872*46d2f618SCy Schubert -302, -302, 725, -302, -302, -302, -302, -302, -302, -302, 1873*46d2f618SCy Schubert -302, -302, -302, 726, 727, -302, -302, -302, -302, -302, 1874*46d2f618SCy Schubert 728, -302, -302, -302, -302, -302, 729, 730, 731, 732, 1875*46d2f618SCy Schubert 733, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1876*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1877*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1878*46d2f618SCy Schubert 734, -302, -302, 735, 736, -302, -302, -302, -302, -302, 1879*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1880*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1881*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1882*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1883*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1884*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1885*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1886*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, 737, 738, 739, -302, 1887*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, 740, 741, -302, 1888*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302 1889*46d2f618SCy Schubert }; 1890*46d2f618SCy Schubert 1891*46d2f618SCy Schubert /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 1892*46d2f618SCy Schubert Performed when YYTABLE does not specify something else to do. Zero 1893*46d2f618SCy Schubert means the default is an error. */ 1894*46d2f618SCy Schubert static const yytype_int16 yydefact[] = 1895*46d2f618SCy Schubert { 1896*46d2f618SCy Schubert 2, 0, 1, 18, 19, 280, 292, 625, 687, 644, 1897*46d2f618SCy Schubert 303, 701, 724, 313, 760, 332, 692, 3, 17, 21, 1898*46d2f618SCy Schubert 5, 282, 6, 294, 10, 305, 315, 334, 627, 646, 1899*46d2f618SCy Schubert 689, 694, 703, 726, 762, 4, 279, 291, 302, 14, 1900*46d2f618SCy Schubert 15, 8, 9, 7, 16, 11, 12, 13, 0, 0, 1901*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1902*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1903*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1904*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1905*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1906*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1907*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1908*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1909*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1910*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1911*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1912*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1913*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1914*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1915*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1916*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1917*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1918*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1919*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1920*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1921*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1922*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1923*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1924*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1925*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1926*46d2f618SCy Schubert 0, 0, 0, 0, 0, 20, 22, 23, 90, 93, 1927*46d2f618SCy Schubert 102, 269, 219, 220, 24, 172, 173, 174, 175, 176, 1928*46d2f618SCy Schubert 177, 178, 179, 180, 181, 39, 81, 25, 94, 95, 1929*46d2f618SCy Schubert 50, 74, 89, 266, 26, 27, 28, 31, 32, 29, 1930*46d2f618SCy Schubert 30, 33, 34, 35, 261, 262, 263, 36, 37, 38, 1931*46d2f618SCy Schubert 126, 231, 127, 129, 130, 131, 233, 238, 234, 250, 1932*46d2f618SCy Schubert 251, 252, 256, 132, 133, 134, 135, 136, 137, 138, 1933*46d2f618SCy Schubert 264, 265, 215, 91, 80, 106, 278, 124, 125, 243, 1934*46d2f618SCy Schubert 240, 272, 128, 40, 41, 42, 43, 44, 82, 96, 1935*46d2f618SCy Schubert 97, 113, 68, 78, 69, 223, 224, 107, 60, 61, 1936*46d2f618SCy Schubert 222, 64, 62, 63, 65, 259, 117, 121, 142, 154, 1937*46d2f618SCy Schubert 187, 157, 249, 118, 75, 45, 46, 47, 104, 143, 1938*46d2f618SCy Schubert 144, 145, 146, 48, 49, 51, 52, 54, 55, 53, 1939*46d2f618SCy Schubert 151, 152, 158, 56, 57, 58, 66, 277, 85, 122, 1940*46d2f618SCy Schubert 99, 153, 270, 92, 182, 100, 101, 119, 120, 241, 1941*46d2f618SCy Schubert 105, 59, 83, 86, 196, 67, 70, 108, 109, 110, 1942*46d2f618SCy Schubert 84, 183, 184, 111, 71, 72, 73, 232, 123, 271, 1943*46d2f618SCy Schubert 206, 207, 208, 209, 210, 211, 212, 213, 221, 112, 1944*46d2f618SCy Schubert 79, 260, 114, 115, 116, 185, 76, 77, 98, 87, 1945*46d2f618SCy Schubert 88, 103, 139, 140, 242, 244, 245, 246, 247, 248, 1946*46d2f618SCy Schubert 141, 147, 148, 149, 150, 188, 189, 191, 193, 194, 1947*46d2f618SCy Schubert 192, 195, 198, 199, 200, 197, 216, 155, 255, 156, 1948*46d2f618SCy Schubert 161, 162, 159, 160, 163, 164, 166, 165, 168, 167, 1949*46d2f618SCy Schubert 169, 170, 171, 235, 237, 236, 186, 201, 202, 203, 1950*46d2f618SCy Schubert 204, 205, 225, 227, 226, 228, 229, 230, 257, 258, 1951*46d2f618SCy Schubert 267, 268, 190, 214, 217, 218, 239, 253, 254, 273, 1952*46d2f618SCy Schubert 274, 275, 276, 0, 0, 0, 0, 0, 0, 0, 1953*46d2f618SCy Schubert 0, 281, 283, 284, 285, 287, 288, 289, 290, 286, 1954*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 293, 295, 296, 1955*46d2f618SCy Schubert 297, 298, 299, 300, 301, 0, 0, 0, 0, 0, 1956*46d2f618SCy Schubert 0, 0, 304, 306, 307, 310, 311, 308, 312, 309, 1957*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1958*46d2f618SCy Schubert 314, 316, 317, 318, 319, 323, 324, 325, 320, 321, 1959*46d2f618SCy Schubert 322, 0, 0, 0, 0, 0, 0, 337, 341, 342, 1960*46d2f618SCy Schubert 343, 344, 345, 333, 335, 336, 338, 339, 340, 346, 1961*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 626, 628, 1962*46d2f618SCy Schubert 630, 629, 635, 631, 632, 633, 634, 0, 0, 0, 1963*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1964*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 645, 647, 649, 1965*46d2f618SCy Schubert 648, 650, 651, 652, 653, 654, 655, 656, 657, 658, 1966*46d2f618SCy Schubert 659, 660, 661, 662, 663, 664, 665, 666, 0, 688, 1967*46d2f618SCy Schubert 690, 0, 693, 695, 0, 0, 0, 0, 0, 0, 1968*46d2f618SCy Schubert 0, 0, 0, 0, 702, 704, 705, 706, 708, 709, 1969*46d2f618SCy Schubert 707, 710, 711, 712, 713, 0, 0, 0, 0, 0, 1970*46d2f618SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 725, 727, 1971*46d2f618SCy Schubert 728, 735, 737, 729, 730, 733, 734, 731, 738, 739, 1972*46d2f618SCy Schubert 732, 736, 0, 0, 761, 763, 764, 348, 347, 355, 1973*46d2f618SCy Schubert 368, 366, 380, 375, 376, 377, 381, 378, 379, 382, 1974*46d2f618SCy Schubert 383, 384, 388, 389, 390, 424, 425, 426, 427, 428, 1975*46d2f618SCy Schubert 456, 457, 458, 464, 465, 371, 466, 467, 470, 468, 1976*46d2f618SCy Schubert 469, 474, 475, 476, 492, 439, 440, 443, 444, 477, 1977*46d2f618SCy Schubert 496, 433, 435, 497, 505, 506, 507, 372, 455, 527, 1978*46d2f618SCy Schubert 528, 434, 521, 415, 367, 429, 493, 501, 479, 0, 1979*46d2f618SCy Schubert 0, 531, 373, 349, 414, 484, 350, 369, 370, 430, 1980*46d2f618SCy Schubert 431, 529, 481, 486, 487, 386, 385, 351, 532, 459, 1981*46d2f618SCy Schubert 491, 416, 438, 498, 499, 500, 504, 520, 432, 525, 1982*46d2f618SCy Schubert 523, 524, 447, 454, 488, 489, 448, 449, 480, 509, 1983*46d2f618SCy Schubert 418, 419, 423, 391, 393, 387, 394, 395, 396, 397, 1984*46d2f618SCy Schubert 404, 405, 406, 407, 408, 409, 410, 533, 534, 541, 1985*46d2f618SCy Schubert 460, 461, 462, 463, 471, 472, 473, 542, 543, 544, 1986*46d2f618SCy Schubert 545, 0, 0, 0, 482, 450, 452, 697, 558, 563, 1987*46d2f618SCy Schubert 561, 560, 564, 562, 571, 572, 573, 0, 0, 567, 1988*46d2f618SCy Schubert 568, 569, 570, 356, 357, 358, 359, 360, 361, 362, 1989*46d2f618SCy Schubert 363, 364, 365, 485, 502, 526, 503, 577, 578, 451, 1990*46d2f618SCy Schubert 546, 0, 0, 0, 0, 0, 0, 511, 512, 513, 1991*46d2f618SCy Schubert 514, 515, 516, 517, 518, 519, 698, 441, 442, 445, 1992*46d2f618SCy Schubert 436, 508, 413, 353, 354, 437, 579, 580, 581, 582, 1993*46d2f618SCy Schubert 583, 585, 584, 586, 587, 588, 392, 399, 574, 576, 1994*46d2f618SCy Schubert 575, 398, 0, 754, 755, 559, 421, 490, 535, 420, 1995*46d2f618SCy Schubert 536, 537, 538, 0, 0, 453, 400, 401, 403, 402, 1996*46d2f618SCy Schubert 0, 590, 446, 522, 374, 591, 0, 0, 0, 0, 1997*46d2f618SCy Schubert 0, 411, 412, 592, 352, 483, 510, 422, 756, 757, 1998*46d2f618SCy Schubert 758, 759, 478, 417, 593, 594, 595, 600, 598, 599, 1999*46d2f618SCy Schubert 596, 597, 601, 602, 603, 604, 606, 607, 605, 618, 2000*46d2f618SCy Schubert 0, 622, 623, 0, 0, 624, 608, 616, 609, 610, 2001*46d2f618SCy Schubert 611, 615, 617, 612, 613, 614, 326, 327, 328, 329, 2002*46d2f618SCy Schubert 330, 331, 636, 638, 637, 640, 641, 642, 643, 639, 2003*46d2f618SCy Schubert 667, 669, 670, 671, 672, 673, 674, 675, 676, 677, 2004*46d2f618SCy Schubert 668, 678, 679, 680, 681, 682, 683, 684, 685, 686, 2005*46d2f618SCy Schubert 691, 696, 714, 715, 716, 719, 717, 718, 720, 721, 2006*46d2f618SCy Schubert 722, 723, 740, 741, 744, 745, 748, 751, 746, 747, 2007*46d2f618SCy Schubert 752, 749, 750, 742, 743, 765, 766, 494, 530, 557, 2008*46d2f618SCy Schubert 699, 700, 565, 566, 547, 548, 0, 0, 0, 552, 2009*46d2f618SCy Schubert 753, 539, 540, 589, 495, 556, 553, 0, 0, 619, 2010*46d2f618SCy Schubert 620, 621, 551, 549, 550, 554, 555 2011*46d2f618SCy Schubert }; 2012*46d2f618SCy Schubert 2013*46d2f618SCy Schubert /* YYPGOTO[NTERM-NUM]. */ 2014*46d2f618SCy Schubert static const yytype_int16 yypgoto[] = 2015*46d2f618SCy Schubert { 2016*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2017*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2018*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2019*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2020*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2021*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2022*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2023*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2024*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2025*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2026*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2027*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2028*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2029*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2030*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2031*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2032*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2033*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2034*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2035*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2036*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2037*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2038*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2039*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2040*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2041*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2042*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2043*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2044*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2045*46d2f618SCy Schubert -302, -302, 92, 742, 743, 744, 745, -302, -302, 746, 2046*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2047*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2048*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2049*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2050*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2051*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2052*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2053*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2054*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 2055*46d2f618SCy Schubert -302, -302, -302, -302, -302, -302 2056*46d2f618SCy Schubert }; 2057*46d2f618SCy Schubert 2058*46d2f618SCy Schubert /* YYDEFGOTO[NTERM-NUM]. */ 2059*46d2f618SCy Schubert static const yytype_int16 yydefgoto[] = 2060*46d2f618SCy Schubert { 2061*46d2f618SCy Schubert 0, 1, 17, 18, 19, 35, 305, 20, 21, 36, 2062*46d2f618SCy Schubert 571, 22, 23, 37, 587, 24, 25, 38, 602, 26, 2063*46d2f618SCy Schubert 39, 620, 637, 638, 639, 640, 641, 642, 27, 40, 2064*46d2f618SCy Schubert 643, 306, 307, 308, 309, 310, 311, 312, 313, 314, 2065*46d2f618SCy Schubert 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 2066*46d2f618SCy Schubert 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 2067*46d2f618SCy Schubert 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 2068*46d2f618SCy Schubert 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 2069*46d2f618SCy Schubert 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 2070*46d2f618SCy Schubert 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 2071*46d2f618SCy Schubert 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 2072*46d2f618SCy Schubert 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 2073*46d2f618SCy Schubert 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 2074*46d2f618SCy Schubert 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 2075*46d2f618SCy Schubert 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 2076*46d2f618SCy Schubert 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 2077*46d2f618SCy Schubert 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 2078*46d2f618SCy Schubert 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 2079*46d2f618SCy Schubert 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 2080*46d2f618SCy Schubert 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 2081*46d2f618SCy Schubert 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 2082*46d2f618SCy Schubert 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 2083*46d2f618SCy Schubert 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 2084*46d2f618SCy Schubert 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 2085*46d2f618SCy Schubert 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 2086*46d2f618SCy Schubert 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 2087*46d2f618SCy Schubert 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 2088*46d2f618SCy Schubert 545, 546, 547, 548, 549, 550, 551, 572, 573, 574, 2089*46d2f618SCy Schubert 575, 576, 577, 578, 579, 588, 589, 590, 591, 592, 2090*46d2f618SCy Schubert 593, 594, 621, 622, 623, 624, 625, 626, 627, 628, 2091*46d2f618SCy Schubert 629, 630, 603, 604, 605, 606, 607, 608, 609, 28, 2092*46d2f618SCy Schubert 41, 658, 659, 660, 661, 662, 663, 664, 665, 666, 2093*46d2f618SCy Schubert 29, 42, 687, 688, 689, 690, 691, 692, 693, 694, 2094*46d2f618SCy Schubert 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 2095*46d2f618SCy Schubert 705, 706, 707, 30, 43, 709, 710, 31, 44, 712, 2096*46d2f618SCy Schubert 713, 552, 553, 554, 555, 32, 45, 724, 725, 726, 2097*46d2f618SCy Schubert 727, 728, 729, 730, 731, 732, 733, 734, 33, 46, 2098*46d2f618SCy Schubert 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 2099*46d2f618SCy Schubert 758, 759, 760, 761, 556, 557, 558, 559, 560, 561, 2100*46d2f618SCy Schubert 562, 34, 47, 764, 765, 766 2101b7c0c8c1SCy Schubert }; 2102b7c0c8c1SCy Schubert 2103b7c0c8c1SCy Schubert /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 2104b7c0c8c1SCy Schubert positive, shift that token. If negative, reduce the rule whose 2105b7c0c8c1SCy Schubert number is the opposite. If YYTABLE_NINF, syntax error. */ 2106b7c0c8c1SCy Schubert static const yytype_int16 yytable[] = 2107b7c0c8c1SCy Schubert { 2108*46d2f618SCy Schubert 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 2109*46d2f618SCy Schubert 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 2110*46d2f618SCy Schubert 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 2111*46d2f618SCy Schubert 78, 79, 80, 81, 762, 763, 708, 711, 82, 83, 2112*46d2f618SCy Schubert 84, 767, 768, 769, 85, 86, 87, 88, 89, 90, 2113*46d2f618SCy Schubert 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 2114*46d2f618SCy Schubert 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 2115*46d2f618SCy Schubert 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 2116*46d2f618SCy Schubert 121, 122, 123, 124, 125, 770, 771, 772, 773, 774, 2117*46d2f618SCy Schubert 775, 776, 777, 778, 126, 127, 128, 129, 130, 779, 2118*46d2f618SCy Schubert 131, 132, 133, 780, 781, 134, 135, 136, 137, 138, 2119*46d2f618SCy Schubert 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 2120*46d2f618SCy Schubert 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 2121*46d2f618SCy Schubert 159, 610, 644, 782, 160, 783, 784, 161, 162, 163, 2122*46d2f618SCy Schubert 164, 165, 166, 167, 610, 168, 169, 170, 171, 172, 2123*46d2f618SCy Schubert 173, 174, 175, 176, 177, 178, 179, 180, 181, 667, 2124*46d2f618SCy Schubert 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 2125*46d2f618SCy Schubert 678, 679, 680, 681, 682, 683, 684, 685, 686, 785, 2126*46d2f618SCy Schubert 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 2127*46d2f618SCy Schubert 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 2128*46d2f618SCy Schubert 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 2129*46d2f618SCy Schubert 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 2130*46d2f618SCy Schubert 222, 223, 224, 225, 226, 786, 227, 787, 228, 229, 2131*46d2f618SCy Schubert 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 2132*46d2f618SCy Schubert 240, 241, 242, 243, 244, 245, 246, 650, 651, 652, 2133*46d2f618SCy Schubert 653, 654, 655, 656, 657, 788, 789, 790, 247, 248, 2134*46d2f618SCy Schubert 249, 250, 251, 252, 253, 254, 255, 256, 580, 791, 2135*46d2f618SCy Schubert 2, 792, 793, 794, 795, 796, 581, 582, 797, 798, 2136*46d2f618SCy Schubert 257, 3, 4, 595, 799, 800, 801, 802, 258, 259, 2137*46d2f618SCy Schubert 803, 260, 261, 804, 262, 263, 264, 265, 266, 805, 2138*46d2f618SCy Schubert 806, 267, 268, 269, 270, 271, 272, 273, 274, 275, 2139*46d2f618SCy Schubert 276, 277, 278, 279, 807, 808, 809, 280, 5, 596, 2140*46d2f618SCy Schubert 597, 810, 811, 812, 6, 813, 281, 282, 283, 284, 2141*46d2f618SCy Schubert 814, 815, 816, 285, 286, 287, 288, 289, 290, 291, 2142*46d2f618SCy Schubert 292, 293, 294, 295, 296, 297, 598, 298, 817, 299, 2143*46d2f618SCy Schubert 300, 301, 302, 303, 304, 818, 563, 819, 564, 565, 2144*46d2f618SCy Schubert 820, 821, 822, 823, 824, 583, 825, 584, 7, 826, 2145*46d2f618SCy Schubert 585, 827, 828, 829, 830, 831, 832, 833, 834, 835, 2146*46d2f618SCy Schubert 612, 613, 614, 615, 836, 837, 8, 838, 839, 840, 2147*46d2f618SCy Schubert 617, 611, 841, 612, 613, 614, 615, 616, 842, 843, 2148*46d2f618SCy Schubert 844, 845, 846, 617, 735, 736, 737, 738, 739, 740, 2149*46d2f618SCy Schubert 741, 742, 743, 744, 745, 847, 631, 632, 633, 634, 2150*46d2f618SCy Schubert 635, 566, 848, 849, 850, 851, 852, 853, 854, 636, 2151*46d2f618SCy Schubert 599, 600, 855, 856, 857, 858, 859, 860, 861, 862, 2152*46d2f618SCy Schubert 618, 619, 9, 714, 715, 716, 717, 718, 719, 720, 2153*46d2f618SCy Schubert 721, 722, 723, 863, 567, 864, 865, 568, 866, 867, 2154*46d2f618SCy Schubert 868, 869, 870, 871, 872, 873, 569, 874, 875, 876, 2155*46d2f618SCy Schubert 877, 878, 879, 880, 881, 882, 601, 883, 884, 885, 2156*46d2f618SCy Schubert 886, 746, 887, 747, 888, 889, 890, 891, 892, 893, 2157*46d2f618SCy Schubert 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 2158*46d2f618SCy Schubert 904, 905, 906, 907, 908, 909, 910, 911, 10, 912, 2159*46d2f618SCy Schubert 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 2160*46d2f618SCy Schubert 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 2161*46d2f618SCy Schubert 11, 933, 934, 586, 935, 936, 937, 938, 939, 940, 2162*46d2f618SCy Schubert 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 2163*46d2f618SCy Schubert 951, 12, 952, 953, 954, 955, 956, 957, 958, 959, 2164*46d2f618SCy Schubert 960, 961, 962, 963, 964, 13, 965, 966, 967, 968, 216556850988SCy Schubert 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 2166*46d2f618SCy Schubert 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 2167*46d2f618SCy Schubert 989, 990, 991, 992, 993, 994, 995, 14, 996, 997, 2168*46d2f618SCy Schubert 998, 15, 999, 1000, 1001, 1002, 1003, 16, 1004, 1005, 216956850988SCy Schubert 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 2170*46d2f618SCy Schubert 1016, 1017, 570, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 2171*46d2f618SCy Schubert 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 2172*46d2f618SCy Schubert 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 2173*46d2f618SCy Schubert 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 2174*46d2f618SCy Schubert 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 2175*46d2f618SCy Schubert 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 2176*46d2f618SCy Schubert 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 2177*46d2f618SCy Schubert 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 2178*46d2f618SCy Schubert 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 2179*46d2f618SCy Schubert 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 2180*46d2f618SCy Schubert 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 2181*46d2f618SCy Schubert 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 2182*46d2f618SCy Schubert 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 2183*46d2f618SCy Schubert 1145, 1146, 0, 0, 0, 0, 0, 0, 0, 0, 2184b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2185b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2186*46d2f618SCy Schubert 0, 0, 645, 646, 647, 648, 649 2187b7c0c8c1SCy Schubert }; 2188b7c0c8c1SCy Schubert 2189b7c0c8c1SCy Schubert static const yytype_int16 yycheck[] = 2190b7c0c8c1SCy Schubert { 2191b7c0c8c1SCy Schubert 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2192b7c0c8c1SCy Schubert 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 2193b7c0c8c1SCy Schubert 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 2194*46d2f618SCy Schubert 43, 44, 45, 46, 328, 329, 117, 338, 51, 52, 2195b7c0c8c1SCy Schubert 53, 10, 10, 10, 57, 58, 59, 60, 61, 62, 2196b7c0c8c1SCy Schubert 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 2197b7c0c8c1SCy Schubert 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 2198b7c0c8c1SCy Schubert 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 2199*46d2f618SCy Schubert 93, 94, 95, 96, 97, 10, 10, 10, 10, 10, 2200*46d2f618SCy Schubert 10, 10, 10, 10, 107, 108, 109, 110, 111, 10, 2201*46d2f618SCy Schubert 113, 114, 115, 10, 10, 118, 119, 120, 121, 122, 2202b7c0c8c1SCy Schubert 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 2203b7c0c8c1SCy Schubert 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 2204*46d2f618SCy Schubert 143, 47, 40, 10, 147, 10, 10, 150, 151, 152, 2205*46d2f618SCy Schubert 153, 154, 155, 156, 47, 158, 159, 160, 161, 162, 2206*46d2f618SCy Schubert 163, 164, 165, 166, 167, 168, 169, 170, 171, 173, 2207*46d2f618SCy Schubert 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 2208*46d2f618SCy Schubert 184, 185, 186, 187, 188, 189, 190, 191, 192, 10, 2209b7c0c8c1SCy Schubert 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 2210b7c0c8c1SCy Schubert 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 2211b7c0c8c1SCy Schubert 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 2212b7c0c8c1SCy Schubert 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 221356850988SCy Schubert 233, 234, 235, 236, 237, 10, 239, 10, 241, 242, 2214b7c0c8c1SCy Schubert 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 2215*46d2f618SCy Schubert 253, 254, 255, 256, 257, 258, 259, 99, 100, 101, 2216*46d2f618SCy Schubert 102, 103, 104, 105, 106, 10, 10, 10, 271, 272, 2217*46d2f618SCy Schubert 273, 274, 275, 276, 277, 278, 279, 280, 47, 10, 2218*46d2f618SCy Schubert 0, 10, 10, 10, 10, 10, 55, 56, 10, 10, 2219*46d2f618SCy Schubert 293, 11, 12, 47, 10, 10, 10, 10, 301, 302, 2220*46d2f618SCy Schubert 10, 304, 305, 10, 307, 308, 309, 310, 311, 10, 2221*46d2f618SCy Schubert 10, 314, 315, 316, 317, 318, 319, 320, 321, 322, 2222*46d2f618SCy Schubert 323, 324, 325, 326, 10, 10, 10, 330, 48, 83, 2223*46d2f618SCy Schubert 84, 10, 10, 10, 54, 10, 339, 340, 341, 342, 2224*46d2f618SCy Schubert 10, 10, 10, 346, 347, 348, 349, 350, 351, 352, 2225*46d2f618SCy Schubert 353, 354, 355, 356, 357, 358, 110, 360, 10, 362, 2226*46d2f618SCy Schubert 363, 364, 365, 366, 367, 10, 47, 10, 49, 50, 2227*46d2f618SCy Schubert 10, 10, 10, 10, 10, 144, 10, 146, 98, 10, 2228*46d2f618SCy Schubert 149, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2229*46d2f618SCy Schubert 296, 297, 298, 299, 10, 10, 116, 10, 10, 10, 2230*46d2f618SCy Schubert 306, 294, 10, 296, 297, 298, 299, 300, 10, 10, 2231*46d2f618SCy Schubert 10, 10, 10, 306, 282, 283, 284, 285, 286, 287, 2232*46d2f618SCy Schubert 288, 289, 290, 291, 292, 10, 332, 333, 334, 335, 2233*46d2f618SCy Schubert 336, 112, 10, 10, 10, 10, 10, 10, 10, 345, 2234*46d2f618SCy Schubert 194, 195, 10, 10, 10, 10, 10, 10, 10, 10, 2235*46d2f618SCy Schubert 343, 344, 172, 261, 262, 263, 264, 265, 266, 267, 2236*46d2f618SCy Schubert 268, 269, 270, 10, 145, 10, 10, 148, 10, 10, 2237*46d2f618SCy Schubert 10, 10, 10, 10, 10, 10, 157, 10, 10, 10, 2238*46d2f618SCy Schubert 10, 10, 10, 10, 10, 10, 240, 10, 10, 10, 2239*46d2f618SCy Schubert 10, 359, 10, 361, 10, 10, 10, 10, 10, 10, 2240b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2241*46d2f618SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 238, 10, 2242b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2243b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2244*46d2f618SCy Schubert 260, 10, 10, 312, 10, 10, 10, 10, 10, 10, 2245*46d2f618SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2246*46d2f618SCy Schubert 10, 281, 10, 10, 10, 10, 10, 10, 10, 10, 2247*46d2f618SCy Schubert 10, 10, 10, 10, 10, 295, 10, 10, 10, 10, 2248*46d2f618SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2249*46d2f618SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2250*46d2f618SCy Schubert 10, 10, 10, 10, 10, 10, 10, 327, 10, 10, 2251*46d2f618SCy Schubert 10, 331, 10, 10, 10, 10, 10, 337, 10, 10, 2252*46d2f618SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2253*46d2f618SCy Schubert 10, 10, 313, 10, 10, 10, 10, 10, 10, 10, 2254b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2255b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2256b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2257b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2258b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2259b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2260b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2261b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2262b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2263b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2264b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 226556850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2266*46d2f618SCy Schubert 10, 10, -1, -1, -1, -1, -1, -1, -1, -1, 2267b7c0c8c1SCy Schubert -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2268b7c0c8c1SCy Schubert -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2269*46d2f618SCy Schubert -1, -1, 40, 40, 40, 40, 40 2270b7c0c8c1SCy Schubert }; 2271b7c0c8c1SCy Schubert 2272*46d2f618SCy Schubert /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 2273*46d2f618SCy Schubert symbol of state STATE-NUM. */ 2274b7c0c8c1SCy Schubert static const yytype_int16 yystos[] = 2275b7c0c8c1SCy Schubert { 2276*46d2f618SCy Schubert 0, 369, 0, 11, 12, 48, 54, 98, 116, 172, 2277*46d2f618SCy Schubert 238, 260, 281, 295, 327, 331, 337, 370, 371, 372, 2278*46d2f618SCy Schubert 375, 376, 379, 380, 383, 384, 387, 396, 677, 688, 2279*46d2f618SCy Schubert 711, 715, 723, 736, 759, 373, 377, 381, 385, 388, 2280*46d2f618SCy Schubert 397, 678, 689, 712, 716, 724, 737, 760, 13, 14, 2281*46d2f618SCy Schubert 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2282*46d2f618SCy Schubert 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 2283*46d2f618SCy Schubert 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 2284*46d2f618SCy Schubert 45, 46, 51, 52, 53, 57, 58, 59, 60, 61, 2285*46d2f618SCy Schubert 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 2286*46d2f618SCy Schubert 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 2287*46d2f618SCy Schubert 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 2288*46d2f618SCy Schubert 92, 93, 94, 95, 96, 97, 107, 108, 109, 110, 2289*46d2f618SCy Schubert 111, 113, 114, 115, 118, 119, 120, 121, 122, 123, 2290*46d2f618SCy Schubert 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 2291*46d2f618SCy Schubert 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 2292*46d2f618SCy Schubert 147, 150, 151, 152, 153, 154, 155, 156, 158, 159, 2293*46d2f618SCy Schubert 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 2294*46d2f618SCy Schubert 170, 171, 193, 194, 195, 196, 197, 198, 199, 200, 2295*46d2f618SCy Schubert 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 2296*46d2f618SCy Schubert 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 2297*46d2f618SCy Schubert 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 2298*46d2f618SCy Schubert 231, 232, 233, 234, 235, 236, 237, 239, 241, 242, 2299*46d2f618SCy Schubert 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 2300*46d2f618SCy Schubert 253, 254, 255, 256, 257, 258, 259, 271, 272, 273, 2301*46d2f618SCy Schubert 274, 275, 276, 277, 278, 279, 280, 293, 301, 302, 2302*46d2f618SCy Schubert 304, 305, 307, 308, 309, 310, 311, 314, 315, 316, 2303*46d2f618SCy Schubert 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 2304*46d2f618SCy Schubert 330, 339, 340, 341, 342, 346, 347, 348, 349, 350, 2305*46d2f618SCy Schubert 351, 352, 353, 354, 355, 356, 357, 358, 360, 362, 2306*46d2f618SCy Schubert 363, 364, 365, 366, 367, 374, 399, 400, 401, 402, 2307*46d2f618SCy Schubert 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 2308*46d2f618SCy Schubert 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 2309*46d2f618SCy Schubert 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 2310*46d2f618SCy Schubert 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 2311*46d2f618SCy Schubert 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 2312*46d2f618SCy Schubert 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 2313*46d2f618SCy Schubert 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 2314*46d2f618SCy Schubert 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 2315*46d2f618SCy Schubert 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 2316*46d2f618SCy Schubert 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 2317*46d2f618SCy Schubert 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 2318*46d2f618SCy Schubert 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 2319*46d2f618SCy Schubert 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 2320*46d2f618SCy Schubert 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 2321*46d2f618SCy Schubert 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 2322*46d2f618SCy Schubert 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 2323*46d2f618SCy Schubert 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 2324*46d2f618SCy Schubert 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 2325*46d2f618SCy Schubert 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 2326*46d2f618SCy Schubert 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 2327*46d2f618SCy Schubert 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 2328*46d2f618SCy Schubert 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 2329*46d2f618SCy Schubert 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 2330*46d2f618SCy Schubert 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 2331*46d2f618SCy Schubert 643, 644, 719, 720, 721, 722, 752, 753, 754, 755, 2332*46d2f618SCy Schubert 756, 757, 758, 47, 49, 50, 112, 145, 148, 157, 2333*46d2f618SCy Schubert 313, 378, 645, 646, 647, 648, 649, 650, 651, 652, 2334*46d2f618SCy Schubert 47, 55, 56, 144, 146, 149, 312, 382, 653, 654, 2335*46d2f618SCy Schubert 655, 656, 657, 658, 659, 47, 83, 84, 110, 194, 2336*46d2f618SCy Schubert 195, 240, 386, 670, 671, 672, 673, 674, 675, 676, 2337*46d2f618SCy Schubert 47, 294, 296, 297, 298, 299, 300, 306, 343, 344, 2338*46d2f618SCy Schubert 389, 660, 661, 662, 663, 664, 665, 666, 667, 668, 2339*46d2f618SCy Schubert 669, 332, 333, 334, 335, 336, 345, 390, 391, 392, 2340*46d2f618SCy Schubert 393, 394, 395, 398, 660, 661, 662, 663, 664, 667, 2341*46d2f618SCy Schubert 99, 100, 101, 102, 103, 104, 105, 106, 679, 680, 2342*46d2f618SCy Schubert 681, 682, 683, 684, 685, 686, 687, 173, 174, 175, 2343*46d2f618SCy Schubert 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 2344*46d2f618SCy Schubert 186, 187, 188, 189, 190, 191, 192, 690, 691, 692, 2345*46d2f618SCy Schubert 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 2346*46d2f618SCy Schubert 703, 704, 705, 706, 707, 708, 709, 710, 117, 713, 2347*46d2f618SCy Schubert 714, 338, 717, 718, 261, 262, 263, 264, 265, 266, 2348*46d2f618SCy Schubert 267, 268, 269, 270, 725, 726, 727, 728, 729, 730, 2349*46d2f618SCy Schubert 731, 732, 733, 734, 735, 282, 283, 284, 285, 286, 2350*46d2f618SCy Schubert 287, 288, 289, 290, 291, 292, 359, 361, 738, 739, 2351*46d2f618SCy Schubert 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 2352*46d2f618SCy Schubert 750, 751, 328, 329, 761, 762, 763, 10, 10, 10, 235356850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 235456850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 235556850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 235656850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 235756850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 235856850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 235956850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 236056850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 236156850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 236256850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 236356850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 236456850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 236556850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 236656850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 236756850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 236856850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 236956850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 237056850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 237156850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 237256850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 237356850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 237456850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 237556850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 237656850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 237756850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 237856850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 237956850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 238056850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 238156850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 238256850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 238356850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 238456850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 238556850988SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2386*46d2f618SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2387*46d2f618SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2388*46d2f618SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2389*46d2f618SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 2390*46d2f618SCy Schubert 10, 10, 10, 10, 10, 10, 10 239156850988SCy Schubert }; 239256850988SCy Schubert 2393*46d2f618SCy Schubert /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 239456850988SCy Schubert static const yytype_int16 yyr1[] = 239556850988SCy Schubert { 2396*46d2f618SCy Schubert 0, 368, 369, 369, 370, 370, 370, 370, 370, 370, 2397*46d2f618SCy Schubert 370, 370, 370, 370, 370, 370, 370, 370, 371, 372, 2398*46d2f618SCy Schubert 373, 373, 374, 374, 374, 374, 374, 374, 374, 374, 2399*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2400*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2401*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2402*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2403*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2404*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2405*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2406*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2407*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2408*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2409*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2410*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2411*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2412*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2413*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2414*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2415*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2416*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2417*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2418*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2419*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2420*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2421*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2422*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 2423*46d2f618SCy Schubert 374, 374, 374, 374, 374, 374, 374, 374, 374, 375, 2424*46d2f618SCy Schubert 376, 377, 377, 378, 378, 378, 378, 378, 378, 378, 2425*46d2f618SCy Schubert 378, 379, 380, 381, 381, 382, 382, 382, 382, 382, 2426*46d2f618SCy Schubert 382, 382, 383, 384, 385, 385, 386, 386, 386, 386, 2427*46d2f618SCy Schubert 386, 386, 386, 387, 388, 388, 389, 389, 389, 389, 2428*46d2f618SCy Schubert 389, 389, 389, 389, 389, 389, 390, 391, 392, 393, 2429*46d2f618SCy Schubert 394, 395, 396, 397, 397, 398, 398, 398, 398, 398, 2430*46d2f618SCy Schubert 398, 398, 398, 398, 398, 398, 398, 399, 400, 401, 2431*46d2f618SCy Schubert 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 2432*46d2f618SCy Schubert 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 2433*46d2f618SCy Schubert 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 2434*46d2f618SCy Schubert 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 2435*46d2f618SCy Schubert 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 2436*46d2f618SCy Schubert 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 2437*46d2f618SCy Schubert 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 2438*46d2f618SCy Schubert 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 2439*46d2f618SCy Schubert 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 2440*46d2f618SCy Schubert 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 2441*46d2f618SCy Schubert 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 2442*46d2f618SCy Schubert 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 2443*46d2f618SCy Schubert 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 2444*46d2f618SCy Schubert 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 2445*46d2f618SCy Schubert 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 2446*46d2f618SCy Schubert 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 2447*46d2f618SCy Schubert 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 2448*46d2f618SCy Schubert 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 2449*46d2f618SCy Schubert 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 2450*46d2f618SCy Schubert 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 2451*46d2f618SCy Schubert 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 2452*46d2f618SCy Schubert 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 2453*46d2f618SCy Schubert 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 2454*46d2f618SCy Schubert 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 2455*46d2f618SCy Schubert 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 2456*46d2f618SCy Schubert 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 2457*46d2f618SCy Schubert 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 2458*46d2f618SCy Schubert 672, 673, 674, 675, 676, 677, 678, 678, 679, 679, 2459*46d2f618SCy Schubert 679, 679, 679, 679, 679, 679, 680, 681, 682, 683, 2460*46d2f618SCy Schubert 684, 685, 686, 687, 688, 689, 689, 690, 690, 690, 2461*46d2f618SCy Schubert 690, 690, 690, 690, 690, 690, 690, 690, 690, 690, 2462*46d2f618SCy Schubert 690, 690, 690, 690, 690, 690, 690, 691, 692, 693, 2463*46d2f618SCy Schubert 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 2464*46d2f618SCy Schubert 704, 705, 706, 707, 708, 709, 710, 711, 712, 712, 2465*46d2f618SCy Schubert 713, 714, 715, 716, 716, 717, 718, 719, 720, 721, 2466*46d2f618SCy Schubert 722, 723, 724, 724, 725, 725, 725, 725, 725, 725, 2467*46d2f618SCy Schubert 725, 725, 725, 725, 726, 727, 728, 729, 730, 731, 2468*46d2f618SCy Schubert 732, 733, 734, 735, 736, 737, 737, 738, 738, 738, 2469*46d2f618SCy Schubert 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, 2470*46d2f618SCy Schubert 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 2471*46d2f618SCy Schubert 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 2472*46d2f618SCy Schubert 759, 760, 760, 761, 761, 762, 763 2473b7c0c8c1SCy Schubert }; 2474b7c0c8c1SCy Schubert 2475*46d2f618SCy Schubert /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 2476b7c0c8c1SCy Schubert static const yytype_int8 yyr2[] = 2477b7c0c8c1SCy Schubert { 2478*46d2f618SCy Schubert 0, 2, 0, 2, 2, 1, 1, 2, 2, 2, 2479*46d2f618SCy Schubert 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2480b7c0c8c1SCy Schubert 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2481b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2482b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2483b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2484b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2485b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2486b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2487b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2488b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2489b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2490b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2491b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2492b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2493b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2494b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2495b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2496b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2497b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2498b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2499b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2500b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2501b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2502b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2503b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2504b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2505*46d2f618SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2506*46d2f618SCy Schubert 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 2507*46d2f618SCy Schubert 1, 2, 1, 2, 0, 1, 1, 1, 1, 1, 2508*46d2f618SCy Schubert 1, 1, 2, 1, 2, 0, 1, 1, 1, 1, 250956850988SCy Schubert 1, 1, 1, 1, 2, 0, 1, 1, 1, 1, 2510335c7cdaSCy Schubert 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 251156850988SCy Schubert 2, 2, 1, 2, 0, 1, 1, 1, 1, 1, 251256850988SCy Schubert 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2513b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2514b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2515b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2516b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2517b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2518b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2519b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2520b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2521b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2522b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2523b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2524b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2525b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2526b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2527*46d2f618SCy Schubert 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2528b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 252956850988SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2530*46d2f618SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2531*46d2f618SCy Schubert 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2532*46d2f618SCy Schubert 3, 2, 2, 2, 2, 2, 2, 3, 3, 4, 2533*46d2f618SCy Schubert 4, 4, 3, 3, 4, 4, 3, 3, 2, 2, 253456850988SCy Schubert 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 253556850988SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2536*46d2f618SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2537b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2538b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2539*46d2f618SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2540*46d2f618SCy Schubert 3, 3, 2, 2, 2, 1, 2, 0, 1, 1, 2541*46d2f618SCy Schubert 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2542*46d2f618SCy Schubert 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, 2543335c7cdaSCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2544*46d2f618SCy Schubert 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2545b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2546*46d2f618SCy Schubert 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, 2547*46d2f618SCy Schubert 1, 2, 1, 2, 0, 1, 2, 2, 2, 3, 2548*46d2f618SCy Schubert 3, 1, 2, 0, 1, 1, 1, 1, 1, 1, 254956850988SCy Schubert 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2550*46d2f618SCy Schubert 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, 2551*46d2f618SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2552*46d2f618SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2553*46d2f618SCy Schubert 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2554*46d2f618SCy Schubert 1, 2, 0, 1, 1, 2, 2 2555b7c0c8c1SCy Schubert }; 2556b7c0c8c1SCy Schubert 2557b7c0c8c1SCy Schubert 2558b7c0c8c1SCy Schubert enum { YYENOMEM = -2 }; 2559b7c0c8c1SCy Schubert 2560b7c0c8c1SCy Schubert #define yyerrok (yyerrstatus = 0) 2561b7c0c8c1SCy Schubert #define yyclearin (yychar = YYEMPTY) 2562b7c0c8c1SCy Schubert 2563b7c0c8c1SCy Schubert #define YYACCEPT goto yyacceptlab 2564b7c0c8c1SCy Schubert #define YYABORT goto yyabortlab 2565b7c0c8c1SCy Schubert #define YYERROR goto yyerrorlab 2566b7c0c8c1SCy Schubert 2567b7c0c8c1SCy Schubert 2568b7c0c8c1SCy Schubert #define YYRECOVERING() (!!yyerrstatus) 2569b7c0c8c1SCy Schubert 2570b7c0c8c1SCy Schubert #define YYBACKUP(Token, Value) \ 2571b7c0c8c1SCy Schubert do \ 2572b7c0c8c1SCy Schubert if (yychar == YYEMPTY) \ 2573b7c0c8c1SCy Schubert { \ 2574b7c0c8c1SCy Schubert yychar = (Token); \ 2575b7c0c8c1SCy Schubert yylval = (Value); \ 2576b7c0c8c1SCy Schubert YYPOPSTACK (yylen); \ 2577b7c0c8c1SCy Schubert yystate = *yyssp; \ 2578b7c0c8c1SCy Schubert goto yybackup; \ 2579b7c0c8c1SCy Schubert } \ 2580b7c0c8c1SCy Schubert else \ 2581b7c0c8c1SCy Schubert { \ 2582b7c0c8c1SCy Schubert yyerror (YY_("syntax error: cannot back up")); \ 2583b7c0c8c1SCy Schubert YYERROR; \ 2584b7c0c8c1SCy Schubert } \ 2585b7c0c8c1SCy Schubert while (0) 2586b7c0c8c1SCy Schubert 2587b7c0c8c1SCy Schubert /* Backward compatibility with an undocumented macro. 2588b7c0c8c1SCy Schubert Use YYerror or YYUNDEF. */ 2589b7c0c8c1SCy Schubert #define YYERRCODE YYUNDEF 2590b7c0c8c1SCy Schubert 2591b7c0c8c1SCy Schubert 2592b7c0c8c1SCy Schubert /* Enable debugging if requested. */ 2593b7c0c8c1SCy Schubert #if YYDEBUG 2594b7c0c8c1SCy Schubert 2595b7c0c8c1SCy Schubert # ifndef YYFPRINTF 2596b7c0c8c1SCy Schubert # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 2597b7c0c8c1SCy Schubert # define YYFPRINTF fprintf 2598b7c0c8c1SCy Schubert # endif 2599b7c0c8c1SCy Schubert 2600b7c0c8c1SCy Schubert # define YYDPRINTF(Args) \ 2601b7c0c8c1SCy Schubert do { \ 2602b7c0c8c1SCy Schubert if (yydebug) \ 2603b7c0c8c1SCy Schubert YYFPRINTF Args; \ 2604b7c0c8c1SCy Schubert } while (0) 2605b7c0c8c1SCy Schubert 2606*46d2f618SCy Schubert /* This macro is provided for backward compatibility. */ 2607*46d2f618SCy Schubert # ifndef YY_LOCATION_PRINT 2608*46d2f618SCy Schubert # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 2609*46d2f618SCy Schubert # endif 2610b7c0c8c1SCy Schubert 2611b7c0c8c1SCy Schubert 2612b7c0c8c1SCy Schubert # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ 2613b7c0c8c1SCy Schubert do { \ 2614b7c0c8c1SCy Schubert if (yydebug) \ 2615b7c0c8c1SCy Schubert { \ 2616b7c0c8c1SCy Schubert YYFPRINTF (stderr, "%s ", Title); \ 2617b7c0c8c1SCy Schubert yy_symbol_print (stderr, \ 2618b7c0c8c1SCy Schubert Kind, Value); \ 2619b7c0c8c1SCy Schubert YYFPRINTF (stderr, "\n"); \ 2620b7c0c8c1SCy Schubert } \ 2621b7c0c8c1SCy Schubert } while (0) 2622b7c0c8c1SCy Schubert 2623b7c0c8c1SCy Schubert 2624b7c0c8c1SCy Schubert /*-----------------------------------. 2625b7c0c8c1SCy Schubert | Print this symbol's value on YYO. | 2626b7c0c8c1SCy Schubert `-----------------------------------*/ 2627b7c0c8c1SCy Schubert 2628b7c0c8c1SCy Schubert static void 2629b7c0c8c1SCy Schubert yy_symbol_value_print (FILE *yyo, 2630b7c0c8c1SCy Schubert yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) 2631b7c0c8c1SCy Schubert { 2632b7c0c8c1SCy Schubert FILE *yyoutput = yyo; 2633b7c0c8c1SCy Schubert YY_USE (yyoutput); 2634b7c0c8c1SCy Schubert if (!yyvaluep) 2635b7c0c8c1SCy Schubert return; 2636*46d2f618SCy Schubert # ifdef YYPRINT 2637*46d2f618SCy Schubert if (yykind < YYNTOKENS) 2638*46d2f618SCy Schubert YYPRINT (yyo, yytoknum[yykind], *yyvaluep); 2639*46d2f618SCy Schubert # endif 2640b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 2641b7c0c8c1SCy Schubert YY_USE (yykind); 2642b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_END 2643b7c0c8c1SCy Schubert } 2644b7c0c8c1SCy Schubert 2645b7c0c8c1SCy Schubert 2646b7c0c8c1SCy Schubert /*---------------------------. 2647b7c0c8c1SCy Schubert | Print this symbol on YYO. | 2648b7c0c8c1SCy Schubert `---------------------------*/ 2649b7c0c8c1SCy Schubert 2650b7c0c8c1SCy Schubert static void 2651b7c0c8c1SCy Schubert yy_symbol_print (FILE *yyo, 2652b7c0c8c1SCy Schubert yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) 2653b7c0c8c1SCy Schubert { 2654b7c0c8c1SCy Schubert YYFPRINTF (yyo, "%s %s (", 2655b7c0c8c1SCy Schubert yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); 2656b7c0c8c1SCy Schubert 2657b7c0c8c1SCy Schubert yy_symbol_value_print (yyo, yykind, yyvaluep); 2658b7c0c8c1SCy Schubert YYFPRINTF (yyo, ")"); 2659b7c0c8c1SCy Schubert } 2660b7c0c8c1SCy Schubert 2661b7c0c8c1SCy Schubert /*------------------------------------------------------------------. 2662b7c0c8c1SCy Schubert | yy_stack_print -- Print the state stack from its BOTTOM up to its | 2663b7c0c8c1SCy Schubert | TOP (included). | 2664b7c0c8c1SCy Schubert `------------------------------------------------------------------*/ 2665b7c0c8c1SCy Schubert 2666b7c0c8c1SCy Schubert static void 2667b7c0c8c1SCy Schubert yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) 2668b7c0c8c1SCy Schubert { 2669b7c0c8c1SCy Schubert YYFPRINTF (stderr, "Stack now"); 2670b7c0c8c1SCy Schubert for (; yybottom <= yytop; yybottom++) 2671b7c0c8c1SCy Schubert { 2672b7c0c8c1SCy Schubert int yybot = *yybottom; 2673b7c0c8c1SCy Schubert YYFPRINTF (stderr, " %d", yybot); 2674b7c0c8c1SCy Schubert } 2675b7c0c8c1SCy Schubert YYFPRINTF (stderr, "\n"); 2676b7c0c8c1SCy Schubert } 2677b7c0c8c1SCy Schubert 2678b7c0c8c1SCy Schubert # define YY_STACK_PRINT(Bottom, Top) \ 2679b7c0c8c1SCy Schubert do { \ 2680b7c0c8c1SCy Schubert if (yydebug) \ 2681b7c0c8c1SCy Schubert yy_stack_print ((Bottom), (Top)); \ 2682b7c0c8c1SCy Schubert } while (0) 2683b7c0c8c1SCy Schubert 2684b7c0c8c1SCy Schubert 2685b7c0c8c1SCy Schubert /*------------------------------------------------. 2686b7c0c8c1SCy Schubert | Report that the YYRULE is going to be reduced. | 2687b7c0c8c1SCy Schubert `------------------------------------------------*/ 2688b7c0c8c1SCy Schubert 2689b7c0c8c1SCy Schubert static void 2690b7c0c8c1SCy Schubert yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, 2691b7c0c8c1SCy Schubert int yyrule) 2692b7c0c8c1SCy Schubert { 2693b7c0c8c1SCy Schubert int yylno = yyrline[yyrule]; 2694b7c0c8c1SCy Schubert int yynrhs = yyr2[yyrule]; 2695b7c0c8c1SCy Schubert int yyi; 2696b7c0c8c1SCy Schubert YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", 2697b7c0c8c1SCy Schubert yyrule - 1, yylno); 2698b7c0c8c1SCy Schubert /* The symbols being reduced. */ 2699b7c0c8c1SCy Schubert for (yyi = 0; yyi < yynrhs; yyi++) 2700b7c0c8c1SCy Schubert { 2701b7c0c8c1SCy Schubert YYFPRINTF (stderr, " $%d = ", yyi + 1); 2702b7c0c8c1SCy Schubert yy_symbol_print (stderr, 2703b7c0c8c1SCy Schubert YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), 2704b7c0c8c1SCy Schubert &yyvsp[(yyi + 1) - (yynrhs)]); 2705b7c0c8c1SCy Schubert YYFPRINTF (stderr, "\n"); 2706b7c0c8c1SCy Schubert } 2707b7c0c8c1SCy Schubert } 2708b7c0c8c1SCy Schubert 2709b7c0c8c1SCy Schubert # define YY_REDUCE_PRINT(Rule) \ 2710b7c0c8c1SCy Schubert do { \ 2711b7c0c8c1SCy Schubert if (yydebug) \ 2712b7c0c8c1SCy Schubert yy_reduce_print (yyssp, yyvsp, Rule); \ 2713b7c0c8c1SCy Schubert } while (0) 2714b7c0c8c1SCy Schubert 2715b7c0c8c1SCy Schubert /* Nonzero means print parse trace. It is left uninitialized so that 2716b7c0c8c1SCy Schubert multiple parsers can coexist. */ 2717b7c0c8c1SCy Schubert int yydebug; 2718b7c0c8c1SCy Schubert #else /* !YYDEBUG */ 2719b7c0c8c1SCy Schubert # define YYDPRINTF(Args) ((void) 0) 2720b7c0c8c1SCy Schubert # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) 2721b7c0c8c1SCy Schubert # define YY_STACK_PRINT(Bottom, Top) 2722b7c0c8c1SCy Schubert # define YY_REDUCE_PRINT(Rule) 2723b7c0c8c1SCy Schubert #endif /* !YYDEBUG */ 2724b7c0c8c1SCy Schubert 2725b7c0c8c1SCy Schubert 2726b7c0c8c1SCy Schubert /* YYINITDEPTH -- initial size of the parser's stacks. */ 2727b7c0c8c1SCy Schubert #ifndef YYINITDEPTH 2728b7c0c8c1SCy Schubert # define YYINITDEPTH 200 2729b7c0c8c1SCy Schubert #endif 2730b7c0c8c1SCy Schubert 2731b7c0c8c1SCy Schubert /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 2732b7c0c8c1SCy Schubert if the built-in stack extension method is used). 2733b7c0c8c1SCy Schubert 2734b7c0c8c1SCy Schubert Do not make this value too large; the results are undefined if 2735b7c0c8c1SCy Schubert YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 2736b7c0c8c1SCy Schubert evaluated with infinite-precision integer arithmetic. */ 2737b7c0c8c1SCy Schubert 2738b7c0c8c1SCy Schubert #ifndef YYMAXDEPTH 2739b7c0c8c1SCy Schubert # define YYMAXDEPTH 10000 2740b7c0c8c1SCy Schubert #endif 2741b7c0c8c1SCy Schubert 2742b7c0c8c1SCy Schubert 2743b7c0c8c1SCy Schubert 2744b7c0c8c1SCy Schubert 2745b7c0c8c1SCy Schubert 2746b7c0c8c1SCy Schubert 2747b7c0c8c1SCy Schubert /*-----------------------------------------------. 2748b7c0c8c1SCy Schubert | Release the memory associated to this symbol. | 2749b7c0c8c1SCy Schubert `-----------------------------------------------*/ 2750b7c0c8c1SCy Schubert 2751b7c0c8c1SCy Schubert static void 2752b7c0c8c1SCy Schubert yydestruct (const char *yymsg, 2753b7c0c8c1SCy Schubert yysymbol_kind_t yykind, YYSTYPE *yyvaluep) 2754b7c0c8c1SCy Schubert { 2755b7c0c8c1SCy Schubert YY_USE (yyvaluep); 2756b7c0c8c1SCy Schubert if (!yymsg) 2757b7c0c8c1SCy Schubert yymsg = "Deleting"; 2758b7c0c8c1SCy Schubert YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); 2759b7c0c8c1SCy Schubert 2760b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 2761b7c0c8c1SCy Schubert YY_USE (yykind); 2762b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_END 2763b7c0c8c1SCy Schubert } 2764b7c0c8c1SCy Schubert 2765b7c0c8c1SCy Schubert 2766b7c0c8c1SCy Schubert /* Lookahead token kind. */ 2767b7c0c8c1SCy Schubert int yychar; 2768b7c0c8c1SCy Schubert 2769b7c0c8c1SCy Schubert /* The semantic value of the lookahead symbol. */ 2770b7c0c8c1SCy Schubert YYSTYPE yylval; 2771b7c0c8c1SCy Schubert /* Number of syntax errors so far. */ 2772b7c0c8c1SCy Schubert int yynerrs; 2773b7c0c8c1SCy Schubert 2774b7c0c8c1SCy Schubert 2775b7c0c8c1SCy Schubert 2776b7c0c8c1SCy Schubert 2777b7c0c8c1SCy Schubert /*----------. 2778b7c0c8c1SCy Schubert | yyparse. | 2779b7c0c8c1SCy Schubert `----------*/ 2780b7c0c8c1SCy Schubert 2781b7c0c8c1SCy Schubert int 2782b7c0c8c1SCy Schubert yyparse (void) 2783b7c0c8c1SCy Schubert { 2784b7c0c8c1SCy Schubert yy_state_fast_t yystate = 0; 2785b7c0c8c1SCy Schubert /* Number of tokens to shift before error messages enabled. */ 2786b7c0c8c1SCy Schubert int yyerrstatus = 0; 2787b7c0c8c1SCy Schubert 2788b7c0c8c1SCy Schubert /* Refer to the stacks through separate pointers, to allow yyoverflow 2789b7c0c8c1SCy Schubert to reallocate them elsewhere. */ 2790b7c0c8c1SCy Schubert 2791b7c0c8c1SCy Schubert /* Their size. */ 2792b7c0c8c1SCy Schubert YYPTRDIFF_T yystacksize = YYINITDEPTH; 2793b7c0c8c1SCy Schubert 2794b7c0c8c1SCy Schubert /* The state stack: array, bottom, top. */ 2795b7c0c8c1SCy Schubert yy_state_t yyssa[YYINITDEPTH]; 2796b7c0c8c1SCy Schubert yy_state_t *yyss = yyssa; 2797b7c0c8c1SCy Schubert yy_state_t *yyssp = yyss; 2798b7c0c8c1SCy Schubert 2799b7c0c8c1SCy Schubert /* The semantic value stack: array, bottom, top. */ 2800b7c0c8c1SCy Schubert YYSTYPE yyvsa[YYINITDEPTH]; 2801b7c0c8c1SCy Schubert YYSTYPE *yyvs = yyvsa; 2802b7c0c8c1SCy Schubert YYSTYPE *yyvsp = yyvs; 2803b7c0c8c1SCy Schubert 2804b7c0c8c1SCy Schubert int yyn; 2805b7c0c8c1SCy Schubert /* The return value of yyparse. */ 2806b7c0c8c1SCy Schubert int yyresult; 2807b7c0c8c1SCy Schubert /* Lookahead symbol kind. */ 2808b7c0c8c1SCy Schubert yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; 2809b7c0c8c1SCy Schubert /* The variables used to return semantic value and location from the 2810b7c0c8c1SCy Schubert action routines. */ 2811b7c0c8c1SCy Schubert YYSTYPE yyval; 2812b7c0c8c1SCy Schubert 2813b7c0c8c1SCy Schubert 2814b7c0c8c1SCy Schubert 2815b7c0c8c1SCy Schubert #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 2816b7c0c8c1SCy Schubert 2817b7c0c8c1SCy Schubert /* The number of symbols on the RHS of the reduced rule. 2818b7c0c8c1SCy Schubert Keep to zero when no symbol should be popped. */ 2819b7c0c8c1SCy Schubert int yylen = 0; 2820b7c0c8c1SCy Schubert 2821b7c0c8c1SCy Schubert YYDPRINTF ((stderr, "Starting parse\n")); 2822b7c0c8c1SCy Schubert 2823b7c0c8c1SCy Schubert yychar = YYEMPTY; /* Cause a token to be read. */ 2824b7c0c8c1SCy Schubert goto yysetstate; 2825b7c0c8c1SCy Schubert 2826b7c0c8c1SCy Schubert 2827b7c0c8c1SCy Schubert /*------------------------------------------------------------. 2828b7c0c8c1SCy Schubert | yynewstate -- push a new state, which is found in yystate. | 2829b7c0c8c1SCy Schubert `------------------------------------------------------------*/ 2830b7c0c8c1SCy Schubert yynewstate: 2831b7c0c8c1SCy Schubert /* In all cases, when you get here, the value and location stacks 2832b7c0c8c1SCy Schubert have just been pushed. So pushing a state here evens the stacks. */ 2833b7c0c8c1SCy Schubert yyssp++; 2834b7c0c8c1SCy Schubert 2835b7c0c8c1SCy Schubert 2836b7c0c8c1SCy Schubert /*--------------------------------------------------------------------. 2837b7c0c8c1SCy Schubert | yysetstate -- set current state (the top of the stack) to yystate. | 2838b7c0c8c1SCy Schubert `--------------------------------------------------------------------*/ 2839b7c0c8c1SCy Schubert yysetstate: 2840b7c0c8c1SCy Schubert YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 2841b7c0c8c1SCy Schubert YY_ASSERT (0 <= yystate && yystate < YYNSTATES); 2842b7c0c8c1SCy Schubert YY_IGNORE_USELESS_CAST_BEGIN 2843b7c0c8c1SCy Schubert *yyssp = YY_CAST (yy_state_t, yystate); 2844b7c0c8c1SCy Schubert YY_IGNORE_USELESS_CAST_END 2845b7c0c8c1SCy Schubert YY_STACK_PRINT (yyss, yyssp); 2846b7c0c8c1SCy Schubert 2847b7c0c8c1SCy Schubert if (yyss + yystacksize - 1 <= yyssp) 2848b7c0c8c1SCy Schubert #if !defined yyoverflow && !defined YYSTACK_RELOCATE 2849*46d2f618SCy Schubert goto yyexhaustedlab; 2850b7c0c8c1SCy Schubert #else 2851b7c0c8c1SCy Schubert { 2852b7c0c8c1SCy Schubert /* Get the current used size of the three stacks, in elements. */ 2853b7c0c8c1SCy Schubert YYPTRDIFF_T yysize = yyssp - yyss + 1; 2854b7c0c8c1SCy Schubert 2855b7c0c8c1SCy Schubert # if defined yyoverflow 2856b7c0c8c1SCy Schubert { 2857b7c0c8c1SCy Schubert /* Give user a chance to reallocate the stack. Use copies of 2858b7c0c8c1SCy Schubert these so that the &'s don't force the real ones into 2859b7c0c8c1SCy Schubert memory. */ 2860b7c0c8c1SCy Schubert yy_state_t *yyss1 = yyss; 2861b7c0c8c1SCy Schubert YYSTYPE *yyvs1 = yyvs; 2862b7c0c8c1SCy Schubert 2863b7c0c8c1SCy Schubert /* Each stack pointer address is followed by the size of the 2864b7c0c8c1SCy Schubert data in use in that stack, in bytes. This used to be a 2865b7c0c8c1SCy Schubert conditional around just the two extra args, but that might 2866b7c0c8c1SCy Schubert be undefined if yyoverflow is a macro. */ 2867b7c0c8c1SCy Schubert yyoverflow (YY_("memory exhausted"), 2868b7c0c8c1SCy Schubert &yyss1, yysize * YYSIZEOF (*yyssp), 2869b7c0c8c1SCy Schubert &yyvs1, yysize * YYSIZEOF (*yyvsp), 2870b7c0c8c1SCy Schubert &yystacksize); 2871b7c0c8c1SCy Schubert yyss = yyss1; 2872b7c0c8c1SCy Schubert yyvs = yyvs1; 2873b7c0c8c1SCy Schubert } 2874b7c0c8c1SCy Schubert # else /* defined YYSTACK_RELOCATE */ 2875b7c0c8c1SCy Schubert /* Extend the stack our own way. */ 2876b7c0c8c1SCy Schubert if (YYMAXDEPTH <= yystacksize) 2877*46d2f618SCy Schubert goto yyexhaustedlab; 2878b7c0c8c1SCy Schubert yystacksize *= 2; 2879b7c0c8c1SCy Schubert if (YYMAXDEPTH < yystacksize) 2880b7c0c8c1SCy Schubert yystacksize = YYMAXDEPTH; 2881b7c0c8c1SCy Schubert 2882b7c0c8c1SCy Schubert { 2883b7c0c8c1SCy Schubert yy_state_t *yyss1 = yyss; 2884b7c0c8c1SCy Schubert union yyalloc *yyptr = 2885b7c0c8c1SCy Schubert YY_CAST (union yyalloc *, 2886b7c0c8c1SCy Schubert YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); 2887b7c0c8c1SCy Schubert if (! yyptr) 2888*46d2f618SCy Schubert goto yyexhaustedlab; 2889b7c0c8c1SCy Schubert YYSTACK_RELOCATE (yyss_alloc, yyss); 2890b7c0c8c1SCy Schubert YYSTACK_RELOCATE (yyvs_alloc, yyvs); 2891b7c0c8c1SCy Schubert # undef YYSTACK_RELOCATE 2892b7c0c8c1SCy Schubert if (yyss1 != yyssa) 2893b7c0c8c1SCy Schubert YYSTACK_FREE (yyss1); 2894b7c0c8c1SCy Schubert } 2895b7c0c8c1SCy Schubert # endif 2896b7c0c8c1SCy Schubert 2897b7c0c8c1SCy Schubert yyssp = yyss + yysize - 1; 2898b7c0c8c1SCy Schubert yyvsp = yyvs + yysize - 1; 2899b7c0c8c1SCy Schubert 2900b7c0c8c1SCy Schubert YY_IGNORE_USELESS_CAST_BEGIN 2901b7c0c8c1SCy Schubert YYDPRINTF ((stderr, "Stack size increased to %ld\n", 2902b7c0c8c1SCy Schubert YY_CAST (long, yystacksize))); 2903b7c0c8c1SCy Schubert YY_IGNORE_USELESS_CAST_END 2904b7c0c8c1SCy Schubert 2905b7c0c8c1SCy Schubert if (yyss + yystacksize - 1 <= yyssp) 2906b7c0c8c1SCy Schubert YYABORT; 2907b7c0c8c1SCy Schubert } 2908b7c0c8c1SCy Schubert #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ 2909b7c0c8c1SCy Schubert 2910b7c0c8c1SCy Schubert if (yystate == YYFINAL) 2911b7c0c8c1SCy Schubert YYACCEPT; 2912b7c0c8c1SCy Schubert 2913b7c0c8c1SCy Schubert goto yybackup; 2914b7c0c8c1SCy Schubert 2915b7c0c8c1SCy Schubert 2916b7c0c8c1SCy Schubert /*-----------. 2917b7c0c8c1SCy Schubert | yybackup. | 2918b7c0c8c1SCy Schubert `-----------*/ 2919b7c0c8c1SCy Schubert yybackup: 2920b7c0c8c1SCy Schubert /* Do appropriate processing given the current state. Read a 2921b7c0c8c1SCy Schubert lookahead token if we need one and don't already have one. */ 2922b7c0c8c1SCy Schubert 2923b7c0c8c1SCy Schubert /* First try to decide what to do without reference to lookahead token. */ 2924b7c0c8c1SCy Schubert yyn = yypact[yystate]; 2925b7c0c8c1SCy Schubert if (yypact_value_is_default (yyn)) 2926b7c0c8c1SCy Schubert goto yydefault; 2927b7c0c8c1SCy Schubert 2928b7c0c8c1SCy Schubert /* Not known => get a lookahead token if don't already have one. */ 2929b7c0c8c1SCy Schubert 2930b7c0c8c1SCy Schubert /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ 2931b7c0c8c1SCy Schubert if (yychar == YYEMPTY) 2932b7c0c8c1SCy Schubert { 2933b7c0c8c1SCy Schubert YYDPRINTF ((stderr, "Reading a token\n")); 2934b7c0c8c1SCy Schubert yychar = yylex (); 2935b7c0c8c1SCy Schubert } 2936b7c0c8c1SCy Schubert 2937b7c0c8c1SCy Schubert if (yychar <= YYEOF) 2938b7c0c8c1SCy Schubert { 2939b7c0c8c1SCy Schubert yychar = YYEOF; 2940b7c0c8c1SCy Schubert yytoken = YYSYMBOL_YYEOF; 2941b7c0c8c1SCy Schubert YYDPRINTF ((stderr, "Now at end of input.\n")); 2942b7c0c8c1SCy Schubert } 2943b7c0c8c1SCy Schubert else if (yychar == YYerror) 2944b7c0c8c1SCy Schubert { 2945b7c0c8c1SCy Schubert /* The scanner already issued an error message, process directly 2946b7c0c8c1SCy Schubert to error recovery. But do not keep the error token as 2947b7c0c8c1SCy Schubert lookahead, it is too special and may lead us to an endless 2948b7c0c8c1SCy Schubert loop in error recovery. */ 2949b7c0c8c1SCy Schubert yychar = YYUNDEF; 2950b7c0c8c1SCy Schubert yytoken = YYSYMBOL_YYerror; 2951b7c0c8c1SCy Schubert goto yyerrlab1; 2952b7c0c8c1SCy Schubert } 2953b7c0c8c1SCy Schubert else 2954b7c0c8c1SCy Schubert { 2955b7c0c8c1SCy Schubert yytoken = YYTRANSLATE (yychar); 2956b7c0c8c1SCy Schubert YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 2957b7c0c8c1SCy Schubert } 2958b7c0c8c1SCy Schubert 2959b7c0c8c1SCy Schubert /* If the proper action on seeing token YYTOKEN is to reduce or to 2960b7c0c8c1SCy Schubert detect an error, take that action. */ 2961b7c0c8c1SCy Schubert yyn += yytoken; 2962b7c0c8c1SCy Schubert if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 2963b7c0c8c1SCy Schubert goto yydefault; 2964b7c0c8c1SCy Schubert yyn = yytable[yyn]; 2965b7c0c8c1SCy Schubert if (yyn <= 0) 2966b7c0c8c1SCy Schubert { 2967b7c0c8c1SCy Schubert if (yytable_value_is_error (yyn)) 2968b7c0c8c1SCy Schubert goto yyerrlab; 2969b7c0c8c1SCy Schubert yyn = -yyn; 2970b7c0c8c1SCy Schubert goto yyreduce; 2971b7c0c8c1SCy Schubert } 2972b7c0c8c1SCy Schubert 2973b7c0c8c1SCy Schubert /* Count tokens shifted since error; after three, turn off error 2974b7c0c8c1SCy Schubert status. */ 2975b7c0c8c1SCy Schubert if (yyerrstatus) 2976b7c0c8c1SCy Schubert yyerrstatus--; 2977b7c0c8c1SCy Schubert 2978b7c0c8c1SCy Schubert /* Shift the lookahead token. */ 2979b7c0c8c1SCy Schubert YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 2980b7c0c8c1SCy Schubert yystate = yyn; 2981b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 2982b7c0c8c1SCy Schubert *++yyvsp = yylval; 2983b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_END 2984b7c0c8c1SCy Schubert 2985b7c0c8c1SCy Schubert /* Discard the shifted token. */ 2986b7c0c8c1SCy Schubert yychar = YYEMPTY; 2987b7c0c8c1SCy Schubert goto yynewstate; 2988b7c0c8c1SCy Schubert 2989b7c0c8c1SCy Schubert 2990b7c0c8c1SCy Schubert /*-----------------------------------------------------------. 2991b7c0c8c1SCy Schubert | yydefault -- do the default action for the current state. | 2992b7c0c8c1SCy Schubert `-----------------------------------------------------------*/ 2993b7c0c8c1SCy Schubert yydefault: 2994b7c0c8c1SCy Schubert yyn = yydefact[yystate]; 2995b7c0c8c1SCy Schubert if (yyn == 0) 2996b7c0c8c1SCy Schubert goto yyerrlab; 2997b7c0c8c1SCy Schubert goto yyreduce; 2998b7c0c8c1SCy Schubert 2999b7c0c8c1SCy Schubert 3000b7c0c8c1SCy Schubert /*-----------------------------. 3001b7c0c8c1SCy Schubert | yyreduce -- do a reduction. | 3002b7c0c8c1SCy Schubert `-----------------------------*/ 3003b7c0c8c1SCy Schubert yyreduce: 3004b7c0c8c1SCy Schubert /* yyn is the number of a rule to reduce with. */ 3005b7c0c8c1SCy Schubert yylen = yyr2[yyn]; 3006b7c0c8c1SCy Schubert 3007b7c0c8c1SCy Schubert /* If YYLEN is nonzero, implement the default value of the action: 3008b7c0c8c1SCy Schubert '$$ = $1'. 3009b7c0c8c1SCy Schubert 3010b7c0c8c1SCy Schubert Otherwise, the following line sets YYVAL to garbage. 3011b7c0c8c1SCy Schubert This behavior is undocumented and Bison 3012b7c0c8c1SCy Schubert users should not rely upon it. Assigning to YYVAL 3013b7c0c8c1SCy Schubert unconditionally makes the parser a bit smaller, and it avoids a 3014b7c0c8c1SCy Schubert GCC warning that YYVAL may be used uninitialized. */ 3015b7c0c8c1SCy Schubert yyval = yyvsp[1-yylen]; 3016b7c0c8c1SCy Schubert 3017b7c0c8c1SCy Schubert 3018b7c0c8c1SCy Schubert YY_REDUCE_PRINT (yyn); 3019b7c0c8c1SCy Schubert switch (yyn) 3020b7c0c8c1SCy Schubert { 3021b7c0c8c1SCy Schubert case 18: /* force_toplevel: VAR_FORCE_TOPLEVEL */ 3022*46d2f618SCy Schubert #line 224 "util/configparser.y" 3023b7c0c8c1SCy Schubert { 3024b7c0c8c1SCy Schubert OUTYY(("\nP(force-toplevel)\n")); 3025b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 0; 3026b7c0c8c1SCy Schubert } 3027*46d2f618SCy Schubert #line 3028 "util/configparser.c" 3028b7c0c8c1SCy Schubert break; 3029b7c0c8c1SCy Schubert 3030b7c0c8c1SCy Schubert case 19: /* serverstart: VAR_SERVER */ 3031*46d2f618SCy Schubert #line 231 "util/configparser.y" 3032b7c0c8c1SCy Schubert { 3033b7c0c8c1SCy Schubert OUTYY(("\nP(server:)\n")); 3034b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1; 3035b7c0c8c1SCy Schubert } 3036*46d2f618SCy Schubert #line 3037 "util/configparser.c" 3037b7c0c8c1SCy Schubert break; 3038b7c0c8c1SCy Schubert 3039*46d2f618SCy Schubert case 279: /* stub_clause: stubstart contents_stub */ 3040*46d2f618SCy Schubert #line 355 "util/configparser.y" 3041*46d2f618SCy Schubert { 3042*46d2f618SCy Schubert /* stub end */ 3043*46d2f618SCy Schubert if(cfg_parser->cfg->stubs && 3044*46d2f618SCy Schubert !cfg_parser->cfg->stubs->name) 3045*46d2f618SCy Schubert yyerror("stub-zone without name"); 3046*46d2f618SCy Schubert } 3047*46d2f618SCy Schubert #line 3048 "util/configparser.c" 3048*46d2f618SCy Schubert break; 3049*46d2f618SCy Schubert 3050*46d2f618SCy Schubert case 280: /* stubstart: VAR_STUB_ZONE */ 3051*46d2f618SCy Schubert #line 363 "util/configparser.y" 3052b7c0c8c1SCy Schubert { 3053b7c0c8c1SCy Schubert struct config_stub* s; 3054b7c0c8c1SCy Schubert OUTYY(("\nP(stub_zone:)\n")); 3055b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1; 3056b7c0c8c1SCy Schubert s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); 3057b7c0c8c1SCy Schubert if(s) { 3058b7c0c8c1SCy Schubert s->next = cfg_parser->cfg->stubs; 3059b7c0c8c1SCy Schubert cfg_parser->cfg->stubs = s; 3060b7c0c8c1SCy Schubert } else { 3061b7c0c8c1SCy Schubert yyerror("out of memory"); 3062b7c0c8c1SCy Schubert } 3063b7c0c8c1SCy Schubert } 3064*46d2f618SCy Schubert #line 3065 "util/configparser.c" 3065b7c0c8c1SCy Schubert break; 3066b7c0c8c1SCy Schubert 3067*46d2f618SCy Schubert case 291: /* forward_clause: forwardstart contents_forward */ 3068*46d2f618SCy Schubert #line 382 "util/configparser.y" 306956850988SCy Schubert { 3070*46d2f618SCy Schubert /* forward end */ 3071*46d2f618SCy Schubert if(cfg_parser->cfg->forwards && 3072*46d2f618SCy Schubert !cfg_parser->cfg->forwards->name) 3073*46d2f618SCy Schubert yyerror("forward-zone without name"); 307456850988SCy Schubert } 3075*46d2f618SCy Schubert #line 3076 "util/configparser.c" 307656850988SCy Schubert break; 307756850988SCy Schubert 3078*46d2f618SCy Schubert case 292: /* forwardstart: VAR_FORWARD_ZONE */ 3079*46d2f618SCy Schubert #line 390 "util/configparser.y" 3080b7c0c8c1SCy Schubert { 3081b7c0c8c1SCy Schubert struct config_stub* s; 3082b7c0c8c1SCy Schubert OUTYY(("\nP(forward_zone:)\n")); 3083b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1; 3084b7c0c8c1SCy Schubert s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); 3085b7c0c8c1SCy Schubert if(s) { 3086b7c0c8c1SCy Schubert s->next = cfg_parser->cfg->forwards; 3087b7c0c8c1SCy Schubert cfg_parser->cfg->forwards = s; 3088b7c0c8c1SCy Schubert } else { 3089b7c0c8c1SCy Schubert yyerror("out of memory"); 3090b7c0c8c1SCy Schubert } 3091b7c0c8c1SCy Schubert } 3092*46d2f618SCy Schubert #line 3093 "util/configparser.c" 3093b7c0c8c1SCy Schubert break; 3094b7c0c8c1SCy Schubert 3095*46d2f618SCy Schubert case 302: /* view_clause: viewstart contents_view */ 3096*46d2f618SCy Schubert #line 409 "util/configparser.y" 309756850988SCy Schubert { 3098*46d2f618SCy Schubert /* view end */ 3099*46d2f618SCy Schubert if(cfg_parser->cfg->views && 3100*46d2f618SCy Schubert !cfg_parser->cfg->views->name) 3101*46d2f618SCy Schubert yyerror("view without name"); 310256850988SCy Schubert } 3103*46d2f618SCy Schubert #line 3104 "util/configparser.c" 310456850988SCy Schubert break; 310556850988SCy Schubert 3106*46d2f618SCy Schubert case 303: /* viewstart: VAR_VIEW */ 3107*46d2f618SCy Schubert #line 417 "util/configparser.y" 3108b7c0c8c1SCy Schubert { 3109b7c0c8c1SCy Schubert struct config_view* s; 3110b7c0c8c1SCy Schubert OUTYY(("\nP(view:)\n")); 3111b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1; 3112b7c0c8c1SCy Schubert s = (struct config_view*)calloc(1, sizeof(struct config_view)); 3113b7c0c8c1SCy Schubert if(s) { 3114b7c0c8c1SCy Schubert s->next = cfg_parser->cfg->views; 3115b7c0c8c1SCy Schubert cfg_parser->cfg->views = s; 3116b7c0c8c1SCy Schubert } else { 3117b7c0c8c1SCy Schubert yyerror("out of memory"); 3118b7c0c8c1SCy Schubert } 3119b7c0c8c1SCy Schubert } 3120*46d2f618SCy Schubert #line 3121 "util/configparser.c" 3121b7c0c8c1SCy Schubert break; 3122b7c0c8c1SCy Schubert 3123*46d2f618SCy Schubert case 313: /* authstart: VAR_AUTH_ZONE */ 3124*46d2f618SCy Schubert #line 436 "util/configparser.y" 3125b7c0c8c1SCy Schubert { 3126b7c0c8c1SCy Schubert struct config_auth* s; 3127b7c0c8c1SCy Schubert OUTYY(("\nP(auth_zone:)\n")); 3128b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1; 3129b7c0c8c1SCy Schubert s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); 3130b7c0c8c1SCy Schubert if(s) { 3131b7c0c8c1SCy Schubert s->next = cfg_parser->cfg->auths; 3132b7c0c8c1SCy Schubert cfg_parser->cfg->auths = s; 3133b7c0c8c1SCy Schubert /* defaults for auth zone */ 3134b7c0c8c1SCy Schubert s->for_downstream = 1; 3135b7c0c8c1SCy Schubert s->for_upstream = 1; 3136b7c0c8c1SCy Schubert s->fallback_enabled = 0; 3137b7c0c8c1SCy Schubert s->zonemd_check = 0; 3138b7c0c8c1SCy Schubert s->zonemd_reject_absence = 0; 3139b7c0c8c1SCy Schubert s->isrpz = 0; 3140b7c0c8c1SCy Schubert } else { 3141b7c0c8c1SCy Schubert yyerror("out of memory"); 3142b7c0c8c1SCy Schubert } 3143b7c0c8c1SCy Schubert } 3144*46d2f618SCy Schubert #line 3145 "util/configparser.c" 3145b7c0c8c1SCy Schubert break; 3146b7c0c8c1SCy Schubert 3147*46d2f618SCy Schubert case 326: /* rpz_tag: VAR_TAGS STRING_ARG */ 3148*46d2f618SCy Schubert #line 464 "util/configparser.y" 3149b7c0c8c1SCy Schubert { 3150b7c0c8c1SCy Schubert uint8_t* bitlist; 3151b7c0c8c1SCy Schubert size_t len = 0; 3152b7c0c8c1SCy Schubert OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[0].str))); 3153b7c0c8c1SCy Schubert bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), 3154b7c0c8c1SCy Schubert &len); 3155b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3156b7c0c8c1SCy Schubert if(!bitlist) { 3157b7c0c8c1SCy Schubert yyerror("could not parse tags, (define-tag them first)"); 3158b7c0c8c1SCy Schubert } 3159b7c0c8c1SCy Schubert if(bitlist) { 3160b7c0c8c1SCy Schubert cfg_parser->cfg->auths->rpz_taglist = bitlist; 3161b7c0c8c1SCy Schubert cfg_parser->cfg->auths->rpz_taglistlen = len; 3162b7c0c8c1SCy Schubert 3163b7c0c8c1SCy Schubert } 3164b7c0c8c1SCy Schubert } 3165*46d2f618SCy Schubert #line 3166 "util/configparser.c" 3166b7c0c8c1SCy Schubert break; 3167b7c0c8c1SCy Schubert 3168*46d2f618SCy Schubert case 327: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */ 3169*46d2f618SCy Schubert #line 483 "util/configparser.y" 3170b7c0c8c1SCy Schubert { 3171b7c0c8c1SCy Schubert OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); 3172b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && 3173b7c0c8c1SCy Schubert strcmp((yyvsp[0].str), "passthru")!=0 && strcmp((yyvsp[0].str), "drop")!=0 && 3174b7c0c8c1SCy Schubert strcmp((yyvsp[0].str), "cname")!=0 && strcmp((yyvsp[0].str), "disabled")!=0) { 3175b7c0c8c1SCy Schubert yyerror("rpz-action-override action: expected nxdomain, " 3176b7c0c8c1SCy Schubert "nodata, passthru, drop, cname or disabled"); 3177b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3178b7c0c8c1SCy Schubert cfg_parser->cfg->auths->rpz_action_override = NULL; 3179b7c0c8c1SCy Schubert } 3180b7c0c8c1SCy Schubert else { 3181b7c0c8c1SCy Schubert cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); 3182b7c0c8c1SCy Schubert } 3183b7c0c8c1SCy Schubert } 3184*46d2f618SCy Schubert #line 3185 "util/configparser.c" 3185b7c0c8c1SCy Schubert break; 3186b7c0c8c1SCy Schubert 3187*46d2f618SCy Schubert case 328: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */ 3188*46d2f618SCy Schubert #line 500 "util/configparser.y" 3189b7c0c8c1SCy Schubert { 3190b7c0c8c1SCy Schubert OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); 3191b7c0c8c1SCy Schubert free(cfg_parser->cfg->auths->rpz_cname); 3192b7c0c8c1SCy Schubert cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); 3193b7c0c8c1SCy Schubert } 3194*46d2f618SCy Schubert #line 3195 "util/configparser.c" 3195b7c0c8c1SCy Schubert break; 3196b7c0c8c1SCy Schubert 3197*46d2f618SCy Schubert case 329: /* rpz_log: VAR_RPZ_LOG STRING_ARG */ 3198*46d2f618SCy Schubert #line 508 "util/configparser.y" 3199b7c0c8c1SCy Schubert { 3200b7c0c8c1SCy Schubert OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); 3201b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3202b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3203b7c0c8c1SCy Schubert else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); 3204b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3205b7c0c8c1SCy Schubert } 3206*46d2f618SCy Schubert #line 3207 "util/configparser.c" 3207b7c0c8c1SCy Schubert break; 3208b7c0c8c1SCy Schubert 3209*46d2f618SCy Schubert case 330: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */ 3210*46d2f618SCy Schubert #line 518 "util/configparser.y" 3211b7c0c8c1SCy Schubert { 3212b7c0c8c1SCy Schubert OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); 3213b7c0c8c1SCy Schubert free(cfg_parser->cfg->auths->rpz_log_name); 3214b7c0c8c1SCy Schubert cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); 3215b7c0c8c1SCy Schubert } 3216*46d2f618SCy Schubert #line 3217 "util/configparser.c" 3217b7c0c8c1SCy Schubert break; 3218b7c0c8c1SCy Schubert 3219*46d2f618SCy Schubert case 331: /* rpz_signal_nxdomain_ra: VAR_RPZ_SIGNAL_NXDOMAIN_RA STRING_ARG */ 3220*46d2f618SCy Schubert #line 525 "util/configparser.y" 3221b7c0c8c1SCy Schubert { 3222b7c0c8c1SCy Schubert OUTYY(("P(rpz_signal_nxdomain_ra:%s)\n", (yyvsp[0].str))); 3223b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3224b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3225b7c0c8c1SCy Schubert else cfg_parser->cfg->auths->rpz_signal_nxdomain_ra = (strcmp((yyvsp[0].str), "yes")==0); 3226b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3227b7c0c8c1SCy Schubert } 3228*46d2f618SCy Schubert #line 3229 "util/configparser.c" 3229b7c0c8c1SCy Schubert break; 3230b7c0c8c1SCy Schubert 3231*46d2f618SCy Schubert case 332: /* rpzstart: VAR_RPZ */ 3232*46d2f618SCy Schubert #line 535 "util/configparser.y" 3233b7c0c8c1SCy Schubert { 3234b7c0c8c1SCy Schubert struct config_auth* s; 3235b7c0c8c1SCy Schubert OUTYY(("\nP(rpz:)\n")); 3236b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1; 3237b7c0c8c1SCy Schubert s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); 3238b7c0c8c1SCy Schubert if(s) { 3239b7c0c8c1SCy Schubert s->next = cfg_parser->cfg->auths; 3240b7c0c8c1SCy Schubert cfg_parser->cfg->auths = s; 3241b7c0c8c1SCy Schubert /* defaults for RPZ auth zone */ 3242b7c0c8c1SCy Schubert s->for_downstream = 0; 3243b7c0c8c1SCy Schubert s->for_upstream = 0; 3244b7c0c8c1SCy Schubert s->fallback_enabled = 0; 3245b7c0c8c1SCy Schubert s->isrpz = 1; 3246b7c0c8c1SCy Schubert } else { 3247b7c0c8c1SCy Schubert yyerror("out of memory"); 3248b7c0c8c1SCy Schubert } 3249b7c0c8c1SCy Schubert } 3250*46d2f618SCy Schubert #line 3251 "util/configparser.c" 3251b7c0c8c1SCy Schubert break; 3252b7c0c8c1SCy Schubert 3253*46d2f618SCy Schubert case 347: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */ 3254*46d2f618SCy Schubert #line 560 "util/configparser.y" 3255b7c0c8c1SCy Schubert { 3256b7c0c8c1SCy Schubert OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); 3257b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3258b7c0c8c1SCy Schubert yyerror("number expected"); 3259b7c0c8c1SCy Schubert else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); 3260b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3261b7c0c8c1SCy Schubert } 3262*46d2f618SCy Schubert #line 3263 "util/configparser.c" 3263b7c0c8c1SCy Schubert break; 3264b7c0c8c1SCy Schubert 3265*46d2f618SCy Schubert case 348: /* server_verbosity: VAR_VERBOSITY STRING_ARG */ 3266*46d2f618SCy Schubert #line 569 "util/configparser.y" 3267b7c0c8c1SCy Schubert { 3268b7c0c8c1SCy Schubert OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); 3269b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3270b7c0c8c1SCy Schubert yyerror("number expected"); 3271b7c0c8c1SCy Schubert else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); 3272b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3273b7c0c8c1SCy Schubert } 3274*46d2f618SCy Schubert #line 3275 "util/configparser.c" 3275b7c0c8c1SCy Schubert break; 3276b7c0c8c1SCy Schubert 3277*46d2f618SCy Schubert case 349: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */ 3278*46d2f618SCy Schubert #line 578 "util/configparser.y" 3279b7c0c8c1SCy Schubert { 3280b7c0c8c1SCy Schubert OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); 3281b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) 3282b7c0c8c1SCy Schubert cfg_parser->cfg->stat_interval = 0; 3283b7c0c8c1SCy Schubert else if(atoi((yyvsp[0].str)) == 0) 3284b7c0c8c1SCy Schubert yyerror("number expected"); 3285b7c0c8c1SCy Schubert else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); 3286b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3287b7c0c8c1SCy Schubert } 3288*46d2f618SCy Schubert #line 3289 "util/configparser.c" 3289b7c0c8c1SCy Schubert break; 3290b7c0c8c1SCy Schubert 3291*46d2f618SCy Schubert case 350: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */ 3292*46d2f618SCy Schubert #line 589 "util/configparser.y" 3293b7c0c8c1SCy Schubert { 3294b7c0c8c1SCy Schubert OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); 3295b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3296b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3297b7c0c8c1SCy Schubert else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); 3298b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3299b7c0c8c1SCy Schubert } 3300*46d2f618SCy Schubert #line 3301 "util/configparser.c" 3301b7c0c8c1SCy Schubert break; 3302b7c0c8c1SCy Schubert 3303*46d2f618SCy Schubert case 351: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */ 3304*46d2f618SCy Schubert #line 598 "util/configparser.y" 3305b7c0c8c1SCy Schubert { 3306b7c0c8c1SCy Schubert OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); 3307b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3308b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3309b7c0c8c1SCy Schubert else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); 3310b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3311b7c0c8c1SCy Schubert } 3312*46d2f618SCy Schubert #line 3313 "util/configparser.c" 3313b7c0c8c1SCy Schubert break; 3314b7c0c8c1SCy Schubert 3315*46d2f618SCy Schubert case 352: /* server_statistics_inhibit_zero: VAR_STATISTICS_INHIBIT_ZERO STRING_ARG */ 3316*46d2f618SCy Schubert #line 607 "util/configparser.y" 3317b7c0c8c1SCy Schubert { 3318b7c0c8c1SCy Schubert OUTYY(("P(server_statistics_inhibit_zero:%s)\n", (yyvsp[0].str))); 3319b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3320b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3321b7c0c8c1SCy Schubert else cfg_parser->cfg->stat_inhibit_zero = (strcmp((yyvsp[0].str), "yes")==0); 3322b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3323b7c0c8c1SCy Schubert } 3324*46d2f618SCy Schubert #line 3325 "util/configparser.c" 3325b7c0c8c1SCy Schubert break; 3326b7c0c8c1SCy Schubert 3327*46d2f618SCy Schubert case 353: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */ 3328*46d2f618SCy Schubert #line 616 "util/configparser.y" 3329b7c0c8c1SCy Schubert { 3330b7c0c8c1SCy Schubert OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); 3331b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3332b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3333b7c0c8c1SCy Schubert else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); 3334b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3335b7c0c8c1SCy Schubert } 3336*46d2f618SCy Schubert #line 3337 "util/configparser.c" 3337b7c0c8c1SCy Schubert break; 3338b7c0c8c1SCy Schubert 3339*46d2f618SCy Schubert case 354: /* server_shm_key: VAR_SHM_KEY STRING_ARG */ 3340*46d2f618SCy Schubert #line 625 "util/configparser.y" 3341b7c0c8c1SCy Schubert { 3342b7c0c8c1SCy Schubert OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); 3343b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) 3344b7c0c8c1SCy Schubert cfg_parser->cfg->shm_key = 0; 3345b7c0c8c1SCy Schubert else if(atoi((yyvsp[0].str)) == 0) 3346b7c0c8c1SCy Schubert yyerror("number expected"); 3347b7c0c8c1SCy Schubert else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); 3348b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3349b7c0c8c1SCy Schubert } 3350*46d2f618SCy Schubert #line 3351 "util/configparser.c" 3351b7c0c8c1SCy Schubert break; 3352b7c0c8c1SCy Schubert 3353*46d2f618SCy Schubert case 355: /* server_port: VAR_PORT STRING_ARG */ 3354*46d2f618SCy Schubert #line 636 "util/configparser.y" 3355b7c0c8c1SCy Schubert { 3356b7c0c8c1SCy Schubert OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); 3357b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 3358b7c0c8c1SCy Schubert yyerror("port number expected"); 3359b7c0c8c1SCy Schubert else cfg_parser->cfg->port = atoi((yyvsp[0].str)); 3360b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3361b7c0c8c1SCy Schubert } 3362*46d2f618SCy Schubert #line 3363 "util/configparser.c" 3363b7c0c8c1SCy Schubert break; 3364b7c0c8c1SCy Schubert 3365*46d2f618SCy Schubert case 356: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */ 3366*46d2f618SCy Schubert #line 645 "util/configparser.y" 3367b7c0c8c1SCy Schubert { 3368b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET 3369b7c0c8c1SCy Schubert OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); 3370b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[0].str))) 3371b7c0c8c1SCy Schubert fatal_exit("out of memory adding client-subnet"); 3372b7c0c8c1SCy Schubert #else 3373b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); 3374b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3375b7c0c8c1SCy Schubert #endif 3376b7c0c8c1SCy Schubert } 3377*46d2f618SCy Schubert #line 3378 "util/configparser.c" 3378b7c0c8c1SCy Schubert break; 3379b7c0c8c1SCy Schubert 3380*46d2f618SCy Schubert case 357: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */ 3381*46d2f618SCy Schubert #line 657 "util/configparser.y" 3382b7c0c8c1SCy Schubert { 3383b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET 3384b7c0c8c1SCy Schubert OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); 3385b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone, 3386b7c0c8c1SCy Schubert (yyvsp[0].str))) 3387b7c0c8c1SCy Schubert fatal_exit("out of memory adding client-subnet-zone"); 3388b7c0c8c1SCy Schubert #else 3389b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); 3390b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3391b7c0c8c1SCy Schubert #endif 3392b7c0c8c1SCy Schubert } 3393*46d2f618SCy Schubert #line 3394 "util/configparser.c" 3394b7c0c8c1SCy Schubert break; 3395b7c0c8c1SCy Schubert 3396*46d2f618SCy Schubert case 358: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */ 3397*46d2f618SCy Schubert #line 671 "util/configparser.y" 3398b7c0c8c1SCy Schubert { 3399b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET 3400b7c0c8c1SCy Schubert OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); 3401b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3402b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3403b7c0c8c1SCy Schubert else 3404b7c0c8c1SCy Schubert cfg_parser->cfg->client_subnet_always_forward = 3405b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 3406b7c0c8c1SCy Schubert #else 3407b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); 3408b7c0c8c1SCy Schubert #endif 3409b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3410b7c0c8c1SCy Schubert } 3411*46d2f618SCy Schubert #line 3412 "util/configparser.c" 3412b7c0c8c1SCy Schubert break; 3413b7c0c8c1SCy Schubert 3414*46d2f618SCy Schubert case 359: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */ 3415*46d2f618SCy Schubert #line 686 "util/configparser.y" 3416b7c0c8c1SCy Schubert { 3417b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET 3418b7c0c8c1SCy Schubert OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); 3419b7c0c8c1SCy Schubert OUTYY(("P(Deprecated option, ignoring)\n")); 3420b7c0c8c1SCy Schubert #else 3421b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); 3422b7c0c8c1SCy Schubert #endif 3423b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3424b7c0c8c1SCy Schubert } 3425*46d2f618SCy Schubert #line 3426 "util/configparser.c" 3426b7c0c8c1SCy Schubert break; 3427b7c0c8c1SCy Schubert 3428*46d2f618SCy Schubert case 360: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */ 3429*46d2f618SCy Schubert #line 697 "util/configparser.y" 3430b7c0c8c1SCy Schubert { 3431b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET 3432b7c0c8c1SCy Schubert OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); 3433b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3434b7c0c8c1SCy Schubert yyerror("IPv4 subnet length expected"); 3435b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 32) 3436b7c0c8c1SCy Schubert cfg_parser->cfg->max_client_subnet_ipv4 = 32; 3437b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0) 3438b7c0c8c1SCy Schubert cfg_parser->cfg->max_client_subnet_ipv4 = 0; 3439b7c0c8c1SCy Schubert else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str)); 3440b7c0c8c1SCy Schubert #else 3441b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); 3442b7c0c8c1SCy Schubert #endif 3443b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3444b7c0c8c1SCy Schubert } 3445*46d2f618SCy Schubert #line 3446 "util/configparser.c" 3446b7c0c8c1SCy Schubert break; 3447b7c0c8c1SCy Schubert 3448*46d2f618SCy Schubert case 361: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */ 3449*46d2f618SCy Schubert #line 714 "util/configparser.y" 3450b7c0c8c1SCy Schubert { 3451b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET 3452b7c0c8c1SCy Schubert OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); 3453b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3454b7c0c8c1SCy Schubert yyerror("Ipv6 subnet length expected"); 3455b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 128) 3456b7c0c8c1SCy Schubert cfg_parser->cfg->max_client_subnet_ipv6 = 128; 3457b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0) 3458b7c0c8c1SCy Schubert cfg_parser->cfg->max_client_subnet_ipv6 = 0; 3459b7c0c8c1SCy Schubert else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str)); 3460b7c0c8c1SCy Schubert #else 3461b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); 3462b7c0c8c1SCy Schubert #endif 3463b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3464b7c0c8c1SCy Schubert } 3465*46d2f618SCy Schubert #line 3466 "util/configparser.c" 3466b7c0c8c1SCy Schubert break; 3467b7c0c8c1SCy Schubert 3468*46d2f618SCy Schubert case 362: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */ 3469*46d2f618SCy Schubert #line 731 "util/configparser.y" 3470b7c0c8c1SCy Schubert { 3471b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET 3472b7c0c8c1SCy Schubert OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); 3473b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3474b7c0c8c1SCy Schubert yyerror("IPv4 subnet length expected"); 3475b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 32) 3476b7c0c8c1SCy Schubert cfg_parser->cfg->min_client_subnet_ipv4 = 32; 3477b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0) 3478b7c0c8c1SCy Schubert cfg_parser->cfg->min_client_subnet_ipv4 = 0; 3479b7c0c8c1SCy Schubert else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str)); 3480b7c0c8c1SCy Schubert #else 3481b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); 3482b7c0c8c1SCy Schubert #endif 3483b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3484b7c0c8c1SCy Schubert } 3485*46d2f618SCy Schubert #line 3486 "util/configparser.c" 3486b7c0c8c1SCy Schubert break; 3487b7c0c8c1SCy Schubert 3488*46d2f618SCy Schubert case 363: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */ 3489*46d2f618SCy Schubert #line 748 "util/configparser.y" 3490b7c0c8c1SCy Schubert { 3491b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET 3492b7c0c8c1SCy Schubert OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); 3493b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3494b7c0c8c1SCy Schubert yyerror("Ipv6 subnet length expected"); 3495b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 128) 3496b7c0c8c1SCy Schubert cfg_parser->cfg->min_client_subnet_ipv6 = 128; 3497b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0) 3498b7c0c8c1SCy Schubert cfg_parser->cfg->min_client_subnet_ipv6 = 0; 3499b7c0c8c1SCy Schubert else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str)); 3500b7c0c8c1SCy Schubert #else 3501b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); 3502b7c0c8c1SCy Schubert #endif 3503b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3504b7c0c8c1SCy Schubert } 3505*46d2f618SCy Schubert #line 3506 "util/configparser.c" 3506b7c0c8c1SCy Schubert break; 3507b7c0c8c1SCy Schubert 3508*46d2f618SCy Schubert case 364: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */ 3509*46d2f618SCy Schubert #line 765 "util/configparser.y" 3510b7c0c8c1SCy Schubert { 3511b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET 3512b7c0c8c1SCy Schubert OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); 3513b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3514b7c0c8c1SCy Schubert yyerror("IPv4 ECS tree size expected"); 3515b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0) 3516b7c0c8c1SCy Schubert cfg_parser->cfg->max_ecs_tree_size_ipv4 = 0; 3517b7c0c8c1SCy Schubert else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi((yyvsp[0].str)); 3518b7c0c8c1SCy Schubert #else 3519b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); 3520b7c0c8c1SCy Schubert #endif 3521b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3522b7c0c8c1SCy Schubert } 3523*46d2f618SCy Schubert #line 3524 "util/configparser.c" 3524b7c0c8c1SCy Schubert break; 3525b7c0c8c1SCy Schubert 3526*46d2f618SCy Schubert case 365: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */ 3527*46d2f618SCy Schubert #line 780 "util/configparser.y" 3528b7c0c8c1SCy Schubert { 3529b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET 3530b7c0c8c1SCy Schubert OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); 3531b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3532b7c0c8c1SCy Schubert yyerror("IPv6 ECS tree size expected"); 3533b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0) 3534b7c0c8c1SCy Schubert cfg_parser->cfg->max_ecs_tree_size_ipv6 = 0; 3535b7c0c8c1SCy Schubert else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi((yyvsp[0].str)); 3536b7c0c8c1SCy Schubert #else 3537b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); 3538b7c0c8c1SCy Schubert #endif 3539b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3540b7c0c8c1SCy Schubert } 3541*46d2f618SCy Schubert #line 3542 "util/configparser.c" 3542b7c0c8c1SCy Schubert break; 3543b7c0c8c1SCy Schubert 3544*46d2f618SCy Schubert case 366: /* server_interface: VAR_INTERFACE STRING_ARG */ 3545*46d2f618SCy Schubert #line 795 "util/configparser.y" 3546b7c0c8c1SCy Schubert { 3547b7c0c8c1SCy Schubert OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); 3548b7c0c8c1SCy Schubert if(cfg_parser->cfg->num_ifs == 0) 3549b7c0c8c1SCy Schubert cfg_parser->cfg->ifs = calloc(1, sizeof(char*)); 3550b7c0c8c1SCy Schubert else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs, 3551b7c0c8c1SCy Schubert (cfg_parser->cfg->num_ifs+1)*sizeof(char*)); 3552b7c0c8c1SCy Schubert if(!cfg_parser->cfg->ifs) 3553b7c0c8c1SCy Schubert yyerror("out of memory"); 3554b7c0c8c1SCy Schubert else 3555b7c0c8c1SCy Schubert cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); 3556b7c0c8c1SCy Schubert } 3557*46d2f618SCy Schubert #line 3558 "util/configparser.c" 3558b7c0c8c1SCy Schubert break; 3559b7c0c8c1SCy Schubert 3560*46d2f618SCy Schubert case 367: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */ 3561*46d2f618SCy Schubert #line 808 "util/configparser.y" 3562b7c0c8c1SCy Schubert { 3563b7c0c8c1SCy Schubert OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); 3564b7c0c8c1SCy Schubert if(cfg_parser->cfg->num_out_ifs == 0) 3565b7c0c8c1SCy Schubert cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*)); 3566b7c0c8c1SCy Schubert else cfg_parser->cfg->out_ifs = realloc( 3567b7c0c8c1SCy Schubert cfg_parser->cfg->out_ifs, 3568b7c0c8c1SCy Schubert (cfg_parser->cfg->num_out_ifs+1)*sizeof(char*)); 3569b7c0c8c1SCy Schubert if(!cfg_parser->cfg->out_ifs) 3570b7c0c8c1SCy Schubert yyerror("out of memory"); 3571b7c0c8c1SCy Schubert else 3572b7c0c8c1SCy Schubert cfg_parser->cfg->out_ifs[ 3573b7c0c8c1SCy Schubert cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); 3574b7c0c8c1SCy Schubert } 3575*46d2f618SCy Schubert #line 3576 "util/configparser.c" 3576b7c0c8c1SCy Schubert break; 3577b7c0c8c1SCy Schubert 3578*46d2f618SCy Schubert case 368: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */ 3579*46d2f618SCy Schubert #line 823 "util/configparser.y" 3580b7c0c8c1SCy Schubert { 3581b7c0c8c1SCy Schubert OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); 3582b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 3583b7c0c8c1SCy Schubert yyerror("number expected"); 3584b7c0c8c1SCy Schubert else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); 3585b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3586b7c0c8c1SCy Schubert } 3587*46d2f618SCy Schubert #line 3588 "util/configparser.c" 3588b7c0c8c1SCy Schubert break; 3589b7c0c8c1SCy Schubert 3590*46d2f618SCy Schubert case 369: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */ 3591*46d2f618SCy Schubert #line 832 "util/configparser.y" 3592b7c0c8c1SCy Schubert { 3593b7c0c8c1SCy Schubert OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); 3594b7c0c8c1SCy Schubert if(!cfg_mark_ports((yyvsp[0].str), 1, 3595b7c0c8c1SCy Schubert cfg_parser->cfg->outgoing_avail_ports, 65536)) 3596b7c0c8c1SCy Schubert yyerror("port number or range (\"low-high\") expected"); 3597b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3598b7c0c8c1SCy Schubert } 3599*46d2f618SCy Schubert #line 3600 "util/configparser.c" 3600b7c0c8c1SCy Schubert break; 3601b7c0c8c1SCy Schubert 3602*46d2f618SCy Schubert case 370: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */ 3603*46d2f618SCy Schubert #line 841 "util/configparser.y" 3604b7c0c8c1SCy Schubert { 3605b7c0c8c1SCy Schubert OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); 3606b7c0c8c1SCy Schubert if(!cfg_mark_ports((yyvsp[0].str), 0, 3607b7c0c8c1SCy Schubert cfg_parser->cfg->outgoing_avail_ports, 65536)) 3608b7c0c8c1SCy Schubert yyerror("port number or range (\"low-high\") expected"); 3609b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3610b7c0c8c1SCy Schubert } 3611*46d2f618SCy Schubert #line 3612 "util/configparser.c" 3612b7c0c8c1SCy Schubert break; 3613b7c0c8c1SCy Schubert 3614*46d2f618SCy Schubert case 371: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */ 3615*46d2f618SCy Schubert #line 850 "util/configparser.y" 3616b7c0c8c1SCy Schubert { 3617b7c0c8c1SCy Schubert OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); 3618b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3619b7c0c8c1SCy Schubert yyerror("number expected"); 3620b7c0c8c1SCy Schubert else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); 3621b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3622b7c0c8c1SCy Schubert } 3623*46d2f618SCy Schubert #line 3624 "util/configparser.c" 3624b7c0c8c1SCy Schubert break; 3625b7c0c8c1SCy Schubert 3626*46d2f618SCy Schubert case 372: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */ 3627*46d2f618SCy Schubert #line 859 "util/configparser.y" 3628b7c0c8c1SCy Schubert { 3629b7c0c8c1SCy Schubert OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); 3630b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3631b7c0c8c1SCy Schubert yyerror("number expected"); 3632b7c0c8c1SCy Schubert else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); 3633b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3634b7c0c8c1SCy Schubert } 3635*46d2f618SCy Schubert #line 3636 "util/configparser.c" 3636b7c0c8c1SCy Schubert break; 3637b7c0c8c1SCy Schubert 3638*46d2f618SCy Schubert case 373: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */ 3639*46d2f618SCy Schubert #line 868 "util/configparser.y" 3640b7c0c8c1SCy Schubert { 3641b7c0c8c1SCy Schubert OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); 3642b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3643b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3644b7c0c8c1SCy Schubert else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); 3645b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3646b7c0c8c1SCy Schubert } 3647*46d2f618SCy Schubert #line 3648 "util/configparser.c" 3648b7c0c8c1SCy Schubert break; 3649b7c0c8c1SCy Schubert 3650*46d2f618SCy Schubert case 374: /* server_interface_automatic_ports: VAR_INTERFACE_AUTOMATIC_PORTS STRING_ARG */ 3651*46d2f618SCy Schubert #line 877 "util/configparser.y" 3652b7c0c8c1SCy Schubert { 3653b7c0c8c1SCy Schubert OUTYY(("P(server_interface_automatic_ports:%s)\n", (yyvsp[0].str))); 3654b7c0c8c1SCy Schubert free(cfg_parser->cfg->if_automatic_ports); 3655b7c0c8c1SCy Schubert cfg_parser->cfg->if_automatic_ports = (yyvsp[0].str); 3656b7c0c8c1SCy Schubert } 3657*46d2f618SCy Schubert #line 3658 "util/configparser.c" 3658b7c0c8c1SCy Schubert break; 3659b7c0c8c1SCy Schubert 3660*46d2f618SCy Schubert case 375: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */ 3661*46d2f618SCy Schubert #line 884 "util/configparser.y" 3662b7c0c8c1SCy Schubert { 3663b7c0c8c1SCy Schubert OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); 3664b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3665b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3666b7c0c8c1SCy Schubert else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); 3667b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3668b7c0c8c1SCy Schubert } 3669*46d2f618SCy Schubert #line 3670 "util/configparser.c" 3670b7c0c8c1SCy Schubert break; 3671b7c0c8c1SCy Schubert 3672*46d2f618SCy Schubert case 376: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */ 3673*46d2f618SCy Schubert #line 893 "util/configparser.y" 3674b7c0c8c1SCy Schubert { 3675b7c0c8c1SCy Schubert OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); 3676b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3677b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3678b7c0c8c1SCy Schubert else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); 3679b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3680b7c0c8c1SCy Schubert } 3681*46d2f618SCy Schubert #line 3682 "util/configparser.c" 3682b7c0c8c1SCy Schubert break; 3683b7c0c8c1SCy Schubert 3684*46d2f618SCy Schubert case 377: /* server_do_nat64: VAR_DO_NAT64 STRING_ARG */ 3685*46d2f618SCy Schubert #line 902 "util/configparser.y" 3686b7c0c8c1SCy Schubert { 3687b7c0c8c1SCy Schubert OUTYY(("P(server_do_nat64:%s)\n", (yyvsp[0].str))); 3688b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3689b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3690b7c0c8c1SCy Schubert else cfg_parser->cfg->do_nat64 = (strcmp((yyvsp[0].str), "yes")==0); 3691b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3692b7c0c8c1SCy Schubert } 3693*46d2f618SCy Schubert #line 3694 "util/configparser.c" 3694b7c0c8c1SCy Schubert break; 3695b7c0c8c1SCy Schubert 3696*46d2f618SCy Schubert case 378: /* server_do_udp: VAR_DO_UDP STRING_ARG */ 3697*46d2f618SCy Schubert #line 911 "util/configparser.y" 3698b7c0c8c1SCy Schubert { 3699b7c0c8c1SCy Schubert OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); 3700b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3701b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3702b7c0c8c1SCy Schubert else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); 3703b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3704b7c0c8c1SCy Schubert } 3705*46d2f618SCy Schubert #line 3706 "util/configparser.c" 3706b7c0c8c1SCy Schubert break; 3707b7c0c8c1SCy Schubert 3708*46d2f618SCy Schubert case 379: /* server_do_tcp: VAR_DO_TCP STRING_ARG */ 3709*46d2f618SCy Schubert #line 920 "util/configparser.y" 3710b7c0c8c1SCy Schubert { 3711b7c0c8c1SCy Schubert OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); 3712b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3713b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3714b7c0c8c1SCy Schubert else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); 3715b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3716b7c0c8c1SCy Schubert } 3717*46d2f618SCy Schubert #line 3718 "util/configparser.c" 3718b7c0c8c1SCy Schubert break; 3719b7c0c8c1SCy Schubert 3720*46d2f618SCy Schubert case 380: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */ 3721*46d2f618SCy Schubert #line 929 "util/configparser.y" 3722b7c0c8c1SCy Schubert { 3723b7c0c8c1SCy Schubert OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); 3724b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3725b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3726b7c0c8c1SCy Schubert else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); 3727b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3728b7c0c8c1SCy Schubert } 3729*46d2f618SCy Schubert #line 3730 "util/configparser.c" 3730b7c0c8c1SCy Schubert break; 3731b7c0c8c1SCy Schubert 3732*46d2f618SCy Schubert case 381: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */ 3733*46d2f618SCy Schubert #line 938 "util/configparser.y" 3734b7c0c8c1SCy Schubert { 3735b7c0c8c1SCy Schubert OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); 3736b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3737b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3738b7c0c8c1SCy Schubert else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); 3739b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3740b7c0c8c1SCy Schubert } 3741*46d2f618SCy Schubert #line 3742 "util/configparser.c" 3742b7c0c8c1SCy Schubert break; 3743b7c0c8c1SCy Schubert 3744*46d2f618SCy Schubert case 382: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */ 3745*46d2f618SCy Schubert #line 947 "util/configparser.y" 3746b7c0c8c1SCy Schubert { 3747b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); 3748b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3749b7c0c8c1SCy Schubert yyerror("number expected"); 3750b7c0c8c1SCy Schubert else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); 3751b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3752b7c0c8c1SCy Schubert } 3753*46d2f618SCy Schubert #line 3754 "util/configparser.c" 3754b7c0c8c1SCy Schubert break; 3755b7c0c8c1SCy Schubert 3756*46d2f618SCy Schubert case 383: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */ 3757*46d2f618SCy Schubert #line 956 "util/configparser.y" 3758b7c0c8c1SCy Schubert { 3759b7c0c8c1SCy Schubert OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); 3760b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3761b7c0c8c1SCy Schubert yyerror("number expected"); 3762b7c0c8c1SCy Schubert else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); 3763b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3764b7c0c8c1SCy Schubert } 3765*46d2f618SCy Schubert #line 3766 "util/configparser.c" 3766b7c0c8c1SCy Schubert break; 3767b7c0c8c1SCy Schubert 3768*46d2f618SCy Schubert case 384: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */ 3769*46d2f618SCy Schubert #line 965 "util/configparser.y" 3770b7c0c8c1SCy Schubert { 3771b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); 3772b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3773b7c0c8c1SCy Schubert yyerror("number expected"); 3774b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 120000) 3775b7c0c8c1SCy Schubert cfg_parser->cfg->tcp_idle_timeout = 120000; 3776b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 1) 3777b7c0c8c1SCy Schubert cfg_parser->cfg->tcp_idle_timeout = 1; 3778b7c0c8c1SCy Schubert else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); 3779b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3780b7c0c8c1SCy Schubert } 3781*46d2f618SCy Schubert #line 3782 "util/configparser.c" 3782b7c0c8c1SCy Schubert break; 3783b7c0c8c1SCy Schubert 3784*46d2f618SCy Schubert case 385: /* server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG */ 3785*46d2f618SCy Schubert #line 978 "util/configparser.y" 3786b7c0c8c1SCy Schubert { 3787b7c0c8c1SCy Schubert OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str))); 3788b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3789b7c0c8c1SCy Schubert yyerror("number expected"); 3790b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 1) 3791b7c0c8c1SCy Schubert cfg_parser->cfg->max_reuse_tcp_queries = 0; 3792b7c0c8c1SCy Schubert else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str)); 3793b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3794b7c0c8c1SCy Schubert } 3795*46d2f618SCy Schubert #line 3796 "util/configparser.c" 3796b7c0c8c1SCy Schubert break; 3797b7c0c8c1SCy Schubert 3798*46d2f618SCy Schubert case 386: /* server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG */ 3799*46d2f618SCy Schubert #line 989 "util/configparser.y" 3800b7c0c8c1SCy Schubert { 3801b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str))); 3802b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3803b7c0c8c1SCy Schubert yyerror("number expected"); 3804b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 1) 3805b7c0c8c1SCy Schubert cfg_parser->cfg->tcp_reuse_timeout = 0; 3806b7c0c8c1SCy Schubert else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str)); 3807b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3808b7c0c8c1SCy Schubert } 3809*46d2f618SCy Schubert #line 3810 "util/configparser.c" 3810b7c0c8c1SCy Schubert break; 3811b7c0c8c1SCy Schubert 3812*46d2f618SCy Schubert case 387: /* server_tcp_auth_query_timeout: VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG */ 3813*46d2f618SCy Schubert #line 1000 "util/configparser.y" 3814b7c0c8c1SCy Schubert { 3815b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[0].str))); 3816b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3817b7c0c8c1SCy Schubert yyerror("number expected"); 3818b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 1) 3819b7c0c8c1SCy Schubert cfg_parser->cfg->tcp_auth_query_timeout = 0; 3820b7c0c8c1SCy Schubert else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str)); 3821b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3822b7c0c8c1SCy Schubert } 3823*46d2f618SCy Schubert #line 3824 "util/configparser.c" 3824b7c0c8c1SCy Schubert break; 3825b7c0c8c1SCy Schubert 3826*46d2f618SCy Schubert case 388: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */ 3827*46d2f618SCy Schubert #line 1011 "util/configparser.y" 3828b7c0c8c1SCy Schubert { 3829b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); 3830b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3831b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3832b7c0c8c1SCy Schubert else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); 3833b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3834b7c0c8c1SCy Schubert } 3835*46d2f618SCy Schubert #line 3836 "util/configparser.c" 3836b7c0c8c1SCy Schubert break; 3837b7c0c8c1SCy Schubert 3838*46d2f618SCy Schubert case 389: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */ 3839*46d2f618SCy Schubert #line 1020 "util/configparser.y" 3840b7c0c8c1SCy Schubert { 3841b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); 3842b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3843b7c0c8c1SCy Schubert yyerror("number expected"); 3844b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 6553500) 3845b7c0c8c1SCy Schubert cfg_parser->cfg->tcp_keepalive_timeout = 6553500; 3846b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 1) 3847b7c0c8c1SCy Schubert cfg_parser->cfg->tcp_keepalive_timeout = 0; 3848b7c0c8c1SCy Schubert else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); 3849b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3850b7c0c8c1SCy Schubert } 3851*46d2f618SCy Schubert #line 3852 "util/configparser.c" 3852b7c0c8c1SCy Schubert break; 3853b7c0c8c1SCy Schubert 3854*46d2f618SCy Schubert case 390: /* server_sock_queue_timeout: VAR_SOCK_QUEUE_TIMEOUT STRING_ARG */ 3855*46d2f618SCy Schubert #line 1033 "util/configparser.y" 3856b7c0c8c1SCy Schubert { 3857b7c0c8c1SCy Schubert OUTYY(("P(server_sock_queue_timeout:%s)\n", (yyvsp[0].str))); 3858b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 3859b7c0c8c1SCy Schubert yyerror("number expected"); 3860b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 6553500) 3861b7c0c8c1SCy Schubert cfg_parser->cfg->sock_queue_timeout = 6553500; 3862b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 1) 3863b7c0c8c1SCy Schubert cfg_parser->cfg->sock_queue_timeout = 0; 3864b7c0c8c1SCy Schubert else cfg_parser->cfg->sock_queue_timeout = atoi((yyvsp[0].str)); 3865b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3866b7c0c8c1SCy Schubert } 3867*46d2f618SCy Schubert #line 3868 "util/configparser.c" 3868b7c0c8c1SCy Schubert break; 3869b7c0c8c1SCy Schubert 3870*46d2f618SCy Schubert case 391: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */ 3871*46d2f618SCy Schubert #line 1046 "util/configparser.y" 3872b7c0c8c1SCy Schubert { 3873b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); 3874b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3875b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3876b7c0c8c1SCy Schubert else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); 3877b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3878b7c0c8c1SCy Schubert } 3879*46d2f618SCy Schubert #line 3880 "util/configparser.c" 3880b7c0c8c1SCy Schubert break; 3881b7c0c8c1SCy Schubert 3882*46d2f618SCy Schubert case 392: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */ 3883*46d2f618SCy Schubert #line 1055 "util/configparser.y" 3884b7c0c8c1SCy Schubert { 3885b7c0c8c1SCy Schubert OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); 3886b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3887b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3888b7c0c8c1SCy Schubert else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); 3889b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3890b7c0c8c1SCy Schubert } 3891*46d2f618SCy Schubert #line 3892 "util/configparser.c" 3892b7c0c8c1SCy Schubert break; 3893b7c0c8c1SCy Schubert 3894*46d2f618SCy Schubert case 393: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */ 3895*46d2f618SCy Schubert #line 1064 "util/configparser.y" 3896b7c0c8c1SCy Schubert { 3897b7c0c8c1SCy Schubert OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); 3898b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3899b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3900b7c0c8c1SCy Schubert else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); 3901b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3902b7c0c8c1SCy Schubert } 3903*46d2f618SCy Schubert #line 3904 "util/configparser.c" 3904b7c0c8c1SCy Schubert break; 3905b7c0c8c1SCy Schubert 3906*46d2f618SCy Schubert case 394: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */ 3907*46d2f618SCy Schubert #line 1073 "util/configparser.y" 3908b7c0c8c1SCy Schubert { 3909b7c0c8c1SCy Schubert OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); 3910b7c0c8c1SCy Schubert free(cfg_parser->cfg->ssl_service_key); 3911b7c0c8c1SCy Schubert cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); 3912b7c0c8c1SCy Schubert } 3913*46d2f618SCy Schubert #line 3914 "util/configparser.c" 3914b7c0c8c1SCy Schubert break; 3915b7c0c8c1SCy Schubert 3916*46d2f618SCy Schubert case 395: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */ 3917*46d2f618SCy Schubert #line 1080 "util/configparser.y" 3918b7c0c8c1SCy Schubert { 3919b7c0c8c1SCy Schubert OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); 3920b7c0c8c1SCy Schubert free(cfg_parser->cfg->ssl_service_pem); 3921b7c0c8c1SCy Schubert cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); 3922b7c0c8c1SCy Schubert } 3923*46d2f618SCy Schubert #line 3924 "util/configparser.c" 3924b7c0c8c1SCy Schubert break; 3925b7c0c8c1SCy Schubert 3926*46d2f618SCy Schubert case 396: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */ 3927*46d2f618SCy Schubert #line 1087 "util/configparser.y" 3928b7c0c8c1SCy Schubert { 3929b7c0c8c1SCy Schubert OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); 3930b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 3931b7c0c8c1SCy Schubert yyerror("port number expected"); 3932b7c0c8c1SCy Schubert else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); 3933b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3934b7c0c8c1SCy Schubert } 3935*46d2f618SCy Schubert #line 3936 "util/configparser.c" 3936b7c0c8c1SCy Schubert break; 3937b7c0c8c1SCy Schubert 3938*46d2f618SCy Schubert case 397: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */ 3939*46d2f618SCy Schubert #line 1096 "util/configparser.y" 3940b7c0c8c1SCy Schubert { 3941b7c0c8c1SCy Schubert OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); 3942b7c0c8c1SCy Schubert free(cfg_parser->cfg->tls_cert_bundle); 3943b7c0c8c1SCy Schubert cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); 3944b7c0c8c1SCy Schubert } 3945*46d2f618SCy Schubert #line 3946 "util/configparser.c" 3946b7c0c8c1SCy Schubert break; 3947b7c0c8c1SCy Schubert 3948*46d2f618SCy Schubert case 398: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */ 3949*46d2f618SCy Schubert #line 1103 "util/configparser.y" 3950b7c0c8c1SCy Schubert { 3951b7c0c8c1SCy Schubert OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); 3952b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 3953b7c0c8c1SCy Schubert yyerror("expected yes or no."); 3954b7c0c8c1SCy Schubert else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); 3955b7c0c8c1SCy Schubert free((yyvsp[0].str)); 3956b7c0c8c1SCy Schubert } 3957*46d2f618SCy Schubert #line 3958 "util/configparser.c" 3958b7c0c8c1SCy Schubert break; 3959b7c0c8c1SCy Schubert 3960*46d2f618SCy Schubert case 399: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */ 3961*46d2f618SCy Schubert #line 1112 "util/configparser.y" 3962b7c0c8c1SCy Schubert { 3963b7c0c8c1SCy Schubert OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); 3964b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, 3965b7c0c8c1SCy Schubert (yyvsp[0].str))) 3966b7c0c8c1SCy Schubert yyerror("out of memory"); 3967b7c0c8c1SCy Schubert } 3968*46d2f618SCy Schubert #line 3969 "util/configparser.c" 3969b7c0c8c1SCy Schubert break; 3970b7c0c8c1SCy Schubert 3971*46d2f618SCy Schubert case 400: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */ 3972*46d2f618SCy Schubert #line 1120 "util/configparser.y" 3973b7c0c8c1SCy Schubert { 3974b7c0c8c1SCy Schubert OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); 3975b7c0c8c1SCy Schubert free(cfg_parser->cfg->tls_ciphers); 3976b7c0c8c1SCy Schubert cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); 3977b7c0c8c1SCy Schubert } 3978*46d2f618SCy Schubert #line 3979 "util/configparser.c" 3979b7c0c8c1SCy Schubert break; 3980b7c0c8c1SCy Schubert 3981*46d2f618SCy Schubert case 401: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */ 3982*46d2f618SCy Schubert #line 1127 "util/configparser.y" 3983b7c0c8c1SCy Schubert { 3984b7c0c8c1SCy Schubert OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); 3985b7c0c8c1SCy Schubert free(cfg_parser->cfg->tls_ciphersuites); 3986b7c0c8c1SCy Schubert cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); 3987b7c0c8c1SCy Schubert } 3988*46d2f618SCy Schubert #line 3989 "util/configparser.c" 3989b7c0c8c1SCy Schubert break; 3990b7c0c8c1SCy Schubert 3991*46d2f618SCy Schubert case 402: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */ 3992*46d2f618SCy Schubert #line 1134 "util/configparser.y" 3993b7c0c8c1SCy Schubert { 3994b7c0c8c1SCy Schubert OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); 3995b7c0c8c1SCy Schubert if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, 3996b7c0c8c1SCy Schubert (yyvsp[0].str))) 3997b7c0c8c1SCy Schubert yyerror("out of memory"); 3998b7c0c8c1SCy Schubert } 3999*46d2f618SCy Schubert #line 4000 "util/configparser.c" 4000b7c0c8c1SCy Schubert break; 4001b7c0c8c1SCy Schubert 4002*46d2f618SCy Schubert case 403: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */ 4003*46d2f618SCy Schubert #line 1142 "util/configparser.y" 4004b7c0c8c1SCy Schubert { 4005b7c0c8c1SCy Schubert OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); 4006b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4007b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4008b7c0c8c1SCy Schubert else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); 4009b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4010b7c0c8c1SCy Schubert } 4011*46d2f618SCy Schubert #line 4012 "util/configparser.c" 4012b7c0c8c1SCy Schubert break; 4013b7c0c8c1SCy Schubert 4014*46d2f618SCy Schubert case 404: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */ 4015*46d2f618SCy Schubert #line 1151 "util/configparser.y" 4016b7c0c8c1SCy Schubert { 4017b7c0c8c1SCy Schubert OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); 4018b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 4019b7c0c8c1SCy Schubert yyerror("port number expected"); 4020b7c0c8c1SCy Schubert else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); 4021b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4022b7c0c8c1SCy Schubert } 4023*46d2f618SCy Schubert #line 4024 "util/configparser.c" 4024b7c0c8c1SCy Schubert break; 4025b7c0c8c1SCy Schubert 4026*46d2f618SCy Schubert case 405: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */ 4027*46d2f618SCy Schubert #line 1159 "util/configparser.y" 4028b7c0c8c1SCy Schubert { 4029b7c0c8c1SCy Schubert OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); 4030b7c0c8c1SCy Schubert free(cfg_parser->cfg->http_endpoint); 4031b7c0c8c1SCy Schubert if((yyvsp[0].str) && (yyvsp[0].str)[0] != '/') { 4032b7c0c8c1SCy Schubert cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[0].str))+2); 4033b7c0c8c1SCy Schubert if(!cfg_parser->cfg->http_endpoint) 4034b7c0c8c1SCy Schubert yyerror("out of memory"); 4035b7c0c8c1SCy Schubert cfg_parser->cfg->http_endpoint[0] = '/'; 4036b7c0c8c1SCy Schubert memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[0].str), 4037b7c0c8c1SCy Schubert strlen((yyvsp[0].str))+1); 4038b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4039b7c0c8c1SCy Schubert } else { 4040b7c0c8c1SCy Schubert cfg_parser->cfg->http_endpoint = (yyvsp[0].str); 4041b7c0c8c1SCy Schubert } 4042b7c0c8c1SCy Schubert } 4043*46d2f618SCy Schubert #line 4044 "util/configparser.c" 4044b7c0c8c1SCy Schubert break; 4045b7c0c8c1SCy Schubert 4046*46d2f618SCy Schubert case 406: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */ 4047*46d2f618SCy Schubert #line 1175 "util/configparser.y" 4048b7c0c8c1SCy Schubert { 4049b7c0c8c1SCy Schubert OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); 4050b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 4051b7c0c8c1SCy Schubert yyerror("number expected"); 4052b7c0c8c1SCy Schubert else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); 4053b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4054b7c0c8c1SCy Schubert } 4055*46d2f618SCy Schubert #line 4056 "util/configparser.c" 4056b7c0c8c1SCy Schubert break; 4057b7c0c8c1SCy Schubert 4058*46d2f618SCy Schubert case 407: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */ 4059*46d2f618SCy Schubert #line 1183 "util/configparser.y" 4060b7c0c8c1SCy Schubert { 4061b7c0c8c1SCy Schubert OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); 4062b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), 4063b7c0c8c1SCy Schubert &cfg_parser->cfg->http_query_buffer_size)) 4064b7c0c8c1SCy Schubert yyerror("memory size expected"); 4065b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4066b7c0c8c1SCy Schubert } 4067*46d2f618SCy Schubert #line 4068 "util/configparser.c" 4068b7c0c8c1SCy Schubert break; 4069b7c0c8c1SCy Schubert 4070*46d2f618SCy Schubert case 408: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */ 4071*46d2f618SCy Schubert #line 1191 "util/configparser.y" 4072b7c0c8c1SCy Schubert { 4073b7c0c8c1SCy Schubert OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); 4074b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), 4075b7c0c8c1SCy Schubert &cfg_parser->cfg->http_response_buffer_size)) 4076b7c0c8c1SCy Schubert yyerror("memory size expected"); 4077b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4078b7c0c8c1SCy Schubert } 4079*46d2f618SCy Schubert #line 4080 "util/configparser.c" 4080b7c0c8c1SCy Schubert break; 4081b7c0c8c1SCy Schubert 4082*46d2f618SCy Schubert case 409: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */ 4083*46d2f618SCy Schubert #line 1199 "util/configparser.y" 4084b7c0c8c1SCy Schubert { 4085b7c0c8c1SCy Schubert OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str))); 4086b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4087b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4088b7c0c8c1SCy Schubert else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); 4089b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4090b7c0c8c1SCy Schubert } 4091*46d2f618SCy Schubert #line 4092 "util/configparser.c" 4092b7c0c8c1SCy Schubert break; 4093b7c0c8c1SCy Schubert 4094*46d2f618SCy Schubert case 410: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */ 4095*46d2f618SCy Schubert #line 1207 "util/configparser.y" 4096b7c0c8c1SCy Schubert { 4097b7c0c8c1SCy Schubert OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str))); 4098b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4099b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4100b7c0c8c1SCy Schubert else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); 4101b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4102b7c0c8c1SCy Schubert } 4103*46d2f618SCy Schubert #line 4104 "util/configparser.c" 4104b7c0c8c1SCy Schubert break; 4105b7c0c8c1SCy Schubert 4106*46d2f618SCy Schubert case 411: /* server_quic_port: VAR_QUIC_PORT STRING_ARG */ 4107*46d2f618SCy Schubert #line 1215 "util/configparser.y" 4108*46d2f618SCy Schubert { 4109*46d2f618SCy Schubert OUTYY(("P(server_quic_port:%s)\n", (yyvsp[0].str))); 4110*46d2f618SCy Schubert #ifndef HAVE_NGTCP2 4111*46d2f618SCy Schubert log_warn("%s:%d: Unbound is not compiled with " 4112*46d2f618SCy Schubert "ngtcp2. This is required to use DNS " 4113*46d2f618SCy Schubert "over QUIC.", cfg_parser->filename, cfg_parser->line); 4114*46d2f618SCy Schubert #endif 4115*46d2f618SCy Schubert if(atoi((yyvsp[0].str)) == 0) 4116*46d2f618SCy Schubert yyerror("port number expected"); 4117*46d2f618SCy Schubert else cfg_parser->cfg->quic_port = atoi((yyvsp[0].str)); 4118*46d2f618SCy Schubert free((yyvsp[0].str)); 4119*46d2f618SCy Schubert } 4120*46d2f618SCy Schubert #line 4121 "util/configparser.c" 4121*46d2f618SCy Schubert break; 4122*46d2f618SCy Schubert 4123*46d2f618SCy Schubert case 412: /* server_quic_size: VAR_QUIC_SIZE STRING_ARG */ 4124*46d2f618SCy Schubert #line 1228 "util/configparser.y" 4125*46d2f618SCy Schubert { 4126*46d2f618SCy Schubert OUTYY(("P(server_quic_size:%s)\n", (yyvsp[0].str))); 4127*46d2f618SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->quic_size)) 4128*46d2f618SCy Schubert yyerror("memory size expected"); 4129*46d2f618SCy Schubert free((yyvsp[0].str)); 4130*46d2f618SCy Schubert } 4131*46d2f618SCy Schubert #line 4132 "util/configparser.c" 4132*46d2f618SCy Schubert break; 4133*46d2f618SCy Schubert 4134*46d2f618SCy Schubert case 413: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */ 4135*46d2f618SCy Schubert #line 1235 "util/configparser.y" 4136b7c0c8c1SCy Schubert { 4137b7c0c8c1SCy Schubert OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); 4138b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4139b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4140b7c0c8c1SCy Schubert else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); 4141b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4142b7c0c8c1SCy Schubert } 4143*46d2f618SCy Schubert #line 4144 "util/configparser.c" 4144b7c0c8c1SCy Schubert break; 4145b7c0c8c1SCy Schubert 4146*46d2f618SCy Schubert case 414: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */ 4147*46d2f618SCy Schubert #line 1244 "util/configparser.y" 4148b7c0c8c1SCy Schubert { 4149b7c0c8c1SCy Schubert OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); 4150b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4151b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4152b7c0c8c1SCy Schubert else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); 4153b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4154b7c0c8c1SCy Schubert } 4155*46d2f618SCy Schubert #line 4156 "util/configparser.c" 4156b7c0c8c1SCy Schubert break; 4157b7c0c8c1SCy Schubert 4158*46d2f618SCy Schubert case 415: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */ 4159*46d2f618SCy Schubert #line 1253 "util/configparser.y" 4160b7c0c8c1SCy Schubert { 4161b7c0c8c1SCy Schubert OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); 4162b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4163b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4164b7c0c8c1SCy Schubert else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[0].str), "yes")==0); 4165b7c0c8c1SCy Schubert #if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS) 4166b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") == 0) 4167b7c0c8c1SCy Schubert yyerror("no syslog services are available. " 4168b7c0c8c1SCy Schubert "(reconfigure and compile to add)"); 4169b7c0c8c1SCy Schubert #endif 4170b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4171b7c0c8c1SCy Schubert } 4172*46d2f618SCy Schubert #line 4173 "util/configparser.c" 4173b7c0c8c1SCy Schubert break; 4174b7c0c8c1SCy Schubert 4175*46d2f618SCy Schubert case 416: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */ 4176*46d2f618SCy Schubert #line 1267 "util/configparser.y" 4177b7c0c8c1SCy Schubert { 4178b7c0c8c1SCy Schubert OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); 4179b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4180b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4181b7c0c8c1SCy Schubert else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); 4182b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4183b7c0c8c1SCy Schubert } 4184*46d2f618SCy Schubert #line 4185 "util/configparser.c" 4185b7c0c8c1SCy Schubert break; 4186b7c0c8c1SCy Schubert 4187*46d2f618SCy Schubert case 417: /* server_log_time_iso: VAR_LOG_TIME_ISO STRING_ARG */ 4188*46d2f618SCy Schubert #line 1276 "util/configparser.y" 4189*46d2f618SCy Schubert { 4190*46d2f618SCy Schubert OUTYY(("P(server_log_time_iso:%s)\n", (yyvsp[0].str))); 4191*46d2f618SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4192*46d2f618SCy Schubert yyerror("expected yes or no."); 4193*46d2f618SCy Schubert else cfg_parser->cfg->log_time_iso = (strcmp((yyvsp[0].str), "yes")==0); 4194*46d2f618SCy Schubert free((yyvsp[0].str)); 4195*46d2f618SCy Schubert } 4196*46d2f618SCy Schubert #line 4197 "util/configparser.c" 4197*46d2f618SCy Schubert break; 4198*46d2f618SCy Schubert 4199*46d2f618SCy Schubert case 418: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */ 4200*46d2f618SCy Schubert #line 1285 "util/configparser.y" 4201b7c0c8c1SCy Schubert { 4202b7c0c8c1SCy Schubert OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); 4203b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4204b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4205b7c0c8c1SCy Schubert else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); 4206b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4207b7c0c8c1SCy Schubert } 4208*46d2f618SCy Schubert #line 4209 "util/configparser.c" 4209b7c0c8c1SCy Schubert break; 4210b7c0c8c1SCy Schubert 4211*46d2f618SCy Schubert case 419: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */ 4212*46d2f618SCy Schubert #line 1294 "util/configparser.y" 4213b7c0c8c1SCy Schubert { 4214b7c0c8c1SCy Schubert OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); 4215b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4216b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4217b7c0c8c1SCy Schubert else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); 4218b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4219b7c0c8c1SCy Schubert } 4220*46d2f618SCy Schubert #line 4221 "util/configparser.c" 4221b7c0c8c1SCy Schubert break; 4222b7c0c8c1SCy Schubert 4223*46d2f618SCy Schubert case 420: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */ 4224*46d2f618SCy Schubert #line 1303 "util/configparser.y" 4225b7c0c8c1SCy Schubert { 4226b7c0c8c1SCy Schubert OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); 4227b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4228b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4229b7c0c8c1SCy Schubert else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); 4230b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4231b7c0c8c1SCy Schubert } 4232*46d2f618SCy Schubert #line 4233 "util/configparser.c" 4233b7c0c8c1SCy Schubert break; 4234b7c0c8c1SCy Schubert 4235*46d2f618SCy Schubert case 421: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */ 4236*46d2f618SCy Schubert #line 1312 "util/configparser.y" 4237b7c0c8c1SCy Schubert { 4238b7c0c8c1SCy Schubert OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); 4239b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4240b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4241b7c0c8c1SCy Schubert else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); 4242b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4243b7c0c8c1SCy Schubert } 4244*46d2f618SCy Schubert #line 4245 "util/configparser.c" 4245b7c0c8c1SCy Schubert break; 4246b7c0c8c1SCy Schubert 4247*46d2f618SCy Schubert case 422: /* server_log_destaddr: VAR_LOG_DESTADDR STRING_ARG */ 4248*46d2f618SCy Schubert #line 1321 "util/configparser.y" 4249b7c0c8c1SCy Schubert { 4250b7c0c8c1SCy Schubert OUTYY(("P(server_log_destaddr:%s)\n", (yyvsp[0].str))); 4251b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4252b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4253b7c0c8c1SCy Schubert else cfg_parser->cfg->log_destaddr = (strcmp((yyvsp[0].str), "yes")==0); 4254b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4255b7c0c8c1SCy Schubert } 4256*46d2f618SCy Schubert #line 4257 "util/configparser.c" 4257b7c0c8c1SCy Schubert break; 4258b7c0c8c1SCy Schubert 4259*46d2f618SCy Schubert case 423: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */ 4260*46d2f618SCy Schubert #line 1330 "util/configparser.y" 4261b7c0c8c1SCy Schubert { 4262b7c0c8c1SCy Schubert OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); 4263b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4264b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4265b7c0c8c1SCy Schubert else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); 4266b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4267b7c0c8c1SCy Schubert } 4268*46d2f618SCy Schubert #line 4269 "util/configparser.c" 4269b7c0c8c1SCy Schubert break; 4270b7c0c8c1SCy Schubert 4271*46d2f618SCy Schubert case 424: /* server_chroot: VAR_CHROOT STRING_ARG */ 4272*46d2f618SCy Schubert #line 1339 "util/configparser.y" 4273b7c0c8c1SCy Schubert { 4274b7c0c8c1SCy Schubert OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); 4275b7c0c8c1SCy Schubert free(cfg_parser->cfg->chrootdir); 4276b7c0c8c1SCy Schubert cfg_parser->cfg->chrootdir = (yyvsp[0].str); 4277b7c0c8c1SCy Schubert } 4278*46d2f618SCy Schubert #line 4279 "util/configparser.c" 4279b7c0c8c1SCy Schubert break; 4280b7c0c8c1SCy Schubert 4281*46d2f618SCy Schubert case 425: /* server_username: VAR_USERNAME STRING_ARG */ 4282*46d2f618SCy Schubert #line 1346 "util/configparser.y" 4283b7c0c8c1SCy Schubert { 4284b7c0c8c1SCy Schubert OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); 4285b7c0c8c1SCy Schubert free(cfg_parser->cfg->username); 4286b7c0c8c1SCy Schubert cfg_parser->cfg->username = (yyvsp[0].str); 4287b7c0c8c1SCy Schubert } 4288*46d2f618SCy Schubert #line 4289 "util/configparser.c" 4289b7c0c8c1SCy Schubert break; 4290b7c0c8c1SCy Schubert 4291*46d2f618SCy Schubert case 426: /* server_directory: VAR_DIRECTORY STRING_ARG */ 4292*46d2f618SCy Schubert #line 1353 "util/configparser.y" 4293b7c0c8c1SCy Schubert { 4294b7c0c8c1SCy Schubert OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); 4295b7c0c8c1SCy Schubert free(cfg_parser->cfg->directory); 4296b7c0c8c1SCy Schubert cfg_parser->cfg->directory = (yyvsp[0].str); 4297b7c0c8c1SCy Schubert /* change there right away for includes relative to this */ 4298b7c0c8c1SCy Schubert if((yyvsp[0].str)[0]) { 4299b7c0c8c1SCy Schubert char* d; 4300b7c0c8c1SCy Schubert #ifdef UB_ON_WINDOWS 4301b7c0c8c1SCy Schubert w_config_adjust_directory(cfg_parser->cfg); 4302b7c0c8c1SCy Schubert #endif 4303b7c0c8c1SCy Schubert d = cfg_parser->cfg->directory; 4304b7c0c8c1SCy Schubert /* adjust directory if we have already chroot, 4305b7c0c8c1SCy Schubert * like, we reread after sighup */ 4306b7c0c8c1SCy Schubert if(cfg_parser->chroot && cfg_parser->chroot[0] && 4307b7c0c8c1SCy Schubert strncmp(d, cfg_parser->chroot, strlen( 4308b7c0c8c1SCy Schubert cfg_parser->chroot)) == 0) 4309b7c0c8c1SCy Schubert d += strlen(cfg_parser->chroot); 4310b7c0c8c1SCy Schubert if(d[0]) { 4311b7c0c8c1SCy Schubert if(chdir(d)) 4312b7c0c8c1SCy Schubert log_err("cannot chdir to directory: %s (%s)", 4313b7c0c8c1SCy Schubert d, strerror(errno)); 4314b7c0c8c1SCy Schubert } 4315b7c0c8c1SCy Schubert } 4316b7c0c8c1SCy Schubert } 4317*46d2f618SCy Schubert #line 4318 "util/configparser.c" 4318b7c0c8c1SCy Schubert break; 4319b7c0c8c1SCy Schubert 4320*46d2f618SCy Schubert case 427: /* server_logfile: VAR_LOGFILE STRING_ARG */ 4321*46d2f618SCy Schubert #line 1379 "util/configparser.y" 4322b7c0c8c1SCy Schubert { 4323b7c0c8c1SCy Schubert OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); 4324b7c0c8c1SCy Schubert free(cfg_parser->cfg->logfile); 4325b7c0c8c1SCy Schubert cfg_parser->cfg->logfile = (yyvsp[0].str); 4326b7c0c8c1SCy Schubert cfg_parser->cfg->use_syslog = 0; 4327b7c0c8c1SCy Schubert } 4328*46d2f618SCy Schubert #line 4329 "util/configparser.c" 4329b7c0c8c1SCy Schubert break; 4330b7c0c8c1SCy Schubert 4331*46d2f618SCy Schubert case 428: /* server_pidfile: VAR_PIDFILE STRING_ARG */ 4332*46d2f618SCy Schubert #line 1387 "util/configparser.y" 4333b7c0c8c1SCy Schubert { 4334b7c0c8c1SCy Schubert OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); 4335b7c0c8c1SCy Schubert free(cfg_parser->cfg->pidfile); 4336b7c0c8c1SCy Schubert cfg_parser->cfg->pidfile = (yyvsp[0].str); 4337b7c0c8c1SCy Schubert } 4338*46d2f618SCy Schubert #line 4339 "util/configparser.c" 4339b7c0c8c1SCy Schubert break; 4340b7c0c8c1SCy Schubert 4341*46d2f618SCy Schubert case 429: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */ 4342*46d2f618SCy Schubert #line 1394 "util/configparser.y" 4343b7c0c8c1SCy Schubert { 4344b7c0c8c1SCy Schubert OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); 4345b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) 4346b7c0c8c1SCy Schubert yyerror("out of memory"); 4347b7c0c8c1SCy Schubert } 4348*46d2f618SCy Schubert #line 4349 "util/configparser.c" 4349b7c0c8c1SCy Schubert break; 4350b7c0c8c1SCy Schubert 4351*46d2f618SCy Schubert case 430: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */ 4352*46d2f618SCy Schubert #line 1401 "util/configparser.y" 4353b7c0c8c1SCy Schubert { 4354b7c0c8c1SCy Schubert OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); 4355b7c0c8c1SCy Schubert log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); 4356b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4357b7c0c8c1SCy Schubert } 4358*46d2f618SCy Schubert #line 4359 "util/configparser.c" 4359b7c0c8c1SCy Schubert break; 4360b7c0c8c1SCy Schubert 4361*46d2f618SCy Schubert case 431: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */ 4362*46d2f618SCy Schubert #line 1408 "util/configparser.y" 4363b7c0c8c1SCy Schubert { 4364b7c0c8c1SCy Schubert OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); 4365b7c0c8c1SCy Schubert log_warn("option dlv-anchor ignored: DLV is decommissioned"); 4366b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4367b7c0c8c1SCy Schubert } 4368*46d2f618SCy Schubert #line 4369 "util/configparser.c" 4369b7c0c8c1SCy Schubert break; 4370b7c0c8c1SCy Schubert 4371*46d2f618SCy Schubert case 432: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */ 4372*46d2f618SCy Schubert #line 1415 "util/configparser.y" 4373b7c0c8c1SCy Schubert { 4374b7c0c8c1SCy Schubert OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); 4375b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg-> 4376b7c0c8c1SCy Schubert auto_trust_anchor_file_list, (yyvsp[0].str))) 4377b7c0c8c1SCy Schubert yyerror("out of memory"); 4378b7c0c8c1SCy Schubert } 4379*46d2f618SCy Schubert #line 4380 "util/configparser.c" 4380b7c0c8c1SCy Schubert break; 4381b7c0c8c1SCy Schubert 4382*46d2f618SCy Schubert case 433: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */ 4383*46d2f618SCy Schubert #line 1423 "util/configparser.y" 4384b7c0c8c1SCy Schubert { 4385b7c0c8c1SCy Schubert OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); 4386b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg-> 4387b7c0c8c1SCy Schubert trust_anchor_file_list, (yyvsp[0].str))) 4388b7c0c8c1SCy Schubert yyerror("out of memory"); 4389b7c0c8c1SCy Schubert } 4390*46d2f618SCy Schubert #line 4391 "util/configparser.c" 4391b7c0c8c1SCy Schubert break; 4392b7c0c8c1SCy Schubert 4393*46d2f618SCy Schubert case 434: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */ 4394*46d2f618SCy Schubert #line 1431 "util/configparser.y" 4395b7c0c8c1SCy Schubert { 4396b7c0c8c1SCy Schubert OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); 4397b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg-> 4398b7c0c8c1SCy Schubert trusted_keys_file_list, (yyvsp[0].str))) 4399b7c0c8c1SCy Schubert yyerror("out of memory"); 4400b7c0c8c1SCy Schubert } 4401*46d2f618SCy Schubert #line 4402 "util/configparser.c" 4402b7c0c8c1SCy Schubert break; 4403b7c0c8c1SCy Schubert 4404*46d2f618SCy Schubert case 435: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */ 4405*46d2f618SCy Schubert #line 1439 "util/configparser.y" 4406b7c0c8c1SCy Schubert { 4407b7c0c8c1SCy Schubert OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); 4408b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) 4409b7c0c8c1SCy Schubert yyerror("out of memory"); 4410b7c0c8c1SCy Schubert } 4411*46d2f618SCy Schubert #line 4412 "util/configparser.c" 4412b7c0c8c1SCy Schubert break; 4413b7c0c8c1SCy Schubert 4414*46d2f618SCy Schubert case 436: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */ 4415*46d2f618SCy Schubert #line 1446 "util/configparser.y" 4416b7c0c8c1SCy Schubert { 4417b7c0c8c1SCy Schubert OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); 4418b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4419b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4420b7c0c8c1SCy Schubert else 4421b7c0c8c1SCy Schubert cfg_parser->cfg->trust_anchor_signaling = 4422b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4423b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4424b7c0c8c1SCy Schubert } 4425*46d2f618SCy Schubert #line 4426 "util/configparser.c" 4426b7c0c8c1SCy Schubert break; 4427b7c0c8c1SCy Schubert 4428*46d2f618SCy Schubert case 437: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */ 4429*46d2f618SCy Schubert #line 1457 "util/configparser.y" 4430b7c0c8c1SCy Schubert { 4431b7c0c8c1SCy Schubert OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); 4432b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4433b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4434b7c0c8c1SCy Schubert else 4435b7c0c8c1SCy Schubert cfg_parser->cfg->root_key_sentinel = 4436b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4437b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4438b7c0c8c1SCy Schubert } 4439*46d2f618SCy Schubert #line 4440 "util/configparser.c" 4440b7c0c8c1SCy Schubert break; 4441b7c0c8c1SCy Schubert 4442*46d2f618SCy Schubert case 438: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */ 4443*46d2f618SCy Schubert #line 1468 "util/configparser.y" 4444b7c0c8c1SCy Schubert { 4445b7c0c8c1SCy Schubert OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); 4446b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) 4447b7c0c8c1SCy Schubert yyerror("out of memory"); 4448b7c0c8c1SCy Schubert } 4449*46d2f618SCy Schubert #line 4450 "util/configparser.c" 4450b7c0c8c1SCy Schubert break; 4451b7c0c8c1SCy Schubert 4452*46d2f618SCy Schubert case 439: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */ 4453*46d2f618SCy Schubert #line 1475 "util/configparser.y" 4454b7c0c8c1SCy Schubert { 4455b7c0c8c1SCy Schubert OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); 4456b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4457b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4458b7c0c8c1SCy Schubert else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); 4459b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4460b7c0c8c1SCy Schubert } 4461*46d2f618SCy Schubert #line 4462 "util/configparser.c" 4462b7c0c8c1SCy Schubert break; 4463b7c0c8c1SCy Schubert 4464*46d2f618SCy Schubert case 440: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */ 4465*46d2f618SCy Schubert #line 1484 "util/configparser.y" 4466b7c0c8c1SCy Schubert { 4467b7c0c8c1SCy Schubert OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); 4468b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4469b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4470b7c0c8c1SCy Schubert else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); 4471b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4472b7c0c8c1SCy Schubert } 4473*46d2f618SCy Schubert #line 4474 "util/configparser.c" 4474b7c0c8c1SCy Schubert break; 4475b7c0c8c1SCy Schubert 4476*46d2f618SCy Schubert case 441: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */ 4477*46d2f618SCy Schubert #line 1493 "util/configparser.y" 4478b7c0c8c1SCy Schubert { 4479b7c0c8c1SCy Schubert OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); 4480b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4481b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4482b7c0c8c1SCy Schubert else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); 4483b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4484b7c0c8c1SCy Schubert } 4485*46d2f618SCy Schubert #line 4486 "util/configparser.c" 4486b7c0c8c1SCy Schubert break; 4487b7c0c8c1SCy Schubert 4488*46d2f618SCy Schubert case 442: /* server_hide_http_user_agent: VAR_HIDE_HTTP_USER_AGENT STRING_ARG */ 4489*46d2f618SCy Schubert #line 1502 "util/configparser.y" 4490b7c0c8c1SCy Schubert { 4491b7c0c8c1SCy Schubert OUTYY(("P(server_hide_user_agent:%s)\n", (yyvsp[0].str))); 4492b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4493b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4494b7c0c8c1SCy Schubert else cfg_parser->cfg->hide_http_user_agent = (strcmp((yyvsp[0].str), "yes")==0); 4495b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4496b7c0c8c1SCy Schubert } 4497*46d2f618SCy Schubert #line 4498 "util/configparser.c" 4498b7c0c8c1SCy Schubert break; 4499b7c0c8c1SCy Schubert 4500*46d2f618SCy Schubert case 443: /* server_identity: VAR_IDENTITY STRING_ARG */ 4501*46d2f618SCy Schubert #line 1511 "util/configparser.y" 4502b7c0c8c1SCy Schubert { 4503b7c0c8c1SCy Schubert OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); 4504b7c0c8c1SCy Schubert free(cfg_parser->cfg->identity); 4505b7c0c8c1SCy Schubert cfg_parser->cfg->identity = (yyvsp[0].str); 4506b7c0c8c1SCy Schubert } 4507*46d2f618SCy Schubert #line 4508 "util/configparser.c" 4508b7c0c8c1SCy Schubert break; 4509b7c0c8c1SCy Schubert 4510*46d2f618SCy Schubert case 444: /* server_version: VAR_VERSION STRING_ARG */ 4511*46d2f618SCy Schubert #line 1518 "util/configparser.y" 4512b7c0c8c1SCy Schubert { 4513b7c0c8c1SCy Schubert OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); 4514b7c0c8c1SCy Schubert free(cfg_parser->cfg->version); 4515b7c0c8c1SCy Schubert cfg_parser->cfg->version = (yyvsp[0].str); 4516b7c0c8c1SCy Schubert } 4517*46d2f618SCy Schubert #line 4518 "util/configparser.c" 4518b7c0c8c1SCy Schubert break; 4519b7c0c8c1SCy Schubert 4520*46d2f618SCy Schubert case 445: /* server_http_user_agent: VAR_HTTP_USER_AGENT STRING_ARG */ 4521*46d2f618SCy Schubert #line 1525 "util/configparser.y" 4522b7c0c8c1SCy Schubert { 4523b7c0c8c1SCy Schubert OUTYY(("P(server_http_user_agent:%s)\n", (yyvsp[0].str))); 4524b7c0c8c1SCy Schubert free(cfg_parser->cfg->http_user_agent); 4525b7c0c8c1SCy Schubert cfg_parser->cfg->http_user_agent = (yyvsp[0].str); 4526b7c0c8c1SCy Schubert } 4527*46d2f618SCy Schubert #line 4528 "util/configparser.c" 4528b7c0c8c1SCy Schubert break; 4529b7c0c8c1SCy Schubert 4530*46d2f618SCy Schubert case 446: /* server_nsid: VAR_NSID STRING_ARG */ 4531*46d2f618SCy Schubert #line 1532 "util/configparser.y" 4532b7c0c8c1SCy Schubert { 4533b7c0c8c1SCy Schubert OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str))); 4534b7c0c8c1SCy Schubert free(cfg_parser->cfg->nsid_cfg_str); 4535b7c0c8c1SCy Schubert cfg_parser->cfg->nsid_cfg_str = (yyvsp[0].str); 4536b7c0c8c1SCy Schubert free(cfg_parser->cfg->nsid); 4537b7c0c8c1SCy Schubert cfg_parser->cfg->nsid = NULL; 4538b7c0c8c1SCy Schubert cfg_parser->cfg->nsid_len = 0; 4539b7c0c8c1SCy Schubert if (*(yyvsp[0].str) == 0) 4540b7c0c8c1SCy Schubert ; /* pass; empty string is not setting nsid */ 4541b7c0c8c1SCy Schubert else if (!(cfg_parser->cfg->nsid = cfg_parse_nsid( 4542b7c0c8c1SCy Schubert (yyvsp[0].str), &cfg_parser->cfg->nsid_len))) 4543b7c0c8c1SCy Schubert yyerror("the NSID must be either a hex string or an " 4544b7c0c8c1SCy Schubert "ascii character string prepended with ascii_."); 4545b7c0c8c1SCy Schubert } 4546*46d2f618SCy Schubert #line 4547 "util/configparser.c" 4547b7c0c8c1SCy Schubert break; 4548b7c0c8c1SCy Schubert 4549*46d2f618SCy Schubert case 447: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */ 4550*46d2f618SCy Schubert #line 1548 "util/configparser.y" 4551b7c0c8c1SCy Schubert { 4552b7c0c8c1SCy Schubert OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); 4553b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) 4554b7c0c8c1SCy Schubert yyerror("buffer size expected"); 4555b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4556b7c0c8c1SCy Schubert } 4557*46d2f618SCy Schubert #line 4558 "util/configparser.c" 4558b7c0c8c1SCy Schubert break; 4559b7c0c8c1SCy Schubert 4560*46d2f618SCy Schubert case 448: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */ 4561*46d2f618SCy Schubert #line 1556 "util/configparser.y" 4562b7c0c8c1SCy Schubert { 4563b7c0c8c1SCy Schubert OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); 4564b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) 4565b7c0c8c1SCy Schubert yyerror("buffer size expected"); 4566b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4567b7c0c8c1SCy Schubert } 4568*46d2f618SCy Schubert #line 4569 "util/configparser.c" 4569b7c0c8c1SCy Schubert break; 4570b7c0c8c1SCy Schubert 4571*46d2f618SCy Schubert case 449: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */ 4572*46d2f618SCy Schubert #line 1564 "util/configparser.y" 4573b7c0c8c1SCy Schubert { 4574b7c0c8c1SCy Schubert OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); 4575b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4576b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4577b7c0c8c1SCy Schubert else cfg_parser->cfg->so_reuseport = 4578b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4579b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4580b7c0c8c1SCy Schubert } 4581*46d2f618SCy Schubert #line 4582 "util/configparser.c" 4582b7c0c8c1SCy Schubert break; 4583b7c0c8c1SCy Schubert 4584*46d2f618SCy Schubert case 450: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */ 4585*46d2f618SCy Schubert #line 1574 "util/configparser.y" 4586b7c0c8c1SCy Schubert { 4587b7c0c8c1SCy Schubert OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); 4588b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4589b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4590b7c0c8c1SCy Schubert else cfg_parser->cfg->ip_transparent = 4591b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4592b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4593b7c0c8c1SCy Schubert } 4594*46d2f618SCy Schubert #line 4595 "util/configparser.c" 4595b7c0c8c1SCy Schubert break; 4596b7c0c8c1SCy Schubert 4597*46d2f618SCy Schubert case 451: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */ 4598*46d2f618SCy Schubert #line 1584 "util/configparser.y" 4599b7c0c8c1SCy Schubert { 4600b7c0c8c1SCy Schubert OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); 4601b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4602b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4603b7c0c8c1SCy Schubert else cfg_parser->cfg->ip_freebind = 4604b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4605b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4606b7c0c8c1SCy Schubert } 4607*46d2f618SCy Schubert #line 4608 "util/configparser.c" 4608b7c0c8c1SCy Schubert break; 4609b7c0c8c1SCy Schubert 4610*46d2f618SCy Schubert case 452: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */ 4611*46d2f618SCy Schubert #line 1594 "util/configparser.y" 4612b7c0c8c1SCy Schubert { 4613b7c0c8c1SCy Schubert OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); 4614b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 4615b7c0c8c1SCy Schubert yyerror("number expected"); 4616b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 63) 4617b7c0c8c1SCy Schubert yyerror("value too large (max 63)"); 4618b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0) 4619b7c0c8c1SCy Schubert yyerror("value too small (min 0)"); 4620b7c0c8c1SCy Schubert else 4621b7c0c8c1SCy Schubert cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); 4622b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4623b7c0c8c1SCy Schubert } 4624*46d2f618SCy Schubert #line 4625 "util/configparser.c" 4625b7c0c8c1SCy Schubert break; 4626b7c0c8c1SCy Schubert 4627*46d2f618SCy Schubert case 453: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */ 4628*46d2f618SCy Schubert #line 1608 "util/configparser.y" 4629b7c0c8c1SCy Schubert { 4630b7c0c8c1SCy Schubert OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); 4631b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) 4632b7c0c8c1SCy Schubert yyerror("memory size expected"); 4633b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4634b7c0c8c1SCy Schubert } 4635*46d2f618SCy Schubert #line 4636 "util/configparser.c" 4636b7c0c8c1SCy Schubert break; 4637b7c0c8c1SCy Schubert 4638*46d2f618SCy Schubert case 454: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */ 4639*46d2f618SCy Schubert #line 1616 "util/configparser.y" 4640b7c0c8c1SCy Schubert { 4641b7c0c8c1SCy Schubert OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); 4642b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 4643b7c0c8c1SCy Schubert yyerror("number expected"); 4644b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 12) 4645b7c0c8c1SCy Schubert yyerror("edns buffer size too small"); 4646b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 65535) 4647b7c0c8c1SCy Schubert cfg_parser->cfg->edns_buffer_size = 65535; 4648b7c0c8c1SCy Schubert else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); 4649b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4650b7c0c8c1SCy Schubert } 4651*46d2f618SCy Schubert #line 4652 "util/configparser.c" 4652b7c0c8c1SCy Schubert break; 4653b7c0c8c1SCy Schubert 4654*46d2f618SCy Schubert case 455: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */ 4655*46d2f618SCy Schubert #line 1629 "util/configparser.y" 4656b7c0c8c1SCy Schubert { 4657b7c0c8c1SCy Schubert OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); 4658b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 4659b7c0c8c1SCy Schubert yyerror("number expected"); 4660b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 4096) 4661b7c0c8c1SCy Schubert yyerror("message buffer size too small (use 4096)"); 4662b7c0c8c1SCy Schubert else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); 4663b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4664b7c0c8c1SCy Schubert } 4665*46d2f618SCy Schubert #line 4666 "util/configparser.c" 4666b7c0c8c1SCy Schubert break; 4667b7c0c8c1SCy Schubert 4668*46d2f618SCy Schubert case 456: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */ 4669*46d2f618SCy Schubert #line 1640 "util/configparser.y" 4670b7c0c8c1SCy Schubert { 4671b7c0c8c1SCy Schubert OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); 4672b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) 4673b7c0c8c1SCy Schubert yyerror("memory size expected"); 4674b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4675b7c0c8c1SCy Schubert } 4676*46d2f618SCy Schubert #line 4677 "util/configparser.c" 4677b7c0c8c1SCy Schubert break; 4678b7c0c8c1SCy Schubert 4679*46d2f618SCy Schubert case 457: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */ 4680*46d2f618SCy Schubert #line 1648 "util/configparser.y" 4681b7c0c8c1SCy Schubert { 4682b7c0c8c1SCy Schubert OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); 4683b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) { 4684b7c0c8c1SCy Schubert yyerror("number expected"); 4685b7c0c8c1SCy Schubert } else { 4686b7c0c8c1SCy Schubert cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[0].str)); 4687b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->msg_cache_slabs)) 4688b7c0c8c1SCy Schubert yyerror("must be a power of 2"); 4689b7c0c8c1SCy Schubert } 4690b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4691b7c0c8c1SCy Schubert } 4692*46d2f618SCy Schubert #line 4693 "util/configparser.c" 4693b7c0c8c1SCy Schubert break; 4694b7c0c8c1SCy Schubert 4695*46d2f618SCy Schubert case 458: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */ 4696*46d2f618SCy Schubert #line 1661 "util/configparser.y" 4697b7c0c8c1SCy Schubert { 4698b7c0c8c1SCy Schubert OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); 4699b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 4700b7c0c8c1SCy Schubert yyerror("number expected"); 4701b7c0c8c1SCy Schubert else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); 4702b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4703b7c0c8c1SCy Schubert } 4704*46d2f618SCy Schubert #line 4705 "util/configparser.c" 4705b7c0c8c1SCy Schubert break; 4706b7c0c8c1SCy Schubert 4707*46d2f618SCy Schubert case 459: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */ 4708*46d2f618SCy Schubert #line 1670 "util/configparser.y" 4709b7c0c8c1SCy Schubert { 4710b7c0c8c1SCy Schubert OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); 4711b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 4712b7c0c8c1SCy Schubert yyerror("number expected"); 4713b7c0c8c1SCy Schubert else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); 4714b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4715b7c0c8c1SCy Schubert } 4716*46d2f618SCy Schubert #line 4717 "util/configparser.c" 4717b7c0c8c1SCy Schubert break; 4718b7c0c8c1SCy Schubert 4719*46d2f618SCy Schubert case 460: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */ 4720*46d2f618SCy Schubert #line 1679 "util/configparser.y" 4721b7c0c8c1SCy Schubert { 4722b7c0c8c1SCy Schubert OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); 4723b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 4724b7c0c8c1SCy Schubert yyerror("number expected"); 4725b7c0c8c1SCy Schubert else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); 4726b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4727b7c0c8c1SCy Schubert } 4728*46d2f618SCy Schubert #line 4729 "util/configparser.c" 4729b7c0c8c1SCy Schubert break; 4730b7c0c8c1SCy Schubert 4731*46d2f618SCy Schubert case 461: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */ 4732*46d2f618SCy Schubert #line 1688 "util/configparser.y" 4733b7c0c8c1SCy Schubert { 4734b7c0c8c1SCy Schubert OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str))); 4735b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4736b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4737b7c0c8c1SCy Schubert else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0); 4738b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4739b7c0c8c1SCy Schubert } 4740*46d2f618SCy Schubert #line 4741 "util/configparser.c" 4741b7c0c8c1SCy Schubert break; 4742b7c0c8c1SCy Schubert 4743*46d2f618SCy Schubert case 462: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */ 4744*46d2f618SCy Schubert #line 1697 "util/configparser.y" 4745b7c0c8c1SCy Schubert { 4746b7c0c8c1SCy Schubert OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); 4747b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4748b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4749b7c0c8c1SCy Schubert else cfg_parser->cfg->unblock_lan_zones = 4750b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4751b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4752b7c0c8c1SCy Schubert } 4753*46d2f618SCy Schubert #line 4754 "util/configparser.c" 4754b7c0c8c1SCy Schubert break; 4755b7c0c8c1SCy Schubert 4756*46d2f618SCy Schubert case 463: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */ 4757*46d2f618SCy Schubert #line 1707 "util/configparser.y" 4758b7c0c8c1SCy Schubert { 4759b7c0c8c1SCy Schubert OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); 4760b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4761b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4762b7c0c8c1SCy Schubert else cfg_parser->cfg->insecure_lan_zones = 4763b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4764b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4765b7c0c8c1SCy Schubert } 4766*46d2f618SCy Schubert #line 4767 "util/configparser.c" 4767b7c0c8c1SCy Schubert break; 4768b7c0c8c1SCy Schubert 4769*46d2f618SCy Schubert case 464: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */ 4770*46d2f618SCy Schubert #line 1717 "util/configparser.y" 4771b7c0c8c1SCy Schubert { 4772b7c0c8c1SCy Schubert OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); 4773b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) 4774b7c0c8c1SCy Schubert yyerror("memory size expected"); 4775b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4776b7c0c8c1SCy Schubert } 4777*46d2f618SCy Schubert #line 4778 "util/configparser.c" 4778b7c0c8c1SCy Schubert break; 4779b7c0c8c1SCy Schubert 4780*46d2f618SCy Schubert case 465: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */ 4781*46d2f618SCy Schubert #line 1725 "util/configparser.y" 4782b7c0c8c1SCy Schubert { 4783b7c0c8c1SCy Schubert OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); 4784b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) { 4785b7c0c8c1SCy Schubert yyerror("number expected"); 4786b7c0c8c1SCy Schubert } else { 4787b7c0c8c1SCy Schubert cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[0].str)); 4788b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs)) 4789b7c0c8c1SCy Schubert yyerror("must be a power of 2"); 4790b7c0c8c1SCy Schubert } 4791b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4792b7c0c8c1SCy Schubert } 4793*46d2f618SCy Schubert #line 4794 "util/configparser.c" 4794b7c0c8c1SCy Schubert break; 4795b7c0c8c1SCy Schubert 4796*46d2f618SCy Schubert case 466: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */ 4797*46d2f618SCy Schubert #line 1738 "util/configparser.y" 4798b7c0c8c1SCy Schubert { 4799b7c0c8c1SCy Schubert OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); 4800b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 4801b7c0c8c1SCy Schubert yyerror("number expected"); 4802b7c0c8c1SCy Schubert else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); 4803b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4804b7c0c8c1SCy Schubert } 4805*46d2f618SCy Schubert #line 4806 "util/configparser.c" 4806b7c0c8c1SCy Schubert break; 4807b7c0c8c1SCy Schubert 4808*46d2f618SCy Schubert case 467: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */ 4809*46d2f618SCy Schubert #line 1747 "util/configparser.y" 4810b7c0c8c1SCy Schubert { 4811b7c0c8c1SCy Schubert OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); 4812b7c0c8c1SCy Schubert verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " 4813b7c0c8c1SCy Schubert "removed, use infra-host-ttl)", (yyvsp[0].str)); 4814b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4815b7c0c8c1SCy Schubert } 4816*46d2f618SCy Schubert #line 4817 "util/configparser.c" 4817b7c0c8c1SCy Schubert break; 4818b7c0c8c1SCy Schubert 4819*46d2f618SCy Schubert case 468: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */ 4820*46d2f618SCy Schubert #line 1755 "util/configparser.y" 4821b7c0c8c1SCy Schubert { 4822b7c0c8c1SCy Schubert OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); 4823b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 4824b7c0c8c1SCy Schubert yyerror("number expected"); 4825b7c0c8c1SCy Schubert else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); 4826b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4827b7c0c8c1SCy Schubert } 4828*46d2f618SCy Schubert #line 4829 "util/configparser.c" 4829b7c0c8c1SCy Schubert break; 4830b7c0c8c1SCy Schubert 4831*46d2f618SCy Schubert case 469: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */ 4832*46d2f618SCy Schubert #line 1764 "util/configparser.y" 4833b7c0c8c1SCy Schubert { 4834b7c0c8c1SCy Schubert OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); 4835b7c0c8c1SCy Schubert verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " 4836b7c0c8c1SCy Schubert "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); 4837b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4838b7c0c8c1SCy Schubert } 4839*46d2f618SCy Schubert #line 4840 "util/configparser.c" 4840b7c0c8c1SCy Schubert break; 4841b7c0c8c1SCy Schubert 4842*46d2f618SCy Schubert case 470: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */ 4843*46d2f618SCy Schubert #line 1772 "util/configparser.y" 4844b7c0c8c1SCy Schubert { 4845b7c0c8c1SCy Schubert OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); 4846b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) { 4847b7c0c8c1SCy Schubert yyerror("number expected"); 4848b7c0c8c1SCy Schubert } else { 4849b7c0c8c1SCy Schubert cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[0].str)); 4850b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->infra_cache_slabs)) 4851b7c0c8c1SCy Schubert yyerror("must be a power of 2"); 4852b7c0c8c1SCy Schubert } 4853b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4854b7c0c8c1SCy Schubert } 4855*46d2f618SCy Schubert #line 4856 "util/configparser.c" 4856b7c0c8c1SCy Schubert break; 4857b7c0c8c1SCy Schubert 4858*46d2f618SCy Schubert case 471: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */ 4859*46d2f618SCy Schubert #line 1785 "util/configparser.y" 4860b7c0c8c1SCy Schubert { 4861b7c0c8c1SCy Schubert OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); 4862b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 4863b7c0c8c1SCy Schubert yyerror("number expected"); 4864b7c0c8c1SCy Schubert else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); 4865b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4866b7c0c8c1SCy Schubert } 4867*46d2f618SCy Schubert #line 4868 "util/configparser.c" 4868b7c0c8c1SCy Schubert break; 4869b7c0c8c1SCy Schubert 4870*46d2f618SCy Schubert case 472: /* server_infra_cache_max_rtt: VAR_INFRA_CACHE_MAX_RTT STRING_ARG */ 4871*46d2f618SCy Schubert #line 1794 "util/configparser.y" 4872b7c0c8c1SCy Schubert { 4873b7c0c8c1SCy Schubert OUTYY(("P(server_infra_cache_max_rtt:%s)\n", (yyvsp[0].str))); 4874b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 4875b7c0c8c1SCy Schubert yyerror("number expected"); 4876b7c0c8c1SCy Schubert else cfg_parser->cfg->infra_cache_max_rtt = atoi((yyvsp[0].str)); 4877b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4878b7c0c8c1SCy Schubert } 4879*46d2f618SCy Schubert #line 4880 "util/configparser.c" 4880b7c0c8c1SCy Schubert break; 4881b7c0c8c1SCy Schubert 4882*46d2f618SCy Schubert case 473: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */ 4883*46d2f618SCy Schubert #line 1803 "util/configparser.y" 4884b7c0c8c1SCy Schubert { 4885b7c0c8c1SCy Schubert OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str))); 4886b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4887b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4888b7c0c8c1SCy Schubert else cfg_parser->cfg->infra_keep_probing = 4889b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4890b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4891b7c0c8c1SCy Schubert } 4892*46d2f618SCy Schubert #line 4893 "util/configparser.c" 4893b7c0c8c1SCy Schubert break; 4894b7c0c8c1SCy Schubert 4895*46d2f618SCy Schubert case 474: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */ 4896*46d2f618SCy Schubert #line 1813 "util/configparser.y" 4897b7c0c8c1SCy Schubert { 4898b7c0c8c1SCy Schubert OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); 4899b7c0c8c1SCy Schubert free(cfg_parser->cfg->target_fetch_policy); 4900b7c0c8c1SCy Schubert cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); 4901b7c0c8c1SCy Schubert } 4902*46d2f618SCy Schubert #line 4903 "util/configparser.c" 4903b7c0c8c1SCy Schubert break; 4904b7c0c8c1SCy Schubert 4905*46d2f618SCy Schubert case 475: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */ 4906*46d2f618SCy Schubert #line 1820 "util/configparser.y" 4907b7c0c8c1SCy Schubert { 4908b7c0c8c1SCy Schubert OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); 4909b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4910b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4911b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_short_bufsize = 4912b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4913b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4914b7c0c8c1SCy Schubert } 4915*46d2f618SCy Schubert #line 4916 "util/configparser.c" 4916b7c0c8c1SCy Schubert break; 4917b7c0c8c1SCy Schubert 4918*46d2f618SCy Schubert case 476: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */ 4919*46d2f618SCy Schubert #line 1830 "util/configparser.y" 4920b7c0c8c1SCy Schubert { 4921b7c0c8c1SCy Schubert OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); 4922b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4923b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4924b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_large_queries = 4925b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4926b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4927b7c0c8c1SCy Schubert } 4928*46d2f618SCy Schubert #line 4929 "util/configparser.c" 4929b7c0c8c1SCy Schubert break; 4930b7c0c8c1SCy Schubert 4931*46d2f618SCy Schubert case 477: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */ 4932*46d2f618SCy Schubert #line 1840 "util/configparser.y" 4933b7c0c8c1SCy Schubert { 4934b7c0c8c1SCy Schubert OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); 4935b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4936b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4937b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_glue = 4938b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4939b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4940b7c0c8c1SCy Schubert } 4941*46d2f618SCy Schubert #line 4942 "util/configparser.c" 4942b7c0c8c1SCy Schubert break; 4943b7c0c8c1SCy Schubert 4944*46d2f618SCy Schubert case 478: /* server_harden_unverified_glue: VAR_HARDEN_UNVERIFIED_GLUE STRING_ARG */ 4945*46d2f618SCy Schubert #line 1850 "util/configparser.y" 4946*46d2f618SCy Schubert { 4947*46d2f618SCy Schubert OUTYY(("P(server_harden_unverified_glue:%s)\n", (yyvsp[0].str))); 4948*46d2f618SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4949*46d2f618SCy Schubert yyerror("expected yes or no."); 4950*46d2f618SCy Schubert else cfg_parser->cfg->harden_unverified_glue = 4951*46d2f618SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4952*46d2f618SCy Schubert free((yyvsp[0].str)); 4953*46d2f618SCy Schubert } 4954*46d2f618SCy Schubert #line 4955 "util/configparser.c" 4955*46d2f618SCy Schubert break; 4956*46d2f618SCy Schubert 4957*46d2f618SCy Schubert case 479: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */ 4958*46d2f618SCy Schubert #line 1860 "util/configparser.y" 4959b7c0c8c1SCy Schubert { 4960b7c0c8c1SCy Schubert OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); 4961b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4962b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4963b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_dnssec_stripped = 4964b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4965b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4966b7c0c8c1SCy Schubert } 4967*46d2f618SCy Schubert #line 4968 "util/configparser.c" 4968b7c0c8c1SCy Schubert break; 4969b7c0c8c1SCy Schubert 4970*46d2f618SCy Schubert case 480: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */ 4971*46d2f618SCy Schubert #line 1870 "util/configparser.y" 4972b7c0c8c1SCy Schubert { 4973b7c0c8c1SCy Schubert OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); 4974b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4975b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4976b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_below_nxdomain = 4977b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4978b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4979b7c0c8c1SCy Schubert } 4980*46d2f618SCy Schubert #line 4981 "util/configparser.c" 4981b7c0c8c1SCy Schubert break; 4982b7c0c8c1SCy Schubert 4983*46d2f618SCy Schubert case 481: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */ 4984*46d2f618SCy Schubert #line 1880 "util/configparser.y" 4985b7c0c8c1SCy Schubert { 4986b7c0c8c1SCy Schubert OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); 4987b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 4988b7c0c8c1SCy Schubert yyerror("expected yes or no."); 4989b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_referral_path = 4990b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 4991b7c0c8c1SCy Schubert free((yyvsp[0].str)); 4992b7c0c8c1SCy Schubert } 4993*46d2f618SCy Schubert #line 4994 "util/configparser.c" 4994b7c0c8c1SCy Schubert break; 4995b7c0c8c1SCy Schubert 4996*46d2f618SCy Schubert case 482: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */ 4997*46d2f618SCy Schubert #line 1890 "util/configparser.y" 4998b7c0c8c1SCy Schubert { 4999b7c0c8c1SCy Schubert OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); 5000b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5001b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5002b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_algo_downgrade = 5003b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 5004b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5005b7c0c8c1SCy Schubert } 5006*46d2f618SCy Schubert #line 5007 "util/configparser.c" 5007b7c0c8c1SCy Schubert break; 5008b7c0c8c1SCy Schubert 5009*46d2f618SCy Schubert case 483: /* server_harden_unknown_additional: VAR_HARDEN_UNKNOWN_ADDITIONAL STRING_ARG */ 5010*46d2f618SCy Schubert #line 1900 "util/configparser.y" 5011b7c0c8c1SCy Schubert { 5012b7c0c8c1SCy Schubert OUTYY(("P(server_harden_unknown_additional:%s)\n", (yyvsp[0].str))); 5013b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5014b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5015b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_unknown_additional = 5016b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 5017b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5018b7c0c8c1SCy Schubert } 5019*46d2f618SCy Schubert #line 5020 "util/configparser.c" 5020b7c0c8c1SCy Schubert break; 5021b7c0c8c1SCy Schubert 5022*46d2f618SCy Schubert case 484: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */ 5023*46d2f618SCy Schubert #line 1910 "util/configparser.y" 5024b7c0c8c1SCy Schubert { 5025b7c0c8c1SCy Schubert OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); 5026b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5027b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5028b7c0c8c1SCy Schubert else cfg_parser->cfg->use_caps_bits_for_id = 5029b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 5030b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5031b7c0c8c1SCy Schubert } 5032*46d2f618SCy Schubert #line 5033 "util/configparser.c" 5033b7c0c8c1SCy Schubert break; 5034b7c0c8c1SCy Schubert 5035*46d2f618SCy Schubert case 485: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */ 5036*46d2f618SCy Schubert #line 1920 "util/configparser.y" 5037b7c0c8c1SCy Schubert { 5038b7c0c8c1SCy Schubert OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); 5039b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) 5040b7c0c8c1SCy Schubert yyerror("out of memory"); 5041b7c0c8c1SCy Schubert } 5042*46d2f618SCy Schubert #line 5043 "util/configparser.c" 5043b7c0c8c1SCy Schubert break; 5044b7c0c8c1SCy Schubert 5045*46d2f618SCy Schubert case 486: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */ 5046*46d2f618SCy Schubert #line 1927 "util/configparser.y" 5047b7c0c8c1SCy Schubert { 5048b7c0c8c1SCy Schubert OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); 5049b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) 5050b7c0c8c1SCy Schubert yyerror("out of memory"); 5051b7c0c8c1SCy Schubert } 5052*46d2f618SCy Schubert #line 5053 "util/configparser.c" 5053b7c0c8c1SCy Schubert break; 5054b7c0c8c1SCy Schubert 5055*46d2f618SCy Schubert case 487: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */ 5056*46d2f618SCy Schubert #line 1934 "util/configparser.y" 5057b7c0c8c1SCy Schubert { 5058b7c0c8c1SCy Schubert OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); 5059b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) 5060b7c0c8c1SCy Schubert yyerror("out of memory"); 5061b7c0c8c1SCy Schubert } 5062*46d2f618SCy Schubert #line 5063 "util/configparser.c" 5063b7c0c8c1SCy Schubert break; 5064b7c0c8c1SCy Schubert 5065*46d2f618SCy Schubert case 488: /* server_prefetch: VAR_PREFETCH STRING_ARG */ 5066*46d2f618SCy Schubert #line 1941 "util/configparser.y" 5067b7c0c8c1SCy Schubert { 5068b7c0c8c1SCy Schubert OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); 5069b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5070b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5071b7c0c8c1SCy Schubert else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); 5072b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5073b7c0c8c1SCy Schubert } 5074*46d2f618SCy Schubert #line 5075 "util/configparser.c" 5075b7c0c8c1SCy Schubert break; 5076b7c0c8c1SCy Schubert 5077*46d2f618SCy Schubert case 489: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */ 5078*46d2f618SCy Schubert #line 1950 "util/configparser.y" 5079b7c0c8c1SCy Schubert { 5080b7c0c8c1SCy Schubert OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); 5081b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5082b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5083b7c0c8c1SCy Schubert else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); 5084b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5085b7c0c8c1SCy Schubert } 5086*46d2f618SCy Schubert #line 5087 "util/configparser.c" 5087b7c0c8c1SCy Schubert break; 5088b7c0c8c1SCy Schubert 5089*46d2f618SCy Schubert case 490: /* server_deny_any: VAR_DENY_ANY STRING_ARG */ 5090*46d2f618SCy Schubert #line 1959 "util/configparser.y" 5091b7c0c8c1SCy Schubert { 5092b7c0c8c1SCy Schubert OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); 5093b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5094b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5095b7c0c8c1SCy Schubert else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); 5096b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5097b7c0c8c1SCy Schubert } 5098*46d2f618SCy Schubert #line 5099 "util/configparser.c" 5099b7c0c8c1SCy Schubert break; 5100b7c0c8c1SCy Schubert 5101*46d2f618SCy Schubert case 491: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */ 5102*46d2f618SCy Schubert #line 1968 "util/configparser.y" 5103b7c0c8c1SCy Schubert { 5104b7c0c8c1SCy Schubert OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); 5105b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 5106b7c0c8c1SCy Schubert yyerror("number expected"); 5107b7c0c8c1SCy Schubert else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); 5108b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5109b7c0c8c1SCy Schubert } 5110*46d2f618SCy Schubert #line 5111 "util/configparser.c" 5111b7c0c8c1SCy Schubert break; 5112b7c0c8c1SCy Schubert 5113*46d2f618SCy Schubert case 492: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */ 5114*46d2f618SCy Schubert #line 1977 "util/configparser.y" 5115b7c0c8c1SCy Schubert { 5116b7c0c8c1SCy Schubert OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); 5117b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) 5118b7c0c8c1SCy Schubert yyerror("out of memory"); 5119b7c0c8c1SCy Schubert } 5120*46d2f618SCy Schubert #line 5121 "util/configparser.c" 5121b7c0c8c1SCy Schubert break; 5122b7c0c8c1SCy Schubert 5123*46d2f618SCy Schubert case 493: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */ 5124*46d2f618SCy Schubert #line 1984 "util/configparser.y" 5125b7c0c8c1SCy Schubert { 5126b7c0c8c1SCy Schubert OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); 5127b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5128b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5129b7c0c8c1SCy Schubert else cfg_parser->cfg->donotquery_localhost = 5130b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 5131b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5132b7c0c8c1SCy Schubert } 5133*46d2f618SCy Schubert #line 5134 "util/configparser.c" 5134b7c0c8c1SCy Schubert break; 5135b7c0c8c1SCy Schubert 5136*46d2f618SCy Schubert case 494: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */ 5137*46d2f618SCy Schubert #line 1994 "util/configparser.y" 5138b7c0c8c1SCy Schubert { 5139b7c0c8c1SCy Schubert OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 5140b7c0c8c1SCy Schubert validate_acl_action((yyvsp[0].str)); 5141b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[-1].str), (yyvsp[0].str))) 5142b7c0c8c1SCy Schubert fatal_exit("out of memory adding acl"); 5143b7c0c8c1SCy Schubert } 5144*46d2f618SCy Schubert #line 5145 "util/configparser.c" 5145b7c0c8c1SCy Schubert break; 5146b7c0c8c1SCy Schubert 5147*46d2f618SCy Schubert case 495: /* server_interface_action: VAR_INTERFACE_ACTION STRING_ARG STRING_ARG */ 5148*46d2f618SCy Schubert #line 2002 "util/configparser.y" 5149b7c0c8c1SCy Schubert { 5150b7c0c8c1SCy Schubert OUTYY(("P(server_interface_action:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 5151b7c0c8c1SCy Schubert validate_acl_action((yyvsp[0].str)); 5152b7c0c8c1SCy Schubert if(!cfg_str2list_insert( 5153b7c0c8c1SCy Schubert &cfg_parser->cfg->interface_actions, (yyvsp[-1].str), (yyvsp[0].str))) 5154b7c0c8c1SCy Schubert fatal_exit("out of memory adding acl"); 5155b7c0c8c1SCy Schubert } 5156*46d2f618SCy Schubert #line 5157 "util/configparser.c" 5157b7c0c8c1SCy Schubert break; 5158b7c0c8c1SCy Schubert 5159*46d2f618SCy Schubert case 496: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */ 5160*46d2f618SCy Schubert #line 2011 "util/configparser.y" 5161b7c0c8c1SCy Schubert { 5162b7c0c8c1SCy Schubert OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); 5163b7c0c8c1SCy Schubert free(cfg_parser->cfg->module_conf); 5164b7c0c8c1SCy Schubert cfg_parser->cfg->module_conf = (yyvsp[0].str); 5165b7c0c8c1SCy Schubert } 5166*46d2f618SCy Schubert #line 5167 "util/configparser.c" 5167b7c0c8c1SCy Schubert break; 5168b7c0c8c1SCy Schubert 5169*46d2f618SCy Schubert case 497: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */ 5170*46d2f618SCy Schubert #line 2018 "util/configparser.y" 5171b7c0c8c1SCy Schubert { 5172b7c0c8c1SCy Schubert OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); 5173b7c0c8c1SCy Schubert if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { 5174b7c0c8c1SCy Schubert cfg_parser->cfg->val_date_override = 0; 5175b7c0c8c1SCy Schubert } else if(strlen((yyvsp[0].str)) == 14) { 5176b7c0c8c1SCy Schubert cfg_parser->cfg->val_date_override = 5177b7c0c8c1SCy Schubert cfg_convert_timeval((yyvsp[0].str)); 5178b7c0c8c1SCy Schubert if(!cfg_parser->cfg->val_date_override) 5179b7c0c8c1SCy Schubert yyerror("bad date/time specification"); 5180b7c0c8c1SCy Schubert } else { 5181b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 5182b7c0c8c1SCy Schubert yyerror("number expected"); 5183b7c0c8c1SCy Schubert cfg_parser->cfg->val_date_override = atoi((yyvsp[0].str)); 5184b7c0c8c1SCy Schubert } 5185b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5186b7c0c8c1SCy Schubert } 5187*46d2f618SCy Schubert #line 5188 "util/configparser.c" 5188b7c0c8c1SCy Schubert break; 5189b7c0c8c1SCy Schubert 5190*46d2f618SCy Schubert case 498: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */ 5191*46d2f618SCy Schubert #line 2036 "util/configparser.y" 5192b7c0c8c1SCy Schubert { 5193b7c0c8c1SCy Schubert OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); 5194b7c0c8c1SCy Schubert if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { 5195b7c0c8c1SCy Schubert cfg_parser->cfg->val_sig_skew_min = 0; 5196b7c0c8c1SCy Schubert } else { 5197b7c0c8c1SCy Schubert cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[0].str)); 5198b7c0c8c1SCy Schubert if(!cfg_parser->cfg->val_sig_skew_min) 5199b7c0c8c1SCy Schubert yyerror("number expected"); 5200b7c0c8c1SCy Schubert } 5201b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5202b7c0c8c1SCy Schubert } 5203*46d2f618SCy Schubert #line 5204 "util/configparser.c" 5204b7c0c8c1SCy Schubert break; 5205b7c0c8c1SCy Schubert 5206*46d2f618SCy Schubert case 499: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */ 5207*46d2f618SCy Schubert #line 2049 "util/configparser.y" 5208b7c0c8c1SCy Schubert { 5209b7c0c8c1SCy Schubert OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); 5210b7c0c8c1SCy Schubert if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { 5211b7c0c8c1SCy Schubert cfg_parser->cfg->val_sig_skew_max = 0; 5212b7c0c8c1SCy Schubert } else { 5213b7c0c8c1SCy Schubert cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[0].str)); 5214b7c0c8c1SCy Schubert if(!cfg_parser->cfg->val_sig_skew_max) 5215b7c0c8c1SCy Schubert yyerror("number expected"); 5216b7c0c8c1SCy Schubert } 5217b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5218b7c0c8c1SCy Schubert } 5219*46d2f618SCy Schubert #line 5220 "util/configparser.c" 5220b7c0c8c1SCy Schubert break; 5221b7c0c8c1SCy Schubert 5222*46d2f618SCy Schubert case 500: /* server_val_max_restart: VAR_VAL_MAX_RESTART STRING_ARG */ 5223*46d2f618SCy Schubert #line 2062 "util/configparser.y" 5224b7c0c8c1SCy Schubert { 5225b7c0c8c1SCy Schubert OUTYY(("P(server_val_max_restart:%s)\n", (yyvsp[0].str))); 5226b7c0c8c1SCy Schubert if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { 5227b7c0c8c1SCy Schubert cfg_parser->cfg->val_max_restart = 0; 5228b7c0c8c1SCy Schubert } else { 5229b7c0c8c1SCy Schubert cfg_parser->cfg->val_max_restart = atoi((yyvsp[0].str)); 5230b7c0c8c1SCy Schubert if(!cfg_parser->cfg->val_max_restart) 5231b7c0c8c1SCy Schubert yyerror("number expected"); 5232b7c0c8c1SCy Schubert } 5233b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5234b7c0c8c1SCy Schubert } 5235*46d2f618SCy Schubert #line 5236 "util/configparser.c" 5236b7c0c8c1SCy Schubert break; 5237b7c0c8c1SCy Schubert 5238*46d2f618SCy Schubert case 501: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */ 5239*46d2f618SCy Schubert #line 2075 "util/configparser.y" 5240b7c0c8c1SCy Schubert { 5241b7c0c8c1SCy Schubert OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); 5242b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 5243b7c0c8c1SCy Schubert yyerror("number expected"); 5244b7c0c8c1SCy Schubert else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); 5245b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5246b7c0c8c1SCy Schubert } 5247*46d2f618SCy Schubert #line 5248 "util/configparser.c" 5248b7c0c8c1SCy Schubert break; 5249b7c0c8c1SCy Schubert 5250*46d2f618SCy Schubert case 502: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */ 5251*46d2f618SCy Schubert #line 2084 "util/configparser.y" 5252b7c0c8c1SCy Schubert { 5253b7c0c8c1SCy Schubert OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); 5254b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 5255b7c0c8c1SCy Schubert yyerror("number expected"); 5256b7c0c8c1SCy Schubert else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); 5257b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5258b7c0c8c1SCy Schubert } 5259*46d2f618SCy Schubert #line 5260 "util/configparser.c" 5260b7c0c8c1SCy Schubert break; 5261b7c0c8c1SCy Schubert 5262*46d2f618SCy Schubert case 503: /* server_cache_min_negative_ttl: VAR_CACHE_MIN_NEGATIVE_TTL STRING_ARG */ 5263*46d2f618SCy Schubert #line 2093 "util/configparser.y" 5264335c7cdaSCy Schubert { 5265335c7cdaSCy Schubert OUTYY(("P(server_cache_min_negative_ttl:%s)\n", (yyvsp[0].str))); 5266335c7cdaSCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 5267335c7cdaSCy Schubert yyerror("number expected"); 5268335c7cdaSCy Schubert else cfg_parser->cfg->min_negative_ttl = atoi((yyvsp[0].str)); 5269335c7cdaSCy Schubert free((yyvsp[0].str)); 5270335c7cdaSCy Schubert } 5271*46d2f618SCy Schubert #line 5272 "util/configparser.c" 5272335c7cdaSCy Schubert break; 5273335c7cdaSCy Schubert 5274*46d2f618SCy Schubert case 504: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */ 5275*46d2f618SCy Schubert #line 2102 "util/configparser.y" 5276b7c0c8c1SCy Schubert { 5277b7c0c8c1SCy Schubert OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); 5278b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 5279b7c0c8c1SCy Schubert yyerror("number expected"); 5280b7c0c8c1SCy Schubert else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); 5281b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5282b7c0c8c1SCy Schubert } 5283*46d2f618SCy Schubert #line 5284 "util/configparser.c" 5284b7c0c8c1SCy Schubert break; 5285b7c0c8c1SCy Schubert 5286*46d2f618SCy Schubert case 505: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */ 5287*46d2f618SCy Schubert #line 2111 "util/configparser.y" 5288b7c0c8c1SCy Schubert { 5289b7c0c8c1SCy Schubert OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); 5290b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 5291b7c0c8c1SCy Schubert yyerror("number expected"); 5292b7c0c8c1SCy Schubert else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); 5293b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5294b7c0c8c1SCy Schubert } 5295*46d2f618SCy Schubert #line 5296 "util/configparser.c" 5296b7c0c8c1SCy Schubert break; 5297b7c0c8c1SCy Schubert 5298*46d2f618SCy Schubert case 506: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */ 5299*46d2f618SCy Schubert #line 2120 "util/configparser.y" 5300b7c0c8c1SCy Schubert { 5301b7c0c8c1SCy Schubert OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); 5302b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5303b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5304b7c0c8c1SCy Schubert else cfg_parser->cfg->val_clean_additional = 5305b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 5306b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5307b7c0c8c1SCy Schubert } 5308*46d2f618SCy Schubert #line 5309 "util/configparser.c" 5309b7c0c8c1SCy Schubert break; 5310b7c0c8c1SCy Schubert 5311*46d2f618SCy Schubert case 507: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */ 5312*46d2f618SCy Schubert #line 2130 "util/configparser.y" 5313b7c0c8c1SCy Schubert { 5314b7c0c8c1SCy Schubert OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); 5315b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5316b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5317b7c0c8c1SCy Schubert else cfg_parser->cfg->val_permissive_mode = 5318b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 5319b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5320b7c0c8c1SCy Schubert } 5321*46d2f618SCy Schubert #line 5322 "util/configparser.c" 5322b7c0c8c1SCy Schubert break; 5323b7c0c8c1SCy Schubert 5324*46d2f618SCy Schubert case 508: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */ 5325*46d2f618SCy Schubert #line 2140 "util/configparser.y" 5326b7c0c8c1SCy Schubert { 5327b7c0c8c1SCy Schubert OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); 5328b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5329b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5330b7c0c8c1SCy Schubert else 5331b7c0c8c1SCy Schubert cfg_parser->cfg->aggressive_nsec = 5332b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 5333b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5334b7c0c8c1SCy Schubert } 5335*46d2f618SCy Schubert #line 5336 "util/configparser.c" 5336b7c0c8c1SCy Schubert break; 5337b7c0c8c1SCy Schubert 5338*46d2f618SCy Schubert case 509: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */ 5339*46d2f618SCy Schubert #line 2151 "util/configparser.y" 5340b7c0c8c1SCy Schubert { 5341b7c0c8c1SCy Schubert OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); 5342b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5343b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5344b7c0c8c1SCy Schubert else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); 5345b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5346b7c0c8c1SCy Schubert } 5347*46d2f618SCy Schubert #line 5348 "util/configparser.c" 5348b7c0c8c1SCy Schubert break; 5349b7c0c8c1SCy Schubert 5350*46d2f618SCy Schubert case 510: /* server_disable_edns_do: VAR_DISABLE_EDNS_DO STRING_ARG */ 5351*46d2f618SCy Schubert #line 2160 "util/configparser.y" 5352b7c0c8c1SCy Schubert { 5353b7c0c8c1SCy Schubert OUTYY(("P(server_disable_edns_do:%s)\n", (yyvsp[0].str))); 5354b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5355b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5356b7c0c8c1SCy Schubert else cfg_parser->cfg->disable_edns_do = (strcmp((yyvsp[0].str), "yes")==0); 5357b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5358b7c0c8c1SCy Schubert } 5359*46d2f618SCy Schubert #line 5360 "util/configparser.c" 5360b7c0c8c1SCy Schubert break; 5361b7c0c8c1SCy Schubert 5362*46d2f618SCy Schubert case 511: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */ 5363*46d2f618SCy Schubert #line 2169 "util/configparser.y" 5364b7c0c8c1SCy Schubert { 5365b7c0c8c1SCy Schubert OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); 5366b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5367b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5368b7c0c8c1SCy Schubert else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); 5369b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5370b7c0c8c1SCy Schubert } 5371*46d2f618SCy Schubert #line 5372 "util/configparser.c" 5372b7c0c8c1SCy Schubert break; 5373b7c0c8c1SCy Schubert 5374*46d2f618SCy Schubert case 512: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */ 5375*46d2f618SCy Schubert #line 2178 "util/configparser.y" 5376b7c0c8c1SCy Schubert { 5377b7c0c8c1SCy Schubert OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); 5378b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 5379b7c0c8c1SCy Schubert yyerror("number expected"); 5380b7c0c8c1SCy Schubert else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); 5381b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5382b7c0c8c1SCy Schubert } 5383*46d2f618SCy Schubert #line 5384 "util/configparser.c" 5384b7c0c8c1SCy Schubert break; 5385b7c0c8c1SCy Schubert 5386*46d2f618SCy Schubert case 513: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */ 5387*46d2f618SCy Schubert #line 2187 "util/configparser.y" 5388b7c0c8c1SCy Schubert { 5389b7c0c8c1SCy Schubert OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); 5390b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5391b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5392b7c0c8c1SCy Schubert else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); 5393b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5394b7c0c8c1SCy Schubert } 5395*46d2f618SCy Schubert #line 5396 "util/configparser.c" 5396b7c0c8c1SCy Schubert break; 5397b7c0c8c1SCy Schubert 5398*46d2f618SCy Schubert case 514: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */ 5399*46d2f618SCy Schubert #line 2196 "util/configparser.y" 5400b7c0c8c1SCy Schubert { 5401b7c0c8c1SCy Schubert OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); 5402b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 5403b7c0c8c1SCy Schubert yyerror("number expected"); 5404b7c0c8c1SCy Schubert else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); 5405b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5406b7c0c8c1SCy Schubert } 5407*46d2f618SCy Schubert #line 5408 "util/configparser.c" 5408b7c0c8c1SCy Schubert break; 5409b7c0c8c1SCy Schubert 5410*46d2f618SCy Schubert case 515: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */ 5411*46d2f618SCy Schubert #line 2205 "util/configparser.y" 5412b7c0c8c1SCy Schubert { 5413b7c0c8c1SCy Schubert OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); 5414b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 5415b7c0c8c1SCy Schubert yyerror("number expected"); 5416b7c0c8c1SCy Schubert else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); 5417b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5418b7c0c8c1SCy Schubert } 5419*46d2f618SCy Schubert #line 5420 "util/configparser.c" 5420b7c0c8c1SCy Schubert break; 5421b7c0c8c1SCy Schubert 5422*46d2f618SCy Schubert case 516: /* server_ede_serve_expired: VAR_EDE_SERVE_EXPIRED STRING_ARG */ 5423*46d2f618SCy Schubert #line 2214 "util/configparser.y" 5424b7c0c8c1SCy Schubert { 5425b7c0c8c1SCy Schubert OUTYY(("P(server_ede_serve_expired:%s)\n", (yyvsp[0].str))); 5426b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5427b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5428b7c0c8c1SCy Schubert else cfg_parser->cfg->ede_serve_expired = (strcmp((yyvsp[0].str), "yes")==0); 5429b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5430b7c0c8c1SCy Schubert } 5431*46d2f618SCy Schubert #line 5432 "util/configparser.c" 5432b7c0c8c1SCy Schubert break; 5433b7c0c8c1SCy Schubert 5434*46d2f618SCy Schubert case 517: /* server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG */ 5435*46d2f618SCy Schubert #line 2223 "util/configparser.y" 5436b7c0c8c1SCy Schubert { 5437b7c0c8c1SCy Schubert OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str))); 5438b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5439b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5440b7c0c8c1SCy Schubert else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0); 5441b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5442b7c0c8c1SCy Schubert } 5443*46d2f618SCy Schubert #line 5444 "util/configparser.c" 5444b7c0c8c1SCy Schubert break; 5445b7c0c8c1SCy Schubert 5446*46d2f618SCy Schubert case 518: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */ 5447*46d2f618SCy Schubert #line 2232 "util/configparser.y" 5448b7c0c8c1SCy Schubert { 5449b7c0c8c1SCy Schubert OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); 5450b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5451b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5452b7c0c8c1SCy Schubert #if defined(HAVE_SSL) || defined(HAVE_NETTLE) 5453b7c0c8c1SCy Schubert else fake_dsa = (strcmp((yyvsp[0].str), "yes")==0); 5454b7c0c8c1SCy Schubert if(fake_dsa) 5455b7c0c8c1SCy Schubert log_warn("test option fake_dsa is enabled"); 5456b7c0c8c1SCy Schubert #endif 5457b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5458b7c0c8c1SCy Schubert } 5459*46d2f618SCy Schubert #line 5460 "util/configparser.c" 5460b7c0c8c1SCy Schubert break; 5461b7c0c8c1SCy Schubert 5462*46d2f618SCy Schubert case 519: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */ 5463*46d2f618SCy Schubert #line 2245 "util/configparser.y" 5464b7c0c8c1SCy Schubert { 5465b7c0c8c1SCy Schubert OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); 5466b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5467b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5468b7c0c8c1SCy Schubert #if defined(HAVE_SSL) || defined(HAVE_NETTLE) 5469b7c0c8c1SCy Schubert else fake_sha1 = (strcmp((yyvsp[0].str), "yes")==0); 5470b7c0c8c1SCy Schubert if(fake_sha1) 5471b7c0c8c1SCy Schubert log_warn("test option fake_sha1 is enabled"); 5472b7c0c8c1SCy Schubert #endif 5473b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5474b7c0c8c1SCy Schubert } 5475*46d2f618SCy Schubert #line 5476 "util/configparser.c" 5476b7c0c8c1SCy Schubert break; 5477b7c0c8c1SCy Schubert 5478*46d2f618SCy Schubert case 520: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */ 5479*46d2f618SCy Schubert #line 2258 "util/configparser.y" 5480b7c0c8c1SCy Schubert { 5481b7c0c8c1SCy Schubert OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); 5482b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 5483b7c0c8c1SCy Schubert yyerror("number expected"); 5484b7c0c8c1SCy Schubert else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); 5485b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5486b7c0c8c1SCy Schubert } 5487*46d2f618SCy Schubert #line 5488 "util/configparser.c" 5488b7c0c8c1SCy Schubert break; 5489b7c0c8c1SCy Schubert 5490*46d2f618SCy Schubert case 521: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */ 5491*46d2f618SCy Schubert #line 2267 "util/configparser.y" 5492b7c0c8c1SCy Schubert { 5493b7c0c8c1SCy Schubert OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); 5494b7c0c8c1SCy Schubert free(cfg_parser->cfg->val_nsec3_key_iterations); 5495b7c0c8c1SCy Schubert cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); 5496b7c0c8c1SCy Schubert } 5497*46d2f618SCy Schubert #line 5498 "util/configparser.c" 5498b7c0c8c1SCy Schubert break; 5499b7c0c8c1SCy Schubert 5500*46d2f618SCy Schubert case 522: /* server_zonemd_permissive_mode: VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG */ 5501*46d2f618SCy Schubert #line 2274 "util/configparser.y" 5502b7c0c8c1SCy Schubert { 5503b7c0c8c1SCy Schubert OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[0].str))); 5504b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5505b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5506b7c0c8c1SCy Schubert else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0); 5507b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5508b7c0c8c1SCy Schubert } 5509*46d2f618SCy Schubert #line 5510 "util/configparser.c" 5510b7c0c8c1SCy Schubert break; 5511b7c0c8c1SCy Schubert 5512*46d2f618SCy Schubert case 523: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */ 5513*46d2f618SCy Schubert #line 2283 "util/configparser.y" 5514b7c0c8c1SCy Schubert { 5515b7c0c8c1SCy Schubert OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); 5516b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 5517b7c0c8c1SCy Schubert yyerror("number expected"); 5518b7c0c8c1SCy Schubert else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); 5519b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5520b7c0c8c1SCy Schubert } 5521*46d2f618SCy Schubert #line 5522 "util/configparser.c" 5522b7c0c8c1SCy Schubert break; 5523b7c0c8c1SCy Schubert 5524*46d2f618SCy Schubert case 524: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */ 5525*46d2f618SCy Schubert #line 2292 "util/configparser.y" 5526b7c0c8c1SCy Schubert { 5527b7c0c8c1SCy Schubert OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); 5528b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 5529b7c0c8c1SCy Schubert yyerror("number expected"); 5530b7c0c8c1SCy Schubert else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); 5531b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5532b7c0c8c1SCy Schubert } 5533*46d2f618SCy Schubert #line 5534 "util/configparser.c" 5534b7c0c8c1SCy Schubert break; 5535b7c0c8c1SCy Schubert 5536*46d2f618SCy Schubert case 525: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */ 5537*46d2f618SCy Schubert #line 2301 "util/configparser.y" 5538b7c0c8c1SCy Schubert { 5539b7c0c8c1SCy Schubert OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); 5540b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 5541b7c0c8c1SCy Schubert yyerror("number expected"); 5542b7c0c8c1SCy Schubert else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); 5543b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5544b7c0c8c1SCy Schubert } 5545*46d2f618SCy Schubert #line 5546 "util/configparser.c" 5546b7c0c8c1SCy Schubert break; 5547b7c0c8c1SCy Schubert 5548*46d2f618SCy Schubert case 526: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */ 5549*46d2f618SCy Schubert #line 2310 "util/configparser.y" 5550b7c0c8c1SCy Schubert { 5551b7c0c8c1SCy Schubert OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); 5552b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5553b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5554b7c0c8c1SCy Schubert else cfg_parser->cfg->permit_small_holddown = 5555b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 5556b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5557b7c0c8c1SCy Schubert } 5558*46d2f618SCy Schubert #line 5559 "util/configparser.c" 5559b7c0c8c1SCy Schubert break; 5560b7c0c8c1SCy Schubert 5561*46d2f618SCy Schubert case 527: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */ 5562*46d2f618SCy Schubert #line 2320 "util/configparser.y" 5563b7c0c8c1SCy Schubert { 5564b7c0c8c1SCy Schubert OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); 5565b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) 5566b7c0c8c1SCy Schubert yyerror("memory size expected"); 5567b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5568b7c0c8c1SCy Schubert } 5569*46d2f618SCy Schubert #line 5570 "util/configparser.c" 5570b7c0c8c1SCy Schubert break; 5571b7c0c8c1SCy Schubert 5572*46d2f618SCy Schubert case 528: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */ 5573*46d2f618SCy Schubert #line 2328 "util/configparser.y" 5574b7c0c8c1SCy Schubert { 5575b7c0c8c1SCy Schubert OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); 5576b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) { 5577b7c0c8c1SCy Schubert yyerror("number expected"); 5578b7c0c8c1SCy Schubert } else { 5579b7c0c8c1SCy Schubert cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[0].str)); 5580b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->key_cache_slabs)) 5581b7c0c8c1SCy Schubert yyerror("must be a power of 2"); 5582b7c0c8c1SCy Schubert } 5583b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5584b7c0c8c1SCy Schubert } 5585*46d2f618SCy Schubert #line 5586 "util/configparser.c" 5586b7c0c8c1SCy Schubert break; 5587b7c0c8c1SCy Schubert 5588*46d2f618SCy Schubert case 529: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */ 5589*46d2f618SCy Schubert #line 2341 "util/configparser.y" 5590b7c0c8c1SCy Schubert { 5591b7c0c8c1SCy Schubert OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); 5592b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) 5593b7c0c8c1SCy Schubert yyerror("memory size expected"); 5594b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5595b7c0c8c1SCy Schubert } 5596*46d2f618SCy Schubert #line 5597 "util/configparser.c" 5597b7c0c8c1SCy Schubert break; 5598b7c0c8c1SCy Schubert 5599*46d2f618SCy Schubert case 530: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ 5600*46d2f618SCy Schubert #line 2349 "util/configparser.y" 5601b7c0c8c1SCy Schubert { 5602b7c0c8c1SCy Schubert OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 5603b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && 5604b7c0c8c1SCy Schubert strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 && 5605b7c0c8c1SCy Schubert strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0 5606b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "typetransparent")!=0 5607b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_transparent")!=0 5608b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "block_a")!=0 5609b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_refuse")!=0 5610b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_nxdomain")!=0 5611b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_nodata")!=0 5612b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_deny")!=0 5613b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_null")!=0 5614b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "noview")!=0 5615b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0 5616b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "inform_redirect") != 0 5617b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "ipset") != 0) { 5618b7c0c8c1SCy Schubert yyerror("local-zone type: expected static, deny, " 5619b7c0c8c1SCy Schubert "refuse, redirect, transparent, " 5620b7c0c8c1SCy Schubert "typetransparent, inform, inform_deny, " 5621b7c0c8c1SCy Schubert "inform_redirect, always_transparent, block_a," 5622b7c0c8c1SCy Schubert "always_refuse, always_nxdomain, " 5623b7c0c8c1SCy Schubert "always_nodata, always_deny, always_null, " 5624b7c0c8c1SCy Schubert "noview, nodefault or ipset"); 5625b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 5626b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5627b7c0c8c1SCy Schubert } else if(strcmp((yyvsp[0].str), "nodefault")==0) { 5628b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg-> 5629b7c0c8c1SCy Schubert local_zones_nodefault, (yyvsp[-1].str))) 5630b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone"); 5631b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5632b7c0c8c1SCy Schubert #ifdef USE_IPSET 5633b7c0c8c1SCy Schubert } else if(strcmp((yyvsp[0].str), "ipset")==0) { 5634b7c0c8c1SCy Schubert size_t len = strlen((yyvsp[-1].str)); 5635b7c0c8c1SCy Schubert /* Make sure to add the trailing dot. 5636b7c0c8c1SCy Schubert * These are str compared to domain names. */ 5637b7c0c8c1SCy Schubert if((yyvsp[-1].str)[len-1] != '.') { 5638b7c0c8c1SCy Schubert if(!((yyvsp[-1].str) = realloc((yyvsp[-1].str), len+2))) { 5639b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone"); 5640b7c0c8c1SCy Schubert } 5641b7c0c8c1SCy Schubert (yyvsp[-1].str)[len] = '.'; 5642b7c0c8c1SCy Schubert (yyvsp[-1].str)[len+1] = 0; 5643b7c0c8c1SCy Schubert } 5644b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg-> 5645b7c0c8c1SCy Schubert local_zones_ipset, (yyvsp[-1].str))) 5646b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone"); 5647b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5648b7c0c8c1SCy Schubert #endif 5649b7c0c8c1SCy Schubert } else { 5650b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones, 5651b7c0c8c1SCy Schubert (yyvsp[-1].str), (yyvsp[0].str))) 5652b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone"); 5653b7c0c8c1SCy Schubert } 5654b7c0c8c1SCy Schubert } 5655*46d2f618SCy Schubert #line 5656 "util/configparser.c" 5656b7c0c8c1SCy Schubert break; 5657b7c0c8c1SCy Schubert 5658*46d2f618SCy Schubert case 531: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */ 5659*46d2f618SCy Schubert #line 2405 "util/configparser.y" 5660b7c0c8c1SCy Schubert { 5661b7c0c8c1SCy Schubert OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); 5662b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) 5663b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-data"); 5664b7c0c8c1SCy Schubert } 5665*46d2f618SCy Schubert #line 5666 "util/configparser.c" 5666b7c0c8c1SCy Schubert break; 5667b7c0c8c1SCy Schubert 5668*46d2f618SCy Schubert case 532: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ 5669*46d2f618SCy Schubert #line 2412 "util/configparser.y" 5670b7c0c8c1SCy Schubert { 5671b7c0c8c1SCy Schubert char* ptr; 5672b7c0c8c1SCy Schubert OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); 5673b7c0c8c1SCy Schubert ptr = cfg_ptr_reverse((yyvsp[0].str)); 5674b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5675b7c0c8c1SCy Schubert if(ptr) { 5676b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg-> 5677b7c0c8c1SCy Schubert local_data, ptr)) 5678b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-data"); 5679b7c0c8c1SCy Schubert } else { 5680b7c0c8c1SCy Schubert yyerror("local-data-ptr could not be reversed"); 5681b7c0c8c1SCy Schubert } 5682b7c0c8c1SCy Schubert } 5683*46d2f618SCy Schubert #line 5684 "util/configparser.c" 5684b7c0c8c1SCy Schubert break; 5685b7c0c8c1SCy Schubert 5686*46d2f618SCy Schubert case 533: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */ 5687*46d2f618SCy Schubert #line 2427 "util/configparser.y" 5688b7c0c8c1SCy Schubert { 5689b7c0c8c1SCy Schubert OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); 5690b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5691b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5692b7c0c8c1SCy Schubert else cfg_parser->cfg->minimal_responses = 5693b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 5694b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5695b7c0c8c1SCy Schubert } 5696*46d2f618SCy Schubert #line 5697 "util/configparser.c" 5697b7c0c8c1SCy Schubert break; 5698b7c0c8c1SCy Schubert 5699*46d2f618SCy Schubert case 534: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */ 5700*46d2f618SCy Schubert #line 2437 "util/configparser.y" 5701b7c0c8c1SCy Schubert { 5702b7c0c8c1SCy Schubert OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); 5703b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5704b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5705b7c0c8c1SCy Schubert else cfg_parser->cfg->rrset_roundrobin = 5706b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 5707b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5708b7c0c8c1SCy Schubert } 5709*46d2f618SCy Schubert #line 5710 "util/configparser.c" 5710b7c0c8c1SCy Schubert break; 5711b7c0c8c1SCy Schubert 5712*46d2f618SCy Schubert case 535: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */ 5713*46d2f618SCy Schubert #line 2447 "util/configparser.y" 5714b7c0c8c1SCy Schubert { 5715b7c0c8c1SCy Schubert OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); 5716b7c0c8c1SCy Schubert cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); 5717b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5718b7c0c8c1SCy Schubert } 5719*46d2f618SCy Schubert #line 5720 "util/configparser.c" 5720b7c0c8c1SCy Schubert break; 5721b7c0c8c1SCy Schubert 5722*46d2f618SCy Schubert case 536: /* server_discard_timeout: VAR_DISCARD_TIMEOUT STRING_ARG */ 5723*46d2f618SCy Schubert #line 2454 "util/configparser.y" 5724335c7cdaSCy Schubert { 5725335c7cdaSCy Schubert OUTYY(("P(server_discard_timeout:%s)\n", (yyvsp[0].str))); 5726335c7cdaSCy Schubert cfg_parser->cfg->discard_timeout = atoi((yyvsp[0].str)); 5727335c7cdaSCy Schubert free((yyvsp[0].str)); 5728335c7cdaSCy Schubert } 5729*46d2f618SCy Schubert #line 5730 "util/configparser.c" 5730335c7cdaSCy Schubert break; 5731335c7cdaSCy Schubert 5732*46d2f618SCy Schubert case 537: /* server_wait_limit: VAR_WAIT_LIMIT STRING_ARG */ 5733*46d2f618SCy Schubert #line 2461 "util/configparser.y" 5734335c7cdaSCy Schubert { 5735335c7cdaSCy Schubert OUTYY(("P(server_wait_limit:%s)\n", (yyvsp[0].str))); 5736335c7cdaSCy Schubert cfg_parser->cfg->wait_limit = atoi((yyvsp[0].str)); 5737335c7cdaSCy Schubert free((yyvsp[0].str)); 5738335c7cdaSCy Schubert } 5739*46d2f618SCy Schubert #line 5740 "util/configparser.c" 5740335c7cdaSCy Schubert break; 5741335c7cdaSCy Schubert 5742*46d2f618SCy Schubert case 538: /* server_wait_limit_cookie: VAR_WAIT_LIMIT_COOKIE STRING_ARG */ 5743*46d2f618SCy Schubert #line 2468 "util/configparser.y" 5744335c7cdaSCy Schubert { 5745335c7cdaSCy Schubert OUTYY(("P(server_wait_limit_cookie:%s)\n", (yyvsp[0].str))); 5746335c7cdaSCy Schubert cfg_parser->cfg->wait_limit_cookie = atoi((yyvsp[0].str)); 5747335c7cdaSCy Schubert free((yyvsp[0].str)); 5748335c7cdaSCy Schubert } 5749*46d2f618SCy Schubert #line 5750 "util/configparser.c" 5750335c7cdaSCy Schubert break; 5751335c7cdaSCy Schubert 5752*46d2f618SCy Schubert case 539: /* server_wait_limit_netblock: VAR_WAIT_LIMIT_NETBLOCK STRING_ARG STRING_ARG */ 5753*46d2f618SCy Schubert #line 2475 "util/configparser.y" 5754335c7cdaSCy Schubert { 5755335c7cdaSCy Schubert OUTYY(("P(server_wait_limit_netblock:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 5756335c7cdaSCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { 5757335c7cdaSCy Schubert yyerror("number expected"); 5758335c7cdaSCy Schubert free((yyvsp[-1].str)); 5759335c7cdaSCy Schubert free((yyvsp[0].str)); 5760335c7cdaSCy Schubert } else { 5761335c7cdaSCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg-> 5762335c7cdaSCy Schubert wait_limit_netblock, (yyvsp[-1].str), (yyvsp[0].str))) 5763335c7cdaSCy Schubert fatal_exit("out of memory adding " 5764335c7cdaSCy Schubert "wait-limit-netblock"); 5765335c7cdaSCy Schubert } 5766335c7cdaSCy Schubert } 5767*46d2f618SCy Schubert #line 5768 "util/configparser.c" 5768335c7cdaSCy Schubert break; 5769335c7cdaSCy Schubert 5770*46d2f618SCy Schubert case 540: /* server_wait_limit_cookie_netblock: VAR_WAIT_LIMIT_COOKIE_NETBLOCK STRING_ARG STRING_ARG */ 5771*46d2f618SCy Schubert #line 2490 "util/configparser.y" 5772335c7cdaSCy Schubert { 5773335c7cdaSCy Schubert OUTYY(("P(server_wait_limit_cookie_netblock:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 5774335c7cdaSCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { 5775335c7cdaSCy Schubert yyerror("number expected"); 5776335c7cdaSCy Schubert free((yyvsp[-1].str)); 5777335c7cdaSCy Schubert free((yyvsp[0].str)); 5778335c7cdaSCy Schubert } else { 5779335c7cdaSCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg-> 5780335c7cdaSCy Schubert wait_limit_cookie_netblock, (yyvsp[-1].str), (yyvsp[0].str))) 5781335c7cdaSCy Schubert fatal_exit("out of memory adding " 5782335c7cdaSCy Schubert "wait-limit-cookie-netblock"); 5783335c7cdaSCy Schubert } 5784335c7cdaSCy Schubert } 5785*46d2f618SCy Schubert #line 5786 "util/configparser.c" 5786335c7cdaSCy Schubert break; 5787335c7cdaSCy Schubert 5788*46d2f618SCy Schubert case 541: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */ 5789*46d2f618SCy Schubert #line 2505 "util/configparser.y" 5790b7c0c8c1SCy Schubert { 5791b7c0c8c1SCy Schubert OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); 5792b7c0c8c1SCy Schubert cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); 5793b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5794b7c0c8c1SCy Schubert } 5795*46d2f618SCy Schubert #line 5796 "util/configparser.c" 5796b7c0c8c1SCy Schubert break; 5797b7c0c8c1SCy Schubert 5798*46d2f618SCy Schubert case 542: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */ 5799*46d2f618SCy Schubert #line 2512 "util/configparser.y" 5800b7c0c8c1SCy Schubert { 5801b7c0c8c1SCy Schubert OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); 5802b7c0c8c1SCy Schubert free(cfg_parser->cfg->dns64_prefix); 5803b7c0c8c1SCy Schubert cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); 5804b7c0c8c1SCy Schubert } 5805*46d2f618SCy Schubert #line 5806 "util/configparser.c" 5806b7c0c8c1SCy Schubert break; 5807b7c0c8c1SCy Schubert 5808*46d2f618SCy Schubert case 543: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */ 5809*46d2f618SCy Schubert #line 2519 "util/configparser.y" 5810b7c0c8c1SCy Schubert { 5811b7c0c8c1SCy Schubert OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); 5812b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 5813b7c0c8c1SCy Schubert yyerror("expected yes or no."); 5814b7c0c8c1SCy Schubert else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); 5815b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5816b7c0c8c1SCy Schubert } 5817*46d2f618SCy Schubert #line 5818 "util/configparser.c" 5818b7c0c8c1SCy Schubert break; 5819b7c0c8c1SCy Schubert 5820*46d2f618SCy Schubert case 544: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */ 5821*46d2f618SCy Schubert #line 2528 "util/configparser.y" 5822b7c0c8c1SCy Schubert { 5823b7c0c8c1SCy Schubert OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); 5824b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, 5825b7c0c8c1SCy Schubert (yyvsp[0].str))) 5826b7c0c8c1SCy Schubert fatal_exit("out of memory adding dns64-ignore-aaaa"); 5827b7c0c8c1SCy Schubert } 5828*46d2f618SCy Schubert #line 5829 "util/configparser.c" 5829b7c0c8c1SCy Schubert break; 5830b7c0c8c1SCy Schubert 5831*46d2f618SCy Schubert case 545: /* server_nat64_prefix: VAR_NAT64_PREFIX STRING_ARG */ 5832*46d2f618SCy Schubert #line 2536 "util/configparser.y" 5833b7c0c8c1SCy Schubert { 5834b7c0c8c1SCy Schubert OUTYY(("P(nat64_prefix:%s)\n", (yyvsp[0].str))); 5835b7c0c8c1SCy Schubert free(cfg_parser->cfg->nat64_prefix); 5836b7c0c8c1SCy Schubert cfg_parser->cfg->nat64_prefix = (yyvsp[0].str); 5837b7c0c8c1SCy Schubert } 5838*46d2f618SCy Schubert #line 5839 "util/configparser.c" 5839b7c0c8c1SCy Schubert break; 5840b7c0c8c1SCy Schubert 5841*46d2f618SCy Schubert case 546: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */ 5842*46d2f618SCy Schubert #line 2543 "util/configparser.y" 5843b7c0c8c1SCy Schubert { 5844b7c0c8c1SCy Schubert char* p, *s = (yyvsp[0].str); 5845b7c0c8c1SCy Schubert OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); 5846b7c0c8c1SCy Schubert while((p=strsep(&s, " \t\n")) != NULL) { 5847b7c0c8c1SCy Schubert if(*p) { 5848b7c0c8c1SCy Schubert if(!config_add_tag(cfg_parser->cfg, p)) 5849b7c0c8c1SCy Schubert yyerror("could not define-tag, " 5850b7c0c8c1SCy Schubert "out of memory"); 5851b7c0c8c1SCy Schubert } 5852b7c0c8c1SCy Schubert } 5853b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5854b7c0c8c1SCy Schubert } 5855*46d2f618SCy Schubert #line 5856 "util/configparser.c" 5856b7c0c8c1SCy Schubert break; 5857b7c0c8c1SCy Schubert 5858*46d2f618SCy Schubert case 547: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */ 5859*46d2f618SCy Schubert #line 2557 "util/configparser.y" 5860b7c0c8c1SCy Schubert { 5861b7c0c8c1SCy Schubert size_t len = 0; 5862b7c0c8c1SCy Schubert uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), 5863b7c0c8c1SCy Schubert &len); 5864b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5865b7c0c8c1SCy Schubert OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[-1].str))); 5866b7c0c8c1SCy Schubert if(!bitlist) { 5867b7c0c8c1SCy Schubert yyerror("could not parse tags, (define-tag them first)"); 5868b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 5869b7c0c8c1SCy Schubert } 5870b7c0c8c1SCy Schubert if(bitlist) { 5871b7c0c8c1SCy Schubert if(!cfg_strbytelist_insert( 5872b7c0c8c1SCy Schubert &cfg_parser->cfg->local_zone_tags, 5873b7c0c8c1SCy Schubert (yyvsp[-1].str), bitlist, len)) { 5874b7c0c8c1SCy Schubert yyerror("out of memory"); 5875b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 5876b7c0c8c1SCy Schubert } 5877b7c0c8c1SCy Schubert } 5878b7c0c8c1SCy Schubert } 5879*46d2f618SCy Schubert #line 5880 "util/configparser.c" 5880b7c0c8c1SCy Schubert break; 5881b7c0c8c1SCy Schubert 5882*46d2f618SCy Schubert case 548: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */ 5883*46d2f618SCy Schubert #line 2578 "util/configparser.y" 5884b7c0c8c1SCy Schubert { 5885b7c0c8c1SCy Schubert size_t len = 0; 5886b7c0c8c1SCy Schubert uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), 5887b7c0c8c1SCy Schubert &len); 5888b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5889b7c0c8c1SCy Schubert OUTYY(("P(server_access_control_tag:%s)\n", (yyvsp[-1].str))); 5890b7c0c8c1SCy Schubert if(!bitlist) { 5891b7c0c8c1SCy Schubert yyerror("could not parse tags, (define-tag them first)"); 5892b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 5893b7c0c8c1SCy Schubert } 5894b7c0c8c1SCy Schubert if(bitlist) { 5895b7c0c8c1SCy Schubert if(!cfg_strbytelist_insert( 5896b7c0c8c1SCy Schubert &cfg_parser->cfg->acl_tags, 5897b7c0c8c1SCy Schubert (yyvsp[-1].str), bitlist, len)) { 5898b7c0c8c1SCy Schubert yyerror("out of memory"); 5899b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 5900b7c0c8c1SCy Schubert } 5901b7c0c8c1SCy Schubert } 5902b7c0c8c1SCy Schubert } 5903*46d2f618SCy Schubert #line 5904 "util/configparser.c" 5904b7c0c8c1SCy Schubert break; 5905b7c0c8c1SCy Schubert 5906*46d2f618SCy Schubert case 549: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */ 5907*46d2f618SCy Schubert #line 2599 "util/configparser.y" 5908b7c0c8c1SCy Schubert { 5909b7c0c8c1SCy Schubert OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); 5910b7c0c8c1SCy Schubert if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, 5911b7c0c8c1SCy Schubert (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { 5912b7c0c8c1SCy Schubert yyerror("out of memory"); 5913b7c0c8c1SCy Schubert free((yyvsp[-2].str)); 5914b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 5915b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5916b7c0c8c1SCy Schubert } 5917b7c0c8c1SCy Schubert } 5918*46d2f618SCy Schubert #line 5919 "util/configparser.c" 5919b7c0c8c1SCy Schubert break; 5920b7c0c8c1SCy Schubert 5921*46d2f618SCy Schubert case 550: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */ 5922*46d2f618SCy Schubert #line 2611 "util/configparser.y" 5923b7c0c8c1SCy Schubert { 5924b7c0c8c1SCy Schubert OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); 5925b7c0c8c1SCy Schubert if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, 5926b7c0c8c1SCy Schubert (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { 5927b7c0c8c1SCy Schubert yyerror("out of memory"); 5928b7c0c8c1SCy Schubert free((yyvsp[-2].str)); 5929b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 5930b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5931b7c0c8c1SCy Schubert } 5932b7c0c8c1SCy Schubert } 5933*46d2f618SCy Schubert #line 5934 "util/configparser.c" 5934b7c0c8c1SCy Schubert break; 5935b7c0c8c1SCy Schubert 5936*46d2f618SCy Schubert case 551: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */ 5937*46d2f618SCy Schubert #line 2623 "util/configparser.y" 5938b7c0c8c1SCy Schubert { 5939b7c0c8c1SCy Schubert OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); 5940b7c0c8c1SCy Schubert if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, 5941b7c0c8c1SCy Schubert (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { 5942b7c0c8c1SCy Schubert yyerror("out of memory"); 5943b7c0c8c1SCy Schubert free((yyvsp[-2].str)); 5944b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 5945b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5946b7c0c8c1SCy Schubert } 5947b7c0c8c1SCy Schubert } 5948*46d2f618SCy Schubert #line 5949 "util/configparser.c" 5949b7c0c8c1SCy Schubert break; 5950b7c0c8c1SCy Schubert 5951*46d2f618SCy Schubert case 552: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */ 5952*46d2f618SCy Schubert #line 2635 "util/configparser.y" 5953b7c0c8c1SCy Schubert { 5954b7c0c8c1SCy Schubert OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 5955b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, 5956b7c0c8c1SCy Schubert (yyvsp[-1].str), (yyvsp[0].str))) { 5957b7c0c8c1SCy Schubert yyerror("out of memory"); 5958b7c0c8c1SCy Schubert } 5959b7c0c8c1SCy Schubert } 5960*46d2f618SCy Schubert #line 5961 "util/configparser.c" 5961b7c0c8c1SCy Schubert break; 5962b7c0c8c1SCy Schubert 5963*46d2f618SCy Schubert case 553: /* server_interface_tag: VAR_INTERFACE_TAG STRING_ARG STRING_ARG */ 5964*46d2f618SCy Schubert #line 2644 "util/configparser.y" 5965b7c0c8c1SCy Schubert { 5966b7c0c8c1SCy Schubert size_t len = 0; 5967b7c0c8c1SCy Schubert uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), 5968b7c0c8c1SCy Schubert &len); 5969b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5970b7c0c8c1SCy Schubert OUTYY(("P(server_interface_tag:%s)\n", (yyvsp[-1].str))); 5971b7c0c8c1SCy Schubert if(!bitlist) { 5972b7c0c8c1SCy Schubert yyerror("could not parse tags, (define-tag them first)"); 5973b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 5974b7c0c8c1SCy Schubert } 5975b7c0c8c1SCy Schubert if(bitlist) { 5976b7c0c8c1SCy Schubert if(!cfg_strbytelist_insert( 5977b7c0c8c1SCy Schubert &cfg_parser->cfg->interface_tags, 5978b7c0c8c1SCy Schubert (yyvsp[-1].str), bitlist, len)) { 5979b7c0c8c1SCy Schubert yyerror("out of memory"); 5980b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 5981b7c0c8c1SCy Schubert } 5982b7c0c8c1SCy Schubert } 5983b7c0c8c1SCy Schubert } 5984*46d2f618SCy Schubert #line 5985 "util/configparser.c" 5985b7c0c8c1SCy Schubert break; 5986b7c0c8c1SCy Schubert 5987*46d2f618SCy Schubert case 554: /* server_interface_tag_action: VAR_INTERFACE_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */ 5988*46d2f618SCy Schubert #line 2665 "util/configparser.y" 5989b7c0c8c1SCy Schubert { 5990b7c0c8c1SCy Schubert OUTYY(("P(server_interface_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); 5991b7c0c8c1SCy Schubert if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_actions, 5992b7c0c8c1SCy Schubert (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { 5993b7c0c8c1SCy Schubert yyerror("out of memory"); 5994b7c0c8c1SCy Schubert free((yyvsp[-2].str)); 5995b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 5996b7c0c8c1SCy Schubert free((yyvsp[0].str)); 5997b7c0c8c1SCy Schubert } 5998b7c0c8c1SCy Schubert } 5999*46d2f618SCy Schubert #line 6000 "util/configparser.c" 6000b7c0c8c1SCy Schubert break; 6001b7c0c8c1SCy Schubert 6002*46d2f618SCy Schubert case 555: /* server_interface_tag_data: VAR_INTERFACE_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */ 6003*46d2f618SCy Schubert #line 2677 "util/configparser.y" 6004b7c0c8c1SCy Schubert { 6005b7c0c8c1SCy Schubert OUTYY(("P(server_interface_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); 6006b7c0c8c1SCy Schubert if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_datas, 6007b7c0c8c1SCy Schubert (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { 6008b7c0c8c1SCy Schubert yyerror("out of memory"); 6009b7c0c8c1SCy Schubert free((yyvsp[-2].str)); 6010b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 6011b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6012b7c0c8c1SCy Schubert } 6013b7c0c8c1SCy Schubert } 6014*46d2f618SCy Schubert #line 6015 "util/configparser.c" 6015b7c0c8c1SCy Schubert break; 6016b7c0c8c1SCy Schubert 6017*46d2f618SCy Schubert case 556: /* server_interface_view: VAR_INTERFACE_VIEW STRING_ARG STRING_ARG */ 6018*46d2f618SCy Schubert #line 2689 "util/configparser.y" 6019b7c0c8c1SCy Schubert { 6020b7c0c8c1SCy Schubert OUTYY(("P(server_interface_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 6021b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->interface_view, 6022b7c0c8c1SCy Schubert (yyvsp[-1].str), (yyvsp[0].str))) { 6023b7c0c8c1SCy Schubert yyerror("out of memory"); 6024b7c0c8c1SCy Schubert } 6025b7c0c8c1SCy Schubert } 6026*46d2f618SCy Schubert #line 6027 "util/configparser.c" 6027b7c0c8c1SCy Schubert break; 6028b7c0c8c1SCy Schubert 6029*46d2f618SCy Schubert case 557: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */ 6030*46d2f618SCy Schubert #line 2698 "util/configparser.y" 6031b7c0c8c1SCy Schubert { 6032b7c0c8c1SCy Schubert size_t len = 0; 6033b7c0c8c1SCy Schubert uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), 6034b7c0c8c1SCy Schubert &len); 6035b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6036b7c0c8c1SCy Schubert OUTYY(("P(response_ip_tag:%s)\n", (yyvsp[-1].str))); 6037b7c0c8c1SCy Schubert if(!bitlist) { 6038b7c0c8c1SCy Schubert yyerror("could not parse tags, (define-tag them first)"); 6039b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 6040b7c0c8c1SCy Schubert } 6041b7c0c8c1SCy Schubert if(bitlist) { 6042b7c0c8c1SCy Schubert if(!cfg_strbytelist_insert( 6043b7c0c8c1SCy Schubert &cfg_parser->cfg->respip_tags, 6044b7c0c8c1SCy Schubert (yyvsp[-1].str), bitlist, len)) { 6045b7c0c8c1SCy Schubert yyerror("out of memory"); 6046b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 6047b7c0c8c1SCy Schubert } 6048b7c0c8c1SCy Schubert } 6049b7c0c8c1SCy Schubert } 6050*46d2f618SCy Schubert #line 6051 "util/configparser.c" 6051b7c0c8c1SCy Schubert break; 6052b7c0c8c1SCy Schubert 6053*46d2f618SCy Schubert case 558: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */ 6054*46d2f618SCy Schubert #line 2719 "util/configparser.y" 6055b7c0c8c1SCy Schubert { 6056b7c0c8c1SCy Schubert OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); 6057b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 6058b7c0c8c1SCy Schubert yyerror("number expected"); 6059b7c0c8c1SCy Schubert else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); 6060b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6061b7c0c8c1SCy Schubert } 6062*46d2f618SCy Schubert #line 6063 "util/configparser.c" 6063b7c0c8c1SCy Schubert break; 6064b7c0c8c1SCy Schubert 6065*46d2f618SCy Schubert case 559: /* server_ip_ratelimit_cookie: VAR_IP_RATELIMIT_COOKIE STRING_ARG */ 6066*46d2f618SCy Schubert #line 2728 "util/configparser.y" 6067b7c0c8c1SCy Schubert { 6068b7c0c8c1SCy Schubert OUTYY(("P(server_ip_ratelimit_cookie:%s)\n", (yyvsp[0].str))); 6069b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 6070b7c0c8c1SCy Schubert yyerror("number expected"); 6071b7c0c8c1SCy Schubert else cfg_parser->cfg->ip_ratelimit_cookie = atoi((yyvsp[0].str)); 6072b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6073b7c0c8c1SCy Schubert } 6074*46d2f618SCy Schubert #line 6075 "util/configparser.c" 6075b7c0c8c1SCy Schubert break; 6076b7c0c8c1SCy Schubert 6077*46d2f618SCy Schubert case 560: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */ 6078*46d2f618SCy Schubert #line 2737 "util/configparser.y" 6079b7c0c8c1SCy Schubert { 6080b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); 6081b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 6082b7c0c8c1SCy Schubert yyerror("number expected"); 6083b7c0c8c1SCy Schubert else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); 6084b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6085b7c0c8c1SCy Schubert } 6086*46d2f618SCy Schubert #line 6087 "util/configparser.c" 6087b7c0c8c1SCy Schubert break; 6088b7c0c8c1SCy Schubert 6089*46d2f618SCy Schubert case 561: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */ 6090*46d2f618SCy Schubert #line 2746 "util/configparser.y" 6091b7c0c8c1SCy Schubert { 6092b7c0c8c1SCy Schubert OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); 6093b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) 6094b7c0c8c1SCy Schubert yyerror("memory size expected"); 6095b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6096b7c0c8c1SCy Schubert } 6097*46d2f618SCy Schubert #line 6098 "util/configparser.c" 6098b7c0c8c1SCy Schubert break; 6099b7c0c8c1SCy Schubert 6100*46d2f618SCy Schubert case 562: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */ 6101*46d2f618SCy Schubert #line 2754 "util/configparser.y" 6102b7c0c8c1SCy Schubert { 6103b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); 6104b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) 6105b7c0c8c1SCy Schubert yyerror("memory size expected"); 6106b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6107b7c0c8c1SCy Schubert } 6108*46d2f618SCy Schubert #line 6109 "util/configparser.c" 6109b7c0c8c1SCy Schubert break; 6110b7c0c8c1SCy Schubert 6111*46d2f618SCy Schubert case 563: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */ 6112*46d2f618SCy Schubert #line 2762 "util/configparser.y" 6113b7c0c8c1SCy Schubert { 6114b7c0c8c1SCy Schubert OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); 6115b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) { 6116b7c0c8c1SCy Schubert yyerror("number expected"); 6117b7c0c8c1SCy Schubert } else { 6118b7c0c8c1SCy Schubert cfg_parser->cfg->ip_ratelimit_slabs = atoi((yyvsp[0].str)); 6119b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs)) 6120b7c0c8c1SCy Schubert yyerror("must be a power of 2"); 6121b7c0c8c1SCy Schubert } 6122b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6123b7c0c8c1SCy Schubert } 6124*46d2f618SCy Schubert #line 6125 "util/configparser.c" 6125b7c0c8c1SCy Schubert break; 6126b7c0c8c1SCy Schubert 6127*46d2f618SCy Schubert case 564: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */ 6128*46d2f618SCy Schubert #line 2775 "util/configparser.y" 6129b7c0c8c1SCy Schubert { 6130b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); 6131b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) { 6132b7c0c8c1SCy Schubert yyerror("number expected"); 6133b7c0c8c1SCy Schubert } else { 6134b7c0c8c1SCy Schubert cfg_parser->cfg->ratelimit_slabs = atoi((yyvsp[0].str)); 6135b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->ratelimit_slabs)) 6136b7c0c8c1SCy Schubert yyerror("must be a power of 2"); 6137b7c0c8c1SCy Schubert } 6138b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6139b7c0c8c1SCy Schubert } 6140*46d2f618SCy Schubert #line 6141 "util/configparser.c" 6141b7c0c8c1SCy Schubert break; 6142b7c0c8c1SCy Schubert 6143*46d2f618SCy Schubert case 565: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */ 6144*46d2f618SCy Schubert #line 2788 "util/configparser.y" 6145b7c0c8c1SCy Schubert { 6146b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 6147b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { 6148b7c0c8c1SCy Schubert yyerror("number expected"); 6149b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 6150b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6151b7c0c8c1SCy Schubert } else { 6152b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg-> 6153b7c0c8c1SCy Schubert ratelimit_for_domain, (yyvsp[-1].str), (yyvsp[0].str))) 6154b7c0c8c1SCy Schubert fatal_exit("out of memory adding " 6155b7c0c8c1SCy Schubert "ratelimit-for-domain"); 6156b7c0c8c1SCy Schubert } 6157b7c0c8c1SCy Schubert } 6158*46d2f618SCy Schubert #line 6159 "util/configparser.c" 6159b7c0c8c1SCy Schubert break; 6160b7c0c8c1SCy Schubert 6161*46d2f618SCy Schubert case 566: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */ 6162*46d2f618SCy Schubert #line 2803 "util/configparser.y" 6163b7c0c8c1SCy Schubert { 6164b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 6165b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { 6166b7c0c8c1SCy Schubert yyerror("number expected"); 6167b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 6168b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6169b7c0c8c1SCy Schubert } else { 6170b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg-> 6171b7c0c8c1SCy Schubert ratelimit_below_domain, (yyvsp[-1].str), (yyvsp[0].str))) 6172b7c0c8c1SCy Schubert fatal_exit("out of memory adding " 6173b7c0c8c1SCy Schubert "ratelimit-below-domain"); 6174b7c0c8c1SCy Schubert } 6175b7c0c8c1SCy Schubert } 6176*46d2f618SCy Schubert #line 6177 "util/configparser.c" 6177b7c0c8c1SCy Schubert break; 6178b7c0c8c1SCy Schubert 6179*46d2f618SCy Schubert case 567: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */ 6180*46d2f618SCy Schubert #line 2818 "util/configparser.y" 6181b7c0c8c1SCy Schubert { 6182b7c0c8c1SCy Schubert OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); 6183b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 6184b7c0c8c1SCy Schubert yyerror("number expected"); 6185b7c0c8c1SCy Schubert else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); 6186b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6187b7c0c8c1SCy Schubert } 6188*46d2f618SCy Schubert #line 6189 "util/configparser.c" 6189b7c0c8c1SCy Schubert break; 6190b7c0c8c1SCy Schubert 6191*46d2f618SCy Schubert case 568: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */ 6192*46d2f618SCy Schubert #line 2827 "util/configparser.y" 6193b7c0c8c1SCy Schubert { 6194b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); 6195b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 6196b7c0c8c1SCy Schubert yyerror("number expected"); 6197b7c0c8c1SCy Schubert else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); 6198b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6199b7c0c8c1SCy Schubert } 6200*46d2f618SCy Schubert #line 6201 "util/configparser.c" 6201b7c0c8c1SCy Schubert break; 6202b7c0c8c1SCy Schubert 6203*46d2f618SCy Schubert case 569: /* server_ip_ratelimit_backoff: VAR_IP_RATELIMIT_BACKOFF STRING_ARG */ 6204*46d2f618SCy Schubert #line 2836 "util/configparser.y" 6205b7c0c8c1SCy Schubert { 6206b7c0c8c1SCy Schubert OUTYY(("P(server_ip_ratelimit_backoff:%s)\n", (yyvsp[0].str))); 6207b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6208b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6209b7c0c8c1SCy Schubert else cfg_parser->cfg->ip_ratelimit_backoff = 6210b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6211b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6212b7c0c8c1SCy Schubert } 6213*46d2f618SCy Schubert #line 6214 "util/configparser.c" 6214b7c0c8c1SCy Schubert break; 6215b7c0c8c1SCy Schubert 6216*46d2f618SCy Schubert case 570: /* server_ratelimit_backoff: VAR_RATELIMIT_BACKOFF STRING_ARG */ 6217*46d2f618SCy Schubert #line 2846 "util/configparser.y" 6218b7c0c8c1SCy Schubert { 6219b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit_backoff:%s)\n", (yyvsp[0].str))); 6220b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6221b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6222b7c0c8c1SCy Schubert else cfg_parser->cfg->ratelimit_backoff = 6223b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6224b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6225b7c0c8c1SCy Schubert } 6226*46d2f618SCy Schubert #line 6227 "util/configparser.c" 6227b7c0c8c1SCy Schubert break; 6228b7c0c8c1SCy Schubert 6229*46d2f618SCy Schubert case 571: /* server_outbound_msg_retry: VAR_OUTBOUND_MSG_RETRY STRING_ARG */ 6230*46d2f618SCy Schubert #line 2856 "util/configparser.y" 6231b7c0c8c1SCy Schubert { 6232b7c0c8c1SCy Schubert OUTYY(("P(server_outbound_msg_retry:%s)\n", (yyvsp[0].str))); 6233b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 6234b7c0c8c1SCy Schubert yyerror("number expected"); 6235b7c0c8c1SCy Schubert else cfg_parser->cfg->outbound_msg_retry = atoi((yyvsp[0].str)); 6236b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6237b7c0c8c1SCy Schubert } 6238*46d2f618SCy Schubert #line 6239 "util/configparser.c" 6239b7c0c8c1SCy Schubert break; 6240b7c0c8c1SCy Schubert 6241*46d2f618SCy Schubert case 572: /* server_max_sent_count: VAR_MAX_SENT_COUNT STRING_ARG */ 6242*46d2f618SCy Schubert #line 2865 "util/configparser.y" 6243b7c0c8c1SCy Schubert { 6244b7c0c8c1SCy Schubert OUTYY(("P(server_max_sent_count:%s)\n", (yyvsp[0].str))); 6245b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 6246b7c0c8c1SCy Schubert yyerror("number expected"); 6247b7c0c8c1SCy Schubert else cfg_parser->cfg->max_sent_count = atoi((yyvsp[0].str)); 6248b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6249b7c0c8c1SCy Schubert } 6250*46d2f618SCy Schubert #line 6251 "util/configparser.c" 6251b7c0c8c1SCy Schubert break; 6252b7c0c8c1SCy Schubert 6253*46d2f618SCy Schubert case 573: /* server_max_query_restarts: VAR_MAX_QUERY_RESTARTS STRING_ARG */ 6254*46d2f618SCy Schubert #line 2874 "util/configparser.y" 6255b7c0c8c1SCy Schubert { 6256b7c0c8c1SCy Schubert OUTYY(("P(server_max_query_restarts:%s)\n", (yyvsp[0].str))); 6257b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 6258b7c0c8c1SCy Schubert yyerror("number expected"); 6259b7c0c8c1SCy Schubert else cfg_parser->cfg->max_query_restarts = atoi((yyvsp[0].str)); 6260b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6261b7c0c8c1SCy Schubert } 6262*46d2f618SCy Schubert #line 6263 "util/configparser.c" 6263b7c0c8c1SCy Schubert break; 6264b7c0c8c1SCy Schubert 6265*46d2f618SCy Schubert case 574: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */ 6266*46d2f618SCy Schubert #line 2883 "util/configparser.y" 6267b7c0c8c1SCy Schubert { 6268b7c0c8c1SCy Schubert OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); 6269b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6270b7c0c8c1SCy Schubert } 6271*46d2f618SCy Schubert #line 6272 "util/configparser.c" 6272b7c0c8c1SCy Schubert break; 6273b7c0c8c1SCy Schubert 6274*46d2f618SCy Schubert case 575: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */ 6275*46d2f618SCy Schubert #line 2889 "util/configparser.y" 6276b7c0c8c1SCy Schubert { 6277b7c0c8c1SCy Schubert OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); 6278b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) <= 0) 6279b7c0c8c1SCy Schubert yyerror("number expected"); 6280b7c0c8c1SCy Schubert else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); 6281b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6282b7c0c8c1SCy Schubert } 6283*46d2f618SCy Schubert #line 6284 "util/configparser.c" 6284b7c0c8c1SCy Schubert break; 6285b7c0c8c1SCy Schubert 6286*46d2f618SCy Schubert case 576: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */ 6287*46d2f618SCy Schubert #line 2898 "util/configparser.y" 6288b7c0c8c1SCy Schubert { 6289b7c0c8c1SCy Schubert OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); 6290b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 6291b7c0c8c1SCy Schubert yyerror("number expected"); 6292b7c0c8c1SCy Schubert else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); 6293b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6294b7c0c8c1SCy Schubert } 6295*46d2f618SCy Schubert #line 6296 "util/configparser.c" 6296b7c0c8c1SCy Schubert break; 6297b7c0c8c1SCy Schubert 6298*46d2f618SCy Schubert case 577: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */ 6299*46d2f618SCy Schubert #line 2907 "util/configparser.y" 6300b7c0c8c1SCy Schubert { 6301b7c0c8c1SCy Schubert OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); 6302b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6303b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6304b7c0c8c1SCy Schubert else cfg_parser->cfg->qname_minimisation = 6305b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6306b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6307b7c0c8c1SCy Schubert } 6308*46d2f618SCy Schubert #line 6309 "util/configparser.c" 6309b7c0c8c1SCy Schubert break; 6310b7c0c8c1SCy Schubert 6311*46d2f618SCy Schubert case 578: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */ 6312*46d2f618SCy Schubert #line 2917 "util/configparser.y" 6313b7c0c8c1SCy Schubert { 6314b7c0c8c1SCy Schubert OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); 6315b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6316b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6317b7c0c8c1SCy Schubert else cfg_parser->cfg->qname_minimisation_strict = 6318b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6319b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6320b7c0c8c1SCy Schubert } 6321*46d2f618SCy Schubert #line 6322 "util/configparser.c" 6322b7c0c8c1SCy Schubert break; 6323b7c0c8c1SCy Schubert 6324*46d2f618SCy Schubert case 579: /* server_pad_responses: VAR_PAD_RESPONSES STRING_ARG */ 6325*46d2f618SCy Schubert #line 2927 "util/configparser.y" 6326b7c0c8c1SCy Schubert { 6327b7c0c8c1SCy Schubert OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str))); 6328b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6329b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6330b7c0c8c1SCy Schubert else cfg_parser->cfg->pad_responses = 6331b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6332b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6333b7c0c8c1SCy Schubert } 6334*46d2f618SCy Schubert #line 6335 "util/configparser.c" 6335b7c0c8c1SCy Schubert break; 6336b7c0c8c1SCy Schubert 6337*46d2f618SCy Schubert case 580: /* server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG */ 6338*46d2f618SCy Schubert #line 2937 "util/configparser.y" 6339b7c0c8c1SCy Schubert { 6340b7c0c8c1SCy Schubert OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str))); 6341b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 6342b7c0c8c1SCy Schubert yyerror("number expected"); 6343b7c0c8c1SCy Schubert else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str)); 6344b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6345b7c0c8c1SCy Schubert } 6346*46d2f618SCy Schubert #line 6347 "util/configparser.c" 6347b7c0c8c1SCy Schubert break; 6348b7c0c8c1SCy Schubert 6349*46d2f618SCy Schubert case 581: /* server_pad_queries: VAR_PAD_QUERIES STRING_ARG */ 6350*46d2f618SCy Schubert #line 2946 "util/configparser.y" 6351b7c0c8c1SCy Schubert { 6352b7c0c8c1SCy Schubert OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str))); 6353b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6354b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6355b7c0c8c1SCy Schubert else cfg_parser->cfg->pad_queries = 6356b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6357b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6358b7c0c8c1SCy Schubert } 6359*46d2f618SCy Schubert #line 6360 "util/configparser.c" 6360b7c0c8c1SCy Schubert break; 6361b7c0c8c1SCy Schubert 6362*46d2f618SCy Schubert case 582: /* server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG */ 6363*46d2f618SCy Schubert #line 2956 "util/configparser.y" 6364b7c0c8c1SCy Schubert { 6365b7c0c8c1SCy Schubert OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str))); 6366b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 6367b7c0c8c1SCy Schubert yyerror("number expected"); 6368b7c0c8c1SCy Schubert else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str)); 6369b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6370b7c0c8c1SCy Schubert } 6371*46d2f618SCy Schubert #line 6372 "util/configparser.c" 6372b7c0c8c1SCy Schubert break; 6373b7c0c8c1SCy Schubert 6374*46d2f618SCy Schubert case 583: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */ 6375*46d2f618SCy Schubert #line 2965 "util/configparser.y" 6376b7c0c8c1SCy Schubert { 6377b7c0c8c1SCy Schubert #ifdef USE_IPSECMOD 6378b7c0c8c1SCy Schubert OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); 6379b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6380b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6381b7c0c8c1SCy Schubert else cfg_parser->cfg->ipsecmod_enabled = (strcmp((yyvsp[0].str), "yes")==0); 6382b7c0c8c1SCy Schubert #else 6383b7c0c8c1SCy Schubert OUTYY(("P(Compiled without IPsec module, ignoring)\n")); 6384b7c0c8c1SCy Schubert #endif 6385b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6386b7c0c8c1SCy Schubert } 6387*46d2f618SCy Schubert #line 6388 "util/configparser.c" 6388b7c0c8c1SCy Schubert break; 6389b7c0c8c1SCy Schubert 6390*46d2f618SCy Schubert case 584: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */ 6391*46d2f618SCy Schubert #line 2978 "util/configparser.y" 6392b7c0c8c1SCy Schubert { 6393b7c0c8c1SCy Schubert #ifdef USE_IPSECMOD 6394b7c0c8c1SCy Schubert OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); 6395b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6396b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6397b7c0c8c1SCy Schubert else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp((yyvsp[0].str), "yes")==0); 6398b7c0c8c1SCy Schubert #else 6399b7c0c8c1SCy Schubert OUTYY(("P(Compiled without IPsec module, ignoring)\n")); 6400b7c0c8c1SCy Schubert #endif 6401b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6402b7c0c8c1SCy Schubert } 6403*46d2f618SCy Schubert #line 6404 "util/configparser.c" 6404b7c0c8c1SCy Schubert break; 6405b7c0c8c1SCy Schubert 6406*46d2f618SCy Schubert case 585: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */ 6407*46d2f618SCy Schubert #line 2991 "util/configparser.y" 6408b7c0c8c1SCy Schubert { 6409b7c0c8c1SCy Schubert #ifdef USE_IPSECMOD 6410b7c0c8c1SCy Schubert OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); 6411b7c0c8c1SCy Schubert free(cfg_parser->cfg->ipsecmod_hook); 6412b7c0c8c1SCy Schubert cfg_parser->cfg->ipsecmod_hook = (yyvsp[0].str); 6413b7c0c8c1SCy Schubert #else 6414b7c0c8c1SCy Schubert OUTYY(("P(Compiled without IPsec module, ignoring)\n")); 6415b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6416b7c0c8c1SCy Schubert #endif 6417b7c0c8c1SCy Schubert } 6418*46d2f618SCy Schubert #line 6419 "util/configparser.c" 6419b7c0c8c1SCy Schubert break; 6420b7c0c8c1SCy Schubert 6421*46d2f618SCy Schubert case 586: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */ 6422*46d2f618SCy Schubert #line 3003 "util/configparser.y" 6423b7c0c8c1SCy Schubert { 6424b7c0c8c1SCy Schubert #ifdef USE_IPSECMOD 6425b7c0c8c1SCy Schubert OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); 6426b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 6427b7c0c8c1SCy Schubert yyerror("number expected"); 6428b7c0c8c1SCy Schubert else cfg_parser->cfg->ipsecmod_max_ttl = atoi((yyvsp[0].str)); 6429b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6430b7c0c8c1SCy Schubert #else 6431b7c0c8c1SCy Schubert OUTYY(("P(Compiled without IPsec module, ignoring)\n")); 6432b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6433b7c0c8c1SCy Schubert #endif 6434b7c0c8c1SCy Schubert } 6435*46d2f618SCy Schubert #line 6436 "util/configparser.c" 6436b7c0c8c1SCy Schubert break; 6437b7c0c8c1SCy Schubert 6438*46d2f618SCy Schubert case 587: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */ 6439*46d2f618SCy Schubert #line 3017 "util/configparser.y" 6440b7c0c8c1SCy Schubert { 6441b7c0c8c1SCy Schubert #ifdef USE_IPSECMOD 6442b7c0c8c1SCy Schubert OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); 6443b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[0].str))) 6444b7c0c8c1SCy Schubert yyerror("out of memory"); 6445b7c0c8c1SCy Schubert #else 6446b7c0c8c1SCy Schubert OUTYY(("P(Compiled without IPsec module, ignoring)\n")); 6447b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6448b7c0c8c1SCy Schubert #endif 6449b7c0c8c1SCy Schubert } 6450*46d2f618SCy Schubert #line 6451 "util/configparser.c" 6451b7c0c8c1SCy Schubert break; 6452b7c0c8c1SCy Schubert 6453*46d2f618SCy Schubert case 588: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */ 6454*46d2f618SCy Schubert #line 3029 "util/configparser.y" 6455b7c0c8c1SCy Schubert { 6456b7c0c8c1SCy Schubert #ifdef USE_IPSECMOD 6457b7c0c8c1SCy Schubert OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); 6458b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6459b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6460b7c0c8c1SCy Schubert else cfg_parser->cfg->ipsecmod_strict = (strcmp((yyvsp[0].str), "yes")==0); 6461b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6462b7c0c8c1SCy Schubert #else 6463b7c0c8c1SCy Schubert OUTYY(("P(Compiled without IPsec module, ignoring)\n")); 6464b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6465b7c0c8c1SCy Schubert #endif 6466b7c0c8c1SCy Schubert } 6467*46d2f618SCy Schubert #line 6468 "util/configparser.c" 6468b7c0c8c1SCy Schubert break; 6469b7c0c8c1SCy Schubert 6470*46d2f618SCy Schubert case 589: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */ 6471*46d2f618SCy Schubert #line 3043 "util/configparser.y" 6472b7c0c8c1SCy Schubert { 6473b7c0c8c1SCy Schubert OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 6474b7c0c8c1SCy Schubert if(!cfg_str2list_insert( 6475b7c0c8c1SCy Schubert &cfg_parser->cfg->edns_client_strings, (yyvsp[-1].str), (yyvsp[0].str))) 6476b7c0c8c1SCy Schubert fatal_exit("out of memory adding " 6477b7c0c8c1SCy Schubert "edns-client-string"); 6478b7c0c8c1SCy Schubert } 6479*46d2f618SCy Schubert #line 6480 "util/configparser.c" 6480b7c0c8c1SCy Schubert break; 6481b7c0c8c1SCy Schubert 6482*46d2f618SCy Schubert case 590: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */ 6483*46d2f618SCy Schubert #line 3052 "util/configparser.y" 6484b7c0c8c1SCy Schubert { 6485b7c0c8c1SCy Schubert OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str))); 6486b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 6487b7c0c8c1SCy Schubert yyerror("option code expected"); 6488b7c0c8c1SCy Schubert else if(atoi((yyvsp[0].str)) > 65535 || atoi((yyvsp[0].str)) < 0) 6489b7c0c8c1SCy Schubert yyerror("option code must be in interval [0, 65535]"); 6490b7c0c8c1SCy Schubert else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[0].str)); 6491b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6492b7c0c8c1SCy Schubert } 6493*46d2f618SCy Schubert #line 6494 "util/configparser.c" 6494b7c0c8c1SCy Schubert break; 6495b7c0c8c1SCy Schubert 6496*46d2f618SCy Schubert case 591: /* server_ede: VAR_EDE STRING_ARG */ 6497*46d2f618SCy Schubert #line 3063 "util/configparser.y" 6498b7c0c8c1SCy Schubert { 6499b7c0c8c1SCy Schubert OUTYY(("P(server_ede:%s)\n", (yyvsp[0].str))); 6500b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6501b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6502b7c0c8c1SCy Schubert else cfg_parser->cfg->ede = (strcmp((yyvsp[0].str), "yes")==0); 6503b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6504b7c0c8c1SCy Schubert } 6505*46d2f618SCy Schubert #line 6506 "util/configparser.c" 6506b7c0c8c1SCy Schubert break; 6507b7c0c8c1SCy Schubert 6508*46d2f618SCy Schubert case 592: /* server_proxy_protocol_port: VAR_PROXY_PROTOCOL_PORT STRING_ARG */ 6509*46d2f618SCy Schubert #line 3072 "util/configparser.y" 6510b7c0c8c1SCy Schubert { 6511b7c0c8c1SCy Schubert OUTYY(("P(server_proxy_protocol_port:%s)\n", (yyvsp[0].str))); 6512b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->proxy_protocol_port, (yyvsp[0].str))) 6513b7c0c8c1SCy Schubert yyerror("out of memory"); 6514b7c0c8c1SCy Schubert } 6515*46d2f618SCy Schubert #line 6516 "util/configparser.c" 6516b7c0c8c1SCy Schubert break; 6517b7c0c8c1SCy Schubert 6518*46d2f618SCy Schubert case 593: /* stub_name: VAR_NAME STRING_ARG */ 6519*46d2f618SCy Schubert #line 3079 "util/configparser.y" 6520b7c0c8c1SCy Schubert { 6521b7c0c8c1SCy Schubert OUTYY(("P(name:%s)\n", (yyvsp[0].str))); 6522b7c0c8c1SCy Schubert if(cfg_parser->cfg->stubs->name) 6523b7c0c8c1SCy Schubert yyerror("stub name override, there must be one name " 6524b7c0c8c1SCy Schubert "for one stub-zone"); 6525b7c0c8c1SCy Schubert free(cfg_parser->cfg->stubs->name); 6526b7c0c8c1SCy Schubert cfg_parser->cfg->stubs->name = (yyvsp[0].str); 6527b7c0c8c1SCy Schubert } 6528*46d2f618SCy Schubert #line 6529 "util/configparser.c" 6529b7c0c8c1SCy Schubert break; 6530b7c0c8c1SCy Schubert 6531*46d2f618SCy Schubert case 594: /* stub_host: VAR_STUB_HOST STRING_ARG */ 6532*46d2f618SCy Schubert #line 3089 "util/configparser.y" 6533b7c0c8c1SCy Schubert { 6534b7c0c8c1SCy Schubert OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); 6535b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) 6536b7c0c8c1SCy Schubert yyerror("out of memory"); 6537b7c0c8c1SCy Schubert } 6538*46d2f618SCy Schubert #line 6539 "util/configparser.c" 6539b7c0c8c1SCy Schubert break; 6540b7c0c8c1SCy Schubert 6541*46d2f618SCy Schubert case 595: /* stub_addr: VAR_STUB_ADDR STRING_ARG */ 6542*46d2f618SCy Schubert #line 3096 "util/configparser.y" 6543b7c0c8c1SCy Schubert { 6544b7c0c8c1SCy Schubert OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); 6545b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) 6546b7c0c8c1SCy Schubert yyerror("out of memory"); 6547b7c0c8c1SCy Schubert } 6548*46d2f618SCy Schubert #line 6549 "util/configparser.c" 6549b7c0c8c1SCy Schubert break; 6550b7c0c8c1SCy Schubert 6551*46d2f618SCy Schubert case 596: /* stub_first: VAR_STUB_FIRST STRING_ARG */ 6552*46d2f618SCy Schubert #line 3103 "util/configparser.y" 6553b7c0c8c1SCy Schubert { 6554b7c0c8c1SCy Schubert OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); 6555b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6556b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6557b7c0c8c1SCy Schubert else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); 6558b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6559b7c0c8c1SCy Schubert } 6560*46d2f618SCy Schubert #line 6561 "util/configparser.c" 6561b7c0c8c1SCy Schubert break; 6562b7c0c8c1SCy Schubert 6563*46d2f618SCy Schubert case 597: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */ 6564*46d2f618SCy Schubert #line 3112 "util/configparser.y" 6565b7c0c8c1SCy Schubert { 6566b7c0c8c1SCy Schubert OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); 6567b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6568b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6569b7c0c8c1SCy Schubert else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); 6570b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6571b7c0c8c1SCy Schubert } 6572*46d2f618SCy Schubert #line 6573 "util/configparser.c" 6573b7c0c8c1SCy Schubert break; 6574b7c0c8c1SCy Schubert 6575*46d2f618SCy Schubert case 598: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */ 6576*46d2f618SCy Schubert #line 3121 "util/configparser.y" 6577b7c0c8c1SCy Schubert { 6578b7c0c8c1SCy Schubert OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); 6579b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6580b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6581b7c0c8c1SCy Schubert else cfg_parser->cfg->stubs->ssl_upstream = 6582b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6583b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6584b7c0c8c1SCy Schubert } 6585*46d2f618SCy Schubert #line 6586 "util/configparser.c" 6586b7c0c8c1SCy Schubert break; 6587b7c0c8c1SCy Schubert 6588*46d2f618SCy Schubert case 599: /* stub_tcp_upstream: VAR_STUB_TCP_UPSTREAM STRING_ARG */ 6589*46d2f618SCy Schubert #line 3131 "util/configparser.y" 6590b7c0c8c1SCy Schubert { 6591b7c0c8c1SCy Schubert OUTYY(("P(stub-tcp-upstream:%s)\n", (yyvsp[0].str))); 6592b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6593b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6594b7c0c8c1SCy Schubert else cfg_parser->cfg->stubs->tcp_upstream = 6595b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6596b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6597b7c0c8c1SCy Schubert } 6598*46d2f618SCy Schubert #line 6599 "util/configparser.c" 6599b7c0c8c1SCy Schubert break; 6600b7c0c8c1SCy Schubert 6601*46d2f618SCy Schubert case 600: /* stub_prime: VAR_STUB_PRIME STRING_ARG */ 6602*46d2f618SCy Schubert #line 3141 "util/configparser.y" 6603b7c0c8c1SCy Schubert { 6604b7c0c8c1SCy Schubert OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); 6605b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6606b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6607b7c0c8c1SCy Schubert else cfg_parser->cfg->stubs->isprime = 6608b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6609b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6610b7c0c8c1SCy Schubert } 6611*46d2f618SCy Schubert #line 6612 "util/configparser.c" 6612b7c0c8c1SCy Schubert break; 6613b7c0c8c1SCy Schubert 6614*46d2f618SCy Schubert case 601: /* forward_name: VAR_NAME STRING_ARG */ 6615*46d2f618SCy Schubert #line 3151 "util/configparser.y" 6616b7c0c8c1SCy Schubert { 6617b7c0c8c1SCy Schubert OUTYY(("P(name:%s)\n", (yyvsp[0].str))); 6618b7c0c8c1SCy Schubert if(cfg_parser->cfg->forwards->name) 6619b7c0c8c1SCy Schubert yyerror("forward name override, there must be one " 6620b7c0c8c1SCy Schubert "name for one forward-zone"); 6621b7c0c8c1SCy Schubert free(cfg_parser->cfg->forwards->name); 6622b7c0c8c1SCy Schubert cfg_parser->cfg->forwards->name = (yyvsp[0].str); 6623b7c0c8c1SCy Schubert } 6624*46d2f618SCy Schubert #line 6625 "util/configparser.c" 6625b7c0c8c1SCy Schubert break; 6626b7c0c8c1SCy Schubert 6627*46d2f618SCy Schubert case 602: /* forward_host: VAR_FORWARD_HOST STRING_ARG */ 6628*46d2f618SCy Schubert #line 3161 "util/configparser.y" 6629b7c0c8c1SCy Schubert { 6630b7c0c8c1SCy Schubert OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); 6631b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) 6632b7c0c8c1SCy Schubert yyerror("out of memory"); 6633b7c0c8c1SCy Schubert } 6634*46d2f618SCy Schubert #line 6635 "util/configparser.c" 6635b7c0c8c1SCy Schubert break; 6636b7c0c8c1SCy Schubert 6637*46d2f618SCy Schubert case 603: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */ 6638*46d2f618SCy Schubert #line 3168 "util/configparser.y" 6639b7c0c8c1SCy Schubert { 6640b7c0c8c1SCy Schubert OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); 6641b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) 6642b7c0c8c1SCy Schubert yyerror("out of memory"); 6643b7c0c8c1SCy Schubert } 6644*46d2f618SCy Schubert #line 6645 "util/configparser.c" 6645b7c0c8c1SCy Schubert break; 6646b7c0c8c1SCy Schubert 6647*46d2f618SCy Schubert case 604: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */ 6648*46d2f618SCy Schubert #line 3175 "util/configparser.y" 6649b7c0c8c1SCy Schubert { 6650b7c0c8c1SCy Schubert OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); 6651b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6652b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6653b7c0c8c1SCy Schubert else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); 6654b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6655b7c0c8c1SCy Schubert } 6656*46d2f618SCy Schubert #line 6657 "util/configparser.c" 6657b7c0c8c1SCy Schubert break; 6658b7c0c8c1SCy Schubert 6659*46d2f618SCy Schubert case 605: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */ 6660*46d2f618SCy Schubert #line 3184 "util/configparser.y" 6661b7c0c8c1SCy Schubert { 6662b7c0c8c1SCy Schubert OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); 6663b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6664b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6665b7c0c8c1SCy Schubert else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); 6666b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6667b7c0c8c1SCy Schubert } 6668*46d2f618SCy Schubert #line 6669 "util/configparser.c" 6669b7c0c8c1SCy Schubert break; 6670b7c0c8c1SCy Schubert 6671*46d2f618SCy Schubert case 606: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */ 6672*46d2f618SCy Schubert #line 3193 "util/configparser.y" 6673b7c0c8c1SCy Schubert { 6674b7c0c8c1SCy Schubert OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); 6675b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6676b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6677b7c0c8c1SCy Schubert else cfg_parser->cfg->forwards->ssl_upstream = 6678b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6679b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6680b7c0c8c1SCy Schubert } 6681*46d2f618SCy Schubert #line 6682 "util/configparser.c" 6682b7c0c8c1SCy Schubert break; 6683b7c0c8c1SCy Schubert 6684*46d2f618SCy Schubert case 607: /* forward_tcp_upstream: VAR_FORWARD_TCP_UPSTREAM STRING_ARG */ 6685*46d2f618SCy Schubert #line 3203 "util/configparser.y" 6686b7c0c8c1SCy Schubert { 6687b7c0c8c1SCy Schubert OUTYY(("P(forward-tcp-upstream:%s)\n", (yyvsp[0].str))); 6688b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6689b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6690b7c0c8c1SCy Schubert else cfg_parser->cfg->forwards->tcp_upstream = 6691b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6692b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6693b7c0c8c1SCy Schubert } 6694*46d2f618SCy Schubert #line 6695 "util/configparser.c" 6695b7c0c8c1SCy Schubert break; 6696b7c0c8c1SCy Schubert 6697*46d2f618SCy Schubert case 608: /* auth_name: VAR_NAME STRING_ARG */ 6698*46d2f618SCy Schubert #line 3213 "util/configparser.y" 6699b7c0c8c1SCy Schubert { 6700b7c0c8c1SCy Schubert OUTYY(("P(name:%s)\n", (yyvsp[0].str))); 6701b7c0c8c1SCy Schubert if(cfg_parser->cfg->auths->name) 6702b7c0c8c1SCy Schubert yyerror("auth name override, there must be one name " 6703b7c0c8c1SCy Schubert "for one auth-zone"); 6704b7c0c8c1SCy Schubert free(cfg_parser->cfg->auths->name); 6705b7c0c8c1SCy Schubert cfg_parser->cfg->auths->name = (yyvsp[0].str); 6706b7c0c8c1SCy Schubert } 6707*46d2f618SCy Schubert #line 6708 "util/configparser.c" 6708b7c0c8c1SCy Schubert break; 6709b7c0c8c1SCy Schubert 6710*46d2f618SCy Schubert case 609: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */ 6711*46d2f618SCy Schubert #line 3223 "util/configparser.y" 6712b7c0c8c1SCy Schubert { 6713b7c0c8c1SCy Schubert OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); 6714b7c0c8c1SCy Schubert free(cfg_parser->cfg->auths->zonefile); 6715b7c0c8c1SCy Schubert cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); 6716b7c0c8c1SCy Schubert } 6717*46d2f618SCy Schubert #line 6718 "util/configparser.c" 6718b7c0c8c1SCy Schubert break; 6719b7c0c8c1SCy Schubert 6720*46d2f618SCy Schubert case 610: /* auth_master: VAR_MASTER STRING_ARG */ 6721*46d2f618SCy Schubert #line 3230 "util/configparser.y" 6722b7c0c8c1SCy Schubert { 6723b7c0c8c1SCy Schubert OUTYY(("P(master:%s)\n", (yyvsp[0].str))); 6724b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) 6725b7c0c8c1SCy Schubert yyerror("out of memory"); 6726b7c0c8c1SCy Schubert } 6727*46d2f618SCy Schubert #line 6728 "util/configparser.c" 6728b7c0c8c1SCy Schubert break; 6729b7c0c8c1SCy Schubert 6730*46d2f618SCy Schubert case 611: /* auth_url: VAR_URL STRING_ARG */ 6731*46d2f618SCy Schubert #line 3237 "util/configparser.y" 6732b7c0c8c1SCy Schubert { 6733b7c0c8c1SCy Schubert OUTYY(("P(url:%s)\n", (yyvsp[0].str))); 6734b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) 6735b7c0c8c1SCy Schubert yyerror("out of memory"); 6736b7c0c8c1SCy Schubert } 6737*46d2f618SCy Schubert #line 6738 "util/configparser.c" 6738b7c0c8c1SCy Schubert break; 6739b7c0c8c1SCy Schubert 6740*46d2f618SCy Schubert case 612: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */ 6741*46d2f618SCy Schubert #line 3244 "util/configparser.y" 6742b7c0c8c1SCy Schubert { 6743b7c0c8c1SCy Schubert OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); 6744b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, 6745b7c0c8c1SCy Schubert (yyvsp[0].str))) 6746b7c0c8c1SCy Schubert yyerror("out of memory"); 6747b7c0c8c1SCy Schubert } 6748*46d2f618SCy Schubert #line 6749 "util/configparser.c" 6749b7c0c8c1SCy Schubert break; 6750b7c0c8c1SCy Schubert 6751*46d2f618SCy Schubert case 613: /* auth_zonemd_check: VAR_ZONEMD_CHECK STRING_ARG */ 6752*46d2f618SCy Schubert #line 3252 "util/configparser.y" 6753b7c0c8c1SCy Schubert { 6754b7c0c8c1SCy Schubert OUTYY(("P(zonemd-check:%s)\n", (yyvsp[0].str))); 6755b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6756b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6757b7c0c8c1SCy Schubert else cfg_parser->cfg->auths->zonemd_check = 6758b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6759b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6760b7c0c8c1SCy Schubert } 6761*46d2f618SCy Schubert #line 6762 "util/configparser.c" 6762b7c0c8c1SCy Schubert break; 6763b7c0c8c1SCy Schubert 6764*46d2f618SCy Schubert case 614: /* auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG */ 6765*46d2f618SCy Schubert #line 3262 "util/configparser.y" 6766b7c0c8c1SCy Schubert { 6767b7c0c8c1SCy Schubert OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[0].str))); 6768b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6769b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6770b7c0c8c1SCy Schubert else cfg_parser->cfg->auths->zonemd_reject_absence = 6771b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6772b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6773b7c0c8c1SCy Schubert } 6774*46d2f618SCy Schubert #line 6775 "util/configparser.c" 6775b7c0c8c1SCy Schubert break; 6776b7c0c8c1SCy Schubert 6777*46d2f618SCy Schubert case 615: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */ 6778*46d2f618SCy Schubert #line 3272 "util/configparser.y" 6779b7c0c8c1SCy Schubert { 6780b7c0c8c1SCy Schubert OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); 6781b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6782b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6783b7c0c8c1SCy Schubert else cfg_parser->cfg->auths->for_downstream = 6784b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6785b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6786b7c0c8c1SCy Schubert } 6787*46d2f618SCy Schubert #line 6788 "util/configparser.c" 6788b7c0c8c1SCy Schubert break; 6789b7c0c8c1SCy Schubert 6790*46d2f618SCy Schubert case 616: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */ 6791*46d2f618SCy Schubert #line 3282 "util/configparser.y" 6792b7c0c8c1SCy Schubert { 6793b7c0c8c1SCy Schubert OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); 6794b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6795b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6796b7c0c8c1SCy Schubert else cfg_parser->cfg->auths->for_upstream = 6797b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6798b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6799b7c0c8c1SCy Schubert } 6800*46d2f618SCy Schubert #line 6801 "util/configparser.c" 6801b7c0c8c1SCy Schubert break; 6802b7c0c8c1SCy Schubert 6803*46d2f618SCy Schubert case 617: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */ 6804*46d2f618SCy Schubert #line 3292 "util/configparser.y" 6805b7c0c8c1SCy Schubert { 6806b7c0c8c1SCy Schubert OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); 6807b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6808b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6809b7c0c8c1SCy Schubert else cfg_parser->cfg->auths->fallback_enabled = 6810b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6811b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6812b7c0c8c1SCy Schubert } 6813*46d2f618SCy Schubert #line 6814 "util/configparser.c" 6814b7c0c8c1SCy Schubert break; 6815b7c0c8c1SCy Schubert 6816*46d2f618SCy Schubert case 618: /* view_name: VAR_NAME STRING_ARG */ 6817*46d2f618SCy Schubert #line 3302 "util/configparser.y" 6818b7c0c8c1SCy Schubert { 6819b7c0c8c1SCy Schubert OUTYY(("P(name:%s)\n", (yyvsp[0].str))); 6820b7c0c8c1SCy Schubert if(cfg_parser->cfg->views->name) 6821b7c0c8c1SCy Schubert yyerror("view name override, there must be one " 6822b7c0c8c1SCy Schubert "name for one view"); 6823b7c0c8c1SCy Schubert free(cfg_parser->cfg->views->name); 6824b7c0c8c1SCy Schubert cfg_parser->cfg->views->name = (yyvsp[0].str); 6825b7c0c8c1SCy Schubert } 6826*46d2f618SCy Schubert #line 6827 "util/configparser.c" 6827b7c0c8c1SCy Schubert break; 6828b7c0c8c1SCy Schubert 6829*46d2f618SCy Schubert case 619: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ 6830*46d2f618SCy Schubert #line 3312 "util/configparser.y" 6831b7c0c8c1SCy Schubert { 6832b7c0c8c1SCy Schubert OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 6833b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && 6834b7c0c8c1SCy Schubert strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 && 6835b7c0c8c1SCy Schubert strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0 6836b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "typetransparent")!=0 6837b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_transparent")!=0 6838b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_refuse")!=0 6839b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_nxdomain")!=0 6840b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_nodata")!=0 6841b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_deny")!=0 6842b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_null")!=0 6843b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "noview")!=0 6844b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0 6845b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "inform_redirect") != 0 6846b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "ipset") != 0) { 6847b7c0c8c1SCy Schubert yyerror("local-zone type: expected static, deny, " 6848b7c0c8c1SCy Schubert "refuse, redirect, transparent, " 6849b7c0c8c1SCy Schubert "typetransparent, inform, inform_deny, " 6850b7c0c8c1SCy Schubert "inform_redirect, always_transparent, " 6851b7c0c8c1SCy Schubert "always_refuse, always_nxdomain, " 6852b7c0c8c1SCy Schubert "always_nodata, always_deny, always_null, " 6853b7c0c8c1SCy Schubert "noview, nodefault or ipset"); 6854b7c0c8c1SCy Schubert free((yyvsp[-1].str)); 6855b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6856b7c0c8c1SCy Schubert } else if(strcmp((yyvsp[0].str), "nodefault")==0) { 6857b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->views-> 6858b7c0c8c1SCy Schubert local_zones_nodefault, (yyvsp[-1].str))) 6859b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone"); 6860b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6861b7c0c8c1SCy Schubert #ifdef USE_IPSET 6862b7c0c8c1SCy Schubert } else if(strcmp((yyvsp[0].str), "ipset")==0) { 6863b7c0c8c1SCy Schubert size_t len = strlen((yyvsp[-1].str)); 6864b7c0c8c1SCy Schubert /* Make sure to add the trailing dot. 6865b7c0c8c1SCy Schubert * These are str compared to domain names. */ 6866b7c0c8c1SCy Schubert if((yyvsp[-1].str)[len-1] != '.') { 6867b7c0c8c1SCy Schubert if(!((yyvsp[-1].str) = realloc((yyvsp[-1].str), len+2))) { 6868b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone"); 6869b7c0c8c1SCy Schubert } 6870b7c0c8c1SCy Schubert (yyvsp[-1].str)[len] = '.'; 6871b7c0c8c1SCy Schubert (yyvsp[-1].str)[len+1] = 0; 6872b7c0c8c1SCy Schubert } 6873b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->views-> 6874b7c0c8c1SCy Schubert local_zones_ipset, (yyvsp[-1].str))) 6875b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone"); 6876b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6877b7c0c8c1SCy Schubert #endif 6878b7c0c8c1SCy Schubert } else { 6879b7c0c8c1SCy Schubert if(!cfg_str2list_insert( 6880b7c0c8c1SCy Schubert &cfg_parser->cfg->views->local_zones, 6881b7c0c8c1SCy Schubert (yyvsp[-1].str), (yyvsp[0].str))) 6882b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone"); 6883b7c0c8c1SCy Schubert } 6884b7c0c8c1SCy Schubert } 6885*46d2f618SCy Schubert #line 6886 "util/configparser.c" 6886b7c0c8c1SCy Schubert break; 6887b7c0c8c1SCy Schubert 6888*46d2f618SCy Schubert case 620: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ 6889*46d2f618SCy Schubert #line 3368 "util/configparser.y" 6890b7c0c8c1SCy Schubert { 6891b7c0c8c1SCy Schubert OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 6892b7c0c8c1SCy Schubert validate_respip_action((yyvsp[0].str)); 6893b7c0c8c1SCy Schubert if(!cfg_str2list_insert( 6894b7c0c8c1SCy Schubert &cfg_parser->cfg->views->respip_actions, (yyvsp[-1].str), (yyvsp[0].str))) 6895b7c0c8c1SCy Schubert fatal_exit("out of memory adding per-view " 6896b7c0c8c1SCy Schubert "response-ip action"); 6897b7c0c8c1SCy Schubert } 6898*46d2f618SCy Schubert #line 6899 "util/configparser.c" 6899b7c0c8c1SCy Schubert break; 6900b7c0c8c1SCy Schubert 6901*46d2f618SCy Schubert case 621: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ 6902*46d2f618SCy Schubert #line 3378 "util/configparser.y" 6903b7c0c8c1SCy Schubert { 6904b7c0c8c1SCy Schubert OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); 6905b7c0c8c1SCy Schubert if(!cfg_str2list_insert( 6906b7c0c8c1SCy Schubert &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) 6907b7c0c8c1SCy Schubert fatal_exit("out of memory adding response-ip-data"); 6908b7c0c8c1SCy Schubert } 6909*46d2f618SCy Schubert #line 6910 "util/configparser.c" 6910b7c0c8c1SCy Schubert break; 6911b7c0c8c1SCy Schubert 6912*46d2f618SCy Schubert case 622: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */ 6913*46d2f618SCy Schubert #line 3386 "util/configparser.y" 6914b7c0c8c1SCy Schubert { 6915b7c0c8c1SCy Schubert OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); 6916b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { 6917b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-data"); 6918b7c0c8c1SCy Schubert } 6919b7c0c8c1SCy Schubert } 6920*46d2f618SCy Schubert #line 6921 "util/configparser.c" 6921b7c0c8c1SCy Schubert break; 6922b7c0c8c1SCy Schubert 6923*46d2f618SCy Schubert case 623: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ 6924*46d2f618SCy Schubert #line 3394 "util/configparser.y" 6925b7c0c8c1SCy Schubert { 6926b7c0c8c1SCy Schubert char* ptr; 6927b7c0c8c1SCy Schubert OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); 6928b7c0c8c1SCy Schubert ptr = cfg_ptr_reverse((yyvsp[0].str)); 6929b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6930b7c0c8c1SCy Schubert if(ptr) { 6931b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->views-> 6932b7c0c8c1SCy Schubert local_data, ptr)) 6933b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-data"); 6934b7c0c8c1SCy Schubert } else { 6935b7c0c8c1SCy Schubert yyerror("local-data-ptr could not be reversed"); 6936b7c0c8c1SCy Schubert } 6937b7c0c8c1SCy Schubert } 6938*46d2f618SCy Schubert #line 6939 "util/configparser.c" 6939b7c0c8c1SCy Schubert break; 6940b7c0c8c1SCy Schubert 6941*46d2f618SCy Schubert case 624: /* view_first: VAR_VIEW_FIRST STRING_ARG */ 6942*46d2f618SCy Schubert #line 3409 "util/configparser.y" 6943b7c0c8c1SCy Schubert { 6944b7c0c8c1SCy Schubert OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); 6945b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6946b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6947b7c0c8c1SCy Schubert else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); 6948b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6949b7c0c8c1SCy Schubert } 6950*46d2f618SCy Schubert #line 6951 "util/configparser.c" 6951b7c0c8c1SCy Schubert break; 6952b7c0c8c1SCy Schubert 6953*46d2f618SCy Schubert case 625: /* rcstart: VAR_REMOTE_CONTROL */ 6954*46d2f618SCy Schubert #line 3418 "util/configparser.y" 6955b7c0c8c1SCy Schubert { 6956b7c0c8c1SCy Schubert OUTYY(("\nP(remote-control:)\n")); 6957b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1; 6958b7c0c8c1SCy Schubert } 6959*46d2f618SCy Schubert #line 6960 "util/configparser.c" 6960b7c0c8c1SCy Schubert break; 6961b7c0c8c1SCy Schubert 6962*46d2f618SCy Schubert case 636: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */ 6963*46d2f618SCy Schubert #line 3430 "util/configparser.y" 6964b7c0c8c1SCy Schubert { 6965b7c0c8c1SCy Schubert OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); 6966b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 6967b7c0c8c1SCy Schubert yyerror("expected yes or no."); 6968b7c0c8c1SCy Schubert else cfg_parser->cfg->remote_control_enable = 6969b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 6970b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6971b7c0c8c1SCy Schubert } 6972*46d2f618SCy Schubert #line 6973 "util/configparser.c" 6973b7c0c8c1SCy Schubert break; 6974b7c0c8c1SCy Schubert 6975*46d2f618SCy Schubert case 637: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */ 6976*46d2f618SCy Schubert #line 3440 "util/configparser.y" 6977b7c0c8c1SCy Schubert { 6978b7c0c8c1SCy Schubert OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); 6979b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 6980b7c0c8c1SCy Schubert yyerror("control port number expected"); 6981b7c0c8c1SCy Schubert else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); 6982b7c0c8c1SCy Schubert free((yyvsp[0].str)); 6983b7c0c8c1SCy Schubert } 6984*46d2f618SCy Schubert #line 6985 "util/configparser.c" 6985b7c0c8c1SCy Schubert break; 6986b7c0c8c1SCy Schubert 6987*46d2f618SCy Schubert case 638: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */ 6988*46d2f618SCy Schubert #line 3449 "util/configparser.y" 6989b7c0c8c1SCy Schubert { 6990b7c0c8c1SCy Schubert OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); 6991b7c0c8c1SCy Schubert if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) 6992b7c0c8c1SCy Schubert yyerror("out of memory"); 6993b7c0c8c1SCy Schubert } 6994*46d2f618SCy Schubert #line 6995 "util/configparser.c" 6995b7c0c8c1SCy Schubert break; 6996b7c0c8c1SCy Schubert 6997*46d2f618SCy Schubert case 639: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */ 6998*46d2f618SCy Schubert #line 3456 "util/configparser.y" 6999b7c0c8c1SCy Schubert { 7000b7c0c8c1SCy Schubert OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); 7001b7c0c8c1SCy Schubert cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); 7002b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7003b7c0c8c1SCy Schubert } 7004*46d2f618SCy Schubert #line 7005 "util/configparser.c" 7005b7c0c8c1SCy Schubert break; 7006b7c0c8c1SCy Schubert 7007*46d2f618SCy Schubert case 640: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */ 7008*46d2f618SCy Schubert #line 3463 "util/configparser.y" 7009b7c0c8c1SCy Schubert { 7010b7c0c8c1SCy Schubert OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); 7011b7c0c8c1SCy Schubert free(cfg_parser->cfg->server_key_file); 7012b7c0c8c1SCy Schubert cfg_parser->cfg->server_key_file = (yyvsp[0].str); 7013b7c0c8c1SCy Schubert } 7014*46d2f618SCy Schubert #line 7015 "util/configparser.c" 7015b7c0c8c1SCy Schubert break; 7016b7c0c8c1SCy Schubert 7017*46d2f618SCy Schubert case 641: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */ 7018*46d2f618SCy Schubert #line 3470 "util/configparser.y" 7019b7c0c8c1SCy Schubert { 7020b7c0c8c1SCy Schubert OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); 7021b7c0c8c1SCy Schubert free(cfg_parser->cfg->server_cert_file); 7022b7c0c8c1SCy Schubert cfg_parser->cfg->server_cert_file = (yyvsp[0].str); 7023b7c0c8c1SCy Schubert } 7024*46d2f618SCy Schubert #line 7025 "util/configparser.c" 7025b7c0c8c1SCy Schubert break; 7026b7c0c8c1SCy Schubert 7027*46d2f618SCy Schubert case 642: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */ 7028*46d2f618SCy Schubert #line 3477 "util/configparser.y" 7029b7c0c8c1SCy Schubert { 7030b7c0c8c1SCy Schubert OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); 7031b7c0c8c1SCy Schubert free(cfg_parser->cfg->control_key_file); 7032b7c0c8c1SCy Schubert cfg_parser->cfg->control_key_file = (yyvsp[0].str); 7033b7c0c8c1SCy Schubert } 7034*46d2f618SCy Schubert #line 7035 "util/configparser.c" 7035b7c0c8c1SCy Schubert break; 7036b7c0c8c1SCy Schubert 7037*46d2f618SCy Schubert case 643: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */ 7038*46d2f618SCy Schubert #line 3484 "util/configparser.y" 7039b7c0c8c1SCy Schubert { 7040b7c0c8c1SCy Schubert OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); 7041b7c0c8c1SCy Schubert free(cfg_parser->cfg->control_cert_file); 7042b7c0c8c1SCy Schubert cfg_parser->cfg->control_cert_file = (yyvsp[0].str); 7043b7c0c8c1SCy Schubert } 7044*46d2f618SCy Schubert #line 7045 "util/configparser.c" 7045b7c0c8c1SCy Schubert break; 7046b7c0c8c1SCy Schubert 7047*46d2f618SCy Schubert case 644: /* dtstart: VAR_DNSTAP */ 7048*46d2f618SCy Schubert #line 3491 "util/configparser.y" 7049b7c0c8c1SCy Schubert { 7050b7c0c8c1SCy Schubert OUTYY(("\nP(dnstap:)\n")); 7051b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1; 7052b7c0c8c1SCy Schubert } 7053*46d2f618SCy Schubert #line 7054 "util/configparser.c" 7054b7c0c8c1SCy Schubert break; 7055b7c0c8c1SCy Schubert 7056*46d2f618SCy Schubert case 667: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */ 7057*46d2f618SCy Schubert #line 3513 "util/configparser.y" 7058b7c0c8c1SCy Schubert { 7059b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); 7060b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7061b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7062b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); 7063b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7064b7c0c8c1SCy Schubert } 7065*46d2f618SCy Schubert #line 7066 "util/configparser.c" 7066b7c0c8c1SCy Schubert break; 7067b7c0c8c1SCy Schubert 7068*46d2f618SCy Schubert case 668: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */ 7069*46d2f618SCy Schubert #line 3522 "util/configparser.y" 7070b7c0c8c1SCy Schubert { 7071b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); 7072b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7073b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7074b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_bidirectional = 7075b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 7076b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7077b7c0c8c1SCy Schubert } 7078*46d2f618SCy Schubert #line 7079 "util/configparser.c" 7079b7c0c8c1SCy Schubert break; 7080b7c0c8c1SCy Schubert 7081*46d2f618SCy Schubert case 669: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */ 7082*46d2f618SCy Schubert #line 3532 "util/configparser.y" 7083b7c0c8c1SCy Schubert { 7084b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); 7085b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_socket_path); 7086b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); 7087b7c0c8c1SCy Schubert } 7088*46d2f618SCy Schubert #line 7089 "util/configparser.c" 7089b7c0c8c1SCy Schubert break; 7090b7c0c8c1SCy Schubert 7091*46d2f618SCy Schubert case 670: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */ 7092*46d2f618SCy Schubert #line 3539 "util/configparser.y" 7093b7c0c8c1SCy Schubert { 7094b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); 7095b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_ip); 7096b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); 7097b7c0c8c1SCy Schubert } 7098*46d2f618SCy Schubert #line 7099 "util/configparser.c" 7099b7c0c8c1SCy Schubert break; 7100b7c0c8c1SCy Schubert 7101*46d2f618SCy Schubert case 671: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */ 7102*46d2f618SCy Schubert #line 3546 "util/configparser.y" 7103b7c0c8c1SCy Schubert { 7104b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); 7105b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7106b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7107b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); 7108b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7109b7c0c8c1SCy Schubert } 7110*46d2f618SCy Schubert #line 7111 "util/configparser.c" 7111b7c0c8c1SCy Schubert break; 7112b7c0c8c1SCy Schubert 7113*46d2f618SCy Schubert case 672: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */ 7114*46d2f618SCy Schubert #line 3555 "util/configparser.y" 7115b7c0c8c1SCy Schubert { 7116b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); 7117b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_tls_server_name); 7118b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); 7119b7c0c8c1SCy Schubert } 7120*46d2f618SCy Schubert #line 7121 "util/configparser.c" 7121b7c0c8c1SCy Schubert break; 7122b7c0c8c1SCy Schubert 7123*46d2f618SCy Schubert case 673: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */ 7124*46d2f618SCy Schubert #line 3562 "util/configparser.y" 7125b7c0c8c1SCy Schubert { 7126b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); 7127b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_tls_cert_bundle); 7128b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); 7129b7c0c8c1SCy Schubert } 7130*46d2f618SCy Schubert #line 7131 "util/configparser.c" 7131b7c0c8c1SCy Schubert break; 7132b7c0c8c1SCy Schubert 7133*46d2f618SCy Schubert case 674: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */ 7134*46d2f618SCy Schubert #line 3569 "util/configparser.y" 7135b7c0c8c1SCy Schubert { 7136b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); 7137b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_tls_client_key_file); 7138b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); 7139b7c0c8c1SCy Schubert } 7140*46d2f618SCy Schubert #line 7141 "util/configparser.c" 7141b7c0c8c1SCy Schubert break; 7142b7c0c8c1SCy Schubert 7143*46d2f618SCy Schubert case 675: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */ 7144*46d2f618SCy Schubert #line 3576 "util/configparser.y" 7145b7c0c8c1SCy Schubert { 7146b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); 7147b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_tls_client_cert_file); 7148b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); 7149b7c0c8c1SCy Schubert } 7150*46d2f618SCy Schubert #line 7151 "util/configparser.c" 7151b7c0c8c1SCy Schubert break; 7152b7c0c8c1SCy Schubert 7153*46d2f618SCy Schubert case 676: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */ 7154*46d2f618SCy Schubert #line 3583 "util/configparser.y" 7155b7c0c8c1SCy Schubert { 7156b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); 7157b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7158b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7159b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); 7160b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7161b7c0c8c1SCy Schubert } 7162*46d2f618SCy Schubert #line 7163 "util/configparser.c" 7163b7c0c8c1SCy Schubert break; 7164b7c0c8c1SCy Schubert 7165*46d2f618SCy Schubert case 677: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */ 7166*46d2f618SCy Schubert #line 3592 "util/configparser.y" 7167b7c0c8c1SCy Schubert { 7168b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); 7169b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7170b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7171b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); 7172b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7173b7c0c8c1SCy Schubert } 7174*46d2f618SCy Schubert #line 7175 "util/configparser.c" 7175b7c0c8c1SCy Schubert break; 7176b7c0c8c1SCy Schubert 7177*46d2f618SCy Schubert case 678: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */ 7178*46d2f618SCy Schubert #line 3601 "util/configparser.y" 7179b7c0c8c1SCy Schubert { 7180b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); 7181b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_identity); 7182b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); 7183b7c0c8c1SCy Schubert } 7184*46d2f618SCy Schubert #line 7185 "util/configparser.c" 7185b7c0c8c1SCy Schubert break; 7186b7c0c8c1SCy Schubert 7187*46d2f618SCy Schubert case 679: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */ 7188*46d2f618SCy Schubert #line 3608 "util/configparser.y" 7189b7c0c8c1SCy Schubert { 7190b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); 7191b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_version); 7192b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_version = (yyvsp[0].str); 7193b7c0c8c1SCy Schubert } 7194*46d2f618SCy Schubert #line 7195 "util/configparser.c" 7195b7c0c8c1SCy Schubert break; 7196b7c0c8c1SCy Schubert 7197*46d2f618SCy Schubert case 680: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */ 7198*46d2f618SCy Schubert #line 3615 "util/configparser.y" 7199b7c0c8c1SCy Schubert { 7200b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); 7201b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7202b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7203b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_log_resolver_query_messages = 7204b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 7205b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7206b7c0c8c1SCy Schubert } 7207*46d2f618SCy Schubert #line 7208 "util/configparser.c" 7208b7c0c8c1SCy Schubert break; 7209b7c0c8c1SCy Schubert 7210*46d2f618SCy Schubert case 681: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */ 7211*46d2f618SCy Schubert #line 3625 "util/configparser.y" 7212b7c0c8c1SCy Schubert { 7213b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); 7214b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7215b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7216b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_log_resolver_response_messages = 7217b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 7218b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7219b7c0c8c1SCy Schubert } 7220*46d2f618SCy Schubert #line 7221 "util/configparser.c" 7221b7c0c8c1SCy Schubert break; 7222b7c0c8c1SCy Schubert 7223*46d2f618SCy Schubert case 682: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */ 7224*46d2f618SCy Schubert #line 3635 "util/configparser.y" 7225b7c0c8c1SCy Schubert { 7226b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); 7227b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7228b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7229b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_log_client_query_messages = 7230b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 7231b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7232b7c0c8c1SCy Schubert } 7233*46d2f618SCy Schubert #line 7234 "util/configparser.c" 7234b7c0c8c1SCy Schubert break; 7235b7c0c8c1SCy Schubert 7236*46d2f618SCy Schubert case 683: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */ 7237*46d2f618SCy Schubert #line 3645 "util/configparser.y" 7238b7c0c8c1SCy Schubert { 7239b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); 7240b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7241b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7242b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_log_client_response_messages = 7243b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 7244b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7245b7c0c8c1SCy Schubert } 7246*46d2f618SCy Schubert #line 7247 "util/configparser.c" 7247b7c0c8c1SCy Schubert break; 7248b7c0c8c1SCy Schubert 7249*46d2f618SCy Schubert case 684: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */ 7250*46d2f618SCy Schubert #line 3655 "util/configparser.y" 7251b7c0c8c1SCy Schubert { 7252b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); 7253b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7254b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7255b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_log_forwarder_query_messages = 7256b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 7257b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7258b7c0c8c1SCy Schubert } 7259*46d2f618SCy Schubert #line 7260 "util/configparser.c" 7260b7c0c8c1SCy Schubert break; 7261b7c0c8c1SCy Schubert 7262*46d2f618SCy Schubert case 685: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */ 7263*46d2f618SCy Schubert #line 3665 "util/configparser.y" 7264b7c0c8c1SCy Schubert { 7265b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); 7266b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7267b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7268b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_log_forwarder_response_messages = 7269b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 7270b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7271b7c0c8c1SCy Schubert } 7272*46d2f618SCy Schubert #line 7273 "util/configparser.c" 7273b7c0c8c1SCy Schubert break; 7274b7c0c8c1SCy Schubert 7275*46d2f618SCy Schubert case 686: /* dt_dnstap_sample_rate: VAR_DNSTAP_SAMPLE_RATE STRING_ARG */ 7276*46d2f618SCy Schubert #line 3675 "util/configparser.y" 727756850988SCy Schubert { 727856850988SCy Schubert OUTYY(("P(dt_dnstap_sample_rate:%s)\n", (yyvsp[0].str))); 727956850988SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 728056850988SCy Schubert yyerror("number expected"); 728156850988SCy Schubert else if(atoi((yyvsp[0].str)) < 0) 728256850988SCy Schubert yyerror("dnstap sample rate too small"); 728356850988SCy Schubert else cfg_parser->cfg->dnstap_sample_rate = atoi((yyvsp[0].str)); 728456850988SCy Schubert free((yyvsp[0].str)); 728556850988SCy Schubert } 7286*46d2f618SCy Schubert #line 7287 "util/configparser.c" 728756850988SCy Schubert break; 728856850988SCy Schubert 7289*46d2f618SCy Schubert case 687: /* pythonstart: VAR_PYTHON */ 7290*46d2f618SCy Schubert #line 3686 "util/configparser.y" 7291b7c0c8c1SCy Schubert { 7292b7c0c8c1SCy Schubert OUTYY(("\nP(python:)\n")); 7293b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1; 7294b7c0c8c1SCy Schubert } 7295*46d2f618SCy Schubert #line 7296 "util/configparser.c" 7296b7c0c8c1SCy Schubert break; 7297b7c0c8c1SCy Schubert 7298*46d2f618SCy Schubert case 691: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */ 7299*46d2f618SCy Schubert #line 3696 "util/configparser.y" 7300b7c0c8c1SCy Schubert { 7301b7c0c8c1SCy Schubert OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); 7302b7c0c8c1SCy Schubert if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) 7303b7c0c8c1SCy Schubert yyerror("out of memory"); 7304b7c0c8c1SCy Schubert } 7305*46d2f618SCy Schubert #line 7306 "util/configparser.c" 7306b7c0c8c1SCy Schubert break; 7307b7c0c8c1SCy Schubert 7308*46d2f618SCy Schubert case 692: /* dynlibstart: VAR_DYNLIB */ 7309*46d2f618SCy Schubert #line 3703 "util/configparser.y" 7310b7c0c8c1SCy Schubert { 7311b7c0c8c1SCy Schubert OUTYY(("\nP(dynlib:)\n")); 7312b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1; 7313b7c0c8c1SCy Schubert } 7314*46d2f618SCy Schubert #line 7315 "util/configparser.c" 7315b7c0c8c1SCy Schubert break; 7316b7c0c8c1SCy Schubert 7317*46d2f618SCy Schubert case 696: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */ 7318*46d2f618SCy Schubert #line 3713 "util/configparser.y" 7319b7c0c8c1SCy Schubert { 7320b7c0c8c1SCy Schubert OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); 7321b7c0c8c1SCy Schubert if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) 7322b7c0c8c1SCy Schubert yyerror("out of memory"); 7323b7c0c8c1SCy Schubert } 7324*46d2f618SCy Schubert #line 7325 "util/configparser.c" 7325b7c0c8c1SCy Schubert break; 7326b7c0c8c1SCy Schubert 7327*46d2f618SCy Schubert case 697: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */ 7328*46d2f618SCy Schubert #line 3720 "util/configparser.y" 7329b7c0c8c1SCy Schubert { 7330b7c0c8c1SCy Schubert OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); 7331b7c0c8c1SCy Schubert if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7332b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7333b7c0c8c1SCy Schubert else cfg_parser->cfg->disable_dnssec_lame_check = 7334b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0); 7335b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7336b7c0c8c1SCy Schubert } 7337*46d2f618SCy Schubert #line 7338 "util/configparser.c" 7338b7c0c8c1SCy Schubert break; 7339b7c0c8c1SCy Schubert 7340*46d2f618SCy Schubert case 698: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */ 7341*46d2f618SCy Schubert #line 3730 "util/configparser.y" 7342b7c0c8c1SCy Schubert { 7343b7c0c8c1SCy Schubert OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); 7344b7c0c8c1SCy Schubert free(cfg_parser->cfg->log_identity); 7345b7c0c8c1SCy Schubert cfg_parser->cfg->log_identity = (yyvsp[0].str); 7346b7c0c8c1SCy Schubert } 7347*46d2f618SCy Schubert #line 7348 "util/configparser.c" 7348b7c0c8c1SCy Schubert break; 7349b7c0c8c1SCy Schubert 7350*46d2f618SCy Schubert case 699: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ 7351*46d2f618SCy Schubert #line 3737 "util/configparser.y" 7352b7c0c8c1SCy Schubert { 7353b7c0c8c1SCy Schubert OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 7354b7c0c8c1SCy Schubert validate_respip_action((yyvsp[0].str)); 7355b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->respip_actions, 7356b7c0c8c1SCy Schubert (yyvsp[-1].str), (yyvsp[0].str))) 7357b7c0c8c1SCy Schubert fatal_exit("out of memory adding response-ip"); 7358b7c0c8c1SCy Schubert } 7359*46d2f618SCy Schubert #line 7360 "util/configparser.c" 7360b7c0c8c1SCy Schubert break; 7361b7c0c8c1SCy Schubert 7362*46d2f618SCy Schubert case 700: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ 7363*46d2f618SCy Schubert #line 3746 "util/configparser.y" 7364b7c0c8c1SCy Schubert { 7365b7c0c8c1SCy Schubert OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); 7366b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, 7367b7c0c8c1SCy Schubert (yyvsp[-1].str), (yyvsp[0].str))) 7368b7c0c8c1SCy Schubert fatal_exit("out of memory adding response-ip-data"); 7369b7c0c8c1SCy Schubert } 7370*46d2f618SCy Schubert #line 7371 "util/configparser.c" 7371b7c0c8c1SCy Schubert break; 7372b7c0c8c1SCy Schubert 7373*46d2f618SCy Schubert case 701: /* dnscstart: VAR_DNSCRYPT */ 7374*46d2f618SCy Schubert #line 3754 "util/configparser.y" 7375b7c0c8c1SCy Schubert { 7376b7c0c8c1SCy Schubert OUTYY(("\nP(dnscrypt:)\n")); 7377b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1; 7378b7c0c8c1SCy Schubert } 7379*46d2f618SCy Schubert #line 7380 "util/configparser.c" 7380b7c0c8c1SCy Schubert break; 7381b7c0c8c1SCy Schubert 7382*46d2f618SCy Schubert case 714: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */ 7383*46d2f618SCy Schubert #line 3771 "util/configparser.y" 7384b7c0c8c1SCy Schubert { 7385b7c0c8c1SCy Schubert OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); 7386b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7387b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7388b7c0c8c1SCy Schubert else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); 7389b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7390b7c0c8c1SCy Schubert } 7391*46d2f618SCy Schubert #line 7392 "util/configparser.c" 7392b7c0c8c1SCy Schubert break; 7393b7c0c8c1SCy Schubert 7394*46d2f618SCy Schubert case 715: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */ 7395*46d2f618SCy Schubert #line 3780 "util/configparser.y" 7396b7c0c8c1SCy Schubert { 7397b7c0c8c1SCy Schubert OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); 7398b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 7399b7c0c8c1SCy Schubert yyerror("port number expected"); 7400b7c0c8c1SCy Schubert else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); 7401b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7402b7c0c8c1SCy Schubert } 7403*46d2f618SCy Schubert #line 7404 "util/configparser.c" 7404b7c0c8c1SCy Schubert break; 7405b7c0c8c1SCy Schubert 7406*46d2f618SCy Schubert case 716: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */ 7407*46d2f618SCy Schubert #line 3789 "util/configparser.y" 7408b7c0c8c1SCy Schubert { 7409b7c0c8c1SCy Schubert OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); 7410b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnscrypt_provider); 7411b7c0c8c1SCy Schubert cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); 7412b7c0c8c1SCy Schubert } 7413*46d2f618SCy Schubert #line 7414 "util/configparser.c" 7414b7c0c8c1SCy Schubert break; 7415b7c0c8c1SCy Schubert 7416*46d2f618SCy Schubert case 717: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */ 7417*46d2f618SCy Schubert #line 3796 "util/configparser.y" 7418b7c0c8c1SCy Schubert { 7419b7c0c8c1SCy Schubert OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); 7420b7c0c8c1SCy Schubert if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) 7421b7c0c8c1SCy Schubert log_warn("dnscrypt-provider-cert %s is a duplicate", (yyvsp[0].str)); 7422b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) 7423b7c0c8c1SCy Schubert fatal_exit("out of memory adding dnscrypt-provider-cert"); 7424b7c0c8c1SCy Schubert } 7425*46d2f618SCy Schubert #line 7426 "util/configparser.c" 7426b7c0c8c1SCy Schubert break; 7427b7c0c8c1SCy Schubert 7428*46d2f618SCy Schubert case 718: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */ 7429*46d2f618SCy Schubert #line 3805 "util/configparser.y" 7430b7c0c8c1SCy Schubert { 7431b7c0c8c1SCy Schubert OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); 7432b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) 7433b7c0c8c1SCy Schubert fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); 7434b7c0c8c1SCy Schubert } 7435*46d2f618SCy Schubert #line 7436 "util/configparser.c" 7436b7c0c8c1SCy Schubert break; 7437b7c0c8c1SCy Schubert 7438*46d2f618SCy Schubert case 719: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */ 7439*46d2f618SCy Schubert #line 3812 "util/configparser.y" 7440b7c0c8c1SCy Schubert { 7441b7c0c8c1SCy Schubert OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); 7442b7c0c8c1SCy Schubert if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) 7443b7c0c8c1SCy Schubert log_warn("dnscrypt-secret-key: %s is a duplicate", (yyvsp[0].str)); 7444b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) 7445b7c0c8c1SCy Schubert fatal_exit("out of memory adding dnscrypt-secret-key"); 7446b7c0c8c1SCy Schubert } 7447*46d2f618SCy Schubert #line 7448 "util/configparser.c" 7448b7c0c8c1SCy Schubert break; 7449b7c0c8c1SCy Schubert 7450*46d2f618SCy Schubert case 720: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */ 7451*46d2f618SCy Schubert #line 3821 "util/configparser.y" 7452b7c0c8c1SCy Schubert { 7453b7c0c8c1SCy Schubert OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); 7454b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) 7455b7c0c8c1SCy Schubert yyerror("memory size expected"); 7456b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7457b7c0c8c1SCy Schubert } 7458*46d2f618SCy Schubert #line 7459 "util/configparser.c" 7459b7c0c8c1SCy Schubert break; 7460b7c0c8c1SCy Schubert 7461*46d2f618SCy Schubert case 721: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */ 7462*46d2f618SCy Schubert #line 3829 "util/configparser.y" 7463b7c0c8c1SCy Schubert { 7464b7c0c8c1SCy Schubert OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); 7465b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) { 7466b7c0c8c1SCy Schubert yyerror("number expected"); 7467b7c0c8c1SCy Schubert } else { 7468b7c0c8c1SCy Schubert cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi((yyvsp[0].str)); 7469b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs)) 7470b7c0c8c1SCy Schubert yyerror("must be a power of 2"); 7471b7c0c8c1SCy Schubert } 7472b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7473b7c0c8c1SCy Schubert } 7474*46d2f618SCy Schubert #line 7475 "util/configparser.c" 7475b7c0c8c1SCy Schubert break; 7476b7c0c8c1SCy Schubert 7477*46d2f618SCy Schubert case 722: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */ 7478*46d2f618SCy Schubert #line 3842 "util/configparser.y" 7479b7c0c8c1SCy Schubert { 7480b7c0c8c1SCy Schubert OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); 7481b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) 7482b7c0c8c1SCy Schubert yyerror("memory size expected"); 7483b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7484b7c0c8c1SCy Schubert } 7485*46d2f618SCy Schubert #line 7486 "util/configparser.c" 7486b7c0c8c1SCy Schubert break; 7487b7c0c8c1SCy Schubert 7488*46d2f618SCy Schubert case 723: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */ 7489*46d2f618SCy Schubert #line 3850 "util/configparser.y" 7490b7c0c8c1SCy Schubert { 7491b7c0c8c1SCy Schubert OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); 7492b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) { 7493b7c0c8c1SCy Schubert yyerror("number expected"); 7494b7c0c8c1SCy Schubert } else { 7495b7c0c8c1SCy Schubert cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi((yyvsp[0].str)); 7496b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs)) 7497b7c0c8c1SCy Schubert yyerror("must be a power of 2"); 7498b7c0c8c1SCy Schubert } 7499b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7500b7c0c8c1SCy Schubert } 7501*46d2f618SCy Schubert #line 7502 "util/configparser.c" 7502b7c0c8c1SCy Schubert break; 7503b7c0c8c1SCy Schubert 7504*46d2f618SCy Schubert case 724: /* cachedbstart: VAR_CACHEDB */ 7505*46d2f618SCy Schubert #line 3863 "util/configparser.y" 7506b7c0c8c1SCy Schubert { 7507b7c0c8c1SCy Schubert OUTYY(("\nP(cachedb:)\n")); 7508b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1; 7509b7c0c8c1SCy Schubert } 7510*46d2f618SCy Schubert #line 7511 "util/configparser.c" 7511b7c0c8c1SCy Schubert break; 7512b7c0c8c1SCy Schubert 7513*46d2f618SCy Schubert case 740: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */ 7514*46d2f618SCy Schubert #line 3877 "util/configparser.y" 7515b7c0c8c1SCy Schubert { 7516b7c0c8c1SCy Schubert #ifdef USE_CACHEDB 7517b7c0c8c1SCy Schubert OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); 7518b7c0c8c1SCy Schubert free(cfg_parser->cfg->cachedb_backend); 7519b7c0c8c1SCy Schubert cfg_parser->cfg->cachedb_backend = (yyvsp[0].str); 7520b7c0c8c1SCy Schubert #else 7521b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb, ignoring)\n")); 7522b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7523b7c0c8c1SCy Schubert #endif 7524b7c0c8c1SCy Schubert } 7525*46d2f618SCy Schubert #line 7526 "util/configparser.c" 7526b7c0c8c1SCy Schubert break; 7527b7c0c8c1SCy Schubert 7528*46d2f618SCy Schubert case 741: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */ 7529*46d2f618SCy Schubert #line 3889 "util/configparser.y" 7530b7c0c8c1SCy Schubert { 7531b7c0c8c1SCy Schubert #ifdef USE_CACHEDB 7532b7c0c8c1SCy Schubert OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); 7533b7c0c8c1SCy Schubert free(cfg_parser->cfg->cachedb_secret); 7534b7c0c8c1SCy Schubert cfg_parser->cfg->cachedb_secret = (yyvsp[0].str); 7535b7c0c8c1SCy Schubert #else 7536b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb, ignoring)\n")); 7537b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7538b7c0c8c1SCy Schubert #endif 7539b7c0c8c1SCy Schubert } 7540*46d2f618SCy Schubert #line 7541 "util/configparser.c" 7541b7c0c8c1SCy Schubert break; 7542b7c0c8c1SCy Schubert 7543*46d2f618SCy Schubert case 742: /* cachedb_no_store: VAR_CACHEDB_NO_STORE STRING_ARG */ 7544*46d2f618SCy Schubert #line 3901 "util/configparser.y" 7545b7c0c8c1SCy Schubert { 7546b7c0c8c1SCy Schubert #ifdef USE_CACHEDB 7547b7c0c8c1SCy Schubert OUTYY(("P(cachedb_no_store:%s)\n", (yyvsp[0].str))); 7548b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7549b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7550b7c0c8c1SCy Schubert else cfg_parser->cfg->cachedb_no_store = (strcmp((yyvsp[0].str), "yes")==0); 7551b7c0c8c1SCy Schubert #else 7552b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb, ignoring)\n")); 7553b7c0c8c1SCy Schubert #endif 7554b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7555b7c0c8c1SCy Schubert } 7556*46d2f618SCy Schubert #line 7557 "util/configparser.c" 7557b7c0c8c1SCy Schubert break; 7558b7c0c8c1SCy Schubert 7559*46d2f618SCy Schubert case 743: /* cachedb_check_when_serve_expired: VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED STRING_ARG */ 7560*46d2f618SCy Schubert #line 3914 "util/configparser.y" 7561335c7cdaSCy Schubert { 7562335c7cdaSCy Schubert #ifdef USE_CACHEDB 7563335c7cdaSCy Schubert OUTYY(("P(cachedb_check_when_serve_expired:%s)\n", (yyvsp[0].str))); 7564335c7cdaSCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7565335c7cdaSCy Schubert yyerror("expected yes or no."); 7566335c7cdaSCy Schubert else cfg_parser->cfg->cachedb_check_when_serve_expired = (strcmp((yyvsp[0].str), "yes")==0); 7567335c7cdaSCy Schubert #else 7568335c7cdaSCy Schubert OUTYY(("P(Compiled without cachedb, ignoring)\n")); 7569335c7cdaSCy Schubert #endif 7570335c7cdaSCy Schubert free((yyvsp[0].str)); 7571335c7cdaSCy Schubert } 7572*46d2f618SCy Schubert #line 7573 "util/configparser.c" 7573335c7cdaSCy Schubert break; 7574335c7cdaSCy Schubert 7575*46d2f618SCy Schubert case 744: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */ 7576*46d2f618SCy Schubert #line 3927 "util/configparser.y" 7577b7c0c8c1SCy Schubert { 7578b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS) 7579b7c0c8c1SCy Schubert OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); 7580b7c0c8c1SCy Schubert free(cfg_parser->cfg->redis_server_host); 7581b7c0c8c1SCy Schubert cfg_parser->cfg->redis_server_host = (yyvsp[0].str); 7582b7c0c8c1SCy Schubert #else 7583b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); 7584b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7585b7c0c8c1SCy Schubert #endif 7586b7c0c8c1SCy Schubert } 7587*46d2f618SCy Schubert #line 7588 "util/configparser.c" 7588b7c0c8c1SCy Schubert break; 7589b7c0c8c1SCy Schubert 7590*46d2f618SCy Schubert case 745: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */ 7591*46d2f618SCy Schubert #line 3939 "util/configparser.y" 7592b7c0c8c1SCy Schubert { 7593b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS) 7594b7c0c8c1SCy Schubert int port; 7595b7c0c8c1SCy Schubert OUTYY(("P(redis_server_port:%s)\n", (yyvsp[0].str))); 7596b7c0c8c1SCy Schubert port = atoi((yyvsp[0].str)); 7597b7c0c8c1SCy Schubert if(port == 0 || port < 0 || port > 65535) 7598b7c0c8c1SCy Schubert yyerror("valid redis server port number expected"); 7599b7c0c8c1SCy Schubert else cfg_parser->cfg->redis_server_port = port; 7600b7c0c8c1SCy Schubert #else 7601b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); 7602b7c0c8c1SCy Schubert #endif 7603b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7604b7c0c8c1SCy Schubert } 7605*46d2f618SCy Schubert #line 7606 "util/configparser.c" 7606b7c0c8c1SCy Schubert break; 7607b7c0c8c1SCy Schubert 7608*46d2f618SCy Schubert case 746: /* redis_server_path: VAR_CACHEDB_REDISPATH STRING_ARG */ 7609*46d2f618SCy Schubert #line 3954 "util/configparser.y" 7610b7c0c8c1SCy Schubert { 7611b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS) 7612b7c0c8c1SCy Schubert OUTYY(("P(redis_server_path:%s)\n", (yyvsp[0].str))); 7613b7c0c8c1SCy Schubert free(cfg_parser->cfg->redis_server_path); 7614b7c0c8c1SCy Schubert cfg_parser->cfg->redis_server_path = (yyvsp[0].str); 7615b7c0c8c1SCy Schubert #else 7616b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); 7617b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7618b7c0c8c1SCy Schubert #endif 7619b7c0c8c1SCy Schubert } 7620*46d2f618SCy Schubert #line 7621 "util/configparser.c" 7621b7c0c8c1SCy Schubert break; 7622b7c0c8c1SCy Schubert 7623*46d2f618SCy Schubert case 747: /* redis_server_password: VAR_CACHEDB_REDISPASSWORD STRING_ARG */ 7624*46d2f618SCy Schubert #line 3966 "util/configparser.y" 7625b7c0c8c1SCy Schubert { 7626b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS) 7627b7c0c8c1SCy Schubert OUTYY(("P(redis_server_password:%s)\n", (yyvsp[0].str))); 7628b7c0c8c1SCy Schubert free(cfg_parser->cfg->redis_server_password); 7629b7c0c8c1SCy Schubert cfg_parser->cfg->redis_server_password = (yyvsp[0].str); 7630b7c0c8c1SCy Schubert #else 7631b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); 7632b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7633b7c0c8c1SCy Schubert #endif 7634b7c0c8c1SCy Schubert } 7635*46d2f618SCy Schubert #line 7636 "util/configparser.c" 7636b7c0c8c1SCy Schubert break; 7637b7c0c8c1SCy Schubert 7638*46d2f618SCy Schubert case 748: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */ 7639*46d2f618SCy Schubert #line 3978 "util/configparser.y" 7640b7c0c8c1SCy Schubert { 7641b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS) 7642b7c0c8c1SCy Schubert OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); 7643b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) 7644b7c0c8c1SCy Schubert yyerror("redis timeout value expected"); 7645b7c0c8c1SCy Schubert else cfg_parser->cfg->redis_timeout = atoi((yyvsp[0].str)); 7646b7c0c8c1SCy Schubert #else 7647b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); 7648b7c0c8c1SCy Schubert #endif 7649b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7650b7c0c8c1SCy Schubert } 7651*46d2f618SCy Schubert #line 7652 "util/configparser.c" 7652b7c0c8c1SCy Schubert break; 7653b7c0c8c1SCy Schubert 7654*46d2f618SCy Schubert case 749: /* redis_command_timeout: VAR_CACHEDB_REDISCOMMANDTIMEOUT STRING_ARG */ 7655*46d2f618SCy Schubert #line 3991 "util/configparser.y" 7656*46d2f618SCy Schubert { 7657*46d2f618SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS) 7658*46d2f618SCy Schubert OUTYY(("P(redis_command_timeout:%s)\n", (yyvsp[0].str))); 7659*46d2f618SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 7660*46d2f618SCy Schubert yyerror("redis command timeout value expected"); 7661*46d2f618SCy Schubert else cfg_parser->cfg->redis_command_timeout = atoi((yyvsp[0].str)); 7662*46d2f618SCy Schubert #else 7663*46d2f618SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); 7664*46d2f618SCy Schubert #endif 7665*46d2f618SCy Schubert free((yyvsp[0].str)); 7666*46d2f618SCy Schubert } 7667*46d2f618SCy Schubert #line 7668 "util/configparser.c" 7668*46d2f618SCy Schubert break; 7669*46d2f618SCy Schubert 7670*46d2f618SCy Schubert case 750: /* redis_connect_timeout: VAR_CACHEDB_REDISCONNECTTIMEOUT STRING_ARG */ 7671*46d2f618SCy Schubert #line 4004 "util/configparser.y" 7672*46d2f618SCy Schubert { 7673*46d2f618SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS) 7674*46d2f618SCy Schubert OUTYY(("P(redis_connect_timeout:%s)\n", (yyvsp[0].str))); 7675*46d2f618SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 7676*46d2f618SCy Schubert yyerror("redis connect timeout value expected"); 7677*46d2f618SCy Schubert else cfg_parser->cfg->redis_connect_timeout = atoi((yyvsp[0].str)); 7678*46d2f618SCy Schubert #else 7679*46d2f618SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); 7680*46d2f618SCy Schubert #endif 7681*46d2f618SCy Schubert free((yyvsp[0].str)); 7682*46d2f618SCy Schubert } 7683*46d2f618SCy Schubert #line 7684 "util/configparser.c" 7684*46d2f618SCy Schubert break; 7685*46d2f618SCy Schubert 7686*46d2f618SCy Schubert case 751: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */ 7687*46d2f618SCy Schubert #line 4017 "util/configparser.y" 7688b7c0c8c1SCy Schubert { 7689b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS) 7690b7c0c8c1SCy Schubert OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); 7691b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7692b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7693b7c0c8c1SCy Schubert else cfg_parser->cfg->redis_expire_records = (strcmp((yyvsp[0].str), "yes")==0); 7694b7c0c8c1SCy Schubert #else 7695b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); 7696b7c0c8c1SCy Schubert #endif 7697b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7698b7c0c8c1SCy Schubert } 7699*46d2f618SCy Schubert #line 7700 "util/configparser.c" 7700b7c0c8c1SCy Schubert break; 7701b7c0c8c1SCy Schubert 7702*46d2f618SCy Schubert case 752: /* redis_logical_db: VAR_CACHEDB_REDISLOGICALDB STRING_ARG */ 7703*46d2f618SCy Schubert #line 4030 "util/configparser.y" 7704b7c0c8c1SCy Schubert { 7705b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS) 7706b7c0c8c1SCy Schubert int db; 7707b7c0c8c1SCy Schubert OUTYY(("P(redis_logical_db:%s)\n", (yyvsp[0].str))); 7708b7c0c8c1SCy Schubert db = atoi((yyvsp[0].str)); 7709b7c0c8c1SCy Schubert if((db == 0 && strcmp((yyvsp[0].str), "0") != 0) || db < 0) 7710b7c0c8c1SCy Schubert yyerror("valid redis logical database index expected"); 7711b7c0c8c1SCy Schubert else cfg_parser->cfg->redis_logical_db = db; 7712b7c0c8c1SCy Schubert #else 7713b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); 7714b7c0c8c1SCy Schubert #endif 7715b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7716b7c0c8c1SCy Schubert } 7717*46d2f618SCy Schubert #line 7718 "util/configparser.c" 7718b7c0c8c1SCy Schubert break; 7719b7c0c8c1SCy Schubert 7720*46d2f618SCy Schubert case 753: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */ 7721*46d2f618SCy Schubert #line 4045 "util/configparser.y" 7722b7c0c8c1SCy Schubert { 7723b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); 7724b7c0c8c1SCy Schubert if (atoi((yyvsp[0].str)) < 0) 7725b7c0c8c1SCy Schubert yyerror("positive number expected"); 7726b7c0c8c1SCy Schubert else { 7727b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->tcp_connection_limits, (yyvsp[-1].str), (yyvsp[0].str))) 7728b7c0c8c1SCy Schubert fatal_exit("out of memory adding tcp connection limit"); 7729b7c0c8c1SCy Schubert } 7730b7c0c8c1SCy Schubert } 7731*46d2f618SCy Schubert #line 7732 "util/configparser.c" 7732b7c0c8c1SCy Schubert break; 7733b7c0c8c1SCy Schubert 7734*46d2f618SCy Schubert case 754: /* server_answer_cookie: VAR_ANSWER_COOKIE STRING_ARG */ 7735*46d2f618SCy Schubert #line 4056 "util/configparser.y" 7736b7c0c8c1SCy Schubert { 7737b7c0c8c1SCy Schubert OUTYY(("P(server_answer_cookie:%s)\n", (yyvsp[0].str))); 7738b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) 7739b7c0c8c1SCy Schubert yyerror("expected yes or no."); 7740b7c0c8c1SCy Schubert else cfg_parser->cfg->do_answer_cookie = (strcmp((yyvsp[0].str), "yes")==0); 7741b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7742b7c0c8c1SCy Schubert } 7743*46d2f618SCy Schubert #line 7744 "util/configparser.c" 7744b7c0c8c1SCy Schubert break; 7745b7c0c8c1SCy Schubert 7746*46d2f618SCy Schubert case 755: /* server_cookie_secret: VAR_COOKIE_SECRET STRING_ARG */ 7747*46d2f618SCy Schubert #line 4065 "util/configparser.y" 7748b7c0c8c1SCy Schubert { 7749b7c0c8c1SCy Schubert uint8_t secret[32]; 7750b7c0c8c1SCy Schubert size_t secret_len = sizeof(secret); 7751b7c0c8c1SCy Schubert 7752b7c0c8c1SCy Schubert OUTYY(("P(server_cookie_secret:%s)\n", (yyvsp[0].str))); 7753b7c0c8c1SCy Schubert if(sldns_str2wire_hex_buf((yyvsp[0].str), secret, &secret_len) 7754b7c0c8c1SCy Schubert || (secret_len != 16)) 7755b7c0c8c1SCy Schubert yyerror("expected 128 bit hex string"); 7756b7c0c8c1SCy Schubert else { 7757b7c0c8c1SCy Schubert cfg_parser->cfg->cookie_secret_len = secret_len; 7758b7c0c8c1SCy Schubert memcpy(cfg_parser->cfg->cookie_secret, secret, sizeof(secret)); 7759b7c0c8c1SCy Schubert } 7760b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7761b7c0c8c1SCy Schubert } 7762*46d2f618SCy Schubert #line 7763 "util/configparser.c" 7763b7c0c8c1SCy Schubert break; 7764b7c0c8c1SCy Schubert 7765*46d2f618SCy Schubert case 756: /* server_cookie_secret_file: VAR_COOKIE_SECRET_FILE STRING_ARG */ 7766*46d2f618SCy Schubert #line 4081 "util/configparser.y" 776756850988SCy Schubert { 776856850988SCy Schubert OUTYY(("P(cookie_secret_file:%s)\n", (yyvsp[0].str))); 776956850988SCy Schubert free(cfg_parser->cfg->cookie_secret_file); 777056850988SCy Schubert cfg_parser->cfg->cookie_secret_file = (yyvsp[0].str); 777156850988SCy Schubert } 7772*46d2f618SCy Schubert #line 7773 "util/configparser.c" 777356850988SCy Schubert break; 777456850988SCy Schubert 7775*46d2f618SCy Schubert case 757: /* server_iter_scrub_ns: VAR_ITER_SCRUB_NS STRING_ARG */ 7776*46d2f618SCy Schubert #line 4088 "util/configparser.y" 7777*46d2f618SCy Schubert { 7778*46d2f618SCy Schubert OUTYY(("P(server_iter_scrub_ns:%s)\n", (yyvsp[0].str))); 7779*46d2f618SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 7780*46d2f618SCy Schubert yyerror("number expected"); 7781*46d2f618SCy Schubert else cfg_parser->cfg->iter_scrub_ns = atoi((yyvsp[0].str)); 7782*46d2f618SCy Schubert free((yyvsp[0].str)); 7783*46d2f618SCy Schubert } 7784*46d2f618SCy Schubert #line 7785 "util/configparser.c" 7785*46d2f618SCy Schubert break; 7786*46d2f618SCy Schubert 7787*46d2f618SCy Schubert case 758: /* server_iter_scrub_cname: VAR_ITER_SCRUB_CNAME STRING_ARG */ 7788*46d2f618SCy Schubert #line 4097 "util/configparser.y" 7789*46d2f618SCy Schubert { 7790*46d2f618SCy Schubert OUTYY(("P(server_iter_scrub_cname:%s)\n", (yyvsp[0].str))); 7791*46d2f618SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 7792*46d2f618SCy Schubert yyerror("number expected"); 7793*46d2f618SCy Schubert else cfg_parser->cfg->iter_scrub_cname = atoi((yyvsp[0].str)); 7794*46d2f618SCy Schubert free((yyvsp[0].str)); 7795*46d2f618SCy Schubert } 7796*46d2f618SCy Schubert #line 7797 "util/configparser.c" 7797*46d2f618SCy Schubert break; 7798*46d2f618SCy Schubert 7799*46d2f618SCy Schubert case 759: /* server_max_global_quota: VAR_MAX_GLOBAL_QUOTA STRING_ARG */ 7800*46d2f618SCy Schubert #line 4106 "util/configparser.y" 7801*46d2f618SCy Schubert { 7802*46d2f618SCy Schubert OUTYY(("P(server_max_global_quota:%s)\n", (yyvsp[0].str))); 7803*46d2f618SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) 7804*46d2f618SCy Schubert yyerror("number expected"); 7805*46d2f618SCy Schubert else cfg_parser->cfg->max_global_quota = atoi((yyvsp[0].str)); 7806*46d2f618SCy Schubert free((yyvsp[0].str)); 7807*46d2f618SCy Schubert } 7808*46d2f618SCy Schubert #line 7809 "util/configparser.c" 7809*46d2f618SCy Schubert break; 7810*46d2f618SCy Schubert 7811*46d2f618SCy Schubert case 760: /* ipsetstart: VAR_IPSET */ 7812*46d2f618SCy Schubert #line 4115 "util/configparser.y" 7813b7c0c8c1SCy Schubert { 7814b7c0c8c1SCy Schubert OUTYY(("\nP(ipset:)\n")); 7815b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1; 7816b7c0c8c1SCy Schubert } 7817*46d2f618SCy Schubert #line 7818 "util/configparser.c" 7818b7c0c8c1SCy Schubert break; 7819b7c0c8c1SCy Schubert 7820*46d2f618SCy Schubert case 765: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */ 7821*46d2f618SCy Schubert #line 4125 "util/configparser.y" 7822b7c0c8c1SCy Schubert { 7823b7c0c8c1SCy Schubert #ifdef USE_IPSET 7824b7c0c8c1SCy Schubert OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); 7825b7c0c8c1SCy Schubert if(cfg_parser->cfg->ipset_name_v4) 7826b7c0c8c1SCy Schubert yyerror("ipset name v4 override, there must be one " 7827b7c0c8c1SCy Schubert "name for ip v4"); 7828b7c0c8c1SCy Schubert free(cfg_parser->cfg->ipset_name_v4); 7829b7c0c8c1SCy Schubert cfg_parser->cfg->ipset_name_v4 = (yyvsp[0].str); 7830b7c0c8c1SCy Schubert #else 7831b7c0c8c1SCy Schubert OUTYY(("P(Compiled without ipset, ignoring)\n")); 7832b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7833b7c0c8c1SCy Schubert #endif 7834b7c0c8c1SCy Schubert } 7835*46d2f618SCy Schubert #line 7836 "util/configparser.c" 7836b7c0c8c1SCy Schubert break; 7837b7c0c8c1SCy Schubert 7838*46d2f618SCy Schubert case 766: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */ 7839*46d2f618SCy Schubert #line 4140 "util/configparser.y" 7840b7c0c8c1SCy Schubert { 7841b7c0c8c1SCy Schubert #ifdef USE_IPSET 7842b7c0c8c1SCy Schubert OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); 7843b7c0c8c1SCy Schubert if(cfg_parser->cfg->ipset_name_v6) 7844b7c0c8c1SCy Schubert yyerror("ipset name v6 override, there must be one " 7845b7c0c8c1SCy Schubert "name for ip v6"); 7846b7c0c8c1SCy Schubert free(cfg_parser->cfg->ipset_name_v6); 7847b7c0c8c1SCy Schubert cfg_parser->cfg->ipset_name_v6 = (yyvsp[0].str); 7848b7c0c8c1SCy Schubert #else 7849b7c0c8c1SCy Schubert OUTYY(("P(Compiled without ipset, ignoring)\n")); 7850b7c0c8c1SCy Schubert free((yyvsp[0].str)); 7851b7c0c8c1SCy Schubert #endif 7852b7c0c8c1SCy Schubert } 7853*46d2f618SCy Schubert #line 7854 "util/configparser.c" 7854b7c0c8c1SCy Schubert break; 7855b7c0c8c1SCy Schubert 7856b7c0c8c1SCy Schubert 7857*46d2f618SCy Schubert #line 7858 "util/configparser.c" 7858b7c0c8c1SCy Schubert 7859b7c0c8c1SCy Schubert default: break; 7860b7c0c8c1SCy Schubert } 7861b7c0c8c1SCy Schubert /* User semantic actions sometimes alter yychar, and that requires 7862b7c0c8c1SCy Schubert that yytoken be updated with the new translation. We take the 7863b7c0c8c1SCy Schubert approach of translating immediately before every use of yytoken. 7864b7c0c8c1SCy Schubert One alternative is translating here after every semantic action, 7865b7c0c8c1SCy Schubert but that translation would be missed if the semantic action invokes 7866b7c0c8c1SCy Schubert YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 7867b7c0c8c1SCy Schubert if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an 7868b7c0c8c1SCy Schubert incorrect destructor might then be invoked immediately. In the 7869b7c0c8c1SCy Schubert case of YYERROR or YYBACKUP, subsequent parser actions might lead 7870b7c0c8c1SCy Schubert to an incorrect destructor call or verbose syntax error message 7871b7c0c8c1SCy Schubert before the lookahead is translated. */ 7872b7c0c8c1SCy Schubert YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); 7873b7c0c8c1SCy Schubert 7874b7c0c8c1SCy Schubert YYPOPSTACK (yylen); 7875b7c0c8c1SCy Schubert yylen = 0; 7876b7c0c8c1SCy Schubert 7877b7c0c8c1SCy Schubert *++yyvsp = yyval; 7878b7c0c8c1SCy Schubert 7879b7c0c8c1SCy Schubert /* Now 'shift' the result of the reduction. Determine what state 7880b7c0c8c1SCy Schubert that goes to, based on the state we popped back to and the rule 7881b7c0c8c1SCy Schubert number reduced by. */ 7882b7c0c8c1SCy Schubert { 7883b7c0c8c1SCy Schubert const int yylhs = yyr1[yyn] - YYNTOKENS; 7884b7c0c8c1SCy Schubert const int yyi = yypgoto[yylhs] + *yyssp; 7885b7c0c8c1SCy Schubert yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp 7886b7c0c8c1SCy Schubert ? yytable[yyi] 7887b7c0c8c1SCy Schubert : yydefgoto[yylhs]); 7888b7c0c8c1SCy Schubert } 7889b7c0c8c1SCy Schubert 7890b7c0c8c1SCy Schubert goto yynewstate; 7891b7c0c8c1SCy Schubert 7892b7c0c8c1SCy Schubert 7893b7c0c8c1SCy Schubert /*--------------------------------------. 7894b7c0c8c1SCy Schubert | yyerrlab -- here on detecting error. | 7895b7c0c8c1SCy Schubert `--------------------------------------*/ 7896b7c0c8c1SCy Schubert yyerrlab: 7897b7c0c8c1SCy Schubert /* Make sure we have latest lookahead translation. See comments at 7898b7c0c8c1SCy Schubert user semantic actions for why this is necessary. */ 7899b7c0c8c1SCy Schubert yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); 7900b7c0c8c1SCy Schubert /* If not already recovering from an error, report this error. */ 7901b7c0c8c1SCy Schubert if (!yyerrstatus) 7902b7c0c8c1SCy Schubert { 7903b7c0c8c1SCy Schubert ++yynerrs; 7904b7c0c8c1SCy Schubert yyerror (YY_("syntax error")); 7905b7c0c8c1SCy Schubert } 7906b7c0c8c1SCy Schubert 7907b7c0c8c1SCy Schubert if (yyerrstatus == 3) 7908b7c0c8c1SCy Schubert { 7909b7c0c8c1SCy Schubert /* If just tried and failed to reuse lookahead token after an 7910b7c0c8c1SCy Schubert error, discard it. */ 7911b7c0c8c1SCy Schubert 7912b7c0c8c1SCy Schubert if (yychar <= YYEOF) 7913b7c0c8c1SCy Schubert { 7914b7c0c8c1SCy Schubert /* Return failure if at end of input. */ 7915b7c0c8c1SCy Schubert if (yychar == YYEOF) 7916b7c0c8c1SCy Schubert YYABORT; 7917b7c0c8c1SCy Schubert } 7918b7c0c8c1SCy Schubert else 7919b7c0c8c1SCy Schubert { 7920b7c0c8c1SCy Schubert yydestruct ("Error: discarding", 7921b7c0c8c1SCy Schubert yytoken, &yylval); 7922b7c0c8c1SCy Schubert yychar = YYEMPTY; 7923b7c0c8c1SCy Schubert } 7924b7c0c8c1SCy Schubert } 7925b7c0c8c1SCy Schubert 7926b7c0c8c1SCy Schubert /* Else will try to reuse lookahead token after shifting the error 7927b7c0c8c1SCy Schubert token. */ 7928b7c0c8c1SCy Schubert goto yyerrlab1; 7929b7c0c8c1SCy Schubert 7930b7c0c8c1SCy Schubert 7931b7c0c8c1SCy Schubert /*---------------------------------------------------. 7932b7c0c8c1SCy Schubert | yyerrorlab -- error raised explicitly by YYERROR. | 7933b7c0c8c1SCy Schubert `---------------------------------------------------*/ 7934b7c0c8c1SCy Schubert yyerrorlab: 7935b7c0c8c1SCy Schubert /* Pacify compilers when the user code never invokes YYERROR and the 7936b7c0c8c1SCy Schubert label yyerrorlab therefore never appears in user code. */ 7937b7c0c8c1SCy Schubert if (0) 7938b7c0c8c1SCy Schubert YYERROR; 7939b7c0c8c1SCy Schubert 7940b7c0c8c1SCy Schubert /* Do not reclaim the symbols of the rule whose action triggered 7941b7c0c8c1SCy Schubert this YYERROR. */ 7942b7c0c8c1SCy Schubert YYPOPSTACK (yylen); 7943b7c0c8c1SCy Schubert yylen = 0; 7944b7c0c8c1SCy Schubert YY_STACK_PRINT (yyss, yyssp); 7945b7c0c8c1SCy Schubert yystate = *yyssp; 7946b7c0c8c1SCy Schubert goto yyerrlab1; 7947b7c0c8c1SCy Schubert 7948b7c0c8c1SCy Schubert 7949b7c0c8c1SCy Schubert /*-------------------------------------------------------------. 7950b7c0c8c1SCy Schubert | yyerrlab1 -- common code for both syntax error and YYERROR. | 7951b7c0c8c1SCy Schubert `-------------------------------------------------------------*/ 7952b7c0c8c1SCy Schubert yyerrlab1: 7953b7c0c8c1SCy Schubert yyerrstatus = 3; /* Each real token shifted decrements this. */ 7954b7c0c8c1SCy Schubert 7955b7c0c8c1SCy Schubert /* Pop stack until we find a state that shifts the error token. */ 7956b7c0c8c1SCy Schubert for (;;) 7957b7c0c8c1SCy Schubert { 7958b7c0c8c1SCy Schubert yyn = yypact[yystate]; 7959b7c0c8c1SCy Schubert if (!yypact_value_is_default (yyn)) 7960b7c0c8c1SCy Schubert { 7961b7c0c8c1SCy Schubert yyn += YYSYMBOL_YYerror; 7962b7c0c8c1SCy Schubert if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) 7963b7c0c8c1SCy Schubert { 7964b7c0c8c1SCy Schubert yyn = yytable[yyn]; 7965b7c0c8c1SCy Schubert if (0 < yyn) 7966b7c0c8c1SCy Schubert break; 7967b7c0c8c1SCy Schubert } 7968b7c0c8c1SCy Schubert } 7969b7c0c8c1SCy Schubert 7970b7c0c8c1SCy Schubert /* Pop the current state because it cannot handle the error token. */ 7971b7c0c8c1SCy Schubert if (yyssp == yyss) 7972b7c0c8c1SCy Schubert YYABORT; 7973b7c0c8c1SCy Schubert 7974b7c0c8c1SCy Schubert 7975b7c0c8c1SCy Schubert yydestruct ("Error: popping", 7976b7c0c8c1SCy Schubert YY_ACCESSING_SYMBOL (yystate), yyvsp); 7977b7c0c8c1SCy Schubert YYPOPSTACK (1); 7978b7c0c8c1SCy Schubert yystate = *yyssp; 7979b7c0c8c1SCy Schubert YY_STACK_PRINT (yyss, yyssp); 7980b7c0c8c1SCy Schubert } 7981b7c0c8c1SCy Schubert 7982b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 7983b7c0c8c1SCy Schubert *++yyvsp = yylval; 7984b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_END 7985b7c0c8c1SCy Schubert 7986b7c0c8c1SCy Schubert 7987b7c0c8c1SCy Schubert /* Shift the error token. */ 7988b7c0c8c1SCy Schubert YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); 7989b7c0c8c1SCy Schubert 7990b7c0c8c1SCy Schubert yystate = yyn; 7991b7c0c8c1SCy Schubert goto yynewstate; 7992b7c0c8c1SCy Schubert 7993b7c0c8c1SCy Schubert 7994b7c0c8c1SCy Schubert /*-------------------------------------. 7995b7c0c8c1SCy Schubert | yyacceptlab -- YYACCEPT comes here. | 7996b7c0c8c1SCy Schubert `-------------------------------------*/ 7997b7c0c8c1SCy Schubert yyacceptlab: 7998b7c0c8c1SCy Schubert yyresult = 0; 7999*46d2f618SCy Schubert goto yyreturn; 8000b7c0c8c1SCy Schubert 8001b7c0c8c1SCy Schubert 8002b7c0c8c1SCy Schubert /*-----------------------------------. 8003b7c0c8c1SCy Schubert | yyabortlab -- YYABORT comes here. | 8004b7c0c8c1SCy Schubert `-----------------------------------*/ 8005b7c0c8c1SCy Schubert yyabortlab: 8006b7c0c8c1SCy Schubert yyresult = 1; 8007*46d2f618SCy Schubert goto yyreturn; 8008b7c0c8c1SCy Schubert 8009b7c0c8c1SCy Schubert 8010*46d2f618SCy Schubert #if !defined yyoverflow 8011*46d2f618SCy Schubert /*-------------------------------------------------. 8012*46d2f618SCy Schubert | yyexhaustedlab -- memory exhaustion comes here. | 8013*46d2f618SCy Schubert `-------------------------------------------------*/ 8014b7c0c8c1SCy Schubert yyexhaustedlab: 8015b7c0c8c1SCy Schubert yyerror (YY_("memory exhausted")); 8016b7c0c8c1SCy Schubert yyresult = 2; 8017*46d2f618SCy Schubert goto yyreturn; 8018*46d2f618SCy Schubert #endif 8019b7c0c8c1SCy Schubert 8020b7c0c8c1SCy Schubert 8021*46d2f618SCy Schubert /*-------------------------------------------------------. 8022*46d2f618SCy Schubert | yyreturn -- parsing is finished, clean up and return. | 8023*46d2f618SCy Schubert `-------------------------------------------------------*/ 8024*46d2f618SCy Schubert yyreturn: 8025b7c0c8c1SCy Schubert if (yychar != YYEMPTY) 8026b7c0c8c1SCy Schubert { 8027b7c0c8c1SCy Schubert /* Make sure we have latest lookahead translation. See comments at 8028b7c0c8c1SCy Schubert user semantic actions for why this is necessary. */ 8029b7c0c8c1SCy Schubert yytoken = YYTRANSLATE (yychar); 8030b7c0c8c1SCy Schubert yydestruct ("Cleanup: discarding lookahead", 8031b7c0c8c1SCy Schubert yytoken, &yylval); 8032b7c0c8c1SCy Schubert } 8033b7c0c8c1SCy Schubert /* Do not reclaim the symbols of the rule whose action triggered 8034b7c0c8c1SCy Schubert this YYABORT or YYACCEPT. */ 8035b7c0c8c1SCy Schubert YYPOPSTACK (yylen); 8036b7c0c8c1SCy Schubert YY_STACK_PRINT (yyss, yyssp); 8037b7c0c8c1SCy Schubert while (yyssp != yyss) 8038b7c0c8c1SCy Schubert { 8039b7c0c8c1SCy Schubert yydestruct ("Cleanup: popping", 8040b7c0c8c1SCy Schubert YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); 8041b7c0c8c1SCy Schubert YYPOPSTACK (1); 8042b7c0c8c1SCy Schubert } 8043b7c0c8c1SCy Schubert #ifndef yyoverflow 8044b7c0c8c1SCy Schubert if (yyss != yyssa) 8045b7c0c8c1SCy Schubert YYSTACK_FREE (yyss); 8046b7c0c8c1SCy Schubert #endif 8047b7c0c8c1SCy Schubert 8048b7c0c8c1SCy Schubert return yyresult; 8049b7c0c8c1SCy Schubert } 8050b7c0c8c1SCy Schubert 8051*46d2f618SCy Schubert #line 4154 "util/configparser.y" 8052b7c0c8c1SCy Schubert 8053b7c0c8c1SCy Schubert 8054b7c0c8c1SCy Schubert /* parse helper routines could be here */ 8055b7c0c8c1SCy Schubert static void 8056b7c0c8c1SCy Schubert validate_respip_action(const char* action) 8057b7c0c8c1SCy Schubert { 8058b7c0c8c1SCy Schubert if(strcmp(action, "deny")!=0 && 8059b7c0c8c1SCy Schubert strcmp(action, "redirect")!=0 && 8060b7c0c8c1SCy Schubert strcmp(action, "inform")!=0 && 8061b7c0c8c1SCy Schubert strcmp(action, "inform_deny")!=0 && 8062b7c0c8c1SCy Schubert strcmp(action, "always_transparent")!=0 && 8063b7c0c8c1SCy Schubert strcmp(action, "always_refuse")!=0 && 8064b7c0c8c1SCy Schubert strcmp(action, "always_nxdomain")!=0) 8065b7c0c8c1SCy Schubert { 8066b7c0c8c1SCy Schubert yyerror("response-ip action: expected deny, redirect, " 8067b7c0c8c1SCy Schubert "inform, inform_deny, always_transparent, " 8068b7c0c8c1SCy Schubert "always_refuse or always_nxdomain"); 8069b7c0c8c1SCy Schubert } 8070b7c0c8c1SCy Schubert } 8071b7c0c8c1SCy Schubert 8072b7c0c8c1SCy Schubert static void 8073b7c0c8c1SCy Schubert validate_acl_action(const char* action) 8074b7c0c8c1SCy Schubert { 8075b7c0c8c1SCy Schubert if(strcmp(action, "deny")!=0 && 8076b7c0c8c1SCy Schubert strcmp(action, "refuse")!=0 && 8077b7c0c8c1SCy Schubert strcmp(action, "deny_non_local")!=0 && 8078b7c0c8c1SCy Schubert strcmp(action, "refuse_non_local")!=0 && 8079b7c0c8c1SCy Schubert strcmp(action, "allow_setrd")!=0 && 8080b7c0c8c1SCy Schubert strcmp(action, "allow")!=0 && 8081b7c0c8c1SCy Schubert strcmp(action, "allow_snoop")!=0 && 8082b7c0c8c1SCy Schubert strcmp(action, "allow_cookie")!=0) 8083b7c0c8c1SCy Schubert { 8084b7c0c8c1SCy Schubert yyerror("expected deny, refuse, deny_non_local, " 8085b7c0c8c1SCy Schubert "refuse_non_local, allow, allow_setrd, " 8086b7c0c8c1SCy Schubert "allow_snoop or allow_cookie as access control action"); 8087b7c0c8c1SCy Schubert } 8088b7c0c8c1SCy Schubert } 8089