1b7c0c8c1SCy 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. */
49b7c0c8c1SCy Schubert #define YYBISON 30706
50b7c0c8c1SCy Schubert
51b7c0c8c1SCy Schubert /* Bison version string. */
52b7c0c8c1SCy 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 */
321b7c0c8c1SCy Schubert YYSYMBOL_VAR_RESPONSE_IP_TAG = 192, /* VAR_RESPONSE_IP_TAG */
322b7c0c8c1SCy Schubert YYSYMBOL_VAR_RESPONSE_IP = 193, /* VAR_RESPONSE_IP */
323b7c0c8c1SCy Schubert YYSYMBOL_VAR_RESPONSE_IP_DATA = 194, /* VAR_RESPONSE_IP_DATA */
324b7c0c8c1SCy Schubert YYSYMBOL_VAR_HARDEN_ALGO_DOWNGRADE = 195, /* VAR_HARDEN_ALGO_DOWNGRADE */
325b7c0c8c1SCy Schubert YYSYMBOL_VAR_IP_TRANSPARENT = 196, /* VAR_IP_TRANSPARENT */
326b7c0c8c1SCy Schubert YYSYMBOL_VAR_IP_DSCP = 197, /* VAR_IP_DSCP */
327b7c0c8c1SCy Schubert YYSYMBOL_VAR_DISABLE_DNSSEC_LAME_CHECK = 198, /* VAR_DISABLE_DNSSEC_LAME_CHECK */
328b7c0c8c1SCy Schubert YYSYMBOL_VAR_IP_RATELIMIT = 199, /* VAR_IP_RATELIMIT */
329b7c0c8c1SCy Schubert YYSYMBOL_VAR_IP_RATELIMIT_SLABS = 200, /* VAR_IP_RATELIMIT_SLABS */
330b7c0c8c1SCy Schubert YYSYMBOL_VAR_IP_RATELIMIT_SIZE = 201, /* VAR_IP_RATELIMIT_SIZE */
331b7c0c8c1SCy Schubert YYSYMBOL_VAR_RATELIMIT = 202, /* VAR_RATELIMIT */
332b7c0c8c1SCy Schubert YYSYMBOL_VAR_RATELIMIT_SLABS = 203, /* VAR_RATELIMIT_SLABS */
333b7c0c8c1SCy Schubert YYSYMBOL_VAR_RATELIMIT_SIZE = 204, /* VAR_RATELIMIT_SIZE */
334b7c0c8c1SCy Schubert YYSYMBOL_VAR_OUTBOUND_MSG_RETRY = 205, /* VAR_OUTBOUND_MSG_RETRY */
335b7c0c8c1SCy Schubert YYSYMBOL_VAR_MAX_SENT_COUNT = 206, /* VAR_MAX_SENT_COUNT */
336b7c0c8c1SCy Schubert YYSYMBOL_VAR_MAX_QUERY_RESTARTS = 207, /* VAR_MAX_QUERY_RESTARTS */
337b7c0c8c1SCy Schubert YYSYMBOL_VAR_RATELIMIT_FOR_DOMAIN = 208, /* VAR_RATELIMIT_FOR_DOMAIN */
338b7c0c8c1SCy Schubert YYSYMBOL_VAR_RATELIMIT_BELOW_DOMAIN = 209, /* VAR_RATELIMIT_BELOW_DOMAIN */
339b7c0c8c1SCy Schubert YYSYMBOL_VAR_IP_RATELIMIT_FACTOR = 210, /* VAR_IP_RATELIMIT_FACTOR */
340b7c0c8c1SCy Schubert YYSYMBOL_VAR_RATELIMIT_FACTOR = 211, /* VAR_RATELIMIT_FACTOR */
341b7c0c8c1SCy Schubert YYSYMBOL_VAR_IP_RATELIMIT_BACKOFF = 212, /* VAR_IP_RATELIMIT_BACKOFF */
342b7c0c8c1SCy Schubert YYSYMBOL_VAR_RATELIMIT_BACKOFF = 213, /* VAR_RATELIMIT_BACKOFF */
343b7c0c8c1SCy Schubert YYSYMBOL_VAR_SEND_CLIENT_SUBNET = 214, /* VAR_SEND_CLIENT_SUBNET */
344b7c0c8c1SCy Schubert YYSYMBOL_VAR_CLIENT_SUBNET_ZONE = 215, /* VAR_CLIENT_SUBNET_ZONE */
345b7c0c8c1SCy Schubert YYSYMBOL_VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 216, /* VAR_CLIENT_SUBNET_ALWAYS_FORWARD */
346b7c0c8c1SCy Schubert YYSYMBOL_VAR_CLIENT_SUBNET_OPCODE = 217, /* VAR_CLIENT_SUBNET_OPCODE */
347b7c0c8c1SCy Schubert YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV4 = 218, /* VAR_MAX_CLIENT_SUBNET_IPV4 */
348b7c0c8c1SCy Schubert YYSYMBOL_VAR_MAX_CLIENT_SUBNET_IPV6 = 219, /* VAR_MAX_CLIENT_SUBNET_IPV6 */
349b7c0c8c1SCy Schubert YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV4 = 220, /* VAR_MIN_CLIENT_SUBNET_IPV4 */
350b7c0c8c1SCy Schubert YYSYMBOL_VAR_MIN_CLIENT_SUBNET_IPV6 = 221, /* VAR_MIN_CLIENT_SUBNET_IPV6 */
351b7c0c8c1SCy Schubert YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV4 = 222, /* VAR_MAX_ECS_TREE_SIZE_IPV4 */
352b7c0c8c1SCy Schubert YYSYMBOL_VAR_MAX_ECS_TREE_SIZE_IPV6 = 223, /* VAR_MAX_ECS_TREE_SIZE_IPV6 */
353b7c0c8c1SCy Schubert YYSYMBOL_VAR_CAPS_WHITELIST = 224, /* VAR_CAPS_WHITELIST */
354b7c0c8c1SCy Schubert YYSYMBOL_VAR_CACHE_MAX_NEGATIVE_TTL = 225, /* VAR_CACHE_MAX_NEGATIVE_TTL */
355b7c0c8c1SCy Schubert YYSYMBOL_VAR_PERMIT_SMALL_HOLDDOWN = 226, /* VAR_PERMIT_SMALL_HOLDDOWN */
356*335c7cdaSCy Schubert YYSYMBOL_VAR_CACHE_MIN_NEGATIVE_TTL = 227, /* VAR_CACHE_MIN_NEGATIVE_TTL */
357*335c7cdaSCy Schubert YYSYMBOL_VAR_QNAME_MINIMISATION = 228, /* VAR_QNAME_MINIMISATION */
358*335c7cdaSCy Schubert YYSYMBOL_VAR_QNAME_MINIMISATION_STRICT = 229, /* VAR_QNAME_MINIMISATION_STRICT */
359*335c7cdaSCy Schubert YYSYMBOL_VAR_IP_FREEBIND = 230, /* VAR_IP_FREEBIND */
360*335c7cdaSCy Schubert YYSYMBOL_VAR_DEFINE_TAG = 231, /* VAR_DEFINE_TAG */
361*335c7cdaSCy Schubert YYSYMBOL_VAR_LOCAL_ZONE_TAG = 232, /* VAR_LOCAL_ZONE_TAG */
362*335c7cdaSCy Schubert YYSYMBOL_VAR_ACCESS_CONTROL_TAG = 233, /* VAR_ACCESS_CONTROL_TAG */
363*335c7cdaSCy Schubert YYSYMBOL_VAR_LOCAL_ZONE_OVERRIDE = 234, /* VAR_LOCAL_ZONE_OVERRIDE */
364*335c7cdaSCy Schubert YYSYMBOL_VAR_ACCESS_CONTROL_TAG_ACTION = 235, /* VAR_ACCESS_CONTROL_TAG_ACTION */
365*335c7cdaSCy Schubert YYSYMBOL_VAR_ACCESS_CONTROL_TAG_DATA = 236, /* VAR_ACCESS_CONTROL_TAG_DATA */
366*335c7cdaSCy Schubert YYSYMBOL_VAR_VIEW = 237, /* VAR_VIEW */
367*335c7cdaSCy Schubert YYSYMBOL_VAR_ACCESS_CONTROL_VIEW = 238, /* VAR_ACCESS_CONTROL_VIEW */
368*335c7cdaSCy Schubert YYSYMBOL_VAR_VIEW_FIRST = 239, /* VAR_VIEW_FIRST */
369*335c7cdaSCy Schubert YYSYMBOL_VAR_SERVE_EXPIRED = 240, /* VAR_SERVE_EXPIRED */
370*335c7cdaSCy Schubert YYSYMBOL_VAR_SERVE_EXPIRED_TTL = 241, /* VAR_SERVE_EXPIRED_TTL */
371*335c7cdaSCy Schubert YYSYMBOL_VAR_SERVE_EXPIRED_TTL_RESET = 242, /* VAR_SERVE_EXPIRED_TTL_RESET */
372*335c7cdaSCy Schubert YYSYMBOL_VAR_SERVE_EXPIRED_REPLY_TTL = 243, /* VAR_SERVE_EXPIRED_REPLY_TTL */
373*335c7cdaSCy Schubert YYSYMBOL_VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 244, /* VAR_SERVE_EXPIRED_CLIENT_TIMEOUT */
374*335c7cdaSCy Schubert YYSYMBOL_VAR_EDE_SERVE_EXPIRED = 245, /* VAR_EDE_SERVE_EXPIRED */
375*335c7cdaSCy Schubert YYSYMBOL_VAR_SERVE_ORIGINAL_TTL = 246, /* VAR_SERVE_ORIGINAL_TTL */
376*335c7cdaSCy Schubert YYSYMBOL_VAR_FAKE_DSA = 247, /* VAR_FAKE_DSA */
377*335c7cdaSCy Schubert YYSYMBOL_VAR_FAKE_SHA1 = 248, /* VAR_FAKE_SHA1 */
378*335c7cdaSCy Schubert YYSYMBOL_VAR_LOG_IDENTITY = 249, /* VAR_LOG_IDENTITY */
379*335c7cdaSCy Schubert YYSYMBOL_VAR_HIDE_TRUSTANCHOR = 250, /* VAR_HIDE_TRUSTANCHOR */
380*335c7cdaSCy Schubert YYSYMBOL_VAR_HIDE_HTTP_USER_AGENT = 251, /* VAR_HIDE_HTTP_USER_AGENT */
381*335c7cdaSCy Schubert YYSYMBOL_VAR_HTTP_USER_AGENT = 252, /* VAR_HTTP_USER_AGENT */
382*335c7cdaSCy Schubert YYSYMBOL_VAR_TRUST_ANCHOR_SIGNALING = 253, /* VAR_TRUST_ANCHOR_SIGNALING */
383*335c7cdaSCy Schubert YYSYMBOL_VAR_AGGRESSIVE_NSEC = 254, /* VAR_AGGRESSIVE_NSEC */
384*335c7cdaSCy Schubert YYSYMBOL_VAR_USE_SYSTEMD = 255, /* VAR_USE_SYSTEMD */
385*335c7cdaSCy Schubert YYSYMBOL_VAR_SHM_ENABLE = 256, /* VAR_SHM_ENABLE */
386*335c7cdaSCy Schubert YYSYMBOL_VAR_SHM_KEY = 257, /* VAR_SHM_KEY */
387*335c7cdaSCy Schubert YYSYMBOL_VAR_ROOT_KEY_SENTINEL = 258, /* VAR_ROOT_KEY_SENTINEL */
388*335c7cdaSCy Schubert YYSYMBOL_VAR_DNSCRYPT = 259, /* VAR_DNSCRYPT */
389*335c7cdaSCy Schubert YYSYMBOL_VAR_DNSCRYPT_ENABLE = 260, /* VAR_DNSCRYPT_ENABLE */
390*335c7cdaSCy Schubert YYSYMBOL_VAR_DNSCRYPT_PORT = 261, /* VAR_DNSCRYPT_PORT */
391*335c7cdaSCy Schubert YYSYMBOL_VAR_DNSCRYPT_PROVIDER = 262, /* VAR_DNSCRYPT_PROVIDER */
392*335c7cdaSCy Schubert YYSYMBOL_VAR_DNSCRYPT_SECRET_KEY = 263, /* VAR_DNSCRYPT_SECRET_KEY */
393*335c7cdaSCy Schubert YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT = 264, /* VAR_DNSCRYPT_PROVIDER_CERT */
394*335c7cdaSCy Schubert YYSYMBOL_VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 265, /* VAR_DNSCRYPT_PROVIDER_CERT_ROTATED */
395*335c7cdaSCy Schubert YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 266, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE */
396*335c7cdaSCy Schubert YYSYMBOL_VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 267, /* VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS */
397*335c7cdaSCy Schubert YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SIZE = 268, /* VAR_DNSCRYPT_NONCE_CACHE_SIZE */
398*335c7cdaSCy Schubert YYSYMBOL_VAR_DNSCRYPT_NONCE_CACHE_SLABS = 269, /* VAR_DNSCRYPT_NONCE_CACHE_SLABS */
399*335c7cdaSCy Schubert YYSYMBOL_VAR_PAD_RESPONSES = 270, /* VAR_PAD_RESPONSES */
400*335c7cdaSCy Schubert YYSYMBOL_VAR_PAD_RESPONSES_BLOCK_SIZE = 271, /* VAR_PAD_RESPONSES_BLOCK_SIZE */
401*335c7cdaSCy Schubert YYSYMBOL_VAR_PAD_QUERIES = 272, /* VAR_PAD_QUERIES */
402*335c7cdaSCy Schubert YYSYMBOL_VAR_PAD_QUERIES_BLOCK_SIZE = 273, /* VAR_PAD_QUERIES_BLOCK_SIZE */
403*335c7cdaSCy Schubert YYSYMBOL_VAR_IPSECMOD_ENABLED = 274, /* VAR_IPSECMOD_ENABLED */
404*335c7cdaSCy Schubert YYSYMBOL_VAR_IPSECMOD_HOOK = 275, /* VAR_IPSECMOD_HOOK */
405*335c7cdaSCy Schubert YYSYMBOL_VAR_IPSECMOD_IGNORE_BOGUS = 276, /* VAR_IPSECMOD_IGNORE_BOGUS */
406*335c7cdaSCy Schubert YYSYMBOL_VAR_IPSECMOD_MAX_TTL = 277, /* VAR_IPSECMOD_MAX_TTL */
407*335c7cdaSCy Schubert YYSYMBOL_VAR_IPSECMOD_WHITELIST = 278, /* VAR_IPSECMOD_WHITELIST */
408*335c7cdaSCy Schubert YYSYMBOL_VAR_IPSECMOD_STRICT = 279, /* VAR_IPSECMOD_STRICT */
409*335c7cdaSCy Schubert YYSYMBOL_VAR_CACHEDB = 280, /* VAR_CACHEDB */
410*335c7cdaSCy Schubert YYSYMBOL_VAR_CACHEDB_BACKEND = 281, /* VAR_CACHEDB_BACKEND */
411*335c7cdaSCy Schubert YYSYMBOL_VAR_CACHEDB_SECRETSEED = 282, /* VAR_CACHEDB_SECRETSEED */
412*335c7cdaSCy Schubert YYSYMBOL_VAR_CACHEDB_REDISHOST = 283, /* VAR_CACHEDB_REDISHOST */
413*335c7cdaSCy Schubert YYSYMBOL_VAR_CACHEDB_REDISPORT = 284, /* VAR_CACHEDB_REDISPORT */
414*335c7cdaSCy Schubert YYSYMBOL_VAR_CACHEDB_REDISTIMEOUT = 285, /* VAR_CACHEDB_REDISTIMEOUT */
415*335c7cdaSCy Schubert YYSYMBOL_VAR_CACHEDB_REDISEXPIRERECORDS = 286, /* VAR_CACHEDB_REDISEXPIRERECORDS */
416*335c7cdaSCy Schubert YYSYMBOL_VAR_CACHEDB_REDISPATH = 287, /* VAR_CACHEDB_REDISPATH */
417*335c7cdaSCy Schubert YYSYMBOL_VAR_CACHEDB_REDISPASSWORD = 288, /* VAR_CACHEDB_REDISPASSWORD */
418*335c7cdaSCy Schubert YYSYMBOL_VAR_CACHEDB_REDISLOGICALDB = 289, /* VAR_CACHEDB_REDISLOGICALDB */
419*335c7cdaSCy Schubert YYSYMBOL_VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 290, /* VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM */
420*335c7cdaSCy Schubert YYSYMBOL_VAR_FOR_UPSTREAM = 291, /* VAR_FOR_UPSTREAM */
421*335c7cdaSCy Schubert YYSYMBOL_VAR_AUTH_ZONE = 292, /* VAR_AUTH_ZONE */
422*335c7cdaSCy Schubert YYSYMBOL_VAR_ZONEFILE = 293, /* VAR_ZONEFILE */
423*335c7cdaSCy Schubert YYSYMBOL_VAR_MASTER = 294, /* VAR_MASTER */
424*335c7cdaSCy Schubert YYSYMBOL_VAR_URL = 295, /* VAR_URL */
425*335c7cdaSCy Schubert YYSYMBOL_VAR_FOR_DOWNSTREAM = 296, /* VAR_FOR_DOWNSTREAM */
426*335c7cdaSCy Schubert YYSYMBOL_VAR_FALLBACK_ENABLED = 297, /* VAR_FALLBACK_ENABLED */
427*335c7cdaSCy Schubert YYSYMBOL_VAR_TLS_ADDITIONAL_PORT = 298, /* VAR_TLS_ADDITIONAL_PORT */
428*335c7cdaSCy Schubert YYSYMBOL_VAR_LOW_RTT = 299, /* VAR_LOW_RTT */
429*335c7cdaSCy Schubert YYSYMBOL_VAR_LOW_RTT_PERMIL = 300, /* VAR_LOW_RTT_PERMIL */
430*335c7cdaSCy Schubert YYSYMBOL_VAR_FAST_SERVER_PERMIL = 301, /* VAR_FAST_SERVER_PERMIL */
431*335c7cdaSCy Schubert YYSYMBOL_VAR_FAST_SERVER_NUM = 302, /* VAR_FAST_SERVER_NUM */
432*335c7cdaSCy Schubert YYSYMBOL_VAR_ALLOW_NOTIFY = 303, /* VAR_ALLOW_NOTIFY */
433*335c7cdaSCy Schubert YYSYMBOL_VAR_TLS_WIN_CERT = 304, /* VAR_TLS_WIN_CERT */
434*335c7cdaSCy Schubert YYSYMBOL_VAR_TCP_CONNECTION_LIMIT = 305, /* VAR_TCP_CONNECTION_LIMIT */
435*335c7cdaSCy Schubert YYSYMBOL_VAR_ANSWER_COOKIE = 306, /* VAR_ANSWER_COOKIE */
436*335c7cdaSCy Schubert YYSYMBOL_VAR_COOKIE_SECRET = 307, /* VAR_COOKIE_SECRET */
437*335c7cdaSCy Schubert YYSYMBOL_VAR_IP_RATELIMIT_COOKIE = 308, /* VAR_IP_RATELIMIT_COOKIE */
438*335c7cdaSCy Schubert YYSYMBOL_VAR_FORWARD_NO_CACHE = 309, /* VAR_FORWARD_NO_CACHE */
439*335c7cdaSCy Schubert YYSYMBOL_VAR_STUB_NO_CACHE = 310, /* VAR_STUB_NO_CACHE */
440*335c7cdaSCy Schubert YYSYMBOL_VAR_LOG_SERVFAIL = 311, /* VAR_LOG_SERVFAIL */
441*335c7cdaSCy Schubert YYSYMBOL_VAR_DENY_ANY = 312, /* VAR_DENY_ANY */
442*335c7cdaSCy Schubert YYSYMBOL_VAR_UNKNOWN_SERVER_TIME_LIMIT = 313, /* VAR_UNKNOWN_SERVER_TIME_LIMIT */
443*335c7cdaSCy Schubert YYSYMBOL_VAR_LOG_TAG_QUERYREPLY = 314, /* VAR_LOG_TAG_QUERYREPLY */
444*335c7cdaSCy Schubert YYSYMBOL_VAR_DISCARD_TIMEOUT = 315, /* VAR_DISCARD_TIMEOUT */
445*335c7cdaSCy Schubert YYSYMBOL_VAR_WAIT_LIMIT = 316, /* VAR_WAIT_LIMIT */
446*335c7cdaSCy Schubert YYSYMBOL_VAR_WAIT_LIMIT_COOKIE = 317, /* VAR_WAIT_LIMIT_COOKIE */
447*335c7cdaSCy Schubert YYSYMBOL_VAR_WAIT_LIMIT_NETBLOCK = 318, /* VAR_WAIT_LIMIT_NETBLOCK */
448*335c7cdaSCy Schubert YYSYMBOL_VAR_WAIT_LIMIT_COOKIE_NETBLOCK = 319, /* VAR_WAIT_LIMIT_COOKIE_NETBLOCK */
449*335c7cdaSCy Schubert YYSYMBOL_VAR_STREAM_WAIT_SIZE = 320, /* VAR_STREAM_WAIT_SIZE */
450*335c7cdaSCy Schubert YYSYMBOL_VAR_TLS_CIPHERS = 321, /* VAR_TLS_CIPHERS */
451*335c7cdaSCy Schubert YYSYMBOL_VAR_TLS_CIPHERSUITES = 322, /* VAR_TLS_CIPHERSUITES */
452*335c7cdaSCy Schubert YYSYMBOL_VAR_TLS_USE_SNI = 323, /* VAR_TLS_USE_SNI */
453*335c7cdaSCy Schubert YYSYMBOL_VAR_IPSET = 324, /* VAR_IPSET */
454*335c7cdaSCy Schubert YYSYMBOL_VAR_IPSET_NAME_V4 = 325, /* VAR_IPSET_NAME_V4 */
455*335c7cdaSCy Schubert YYSYMBOL_VAR_IPSET_NAME_V6 = 326, /* VAR_IPSET_NAME_V6 */
456*335c7cdaSCy Schubert YYSYMBOL_VAR_TLS_SESSION_TICKET_KEYS = 327, /* VAR_TLS_SESSION_TICKET_KEYS */
457*335c7cdaSCy Schubert YYSYMBOL_VAR_RPZ = 328, /* VAR_RPZ */
458*335c7cdaSCy Schubert YYSYMBOL_VAR_TAGS = 329, /* VAR_TAGS */
459*335c7cdaSCy Schubert YYSYMBOL_VAR_RPZ_ACTION_OVERRIDE = 330, /* VAR_RPZ_ACTION_OVERRIDE */
460*335c7cdaSCy Schubert YYSYMBOL_VAR_RPZ_CNAME_OVERRIDE = 331, /* VAR_RPZ_CNAME_OVERRIDE */
461*335c7cdaSCy Schubert YYSYMBOL_VAR_RPZ_LOG = 332, /* VAR_RPZ_LOG */
462*335c7cdaSCy Schubert YYSYMBOL_VAR_RPZ_LOG_NAME = 333, /* VAR_RPZ_LOG_NAME */
463*335c7cdaSCy Schubert YYSYMBOL_VAR_DYNLIB = 334, /* VAR_DYNLIB */
464*335c7cdaSCy Schubert YYSYMBOL_VAR_DYNLIB_FILE = 335, /* VAR_DYNLIB_FILE */
465*335c7cdaSCy Schubert YYSYMBOL_VAR_EDNS_CLIENT_STRING = 336, /* VAR_EDNS_CLIENT_STRING */
466*335c7cdaSCy Schubert YYSYMBOL_VAR_EDNS_CLIENT_STRING_OPCODE = 337, /* VAR_EDNS_CLIENT_STRING_OPCODE */
467*335c7cdaSCy Schubert YYSYMBOL_VAR_NSID = 338, /* VAR_NSID */
468*335c7cdaSCy Schubert YYSYMBOL_VAR_ZONEMD_PERMISSIVE_MODE = 339, /* VAR_ZONEMD_PERMISSIVE_MODE */
469*335c7cdaSCy Schubert YYSYMBOL_VAR_ZONEMD_CHECK = 340, /* VAR_ZONEMD_CHECK */
470*335c7cdaSCy Schubert YYSYMBOL_VAR_ZONEMD_REJECT_ABSENCE = 341, /* VAR_ZONEMD_REJECT_ABSENCE */
471*335c7cdaSCy Schubert YYSYMBOL_VAR_RPZ_SIGNAL_NXDOMAIN_RA = 342, /* VAR_RPZ_SIGNAL_NXDOMAIN_RA */
472*335c7cdaSCy Schubert YYSYMBOL_VAR_INTERFACE_AUTOMATIC_PORTS = 343, /* VAR_INTERFACE_AUTOMATIC_PORTS */
473*335c7cdaSCy Schubert YYSYMBOL_VAR_EDE = 344, /* VAR_EDE */
474*335c7cdaSCy Schubert YYSYMBOL_VAR_INTERFACE_ACTION = 345, /* VAR_INTERFACE_ACTION */
475*335c7cdaSCy Schubert YYSYMBOL_VAR_INTERFACE_VIEW = 346, /* VAR_INTERFACE_VIEW */
476*335c7cdaSCy Schubert YYSYMBOL_VAR_INTERFACE_TAG = 347, /* VAR_INTERFACE_TAG */
477*335c7cdaSCy Schubert YYSYMBOL_VAR_INTERFACE_TAG_ACTION = 348, /* VAR_INTERFACE_TAG_ACTION */
478*335c7cdaSCy Schubert YYSYMBOL_VAR_INTERFACE_TAG_DATA = 349, /* VAR_INTERFACE_TAG_DATA */
479*335c7cdaSCy Schubert YYSYMBOL_VAR_PROXY_PROTOCOL_PORT = 350, /* VAR_PROXY_PROTOCOL_PORT */
480*335c7cdaSCy Schubert YYSYMBOL_VAR_STATISTICS_INHIBIT_ZERO = 351, /* VAR_STATISTICS_INHIBIT_ZERO */
481*335c7cdaSCy Schubert YYSYMBOL_VAR_HARDEN_UNKNOWN_ADDITIONAL = 352, /* VAR_HARDEN_UNKNOWN_ADDITIONAL */
482*335c7cdaSCy Schubert YYSYMBOL_VAR_DISABLE_EDNS_DO = 353, /* VAR_DISABLE_EDNS_DO */
483*335c7cdaSCy Schubert YYSYMBOL_VAR_CACHEDB_NO_STORE = 354, /* VAR_CACHEDB_NO_STORE */
484*335c7cdaSCy Schubert YYSYMBOL_VAR_LOG_DESTADDR = 355, /* VAR_LOG_DESTADDR */
485*335c7cdaSCy Schubert YYSYMBOL_VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED = 356, /* VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED */
486*335c7cdaSCy Schubert YYSYMBOL_YYACCEPT = 357, /* $accept */
487*335c7cdaSCy Schubert YYSYMBOL_toplevelvars = 358, /* toplevelvars */
488*335c7cdaSCy Schubert YYSYMBOL_toplevelvar = 359, /* toplevelvar */
489*335c7cdaSCy Schubert YYSYMBOL_force_toplevel = 360, /* force_toplevel */
490*335c7cdaSCy Schubert YYSYMBOL_serverstart = 361, /* serverstart */
491*335c7cdaSCy Schubert YYSYMBOL_contents_server = 362, /* contents_server */
492*335c7cdaSCy Schubert YYSYMBOL_content_server = 363, /* content_server */
493*335c7cdaSCy Schubert YYSYMBOL_stubstart = 364, /* stubstart */
494*335c7cdaSCy Schubert YYSYMBOL_contents_stub = 365, /* contents_stub */
495*335c7cdaSCy Schubert YYSYMBOL_content_stub = 366, /* content_stub */
496*335c7cdaSCy Schubert YYSYMBOL_forwardstart = 367, /* forwardstart */
497*335c7cdaSCy Schubert YYSYMBOL_contents_forward = 368, /* contents_forward */
498*335c7cdaSCy Schubert YYSYMBOL_content_forward = 369, /* content_forward */
499*335c7cdaSCy Schubert YYSYMBOL_viewstart = 370, /* viewstart */
500*335c7cdaSCy Schubert YYSYMBOL_contents_view = 371, /* contents_view */
501*335c7cdaSCy Schubert YYSYMBOL_content_view = 372, /* content_view */
502*335c7cdaSCy Schubert YYSYMBOL_authstart = 373, /* authstart */
503*335c7cdaSCy Schubert YYSYMBOL_contents_auth = 374, /* contents_auth */
504*335c7cdaSCy Schubert YYSYMBOL_content_auth = 375, /* content_auth */
505*335c7cdaSCy Schubert YYSYMBOL_rpz_tag = 376, /* rpz_tag */
506*335c7cdaSCy Schubert YYSYMBOL_rpz_action_override = 377, /* rpz_action_override */
507*335c7cdaSCy Schubert YYSYMBOL_rpz_cname_override = 378, /* rpz_cname_override */
508*335c7cdaSCy Schubert YYSYMBOL_rpz_log = 379, /* rpz_log */
509*335c7cdaSCy Schubert YYSYMBOL_rpz_log_name = 380, /* rpz_log_name */
510*335c7cdaSCy Schubert YYSYMBOL_rpz_signal_nxdomain_ra = 381, /* rpz_signal_nxdomain_ra */
511*335c7cdaSCy Schubert YYSYMBOL_rpzstart = 382, /* rpzstart */
512*335c7cdaSCy Schubert YYSYMBOL_contents_rpz = 383, /* contents_rpz */
513*335c7cdaSCy Schubert YYSYMBOL_content_rpz = 384, /* content_rpz */
514*335c7cdaSCy Schubert YYSYMBOL_server_num_threads = 385, /* server_num_threads */
515*335c7cdaSCy Schubert YYSYMBOL_server_verbosity = 386, /* server_verbosity */
516*335c7cdaSCy Schubert YYSYMBOL_server_statistics_interval = 387, /* server_statistics_interval */
517*335c7cdaSCy Schubert YYSYMBOL_server_statistics_cumulative = 388, /* server_statistics_cumulative */
518*335c7cdaSCy Schubert YYSYMBOL_server_extended_statistics = 389, /* server_extended_statistics */
519*335c7cdaSCy Schubert YYSYMBOL_server_statistics_inhibit_zero = 390, /* server_statistics_inhibit_zero */
520*335c7cdaSCy Schubert YYSYMBOL_server_shm_enable = 391, /* server_shm_enable */
521*335c7cdaSCy Schubert YYSYMBOL_server_shm_key = 392, /* server_shm_key */
522*335c7cdaSCy Schubert YYSYMBOL_server_port = 393, /* server_port */
523*335c7cdaSCy Schubert YYSYMBOL_server_send_client_subnet = 394, /* server_send_client_subnet */
524*335c7cdaSCy Schubert YYSYMBOL_server_client_subnet_zone = 395, /* server_client_subnet_zone */
525*335c7cdaSCy Schubert YYSYMBOL_server_client_subnet_always_forward = 396, /* server_client_subnet_always_forward */
526*335c7cdaSCy Schubert YYSYMBOL_server_client_subnet_opcode = 397, /* server_client_subnet_opcode */
527*335c7cdaSCy Schubert YYSYMBOL_server_max_client_subnet_ipv4 = 398, /* server_max_client_subnet_ipv4 */
528*335c7cdaSCy Schubert YYSYMBOL_server_max_client_subnet_ipv6 = 399, /* server_max_client_subnet_ipv6 */
529*335c7cdaSCy Schubert YYSYMBOL_server_min_client_subnet_ipv4 = 400, /* server_min_client_subnet_ipv4 */
530*335c7cdaSCy Schubert YYSYMBOL_server_min_client_subnet_ipv6 = 401, /* server_min_client_subnet_ipv6 */
531*335c7cdaSCy Schubert YYSYMBOL_server_max_ecs_tree_size_ipv4 = 402, /* server_max_ecs_tree_size_ipv4 */
532*335c7cdaSCy Schubert YYSYMBOL_server_max_ecs_tree_size_ipv6 = 403, /* server_max_ecs_tree_size_ipv6 */
533*335c7cdaSCy Schubert YYSYMBOL_server_interface = 404, /* server_interface */
534*335c7cdaSCy Schubert YYSYMBOL_server_outgoing_interface = 405, /* server_outgoing_interface */
535*335c7cdaSCy Schubert YYSYMBOL_server_outgoing_range = 406, /* server_outgoing_range */
536*335c7cdaSCy Schubert YYSYMBOL_server_outgoing_port_permit = 407, /* server_outgoing_port_permit */
537*335c7cdaSCy Schubert YYSYMBOL_server_outgoing_port_avoid = 408, /* server_outgoing_port_avoid */
538*335c7cdaSCy Schubert YYSYMBOL_server_outgoing_num_tcp = 409, /* server_outgoing_num_tcp */
539*335c7cdaSCy Schubert YYSYMBOL_server_incoming_num_tcp = 410, /* server_incoming_num_tcp */
540*335c7cdaSCy Schubert YYSYMBOL_server_interface_automatic = 411, /* server_interface_automatic */
541*335c7cdaSCy Schubert YYSYMBOL_server_interface_automatic_ports = 412, /* server_interface_automatic_ports */
542*335c7cdaSCy Schubert YYSYMBOL_server_do_ip4 = 413, /* server_do_ip4 */
543*335c7cdaSCy Schubert YYSYMBOL_server_do_ip6 = 414, /* server_do_ip6 */
544*335c7cdaSCy Schubert YYSYMBOL_server_do_nat64 = 415, /* server_do_nat64 */
545*335c7cdaSCy Schubert YYSYMBOL_server_do_udp = 416, /* server_do_udp */
546*335c7cdaSCy Schubert YYSYMBOL_server_do_tcp = 417, /* server_do_tcp */
547*335c7cdaSCy Schubert YYSYMBOL_server_prefer_ip4 = 418, /* server_prefer_ip4 */
548*335c7cdaSCy Schubert YYSYMBOL_server_prefer_ip6 = 419, /* server_prefer_ip6 */
549*335c7cdaSCy Schubert YYSYMBOL_server_tcp_mss = 420, /* server_tcp_mss */
550*335c7cdaSCy Schubert YYSYMBOL_server_outgoing_tcp_mss = 421, /* server_outgoing_tcp_mss */
551*335c7cdaSCy Schubert YYSYMBOL_server_tcp_idle_timeout = 422, /* server_tcp_idle_timeout */
552*335c7cdaSCy Schubert YYSYMBOL_server_max_reuse_tcp_queries = 423, /* server_max_reuse_tcp_queries */
553*335c7cdaSCy Schubert YYSYMBOL_server_tcp_reuse_timeout = 424, /* server_tcp_reuse_timeout */
554*335c7cdaSCy Schubert YYSYMBOL_server_tcp_auth_query_timeout = 425, /* server_tcp_auth_query_timeout */
555*335c7cdaSCy Schubert YYSYMBOL_server_tcp_keepalive = 426, /* server_tcp_keepalive */
556*335c7cdaSCy Schubert YYSYMBOL_server_tcp_keepalive_timeout = 427, /* server_tcp_keepalive_timeout */
557*335c7cdaSCy Schubert YYSYMBOL_server_sock_queue_timeout = 428, /* server_sock_queue_timeout */
558*335c7cdaSCy Schubert YYSYMBOL_server_tcp_upstream = 429, /* server_tcp_upstream */
559*335c7cdaSCy Schubert YYSYMBOL_server_udp_upstream_without_downstream = 430, /* server_udp_upstream_without_downstream */
560*335c7cdaSCy Schubert YYSYMBOL_server_ssl_upstream = 431, /* server_ssl_upstream */
561*335c7cdaSCy Schubert YYSYMBOL_server_ssl_service_key = 432, /* server_ssl_service_key */
562*335c7cdaSCy Schubert YYSYMBOL_server_ssl_service_pem = 433, /* server_ssl_service_pem */
563*335c7cdaSCy Schubert YYSYMBOL_server_ssl_port = 434, /* server_ssl_port */
564*335c7cdaSCy Schubert YYSYMBOL_server_tls_cert_bundle = 435, /* server_tls_cert_bundle */
565*335c7cdaSCy Schubert YYSYMBOL_server_tls_win_cert = 436, /* server_tls_win_cert */
566*335c7cdaSCy Schubert YYSYMBOL_server_tls_additional_port = 437, /* server_tls_additional_port */
567*335c7cdaSCy Schubert YYSYMBOL_server_tls_ciphers = 438, /* server_tls_ciphers */
568*335c7cdaSCy Schubert YYSYMBOL_server_tls_ciphersuites = 439, /* server_tls_ciphersuites */
569*335c7cdaSCy Schubert YYSYMBOL_server_tls_session_ticket_keys = 440, /* server_tls_session_ticket_keys */
570*335c7cdaSCy Schubert YYSYMBOL_server_tls_use_sni = 441, /* server_tls_use_sni */
571*335c7cdaSCy Schubert YYSYMBOL_server_https_port = 442, /* server_https_port */
572*335c7cdaSCy Schubert YYSYMBOL_server_http_endpoint = 443, /* server_http_endpoint */
573*335c7cdaSCy Schubert YYSYMBOL_server_http_max_streams = 444, /* server_http_max_streams */
574*335c7cdaSCy Schubert YYSYMBOL_server_http_query_buffer_size = 445, /* server_http_query_buffer_size */
575*335c7cdaSCy Schubert YYSYMBOL_server_http_response_buffer_size = 446, /* server_http_response_buffer_size */
576*335c7cdaSCy Schubert YYSYMBOL_server_http_nodelay = 447, /* server_http_nodelay */
577*335c7cdaSCy Schubert YYSYMBOL_server_http_notls_downstream = 448, /* server_http_notls_downstream */
578*335c7cdaSCy Schubert YYSYMBOL_server_use_systemd = 449, /* server_use_systemd */
579*335c7cdaSCy Schubert YYSYMBOL_server_do_daemonize = 450, /* server_do_daemonize */
580*335c7cdaSCy Schubert YYSYMBOL_server_use_syslog = 451, /* server_use_syslog */
581*335c7cdaSCy Schubert YYSYMBOL_server_log_time_ascii = 452, /* server_log_time_ascii */
582*335c7cdaSCy Schubert YYSYMBOL_server_log_queries = 453, /* server_log_queries */
583*335c7cdaSCy Schubert YYSYMBOL_server_log_replies = 454, /* server_log_replies */
584*335c7cdaSCy Schubert YYSYMBOL_server_log_tag_queryreply = 455, /* server_log_tag_queryreply */
585*335c7cdaSCy Schubert YYSYMBOL_server_log_servfail = 456, /* server_log_servfail */
586*335c7cdaSCy Schubert YYSYMBOL_server_log_destaddr = 457, /* server_log_destaddr */
587*335c7cdaSCy Schubert YYSYMBOL_server_log_local_actions = 458, /* server_log_local_actions */
588*335c7cdaSCy Schubert YYSYMBOL_server_chroot = 459, /* server_chroot */
589*335c7cdaSCy Schubert YYSYMBOL_server_username = 460, /* server_username */
590*335c7cdaSCy Schubert YYSYMBOL_server_directory = 461, /* server_directory */
591*335c7cdaSCy Schubert YYSYMBOL_server_logfile = 462, /* server_logfile */
592*335c7cdaSCy Schubert YYSYMBOL_server_pidfile = 463, /* server_pidfile */
593*335c7cdaSCy Schubert YYSYMBOL_server_root_hints = 464, /* server_root_hints */
594*335c7cdaSCy Schubert YYSYMBOL_server_dlv_anchor_file = 465, /* server_dlv_anchor_file */
595*335c7cdaSCy Schubert YYSYMBOL_server_dlv_anchor = 466, /* server_dlv_anchor */
596*335c7cdaSCy Schubert YYSYMBOL_server_auto_trust_anchor_file = 467, /* server_auto_trust_anchor_file */
597*335c7cdaSCy Schubert YYSYMBOL_server_trust_anchor_file = 468, /* server_trust_anchor_file */
598*335c7cdaSCy Schubert YYSYMBOL_server_trusted_keys_file = 469, /* server_trusted_keys_file */
599*335c7cdaSCy Schubert YYSYMBOL_server_trust_anchor = 470, /* server_trust_anchor */
600*335c7cdaSCy Schubert YYSYMBOL_server_trust_anchor_signaling = 471, /* server_trust_anchor_signaling */
601*335c7cdaSCy Schubert YYSYMBOL_server_root_key_sentinel = 472, /* server_root_key_sentinel */
602*335c7cdaSCy Schubert YYSYMBOL_server_domain_insecure = 473, /* server_domain_insecure */
603*335c7cdaSCy Schubert YYSYMBOL_server_hide_identity = 474, /* server_hide_identity */
604*335c7cdaSCy Schubert YYSYMBOL_server_hide_version = 475, /* server_hide_version */
605*335c7cdaSCy Schubert YYSYMBOL_server_hide_trustanchor = 476, /* server_hide_trustanchor */
606*335c7cdaSCy Schubert YYSYMBOL_server_hide_http_user_agent = 477, /* server_hide_http_user_agent */
607*335c7cdaSCy Schubert YYSYMBOL_server_identity = 478, /* server_identity */
608*335c7cdaSCy Schubert YYSYMBOL_server_version = 479, /* server_version */
609*335c7cdaSCy Schubert YYSYMBOL_server_http_user_agent = 480, /* server_http_user_agent */
610*335c7cdaSCy Schubert YYSYMBOL_server_nsid = 481, /* server_nsid */
611*335c7cdaSCy Schubert YYSYMBOL_server_so_rcvbuf = 482, /* server_so_rcvbuf */
612*335c7cdaSCy Schubert YYSYMBOL_server_so_sndbuf = 483, /* server_so_sndbuf */
613*335c7cdaSCy Schubert YYSYMBOL_server_so_reuseport = 484, /* server_so_reuseport */
614*335c7cdaSCy Schubert YYSYMBOL_server_ip_transparent = 485, /* server_ip_transparent */
615*335c7cdaSCy Schubert YYSYMBOL_server_ip_freebind = 486, /* server_ip_freebind */
616*335c7cdaSCy Schubert YYSYMBOL_server_ip_dscp = 487, /* server_ip_dscp */
617*335c7cdaSCy Schubert YYSYMBOL_server_stream_wait_size = 488, /* server_stream_wait_size */
618*335c7cdaSCy Schubert YYSYMBOL_server_edns_buffer_size = 489, /* server_edns_buffer_size */
619*335c7cdaSCy Schubert YYSYMBOL_server_msg_buffer_size = 490, /* server_msg_buffer_size */
620*335c7cdaSCy Schubert YYSYMBOL_server_msg_cache_size = 491, /* server_msg_cache_size */
621*335c7cdaSCy Schubert YYSYMBOL_server_msg_cache_slabs = 492, /* server_msg_cache_slabs */
622*335c7cdaSCy Schubert YYSYMBOL_server_num_queries_per_thread = 493, /* server_num_queries_per_thread */
623*335c7cdaSCy Schubert YYSYMBOL_server_jostle_timeout = 494, /* server_jostle_timeout */
624*335c7cdaSCy Schubert YYSYMBOL_server_delay_close = 495, /* server_delay_close */
625*335c7cdaSCy Schubert YYSYMBOL_server_udp_connect = 496, /* server_udp_connect */
626*335c7cdaSCy Schubert YYSYMBOL_server_unblock_lan_zones = 497, /* server_unblock_lan_zones */
627*335c7cdaSCy Schubert YYSYMBOL_server_insecure_lan_zones = 498, /* server_insecure_lan_zones */
628*335c7cdaSCy Schubert YYSYMBOL_server_rrset_cache_size = 499, /* server_rrset_cache_size */
629*335c7cdaSCy Schubert YYSYMBOL_server_rrset_cache_slabs = 500, /* server_rrset_cache_slabs */
630*335c7cdaSCy Schubert YYSYMBOL_server_infra_host_ttl = 501, /* server_infra_host_ttl */
631*335c7cdaSCy Schubert YYSYMBOL_server_infra_lame_ttl = 502, /* server_infra_lame_ttl */
632*335c7cdaSCy Schubert YYSYMBOL_server_infra_cache_numhosts = 503, /* server_infra_cache_numhosts */
633*335c7cdaSCy Schubert YYSYMBOL_server_infra_cache_lame_size = 504, /* server_infra_cache_lame_size */
634*335c7cdaSCy Schubert YYSYMBOL_server_infra_cache_slabs = 505, /* server_infra_cache_slabs */
635*335c7cdaSCy Schubert YYSYMBOL_server_infra_cache_min_rtt = 506, /* server_infra_cache_min_rtt */
636*335c7cdaSCy Schubert YYSYMBOL_server_infra_cache_max_rtt = 507, /* server_infra_cache_max_rtt */
637*335c7cdaSCy Schubert YYSYMBOL_server_infra_keep_probing = 508, /* server_infra_keep_probing */
638*335c7cdaSCy Schubert YYSYMBOL_server_target_fetch_policy = 509, /* server_target_fetch_policy */
639*335c7cdaSCy Schubert YYSYMBOL_server_harden_short_bufsize = 510, /* server_harden_short_bufsize */
640*335c7cdaSCy Schubert YYSYMBOL_server_harden_large_queries = 511, /* server_harden_large_queries */
641*335c7cdaSCy Schubert YYSYMBOL_server_harden_glue = 512, /* server_harden_glue */
642*335c7cdaSCy Schubert YYSYMBOL_server_harden_dnssec_stripped = 513, /* server_harden_dnssec_stripped */
643*335c7cdaSCy Schubert YYSYMBOL_server_harden_below_nxdomain = 514, /* server_harden_below_nxdomain */
644*335c7cdaSCy Schubert YYSYMBOL_server_harden_referral_path = 515, /* server_harden_referral_path */
645*335c7cdaSCy Schubert YYSYMBOL_server_harden_algo_downgrade = 516, /* server_harden_algo_downgrade */
646*335c7cdaSCy Schubert YYSYMBOL_server_harden_unknown_additional = 517, /* server_harden_unknown_additional */
647*335c7cdaSCy Schubert YYSYMBOL_server_use_caps_for_id = 518, /* server_use_caps_for_id */
648*335c7cdaSCy Schubert YYSYMBOL_server_caps_whitelist = 519, /* server_caps_whitelist */
649*335c7cdaSCy Schubert YYSYMBOL_server_private_address = 520, /* server_private_address */
650*335c7cdaSCy Schubert YYSYMBOL_server_private_domain = 521, /* server_private_domain */
651*335c7cdaSCy Schubert YYSYMBOL_server_prefetch = 522, /* server_prefetch */
652*335c7cdaSCy Schubert YYSYMBOL_server_prefetch_key = 523, /* server_prefetch_key */
653*335c7cdaSCy Schubert YYSYMBOL_server_deny_any = 524, /* server_deny_any */
654*335c7cdaSCy Schubert YYSYMBOL_server_unwanted_reply_threshold = 525, /* server_unwanted_reply_threshold */
655*335c7cdaSCy Schubert YYSYMBOL_server_do_not_query_address = 526, /* server_do_not_query_address */
656*335c7cdaSCy Schubert YYSYMBOL_server_do_not_query_localhost = 527, /* server_do_not_query_localhost */
657*335c7cdaSCy Schubert YYSYMBOL_server_access_control = 528, /* server_access_control */
658*335c7cdaSCy Schubert YYSYMBOL_server_interface_action = 529, /* server_interface_action */
659*335c7cdaSCy Schubert YYSYMBOL_server_module_conf = 530, /* server_module_conf */
660*335c7cdaSCy Schubert YYSYMBOL_server_val_override_date = 531, /* server_val_override_date */
661*335c7cdaSCy Schubert YYSYMBOL_server_val_sig_skew_min = 532, /* server_val_sig_skew_min */
662*335c7cdaSCy Schubert YYSYMBOL_server_val_sig_skew_max = 533, /* server_val_sig_skew_max */
663*335c7cdaSCy Schubert YYSYMBOL_server_val_max_restart = 534, /* server_val_max_restart */
664*335c7cdaSCy Schubert YYSYMBOL_server_cache_max_ttl = 535, /* server_cache_max_ttl */
665*335c7cdaSCy Schubert YYSYMBOL_server_cache_max_negative_ttl = 536, /* server_cache_max_negative_ttl */
666*335c7cdaSCy Schubert YYSYMBOL_server_cache_min_negative_ttl = 537, /* server_cache_min_negative_ttl */
667*335c7cdaSCy Schubert YYSYMBOL_server_cache_min_ttl = 538, /* server_cache_min_ttl */
668*335c7cdaSCy Schubert YYSYMBOL_server_bogus_ttl = 539, /* server_bogus_ttl */
669*335c7cdaSCy Schubert YYSYMBOL_server_val_clean_additional = 540, /* server_val_clean_additional */
670*335c7cdaSCy Schubert YYSYMBOL_server_val_permissive_mode = 541, /* server_val_permissive_mode */
671*335c7cdaSCy Schubert YYSYMBOL_server_aggressive_nsec = 542, /* server_aggressive_nsec */
672*335c7cdaSCy Schubert YYSYMBOL_server_ignore_cd_flag = 543, /* server_ignore_cd_flag */
673*335c7cdaSCy Schubert YYSYMBOL_server_disable_edns_do = 544, /* server_disable_edns_do */
674*335c7cdaSCy Schubert YYSYMBOL_server_serve_expired = 545, /* server_serve_expired */
675*335c7cdaSCy Schubert YYSYMBOL_server_serve_expired_ttl = 546, /* server_serve_expired_ttl */
676*335c7cdaSCy Schubert YYSYMBOL_server_serve_expired_ttl_reset = 547, /* server_serve_expired_ttl_reset */
677*335c7cdaSCy Schubert YYSYMBOL_server_serve_expired_reply_ttl = 548, /* server_serve_expired_reply_ttl */
678*335c7cdaSCy Schubert YYSYMBOL_server_serve_expired_client_timeout = 549, /* server_serve_expired_client_timeout */
679*335c7cdaSCy Schubert YYSYMBOL_server_ede_serve_expired = 550, /* server_ede_serve_expired */
680*335c7cdaSCy Schubert YYSYMBOL_server_serve_original_ttl = 551, /* server_serve_original_ttl */
681*335c7cdaSCy Schubert YYSYMBOL_server_fake_dsa = 552, /* server_fake_dsa */
682*335c7cdaSCy Schubert YYSYMBOL_server_fake_sha1 = 553, /* server_fake_sha1 */
683*335c7cdaSCy Schubert YYSYMBOL_server_val_log_level = 554, /* server_val_log_level */
684*335c7cdaSCy Schubert YYSYMBOL_server_val_nsec3_keysize_iterations = 555, /* server_val_nsec3_keysize_iterations */
685*335c7cdaSCy Schubert YYSYMBOL_server_zonemd_permissive_mode = 556, /* server_zonemd_permissive_mode */
686*335c7cdaSCy Schubert YYSYMBOL_server_add_holddown = 557, /* server_add_holddown */
687*335c7cdaSCy Schubert YYSYMBOL_server_del_holddown = 558, /* server_del_holddown */
688*335c7cdaSCy Schubert YYSYMBOL_server_keep_missing = 559, /* server_keep_missing */
689*335c7cdaSCy Schubert YYSYMBOL_server_permit_small_holddown = 560, /* server_permit_small_holddown */
690*335c7cdaSCy Schubert YYSYMBOL_server_key_cache_size = 561, /* server_key_cache_size */
691*335c7cdaSCy Schubert YYSYMBOL_server_key_cache_slabs = 562, /* server_key_cache_slabs */
692*335c7cdaSCy Schubert YYSYMBOL_server_neg_cache_size = 563, /* server_neg_cache_size */
693*335c7cdaSCy Schubert YYSYMBOL_server_local_zone = 564, /* server_local_zone */
694*335c7cdaSCy Schubert YYSYMBOL_server_local_data = 565, /* server_local_data */
695*335c7cdaSCy Schubert YYSYMBOL_server_local_data_ptr = 566, /* server_local_data_ptr */
696*335c7cdaSCy Schubert YYSYMBOL_server_minimal_responses = 567, /* server_minimal_responses */
697*335c7cdaSCy Schubert YYSYMBOL_server_rrset_roundrobin = 568, /* server_rrset_roundrobin */
698*335c7cdaSCy Schubert YYSYMBOL_server_unknown_server_time_limit = 569, /* server_unknown_server_time_limit */
699*335c7cdaSCy Schubert YYSYMBOL_server_discard_timeout = 570, /* server_discard_timeout */
700*335c7cdaSCy Schubert YYSYMBOL_server_wait_limit = 571, /* server_wait_limit */
701*335c7cdaSCy Schubert YYSYMBOL_server_wait_limit_cookie = 572, /* server_wait_limit_cookie */
702*335c7cdaSCy Schubert YYSYMBOL_server_wait_limit_netblock = 573, /* server_wait_limit_netblock */
703*335c7cdaSCy Schubert YYSYMBOL_server_wait_limit_cookie_netblock = 574, /* server_wait_limit_cookie_netblock */
704*335c7cdaSCy Schubert YYSYMBOL_server_max_udp_size = 575, /* server_max_udp_size */
705*335c7cdaSCy Schubert YYSYMBOL_server_dns64_prefix = 576, /* server_dns64_prefix */
706*335c7cdaSCy Schubert YYSYMBOL_server_dns64_synthall = 577, /* server_dns64_synthall */
707*335c7cdaSCy Schubert YYSYMBOL_server_dns64_ignore_aaaa = 578, /* server_dns64_ignore_aaaa */
708*335c7cdaSCy Schubert YYSYMBOL_server_nat64_prefix = 579, /* server_nat64_prefix */
709*335c7cdaSCy Schubert YYSYMBOL_server_define_tag = 580, /* server_define_tag */
710*335c7cdaSCy Schubert YYSYMBOL_server_local_zone_tag = 581, /* server_local_zone_tag */
711*335c7cdaSCy Schubert YYSYMBOL_server_access_control_tag = 582, /* server_access_control_tag */
712*335c7cdaSCy Schubert YYSYMBOL_server_access_control_tag_action = 583, /* server_access_control_tag_action */
713*335c7cdaSCy Schubert YYSYMBOL_server_access_control_tag_data = 584, /* server_access_control_tag_data */
714*335c7cdaSCy Schubert YYSYMBOL_server_local_zone_override = 585, /* server_local_zone_override */
715*335c7cdaSCy Schubert YYSYMBOL_server_access_control_view = 586, /* server_access_control_view */
716*335c7cdaSCy Schubert YYSYMBOL_server_interface_tag = 587, /* server_interface_tag */
717*335c7cdaSCy Schubert YYSYMBOL_server_interface_tag_action = 588, /* server_interface_tag_action */
718*335c7cdaSCy Schubert YYSYMBOL_server_interface_tag_data = 589, /* server_interface_tag_data */
719*335c7cdaSCy Schubert YYSYMBOL_server_interface_view = 590, /* server_interface_view */
720*335c7cdaSCy Schubert YYSYMBOL_server_response_ip_tag = 591, /* server_response_ip_tag */
721*335c7cdaSCy Schubert YYSYMBOL_server_ip_ratelimit = 592, /* server_ip_ratelimit */
722*335c7cdaSCy Schubert YYSYMBOL_server_ip_ratelimit_cookie = 593, /* server_ip_ratelimit_cookie */
723*335c7cdaSCy Schubert YYSYMBOL_server_ratelimit = 594, /* server_ratelimit */
724*335c7cdaSCy Schubert YYSYMBOL_server_ip_ratelimit_size = 595, /* server_ip_ratelimit_size */
725*335c7cdaSCy Schubert YYSYMBOL_server_ratelimit_size = 596, /* server_ratelimit_size */
726*335c7cdaSCy Schubert YYSYMBOL_server_ip_ratelimit_slabs = 597, /* server_ip_ratelimit_slabs */
727*335c7cdaSCy Schubert YYSYMBOL_server_ratelimit_slabs = 598, /* server_ratelimit_slabs */
728*335c7cdaSCy Schubert YYSYMBOL_server_ratelimit_for_domain = 599, /* server_ratelimit_for_domain */
729*335c7cdaSCy Schubert YYSYMBOL_server_ratelimit_below_domain = 600, /* server_ratelimit_below_domain */
730*335c7cdaSCy Schubert YYSYMBOL_server_ip_ratelimit_factor = 601, /* server_ip_ratelimit_factor */
731*335c7cdaSCy Schubert YYSYMBOL_server_ratelimit_factor = 602, /* server_ratelimit_factor */
732*335c7cdaSCy Schubert YYSYMBOL_server_ip_ratelimit_backoff = 603, /* server_ip_ratelimit_backoff */
733*335c7cdaSCy Schubert YYSYMBOL_server_ratelimit_backoff = 604, /* server_ratelimit_backoff */
734*335c7cdaSCy Schubert YYSYMBOL_server_outbound_msg_retry = 605, /* server_outbound_msg_retry */
735*335c7cdaSCy Schubert YYSYMBOL_server_max_sent_count = 606, /* server_max_sent_count */
736*335c7cdaSCy Schubert YYSYMBOL_server_max_query_restarts = 607, /* server_max_query_restarts */
737*335c7cdaSCy Schubert YYSYMBOL_server_low_rtt = 608, /* server_low_rtt */
738*335c7cdaSCy Schubert YYSYMBOL_server_fast_server_num = 609, /* server_fast_server_num */
739*335c7cdaSCy Schubert YYSYMBOL_server_fast_server_permil = 610, /* server_fast_server_permil */
740*335c7cdaSCy Schubert YYSYMBOL_server_qname_minimisation = 611, /* server_qname_minimisation */
741*335c7cdaSCy Schubert YYSYMBOL_server_qname_minimisation_strict = 612, /* server_qname_minimisation_strict */
742*335c7cdaSCy Schubert YYSYMBOL_server_pad_responses = 613, /* server_pad_responses */
743*335c7cdaSCy Schubert YYSYMBOL_server_pad_responses_block_size = 614, /* server_pad_responses_block_size */
744*335c7cdaSCy Schubert YYSYMBOL_server_pad_queries = 615, /* server_pad_queries */
745*335c7cdaSCy Schubert YYSYMBOL_server_pad_queries_block_size = 616, /* server_pad_queries_block_size */
746*335c7cdaSCy Schubert YYSYMBOL_server_ipsecmod_enabled = 617, /* server_ipsecmod_enabled */
747*335c7cdaSCy Schubert YYSYMBOL_server_ipsecmod_ignore_bogus = 618, /* server_ipsecmod_ignore_bogus */
748*335c7cdaSCy Schubert YYSYMBOL_server_ipsecmod_hook = 619, /* server_ipsecmod_hook */
749*335c7cdaSCy Schubert YYSYMBOL_server_ipsecmod_max_ttl = 620, /* server_ipsecmod_max_ttl */
750*335c7cdaSCy Schubert YYSYMBOL_server_ipsecmod_whitelist = 621, /* server_ipsecmod_whitelist */
751*335c7cdaSCy Schubert YYSYMBOL_server_ipsecmod_strict = 622, /* server_ipsecmod_strict */
752*335c7cdaSCy Schubert YYSYMBOL_server_edns_client_string = 623, /* server_edns_client_string */
753*335c7cdaSCy Schubert YYSYMBOL_server_edns_client_string_opcode = 624, /* server_edns_client_string_opcode */
754*335c7cdaSCy Schubert YYSYMBOL_server_ede = 625, /* server_ede */
755*335c7cdaSCy Schubert YYSYMBOL_server_proxy_protocol_port = 626, /* server_proxy_protocol_port */
756*335c7cdaSCy Schubert YYSYMBOL_stub_name = 627, /* stub_name */
757*335c7cdaSCy Schubert YYSYMBOL_stub_host = 628, /* stub_host */
758*335c7cdaSCy Schubert YYSYMBOL_stub_addr = 629, /* stub_addr */
759*335c7cdaSCy Schubert YYSYMBOL_stub_first = 630, /* stub_first */
760*335c7cdaSCy Schubert YYSYMBOL_stub_no_cache = 631, /* stub_no_cache */
761*335c7cdaSCy Schubert YYSYMBOL_stub_ssl_upstream = 632, /* stub_ssl_upstream */
762*335c7cdaSCy Schubert YYSYMBOL_stub_tcp_upstream = 633, /* stub_tcp_upstream */
763*335c7cdaSCy Schubert YYSYMBOL_stub_prime = 634, /* stub_prime */
764*335c7cdaSCy Schubert YYSYMBOL_forward_name = 635, /* forward_name */
765*335c7cdaSCy Schubert YYSYMBOL_forward_host = 636, /* forward_host */
766*335c7cdaSCy Schubert YYSYMBOL_forward_addr = 637, /* forward_addr */
767*335c7cdaSCy Schubert YYSYMBOL_forward_first = 638, /* forward_first */
768*335c7cdaSCy Schubert YYSYMBOL_forward_no_cache = 639, /* forward_no_cache */
769*335c7cdaSCy Schubert YYSYMBOL_forward_ssl_upstream = 640, /* forward_ssl_upstream */
770*335c7cdaSCy Schubert YYSYMBOL_forward_tcp_upstream = 641, /* forward_tcp_upstream */
771*335c7cdaSCy Schubert YYSYMBOL_auth_name = 642, /* auth_name */
772*335c7cdaSCy Schubert YYSYMBOL_auth_zonefile = 643, /* auth_zonefile */
773*335c7cdaSCy Schubert YYSYMBOL_auth_master = 644, /* auth_master */
774*335c7cdaSCy Schubert YYSYMBOL_auth_url = 645, /* auth_url */
775*335c7cdaSCy Schubert YYSYMBOL_auth_allow_notify = 646, /* auth_allow_notify */
776*335c7cdaSCy Schubert YYSYMBOL_auth_zonemd_check = 647, /* auth_zonemd_check */
777*335c7cdaSCy Schubert YYSYMBOL_auth_zonemd_reject_absence = 648, /* auth_zonemd_reject_absence */
778*335c7cdaSCy Schubert YYSYMBOL_auth_for_downstream = 649, /* auth_for_downstream */
779*335c7cdaSCy Schubert YYSYMBOL_auth_for_upstream = 650, /* auth_for_upstream */
780*335c7cdaSCy Schubert YYSYMBOL_auth_fallback_enabled = 651, /* auth_fallback_enabled */
781*335c7cdaSCy Schubert YYSYMBOL_view_name = 652, /* view_name */
782*335c7cdaSCy Schubert YYSYMBOL_view_local_zone = 653, /* view_local_zone */
783*335c7cdaSCy Schubert YYSYMBOL_view_response_ip = 654, /* view_response_ip */
784*335c7cdaSCy Schubert YYSYMBOL_view_response_ip_data = 655, /* view_response_ip_data */
785*335c7cdaSCy Schubert YYSYMBOL_view_local_data = 656, /* view_local_data */
786*335c7cdaSCy Schubert YYSYMBOL_view_local_data_ptr = 657, /* view_local_data_ptr */
787*335c7cdaSCy Schubert YYSYMBOL_view_first = 658, /* view_first */
788*335c7cdaSCy Schubert YYSYMBOL_rcstart = 659, /* rcstart */
789*335c7cdaSCy Schubert YYSYMBOL_contents_rc = 660, /* contents_rc */
790*335c7cdaSCy Schubert YYSYMBOL_content_rc = 661, /* content_rc */
791*335c7cdaSCy Schubert YYSYMBOL_rc_control_enable = 662, /* rc_control_enable */
792*335c7cdaSCy Schubert YYSYMBOL_rc_control_port = 663, /* rc_control_port */
793*335c7cdaSCy Schubert YYSYMBOL_rc_control_interface = 664, /* rc_control_interface */
794*335c7cdaSCy Schubert YYSYMBOL_rc_control_use_cert = 665, /* rc_control_use_cert */
795*335c7cdaSCy Schubert YYSYMBOL_rc_server_key_file = 666, /* rc_server_key_file */
796*335c7cdaSCy Schubert YYSYMBOL_rc_server_cert_file = 667, /* rc_server_cert_file */
797*335c7cdaSCy Schubert YYSYMBOL_rc_control_key_file = 668, /* rc_control_key_file */
798*335c7cdaSCy Schubert YYSYMBOL_rc_control_cert_file = 669, /* rc_control_cert_file */
799*335c7cdaSCy Schubert YYSYMBOL_dtstart = 670, /* dtstart */
800*335c7cdaSCy Schubert YYSYMBOL_contents_dt = 671, /* contents_dt */
801*335c7cdaSCy Schubert YYSYMBOL_content_dt = 672, /* content_dt */
802*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_enable = 673, /* dt_dnstap_enable */
803*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_bidirectional = 674, /* dt_dnstap_bidirectional */
804*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_socket_path = 675, /* dt_dnstap_socket_path */
805*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_ip = 676, /* dt_dnstap_ip */
806*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_tls = 677, /* dt_dnstap_tls */
807*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_tls_server_name = 678, /* dt_dnstap_tls_server_name */
808*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_tls_cert_bundle = 679, /* dt_dnstap_tls_cert_bundle */
809*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_tls_client_key_file = 680, /* dt_dnstap_tls_client_key_file */
810*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_tls_client_cert_file = 681, /* dt_dnstap_tls_client_cert_file */
811*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_send_identity = 682, /* dt_dnstap_send_identity */
812*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_send_version = 683, /* dt_dnstap_send_version */
813*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_identity = 684, /* dt_dnstap_identity */
814*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_version = 685, /* dt_dnstap_version */
815*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_log_resolver_query_messages = 686, /* dt_dnstap_log_resolver_query_messages */
816*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_log_resolver_response_messages = 687, /* dt_dnstap_log_resolver_response_messages */
817*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_log_client_query_messages = 688, /* dt_dnstap_log_client_query_messages */
818*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_log_client_response_messages = 689, /* dt_dnstap_log_client_response_messages */
819*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_log_forwarder_query_messages = 690, /* dt_dnstap_log_forwarder_query_messages */
820*335c7cdaSCy Schubert YYSYMBOL_dt_dnstap_log_forwarder_response_messages = 691, /* dt_dnstap_log_forwarder_response_messages */
821*335c7cdaSCy Schubert YYSYMBOL_pythonstart = 692, /* pythonstart */
822*335c7cdaSCy Schubert YYSYMBOL_contents_py = 693, /* contents_py */
823*335c7cdaSCy Schubert YYSYMBOL_content_py = 694, /* content_py */
824*335c7cdaSCy Schubert YYSYMBOL_py_script = 695, /* py_script */
825*335c7cdaSCy Schubert YYSYMBOL_dynlibstart = 696, /* dynlibstart */
826*335c7cdaSCy Schubert YYSYMBOL_contents_dl = 697, /* contents_dl */
827*335c7cdaSCy Schubert YYSYMBOL_content_dl = 698, /* content_dl */
828*335c7cdaSCy Schubert YYSYMBOL_dl_file = 699, /* dl_file */
829*335c7cdaSCy Schubert YYSYMBOL_server_disable_dnssec_lame_check = 700, /* server_disable_dnssec_lame_check */
830*335c7cdaSCy Schubert YYSYMBOL_server_log_identity = 701, /* server_log_identity */
831*335c7cdaSCy Schubert YYSYMBOL_server_response_ip = 702, /* server_response_ip */
832*335c7cdaSCy Schubert YYSYMBOL_server_response_ip_data = 703, /* server_response_ip_data */
833*335c7cdaSCy Schubert YYSYMBOL_dnscstart = 704, /* dnscstart */
834*335c7cdaSCy Schubert YYSYMBOL_contents_dnsc = 705, /* contents_dnsc */
835*335c7cdaSCy Schubert YYSYMBOL_content_dnsc = 706, /* content_dnsc */
836*335c7cdaSCy Schubert YYSYMBOL_dnsc_dnscrypt_enable = 707, /* dnsc_dnscrypt_enable */
837*335c7cdaSCy Schubert YYSYMBOL_dnsc_dnscrypt_port = 708, /* dnsc_dnscrypt_port */
838*335c7cdaSCy Schubert YYSYMBOL_dnsc_dnscrypt_provider = 709, /* dnsc_dnscrypt_provider */
839*335c7cdaSCy Schubert YYSYMBOL_dnsc_dnscrypt_provider_cert = 710, /* dnsc_dnscrypt_provider_cert */
840*335c7cdaSCy Schubert YYSYMBOL_dnsc_dnscrypt_provider_cert_rotated = 711, /* dnsc_dnscrypt_provider_cert_rotated */
841*335c7cdaSCy Schubert YYSYMBOL_dnsc_dnscrypt_secret_key = 712, /* dnsc_dnscrypt_secret_key */
842*335c7cdaSCy Schubert YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_size = 713, /* dnsc_dnscrypt_shared_secret_cache_size */
843*335c7cdaSCy Schubert YYSYMBOL_dnsc_dnscrypt_shared_secret_cache_slabs = 714, /* dnsc_dnscrypt_shared_secret_cache_slabs */
844*335c7cdaSCy Schubert YYSYMBOL_dnsc_dnscrypt_nonce_cache_size = 715, /* dnsc_dnscrypt_nonce_cache_size */
845*335c7cdaSCy Schubert YYSYMBOL_dnsc_dnscrypt_nonce_cache_slabs = 716, /* dnsc_dnscrypt_nonce_cache_slabs */
846*335c7cdaSCy Schubert YYSYMBOL_cachedbstart = 717, /* cachedbstart */
847*335c7cdaSCy Schubert YYSYMBOL_contents_cachedb = 718, /* contents_cachedb */
848*335c7cdaSCy Schubert YYSYMBOL_content_cachedb = 719, /* content_cachedb */
849*335c7cdaSCy Schubert YYSYMBOL_cachedb_backend_name = 720, /* cachedb_backend_name */
850*335c7cdaSCy Schubert YYSYMBOL_cachedb_secret_seed = 721, /* cachedb_secret_seed */
851*335c7cdaSCy Schubert YYSYMBOL_cachedb_no_store = 722, /* cachedb_no_store */
852*335c7cdaSCy Schubert YYSYMBOL_cachedb_check_when_serve_expired = 723, /* cachedb_check_when_serve_expired */
853*335c7cdaSCy Schubert YYSYMBOL_redis_server_host = 724, /* redis_server_host */
854*335c7cdaSCy Schubert YYSYMBOL_redis_server_port = 725, /* redis_server_port */
855*335c7cdaSCy Schubert YYSYMBOL_redis_server_path = 726, /* redis_server_path */
856*335c7cdaSCy Schubert YYSYMBOL_redis_server_password = 727, /* redis_server_password */
857*335c7cdaSCy Schubert YYSYMBOL_redis_timeout = 728, /* redis_timeout */
858*335c7cdaSCy Schubert YYSYMBOL_redis_expire_records = 729, /* redis_expire_records */
859*335c7cdaSCy Schubert YYSYMBOL_redis_logical_db = 730, /* redis_logical_db */
860*335c7cdaSCy Schubert YYSYMBOL_server_tcp_connection_limit = 731, /* server_tcp_connection_limit */
861*335c7cdaSCy Schubert YYSYMBOL_server_answer_cookie = 732, /* server_answer_cookie */
862*335c7cdaSCy Schubert YYSYMBOL_server_cookie_secret = 733, /* server_cookie_secret */
863*335c7cdaSCy Schubert YYSYMBOL_ipsetstart = 734, /* ipsetstart */
864*335c7cdaSCy Schubert YYSYMBOL_contents_ipset = 735, /* contents_ipset */
865*335c7cdaSCy Schubert YYSYMBOL_content_ipset = 736, /* content_ipset */
866*335c7cdaSCy Schubert YYSYMBOL_ipset_name_v4 = 737, /* ipset_name_v4 */
867*335c7cdaSCy Schubert YYSYMBOL_ipset_name_v6 = 738 /* ipset_name_v6 */
868b7c0c8c1SCy Schubert };
869b7c0c8c1SCy Schubert typedef enum yysymbol_kind_t yysymbol_kind_t;
870b7c0c8c1SCy Schubert
871b7c0c8c1SCy Schubert
872b7c0c8c1SCy Schubert
873b7c0c8c1SCy Schubert
874b7c0c8c1SCy Schubert #ifdef short
875b7c0c8c1SCy Schubert # undef short
876b7c0c8c1SCy Schubert #endif
877b7c0c8c1SCy Schubert
878b7c0c8c1SCy Schubert /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
879b7c0c8c1SCy Schubert <limits.h> and (if available) <stdint.h> are included
880b7c0c8c1SCy Schubert so that the code can choose integer types of a good width. */
881b7c0c8c1SCy Schubert
882b7c0c8c1SCy Schubert #ifndef __PTRDIFF_MAX__
883b7c0c8c1SCy Schubert # include <limits.h> /* INFRINGES ON USER NAME SPACE */
884b7c0c8c1SCy Schubert # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
885b7c0c8c1SCy Schubert # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
886b7c0c8c1SCy Schubert # define YY_STDINT_H
887b7c0c8c1SCy Schubert # endif
888b7c0c8c1SCy Schubert #endif
889b7c0c8c1SCy Schubert
890b7c0c8c1SCy Schubert /* Narrow types that promote to a signed type and that can represent a
891b7c0c8c1SCy Schubert signed or unsigned integer of at least N bits. In tables they can
892b7c0c8c1SCy Schubert save space and decrease cache pressure. Promoting to a signed type
893b7c0c8c1SCy Schubert helps avoid bugs in integer arithmetic. */
894b7c0c8c1SCy Schubert
895b7c0c8c1SCy Schubert #ifdef __INT_LEAST8_MAX__
896b7c0c8c1SCy Schubert typedef __INT_LEAST8_TYPE__ yytype_int8;
897b7c0c8c1SCy Schubert #elif defined YY_STDINT_H
898b7c0c8c1SCy Schubert typedef int_least8_t yytype_int8;
899b7c0c8c1SCy Schubert #else
900b7c0c8c1SCy Schubert typedef signed char yytype_int8;
901b7c0c8c1SCy Schubert #endif
902b7c0c8c1SCy Schubert
903b7c0c8c1SCy Schubert #ifdef __INT_LEAST16_MAX__
904b7c0c8c1SCy Schubert typedef __INT_LEAST16_TYPE__ yytype_int16;
905b7c0c8c1SCy Schubert #elif defined YY_STDINT_H
906b7c0c8c1SCy Schubert typedef int_least16_t yytype_int16;
907b7c0c8c1SCy Schubert #else
908b7c0c8c1SCy Schubert typedef short yytype_int16;
909b7c0c8c1SCy Schubert #endif
910b7c0c8c1SCy Schubert
911b7c0c8c1SCy Schubert /* Work around bug in HP-UX 11.23, which defines these macros
912b7c0c8c1SCy Schubert incorrectly for preprocessor constants. This workaround can likely
913b7c0c8c1SCy Schubert be removed in 2023, as HPE has promised support for HP-UX 11.23
914b7c0c8c1SCy Schubert (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
915b7c0c8c1SCy Schubert <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
916b7c0c8c1SCy Schubert #ifdef __hpux
917b7c0c8c1SCy Schubert # undef UINT_LEAST8_MAX
918b7c0c8c1SCy Schubert # undef UINT_LEAST16_MAX
919b7c0c8c1SCy Schubert # define UINT_LEAST8_MAX 255
920b7c0c8c1SCy Schubert # define UINT_LEAST16_MAX 65535
921b7c0c8c1SCy Schubert #endif
922b7c0c8c1SCy Schubert
923b7c0c8c1SCy Schubert #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
924b7c0c8c1SCy Schubert typedef __UINT_LEAST8_TYPE__ yytype_uint8;
925b7c0c8c1SCy Schubert #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
926b7c0c8c1SCy Schubert && UINT_LEAST8_MAX <= INT_MAX)
927b7c0c8c1SCy Schubert typedef uint_least8_t yytype_uint8;
928b7c0c8c1SCy Schubert #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
929b7c0c8c1SCy Schubert typedef unsigned char yytype_uint8;
930b7c0c8c1SCy Schubert #else
931b7c0c8c1SCy Schubert typedef short yytype_uint8;
932b7c0c8c1SCy Schubert #endif
933b7c0c8c1SCy Schubert
934b7c0c8c1SCy Schubert #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
935b7c0c8c1SCy Schubert typedef __UINT_LEAST16_TYPE__ yytype_uint16;
936b7c0c8c1SCy Schubert #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
937b7c0c8c1SCy Schubert && UINT_LEAST16_MAX <= INT_MAX)
938b7c0c8c1SCy Schubert typedef uint_least16_t yytype_uint16;
939b7c0c8c1SCy Schubert #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
940b7c0c8c1SCy Schubert typedef unsigned short yytype_uint16;
941b7c0c8c1SCy Schubert #else
942b7c0c8c1SCy Schubert typedef int yytype_uint16;
943b7c0c8c1SCy Schubert #endif
944b7c0c8c1SCy Schubert
945b7c0c8c1SCy Schubert #ifndef YYPTRDIFF_T
946b7c0c8c1SCy Schubert # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
947b7c0c8c1SCy Schubert # define YYPTRDIFF_T __PTRDIFF_TYPE__
948b7c0c8c1SCy Schubert # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
949b7c0c8c1SCy Schubert # elif defined PTRDIFF_MAX
950b7c0c8c1SCy Schubert # ifndef ptrdiff_t
951b7c0c8c1SCy Schubert # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
952b7c0c8c1SCy Schubert # endif
953b7c0c8c1SCy Schubert # define YYPTRDIFF_T ptrdiff_t
954b7c0c8c1SCy Schubert # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
955b7c0c8c1SCy Schubert # else
956b7c0c8c1SCy Schubert # define YYPTRDIFF_T long
957b7c0c8c1SCy Schubert # define YYPTRDIFF_MAXIMUM LONG_MAX
958b7c0c8c1SCy Schubert # endif
959b7c0c8c1SCy Schubert #endif
960b7c0c8c1SCy Schubert
961b7c0c8c1SCy Schubert #ifndef YYSIZE_T
962b7c0c8c1SCy Schubert # ifdef __SIZE_TYPE__
963b7c0c8c1SCy Schubert # define YYSIZE_T __SIZE_TYPE__
964b7c0c8c1SCy Schubert # elif defined size_t
965b7c0c8c1SCy Schubert # define YYSIZE_T size_t
966b7c0c8c1SCy Schubert # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
967b7c0c8c1SCy Schubert # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
968b7c0c8c1SCy Schubert # define YYSIZE_T size_t
969b7c0c8c1SCy Schubert # else
970b7c0c8c1SCy Schubert # define YYSIZE_T unsigned
971b7c0c8c1SCy Schubert # endif
972b7c0c8c1SCy Schubert #endif
973b7c0c8c1SCy Schubert
974b7c0c8c1SCy Schubert #define YYSIZE_MAXIMUM \
975b7c0c8c1SCy Schubert YY_CAST (YYPTRDIFF_T, \
976b7c0c8c1SCy Schubert (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
977b7c0c8c1SCy Schubert ? YYPTRDIFF_MAXIMUM \
978b7c0c8c1SCy Schubert : YY_CAST (YYSIZE_T, -1)))
979b7c0c8c1SCy Schubert
980b7c0c8c1SCy Schubert #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
981b7c0c8c1SCy Schubert
982b7c0c8c1SCy Schubert
983b7c0c8c1SCy Schubert /* Stored state numbers (used for stacks). */
984b7c0c8c1SCy Schubert typedef yytype_int16 yy_state_t;
985b7c0c8c1SCy Schubert
986b7c0c8c1SCy Schubert /* State numbers in computations. */
987b7c0c8c1SCy Schubert typedef int yy_state_fast_t;
988b7c0c8c1SCy Schubert
989b7c0c8c1SCy Schubert #ifndef YY_
990b7c0c8c1SCy Schubert # if defined YYENABLE_NLS && YYENABLE_NLS
991b7c0c8c1SCy Schubert # if ENABLE_NLS
992b7c0c8c1SCy Schubert # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
993b7c0c8c1SCy Schubert # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
994b7c0c8c1SCy Schubert # endif
995b7c0c8c1SCy Schubert # endif
996b7c0c8c1SCy Schubert # ifndef YY_
997b7c0c8c1SCy Schubert # define YY_(Msgid) Msgid
998b7c0c8c1SCy Schubert # endif
999b7c0c8c1SCy Schubert #endif
1000b7c0c8c1SCy Schubert
1001b7c0c8c1SCy Schubert
1002b7c0c8c1SCy Schubert #ifndef YY_ATTRIBUTE_PURE
1003b7c0c8c1SCy Schubert # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
1004b7c0c8c1SCy Schubert # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
1005b7c0c8c1SCy Schubert # else
1006b7c0c8c1SCy Schubert # define YY_ATTRIBUTE_PURE
1007b7c0c8c1SCy Schubert # endif
1008b7c0c8c1SCy Schubert #endif
1009b7c0c8c1SCy Schubert
1010b7c0c8c1SCy Schubert #ifndef YY_ATTRIBUTE_UNUSED
1011b7c0c8c1SCy Schubert # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
1012b7c0c8c1SCy Schubert # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
1013b7c0c8c1SCy Schubert # else
1014b7c0c8c1SCy Schubert # define YY_ATTRIBUTE_UNUSED
1015b7c0c8c1SCy Schubert # endif
1016b7c0c8c1SCy Schubert #endif
1017b7c0c8c1SCy Schubert
1018b7c0c8c1SCy Schubert /* Suppress unused-variable warnings by "using" E. */
1019b7c0c8c1SCy Schubert #if ! defined lint || defined __GNUC__
1020b7c0c8c1SCy Schubert # define YY_USE(E) ((void) (E))
1021b7c0c8c1SCy Schubert #else
1022b7c0c8c1SCy Schubert # define YY_USE(E) /* empty */
1023b7c0c8c1SCy Schubert #endif
1024b7c0c8c1SCy Schubert
1025b7c0c8c1SCy Schubert #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
1026b7c0c8c1SCy Schubert /* Suppress an incorrect diagnostic about yylval being uninitialized. */
1027b7c0c8c1SCy Schubert # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
1028b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic push") \
1029b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
1030b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
1031b7c0c8c1SCy Schubert # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
1032b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic pop")
1033b7c0c8c1SCy Schubert #else
1034b7c0c8c1SCy Schubert # define YY_INITIAL_VALUE(Value) Value
1035b7c0c8c1SCy Schubert #endif
1036b7c0c8c1SCy Schubert #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1037b7c0c8c1SCy Schubert # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1038b7c0c8c1SCy Schubert # define YY_IGNORE_MAYBE_UNINITIALIZED_END
1039b7c0c8c1SCy Schubert #endif
1040b7c0c8c1SCy Schubert #ifndef YY_INITIAL_VALUE
1041b7c0c8c1SCy Schubert # define YY_INITIAL_VALUE(Value) /* Nothing. */
1042b7c0c8c1SCy Schubert #endif
1043b7c0c8c1SCy Schubert
1044b7c0c8c1SCy Schubert #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
1045b7c0c8c1SCy Schubert # define YY_IGNORE_USELESS_CAST_BEGIN \
1046b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic push") \
1047b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
1048b7c0c8c1SCy Schubert # define YY_IGNORE_USELESS_CAST_END \
1049b7c0c8c1SCy Schubert _Pragma ("GCC diagnostic pop")
1050b7c0c8c1SCy Schubert #endif
1051b7c0c8c1SCy Schubert #ifndef YY_IGNORE_USELESS_CAST_BEGIN
1052b7c0c8c1SCy Schubert # define YY_IGNORE_USELESS_CAST_BEGIN
1053b7c0c8c1SCy Schubert # define YY_IGNORE_USELESS_CAST_END
1054b7c0c8c1SCy Schubert #endif
1055b7c0c8c1SCy Schubert
1056b7c0c8c1SCy Schubert
1057b7c0c8c1SCy Schubert #define YY_ASSERT(E) ((void) (0 && (E)))
1058b7c0c8c1SCy Schubert
1059b7c0c8c1SCy Schubert #if !defined yyoverflow
1060b7c0c8c1SCy Schubert
1061b7c0c8c1SCy Schubert /* The parser invokes alloca or malloc; define the necessary symbols. */
1062b7c0c8c1SCy Schubert
1063b7c0c8c1SCy Schubert # ifdef YYSTACK_USE_ALLOCA
1064b7c0c8c1SCy Schubert # if YYSTACK_USE_ALLOCA
1065b7c0c8c1SCy Schubert # ifdef __GNUC__
1066b7c0c8c1SCy Schubert # define YYSTACK_ALLOC __builtin_alloca
1067b7c0c8c1SCy Schubert # elif defined __BUILTIN_VA_ARG_INCR
1068b7c0c8c1SCy Schubert # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
1069b7c0c8c1SCy Schubert # elif defined _AIX
1070b7c0c8c1SCy Schubert # define YYSTACK_ALLOC __alloca
1071b7c0c8c1SCy Schubert # elif defined _MSC_VER
1072b7c0c8c1SCy Schubert # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
1073b7c0c8c1SCy Schubert # define alloca _alloca
1074b7c0c8c1SCy Schubert # else
1075b7c0c8c1SCy Schubert # define YYSTACK_ALLOC alloca
1076b7c0c8c1SCy Schubert # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
1077b7c0c8c1SCy Schubert # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1078b7c0c8c1SCy Schubert /* Use EXIT_SUCCESS as a witness for stdlib.h. */
1079b7c0c8c1SCy Schubert # ifndef EXIT_SUCCESS
1080b7c0c8c1SCy Schubert # define EXIT_SUCCESS 0
1081b7c0c8c1SCy Schubert # endif
1082b7c0c8c1SCy Schubert # endif
1083b7c0c8c1SCy Schubert # endif
1084b7c0c8c1SCy Schubert # endif
1085b7c0c8c1SCy Schubert # endif
1086b7c0c8c1SCy Schubert
1087b7c0c8c1SCy Schubert # ifdef YYSTACK_ALLOC
1088b7c0c8c1SCy Schubert /* Pacify GCC's 'empty if-body' warning. */
1089b7c0c8c1SCy Schubert # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1090b7c0c8c1SCy Schubert # ifndef YYSTACK_ALLOC_MAXIMUM
1091b7c0c8c1SCy Schubert /* The OS might guarantee only one guard page at the bottom of the stack,
1092b7c0c8c1SCy Schubert and a page size can be as small as 4096 bytes. So we cannot safely
1093b7c0c8c1SCy Schubert invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
1094b7c0c8c1SCy Schubert to allow for a few compiler-allocated temporary stack slots. */
1095b7c0c8c1SCy Schubert # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1096b7c0c8c1SCy Schubert # endif
1097b7c0c8c1SCy Schubert # else
1098b7c0c8c1SCy Schubert # define YYSTACK_ALLOC YYMALLOC
1099b7c0c8c1SCy Schubert # define YYSTACK_FREE YYFREE
1100b7c0c8c1SCy Schubert # ifndef YYSTACK_ALLOC_MAXIMUM
1101b7c0c8c1SCy Schubert # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1102b7c0c8c1SCy Schubert # endif
1103b7c0c8c1SCy Schubert # if (defined __cplusplus && ! defined EXIT_SUCCESS \
1104b7c0c8c1SCy Schubert && ! ((defined YYMALLOC || defined malloc) \
1105b7c0c8c1SCy Schubert && (defined YYFREE || defined free)))
1106b7c0c8c1SCy Schubert # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1107b7c0c8c1SCy Schubert # ifndef EXIT_SUCCESS
1108b7c0c8c1SCy Schubert # define EXIT_SUCCESS 0
1109b7c0c8c1SCy Schubert # endif
1110b7c0c8c1SCy Schubert # endif
1111b7c0c8c1SCy Schubert # ifndef YYMALLOC
1112b7c0c8c1SCy Schubert # define YYMALLOC malloc
1113b7c0c8c1SCy Schubert # if ! defined malloc && ! defined EXIT_SUCCESS
1114b7c0c8c1SCy Schubert void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1115b7c0c8c1SCy Schubert # endif
1116b7c0c8c1SCy Schubert # endif
1117b7c0c8c1SCy Schubert # ifndef YYFREE
1118b7c0c8c1SCy Schubert # define YYFREE free
1119b7c0c8c1SCy Schubert # if ! defined free && ! defined EXIT_SUCCESS
1120b7c0c8c1SCy Schubert void free (void *); /* INFRINGES ON USER NAME SPACE */
1121b7c0c8c1SCy Schubert # endif
1122b7c0c8c1SCy Schubert # endif
1123b7c0c8c1SCy Schubert # endif
1124b7c0c8c1SCy Schubert #endif /* !defined yyoverflow */
1125b7c0c8c1SCy Schubert
1126b7c0c8c1SCy Schubert #if (! defined yyoverflow \
1127b7c0c8c1SCy Schubert && (! defined __cplusplus \
1128b7c0c8c1SCy Schubert || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1129b7c0c8c1SCy Schubert
1130b7c0c8c1SCy Schubert /* A type that is properly aligned for any stack member. */
1131b7c0c8c1SCy Schubert union yyalloc
1132b7c0c8c1SCy Schubert {
1133b7c0c8c1SCy Schubert yy_state_t yyss_alloc;
1134b7c0c8c1SCy Schubert YYSTYPE yyvs_alloc;
1135b7c0c8c1SCy Schubert };
1136b7c0c8c1SCy Schubert
1137b7c0c8c1SCy Schubert /* The size of the maximum gap between one aligned stack and the next. */
1138b7c0c8c1SCy Schubert # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1139b7c0c8c1SCy Schubert
1140b7c0c8c1SCy Schubert /* The size of an array large to enough to hold all stacks, each with
1141b7c0c8c1SCy Schubert N elements. */
1142b7c0c8c1SCy Schubert # define YYSTACK_BYTES(N) \
1143b7c0c8c1SCy Schubert ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
1144b7c0c8c1SCy Schubert + YYSTACK_GAP_MAXIMUM)
1145b7c0c8c1SCy Schubert
1146b7c0c8c1SCy Schubert # define YYCOPY_NEEDED 1
1147b7c0c8c1SCy Schubert
1148b7c0c8c1SCy Schubert /* Relocate STACK from its old location to the new one. The
1149b7c0c8c1SCy Schubert local variables YYSIZE and YYSTACKSIZE give the old and new number of
1150b7c0c8c1SCy Schubert elements in the stack, and YYPTR gives the new location of the
1151b7c0c8c1SCy Schubert stack. Advance YYPTR to a properly aligned location for the next
1152b7c0c8c1SCy Schubert stack. */
1153b7c0c8c1SCy Schubert # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1154b7c0c8c1SCy Schubert do \
1155b7c0c8c1SCy Schubert { \
1156b7c0c8c1SCy Schubert YYPTRDIFF_T yynewbytes; \
1157b7c0c8c1SCy Schubert YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1158b7c0c8c1SCy Schubert Stack = &yyptr->Stack_alloc; \
1159b7c0c8c1SCy Schubert yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1160b7c0c8c1SCy Schubert yyptr += yynewbytes / YYSIZEOF (*yyptr); \
1161b7c0c8c1SCy Schubert } \
1162b7c0c8c1SCy Schubert while (0)
1163b7c0c8c1SCy Schubert
1164b7c0c8c1SCy Schubert #endif
1165b7c0c8c1SCy Schubert
1166b7c0c8c1SCy Schubert #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1167b7c0c8c1SCy Schubert /* Copy COUNT objects from SRC to DST. The source and destination do
1168b7c0c8c1SCy Schubert not overlap. */
1169b7c0c8c1SCy Schubert # ifndef YYCOPY
1170b7c0c8c1SCy Schubert # if defined __GNUC__ && 1 < __GNUC__
1171b7c0c8c1SCy Schubert # define YYCOPY(Dst, Src, Count) \
1172b7c0c8c1SCy Schubert __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1173b7c0c8c1SCy Schubert # else
1174b7c0c8c1SCy Schubert # define YYCOPY(Dst, Src, Count) \
1175b7c0c8c1SCy Schubert do \
1176b7c0c8c1SCy Schubert { \
1177b7c0c8c1SCy Schubert YYPTRDIFF_T yyi; \
1178b7c0c8c1SCy Schubert for (yyi = 0; yyi < (Count); yyi++) \
1179b7c0c8c1SCy Schubert (Dst)[yyi] = (Src)[yyi]; \
1180b7c0c8c1SCy Schubert } \
1181b7c0c8c1SCy Schubert while (0)
1182b7c0c8c1SCy Schubert # endif
1183b7c0c8c1SCy Schubert # endif
1184b7c0c8c1SCy Schubert #endif /* !YYCOPY_NEEDED */
1185b7c0c8c1SCy Schubert
1186b7c0c8c1SCy Schubert /* YYFINAL -- State number of the termination state. */
1187b7c0c8c1SCy Schubert #define YYFINAL 2
1188b7c0c8c1SCy Schubert /* YYLAST -- Last index in YYTABLE. */
1189*335c7cdaSCy Schubert #define YYLAST 761
1190b7c0c8c1SCy Schubert
1191b7c0c8c1SCy Schubert /* YYNTOKENS -- Number of terminals. */
1192*335c7cdaSCy Schubert #define YYNTOKENS 357
1193b7c0c8c1SCy Schubert /* YYNNTS -- Number of nonterminals. */
1194*335c7cdaSCy Schubert #define YYNNTS 382
1195b7c0c8c1SCy Schubert /* YYNRULES -- Number of rules. */
1196*335c7cdaSCy Schubert #define YYNRULES 741
1197b7c0c8c1SCy Schubert /* YYNSTATES -- Number of states. */
1198*335c7cdaSCy Schubert #define YYNSTATES 1111
1199b7c0c8c1SCy Schubert
1200b7c0c8c1SCy Schubert /* YYMAXUTOK -- Last valid token kind. */
1201*335c7cdaSCy Schubert #define YYMAXUTOK 611
1202b7c0c8c1SCy Schubert
1203b7c0c8c1SCy Schubert
1204b7c0c8c1SCy Schubert /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1205b7c0c8c1SCy Schubert as returned by yylex, with out-of-bounds checking. */
1206b7c0c8c1SCy Schubert #define YYTRANSLATE(YYX) \
1207b7c0c8c1SCy Schubert (0 <= (YYX) && (YYX) <= YYMAXUTOK \
1208b7c0c8c1SCy Schubert ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
1209b7c0c8c1SCy Schubert : YYSYMBOL_YYUNDEF)
1210b7c0c8c1SCy Schubert
1211b7c0c8c1SCy Schubert /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1212b7c0c8c1SCy Schubert as returned by yylex. */
1213b7c0c8c1SCy Schubert static const yytype_int16 yytranslate[] =
1214b7c0c8c1SCy Schubert {
1215b7c0c8c1SCy Schubert 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1216b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1217b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1218b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1219b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1220b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1221b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1222b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1223b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1224b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1225b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1226b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1227b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1228b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1229b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1230b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1231b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1232b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1233b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1234b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1235b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1236b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1237b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1238b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1239b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1240b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1241b7c0c8c1SCy Schubert 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1242b7c0c8c1SCy Schubert 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1243b7c0c8c1SCy Schubert 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1244b7c0c8c1SCy Schubert 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1245b7c0c8c1SCy Schubert 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1246b7c0c8c1SCy Schubert 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1247b7c0c8c1SCy Schubert 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1248b7c0c8c1SCy Schubert 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1249b7c0c8c1SCy Schubert 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1250b7c0c8c1SCy Schubert 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1251b7c0c8c1SCy Schubert 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1252b7c0c8c1SCy Schubert 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1253b7c0c8c1SCy Schubert 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1254b7c0c8c1SCy Schubert 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1255b7c0c8c1SCy Schubert 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1256b7c0c8c1SCy Schubert 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1257b7c0c8c1SCy Schubert 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1258b7c0c8c1SCy Schubert 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1259b7c0c8c1SCy Schubert 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1260b7c0c8c1SCy Schubert 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1261b7c0c8c1SCy Schubert 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1262b7c0c8c1SCy Schubert 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1263b7c0c8c1SCy Schubert 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1264b7c0c8c1SCy Schubert 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1265b7c0c8c1SCy Schubert 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1266b7c0c8c1SCy Schubert 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1267b7c0c8c1SCy Schubert 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1268b7c0c8c1SCy Schubert 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1269b7c0c8c1SCy Schubert 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1270b7c0c8c1SCy Schubert 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1271b7c0c8c1SCy Schubert 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1272b7c0c8c1SCy Schubert 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1273b7c0c8c1SCy Schubert 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1274b7c0c8c1SCy Schubert 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1275*335c7cdaSCy Schubert 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1276*335c7cdaSCy Schubert 355, 356
1277b7c0c8c1SCy Schubert };
1278b7c0c8c1SCy Schubert
1279b7c0c8c1SCy Schubert #if YYDEBUG
1280b7c0c8c1SCy Schubert /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
1281b7c0c8c1SCy Schubert static const yytype_int16 yyrline[] =
1282b7c0c8c1SCy Schubert {
1283*335c7cdaSCy Schubert 0, 209, 209, 209, 210, 210, 211, 211, 212, 212,
1284*335c7cdaSCy Schubert 212, 213, 213, 214, 214, 215, 215, 216, 218, 225,
1285*335c7cdaSCy Schubert 231, 232, 233, 233, 233, 234, 234, 235, 235, 235,
1286*335c7cdaSCy Schubert 236, 236, 236, 237, 237, 237, 238, 238, 239, 240,
1287*335c7cdaSCy Schubert 240, 240, 241, 241, 241, 242, 242, 243, 243, 244,
1288*335c7cdaSCy Schubert 244, 245, 245, 246, 246, 247, 247, 248, 248, 249,
1289*335c7cdaSCy Schubert 249, 250, 250, 250, 251, 251, 252, 252, 252, 253,
1290*335c7cdaSCy Schubert 253, 253, 254, 254, 255, 255, 256, 256, 257, 257,
1291*335c7cdaSCy Schubert 258, 258, 258, 259, 259, 260, 260, 261, 261, 261,
1292*335c7cdaSCy Schubert 262, 262, 263, 263, 264, 264, 265, 265, 265, 266,
1293*335c7cdaSCy Schubert 266, 267, 267, 268, 268, 269, 269, 270, 270, 271,
1294*335c7cdaSCy Schubert 271, 272, 272, 273, 273, 274, 274, 274, 275, 275,
1295*335c7cdaSCy Schubert 275, 276, 276, 276, 277, 277, 277, 277, 278, 279,
1296*335c7cdaSCy Schubert 279, 279, 280, 280, 280, 281, 281, 282, 282, 283,
1297*335c7cdaSCy Schubert 283, 283, 284, 284, 284, 285, 285, 286, 286, 286,
1298*335c7cdaSCy Schubert 287, 288, 288, 288, 289, 289, 289, 290, 290, 291,
1299*335c7cdaSCy Schubert 291, 292, 292, 293, 294, 294, 295, 295, 296, 296,
1300*335c7cdaSCy Schubert 297, 297, 298, 298, 299, 299, 300, 300, 301, 301,
1301*335c7cdaSCy Schubert 302, 302, 303, 303, 304, 305, 305, 306, 306, 306,
1302*335c7cdaSCy Schubert 307, 307, 308, 308, 309, 309, 310, 310, 310, 311,
1303*335c7cdaSCy Schubert 311, 312, 313, 313, 314, 314, 315, 316, 316, 317,
1304*335c7cdaSCy Schubert 317, 318, 318, 318, 319, 319, 320, 320, 320, 321,
1305*335c7cdaSCy Schubert 321, 321, 322, 322, 323, 324, 324, 325, 325, 326,
1306*335c7cdaSCy Schubert 326, 327, 327, 328, 328, 328, 329, 329, 329, 330,
1307*335c7cdaSCy Schubert 330, 330, 331, 331, 332, 332, 332, 333, 333, 334,
1308*335c7cdaSCy Schubert 334, 335, 335, 336, 336, 336, 337, 337, 338, 338,
1309*335c7cdaSCy Schubert 339, 339, 340, 340, 341, 341, 342, 342, 343, 343,
1310*335c7cdaSCy Schubert 344, 346, 360, 361, 362, 362, 362, 362, 362, 363,
1311*335c7cdaSCy Schubert 363, 363, 365, 379, 380, 381, 381, 381, 381, 382,
1312*335c7cdaSCy Schubert 382, 382, 384, 400, 401, 402, 402, 402, 402, 403,
1313*335c7cdaSCy Schubert 403, 403, 405, 426, 427, 428, 428, 428, 428, 429,
1314*335c7cdaSCy Schubert 429, 429, 430, 430, 430, 433, 452, 469, 477, 487,
1315*335c7cdaSCy Schubert 494, 504, 523, 524, 525, 525, 525, 525, 525, 526,
1316*335c7cdaSCy Schubert 526, 526, 527, 527, 527, 527, 529, 538, 547, 558,
1317*335c7cdaSCy Schubert 567, 576, 585, 594, 605, 614, 626, 640, 655, 666,
1318*335c7cdaSCy Schubert 683, 700, 717, 734, 749, 764, 777, 792, 801, 810,
1319*335c7cdaSCy Schubert 819, 828, 837, 846, 853, 862, 871, 880, 889, 898,
1320*335c7cdaSCy Schubert 907, 916, 925, 934, 947, 958, 969, 980, 989, 1002,
1321*335c7cdaSCy Schubert 1015, 1024, 1033, 1042, 1049, 1056, 1065, 1072, 1081, 1089,
1322*335c7cdaSCy Schubert 1096, 1103, 1111, 1120, 1128, 1144, 1152, 1160, 1168, 1176,
1323*335c7cdaSCy Schubert 1184, 1193, 1202, 1216, 1225, 1234, 1243, 1252, 1261, 1270,
1324*335c7cdaSCy Schubert 1279, 1286, 1293, 1319, 1327, 1334, 1341, 1348, 1355, 1363,
1325*335c7cdaSCy Schubert 1371, 1379, 1386, 1397, 1408, 1415, 1424, 1433, 1442, 1451,
1326*335c7cdaSCy Schubert 1458, 1465, 1472, 1488, 1496, 1504, 1514, 1524, 1534, 1548,
1327*335c7cdaSCy Schubert 1556, 1569, 1580, 1588, 1601, 1610, 1619, 1628, 1637, 1647,
1328*335c7cdaSCy Schubert 1657, 1665, 1678, 1687, 1695, 1704, 1712, 1725, 1734, 1743,
1329*335c7cdaSCy Schubert 1753, 1760, 1770, 1780, 1790, 1800, 1810, 1820, 1830, 1840,
1330*335c7cdaSCy Schubert 1850, 1857, 1864, 1871, 1880, 1889, 1898, 1907, 1914, 1924,
1331*335c7cdaSCy Schubert 1932, 1941, 1948, 1966, 1979, 1992, 2005, 2014, 2023, 2032,
1332*335c7cdaSCy Schubert 2041, 2050, 2060, 2070, 2081, 2090, 2099, 2108, 2117, 2126,
1333*335c7cdaSCy Schubert 2135, 2144, 2153, 2162, 2175, 2188, 2197, 2204, 2213, 2222,
1334*335c7cdaSCy Schubert 2231, 2240, 2250, 2258, 2271, 2279, 2335, 2342, 2357, 2367,
1335*335c7cdaSCy Schubert 2377, 2384, 2391, 2398, 2405, 2420, 2435, 2442, 2449, 2458,
1336*335c7cdaSCy Schubert 2466, 2473, 2487, 2508, 2529, 2541, 2553, 2565, 2574, 2595,
1337*335c7cdaSCy Schubert 2607, 2619, 2628, 2649, 2658, 2667, 2676, 2684, 2692, 2705,
1338*335c7cdaSCy Schubert 2718, 2733, 2748, 2757, 2766, 2776, 2786, 2795, 2804, 2813,
1339*335c7cdaSCy Schubert 2819, 2828, 2837, 2847, 2857, 2867, 2876, 2886, 2895, 2908,
1340*335c7cdaSCy Schubert 2921, 2933, 2947, 2959, 2973, 2982, 2993, 3002, 3009, 3019,
1341*335c7cdaSCy Schubert 3026, 3033, 3042, 3051, 3061, 3071, 3081, 3091, 3098, 3105,
1342*335c7cdaSCy Schubert 3114, 3123, 3133, 3143, 3153, 3160, 3167, 3174, 3182, 3192,
1343*335c7cdaSCy Schubert 3202, 3212, 3222, 3232, 3242, 3298, 3308, 3316, 3324, 3339,
1344*335c7cdaSCy Schubert 3348, 3354, 3355, 3356, 3356, 3356, 3357, 3357, 3357, 3358,
1345*335c7cdaSCy Schubert 3358, 3360, 3370, 3379, 3386, 3393, 3400, 3407, 3414, 3421,
1346*335c7cdaSCy Schubert 3427, 3428, 3429, 3429, 3429, 3430, 3430, 3430, 3431, 3432,
1347*335c7cdaSCy Schubert 3432, 3433, 3433, 3434, 3434, 3435, 3436, 3437, 3438, 3439,
1348*335c7cdaSCy Schubert 3440, 3442, 3451, 3461, 3468, 3475, 3484, 3491, 3498, 3505,
1349*335c7cdaSCy Schubert 3512, 3521, 3530, 3537, 3544, 3554, 3564, 3574, 3584, 3594,
1350*335c7cdaSCy Schubert 3604, 3610, 3611, 3612, 3614, 3621, 3627, 3628, 3629, 3631,
1351*335c7cdaSCy Schubert 3638, 3648, 3655, 3664, 3672, 3678, 3679, 3681, 3681, 3681,
1352*335c7cdaSCy Schubert 3682, 3682, 3683, 3684, 3685, 3686, 3687, 3689, 3698, 3707,
1353*335c7cdaSCy Schubert 3714, 3723, 3730, 3739, 3747, 3760, 3768, 3781, 3787, 3788,
1354*335c7cdaSCy Schubert 3789, 3789, 3790, 3790, 3790, 3791, 3791, 3791, 3792, 3792,
1355*335c7cdaSCy Schubert 3792, 3794, 3806, 3818, 3831, 3844, 3856, 3871, 3883, 3895,
1356*335c7cdaSCy Schubert 3908, 3921, 3936, 3947, 3956, 3972, 3978, 3979, 3980, 3980,
1357*335c7cdaSCy Schubert 3982, 3997
1358b7c0c8c1SCy Schubert };
1359b7c0c8c1SCy Schubert #endif
1360b7c0c8c1SCy Schubert
1361b7c0c8c1SCy Schubert /** Accessing symbol of state STATE. */
1362b7c0c8c1SCy Schubert #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
1363b7c0c8c1SCy Schubert
1364b7c0c8c1SCy Schubert #if YYDEBUG || 0
1365b7c0c8c1SCy Schubert /* The user-facing name of the symbol whose (internal) number is
1366b7c0c8c1SCy Schubert YYSYMBOL. No bounds checking. */
1367b7c0c8c1SCy Schubert static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
1368b7c0c8c1SCy Schubert
1369b7c0c8c1SCy Schubert /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1370b7c0c8c1SCy Schubert First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1371b7c0c8c1SCy Schubert static const char *const yytname[] =
1372b7c0c8c1SCy Schubert {
1373b7c0c8c1SCy Schubert "\"end of file\"", "error", "\"invalid token\"", "SPACE", "LETTER",
1374b7c0c8c1SCy Schubert "NEWLINE", "COMMENT", "COLON", "ANY", "ZONESTR", "STRING_ARG",
1375b7c0c8c1SCy Schubert "VAR_FORCE_TOPLEVEL", "VAR_SERVER", "VAR_VERBOSITY", "VAR_NUM_THREADS",
1376b7c0c8c1SCy Schubert "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE", "VAR_PREFER_IP4",
1377b7c0c8c1SCy Schubert "VAR_DO_IP4", "VAR_DO_IP6", "VAR_DO_NAT64", "VAR_PREFER_IP6",
1378b7c0c8c1SCy Schubert "VAR_DO_UDP", "VAR_DO_TCP", "VAR_TCP_MSS", "VAR_OUTGOING_TCP_MSS",
1379b7c0c8c1SCy Schubert "VAR_TCP_IDLE_TIMEOUT", "VAR_EDNS_TCP_KEEPALIVE",
1380b7c0c8c1SCy Schubert "VAR_EDNS_TCP_KEEPALIVE_TIMEOUT", "VAR_SOCK_QUEUE_TIMEOUT", "VAR_CHROOT",
1381b7c0c8c1SCy Schubert "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE",
1382b7c0c8c1SCy Schubert "VAR_MSG_CACHE_SIZE", "VAR_MSG_CACHE_SLABS",
1383b7c0c8c1SCy Schubert "VAR_NUM_QUERIES_PER_THREAD", "VAR_RRSET_CACHE_SIZE",
1384b7c0c8c1SCy Schubert "VAR_RRSET_CACHE_SLABS", "VAR_OUTGOING_NUM_TCP", "VAR_INFRA_HOST_TTL",
1385b7c0c8c1SCy Schubert "VAR_INFRA_LAME_TTL", "VAR_INFRA_CACHE_SLABS",
1386b7c0c8c1SCy Schubert "VAR_INFRA_CACHE_NUMHOSTS", "VAR_INFRA_CACHE_LAME_SIZE", "VAR_NAME",
1387b7c0c8c1SCy Schubert "VAR_STUB_ZONE", "VAR_STUB_HOST", "VAR_STUB_ADDR",
1388b7c0c8c1SCy Schubert "VAR_TARGET_FETCH_POLICY", "VAR_HARDEN_SHORT_BUFSIZE",
1389b7c0c8c1SCy Schubert "VAR_HARDEN_LARGE_QUERIES", "VAR_FORWARD_ZONE", "VAR_FORWARD_HOST",
1390b7c0c8c1SCy Schubert "VAR_FORWARD_ADDR", "VAR_DO_NOT_QUERY_ADDRESS", "VAR_HIDE_IDENTITY",
1391b7c0c8c1SCy Schubert "VAR_HIDE_VERSION", "VAR_IDENTITY", "VAR_VERSION", "VAR_HARDEN_GLUE",
1392b7c0c8c1SCy Schubert "VAR_MODULE_CONF", "VAR_TRUST_ANCHOR_FILE", "VAR_TRUST_ANCHOR",
1393b7c0c8c1SCy Schubert "VAR_VAL_OVERRIDE_DATE", "VAR_BOGUS_TTL", "VAR_VAL_CLEAN_ADDITIONAL",
1394b7c0c8c1SCy Schubert "VAR_VAL_PERMISSIVE_MODE", "VAR_INCOMING_NUM_TCP", "VAR_MSG_BUFFER_SIZE",
1395b7c0c8c1SCy Schubert "VAR_KEY_CACHE_SIZE", "VAR_KEY_CACHE_SLABS", "VAR_TRUSTED_KEYS_FILE",
1396b7c0c8c1SCy Schubert "VAR_VAL_NSEC3_KEYSIZE_ITERATIONS", "VAR_USE_SYSLOG",
1397b7c0c8c1SCy Schubert "VAR_OUTGOING_INTERFACE", "VAR_ROOT_HINTS", "VAR_DO_NOT_QUERY_LOCALHOST",
1398b7c0c8c1SCy Schubert "VAR_CACHE_MAX_TTL", "VAR_HARDEN_DNSSEC_STRIPPED", "VAR_ACCESS_CONTROL",
1399b7c0c8c1SCy Schubert "VAR_LOCAL_ZONE", "VAR_LOCAL_DATA", "VAR_INTERFACE_AUTOMATIC",
1400b7c0c8c1SCy Schubert "VAR_STATISTICS_INTERVAL", "VAR_DO_DAEMONIZE", "VAR_USE_CAPS_FOR_ID",
1401b7c0c8c1SCy Schubert "VAR_STATISTICS_CUMULATIVE", "VAR_OUTGOING_PORT_PERMIT",
1402b7c0c8c1SCy Schubert "VAR_OUTGOING_PORT_AVOID", "VAR_DLV_ANCHOR_FILE", "VAR_DLV_ANCHOR",
1403b7c0c8c1SCy Schubert "VAR_NEG_CACHE_SIZE", "VAR_HARDEN_REFERRAL_PATH", "VAR_PRIVATE_ADDRESS",
1404b7c0c8c1SCy Schubert "VAR_PRIVATE_DOMAIN", "VAR_REMOTE_CONTROL", "VAR_CONTROL_ENABLE",
1405b7c0c8c1SCy Schubert "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE",
1406b7c0c8c1SCy Schubert "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE",
1407b7c0c8c1SCy Schubert "VAR_CONTROL_USE_CERT", "VAR_TCP_REUSE_TIMEOUT",
1408b7c0c8c1SCy Schubert "VAR_MAX_REUSE_TCP_QUERIES", "VAR_EXTENDED_STATISTICS",
1409b7c0c8c1SCy Schubert "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT", "VAR_STUB_PRIME",
1410b7c0c8c1SCy Schubert "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII",
1411b7c0c8c1SCy Schubert "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT",
1412b7c0c8c1SCy Schubert "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "VAR_VAL_MAX_RESTART",
1413b7c0c8c1SCy Schubert "VAR_CACHE_MIN_TTL", "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE",
1414b7c0c8c1SCy Schubert "VAR_KEEP_MISSING", "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN",
1415b7c0c8c1SCy Schubert "VAR_SO_RCVBUF", "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH",
1416b7c0c8c1SCy Schubert "VAR_PREFETCH_KEY", "VAR_SO_SNDBUF", "VAR_SO_REUSEPORT",
1417b7c0c8c1SCy Schubert "VAR_HARDEN_BELOW_NXDOMAIN", "VAR_IGNORE_CD_FLAG", "VAR_LOG_QUERIES",
1418b7c0c8c1SCy Schubert "VAR_LOG_REPLIES", "VAR_LOG_LOCAL_ACTIONS", "VAR_TCP_UPSTREAM",
1419b7c0c8c1SCy Schubert "VAR_SSL_UPSTREAM", "VAR_TCP_AUTH_QUERY_TIMEOUT", "VAR_SSL_SERVICE_KEY",
1420b7c0c8c1SCy Schubert "VAR_SSL_SERVICE_PEM", "VAR_SSL_PORT", "VAR_FORWARD_FIRST",
1421b7c0c8c1SCy Schubert "VAR_STUB_SSL_UPSTREAM", "VAR_FORWARD_SSL_UPSTREAM",
1422b7c0c8c1SCy Schubert "VAR_TLS_CERT_BUNDLE", "VAR_STUB_TCP_UPSTREAM",
1423b7c0c8c1SCy Schubert "VAR_FORWARD_TCP_UPSTREAM", "VAR_HTTPS_PORT", "VAR_HTTP_ENDPOINT",
1424b7c0c8c1SCy Schubert "VAR_HTTP_MAX_STREAMS", "VAR_HTTP_QUERY_BUFFER_SIZE",
1425b7c0c8c1SCy Schubert "VAR_HTTP_RESPONSE_BUFFER_SIZE", "VAR_HTTP_NODELAY",
1426b7c0c8c1SCy Schubert "VAR_HTTP_NOTLS_DOWNSTREAM", "VAR_STUB_FIRST", "VAR_MINIMAL_RESPONSES",
1427b7c0c8c1SCy Schubert "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE", "VAR_DELAY_CLOSE",
1428b7c0c8c1SCy Schubert "VAR_UDP_CONNECT", "VAR_UNBLOCK_LAN_ZONES", "VAR_INSECURE_LAN_ZONES",
1429b7c0c8c1SCy Schubert "VAR_INFRA_CACHE_MIN_RTT", "VAR_INFRA_CACHE_MAX_RTT",
1430b7c0c8c1SCy Schubert "VAR_INFRA_KEEP_PROBING", "VAR_DNS64_PREFIX", "VAR_DNS64_SYNTHALL",
1431b7c0c8c1SCy Schubert "VAR_DNS64_IGNORE_AAAA", "VAR_NAT64_PREFIX", "VAR_DNSTAP",
1432b7c0c8c1SCy Schubert "VAR_DNSTAP_ENABLE", "VAR_DNSTAP_SOCKET_PATH", "VAR_DNSTAP_IP",
1433b7c0c8c1SCy Schubert "VAR_DNSTAP_TLS", "VAR_DNSTAP_TLS_SERVER_NAME",
1434b7c0c8c1SCy Schubert "VAR_DNSTAP_TLS_CERT_BUNDLE", "VAR_DNSTAP_TLS_CLIENT_KEY_FILE",
1435b7c0c8c1SCy Schubert "VAR_DNSTAP_TLS_CLIENT_CERT_FILE", "VAR_DNSTAP_SEND_IDENTITY",
1436b7c0c8c1SCy Schubert "VAR_DNSTAP_SEND_VERSION", "VAR_DNSTAP_BIDIRECTIONAL",
1437b7c0c8c1SCy Schubert "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION",
1438b7c0c8c1SCy Schubert "VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES",
1439b7c0c8c1SCy Schubert "VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES",
1440b7c0c8c1SCy Schubert "VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES",
1441b7c0c8c1SCy Schubert "VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES",
1442b7c0c8c1SCy Schubert "VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES",
1443b7c0c8c1SCy Schubert "VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES", "VAR_RESPONSE_IP_TAG",
1444b7c0c8c1SCy Schubert "VAR_RESPONSE_IP", "VAR_RESPONSE_IP_DATA", "VAR_HARDEN_ALGO_DOWNGRADE",
1445b7c0c8c1SCy Schubert "VAR_IP_TRANSPARENT", "VAR_IP_DSCP", "VAR_DISABLE_DNSSEC_LAME_CHECK",
1446b7c0c8c1SCy Schubert "VAR_IP_RATELIMIT", "VAR_IP_RATELIMIT_SLABS", "VAR_IP_RATELIMIT_SIZE",
1447b7c0c8c1SCy Schubert "VAR_RATELIMIT", "VAR_RATELIMIT_SLABS", "VAR_RATELIMIT_SIZE",
1448b7c0c8c1SCy Schubert "VAR_OUTBOUND_MSG_RETRY", "VAR_MAX_SENT_COUNT", "VAR_MAX_QUERY_RESTARTS",
1449b7c0c8c1SCy Schubert "VAR_RATELIMIT_FOR_DOMAIN", "VAR_RATELIMIT_BELOW_DOMAIN",
1450b7c0c8c1SCy Schubert "VAR_IP_RATELIMIT_FACTOR", "VAR_RATELIMIT_FACTOR",
1451b7c0c8c1SCy Schubert "VAR_IP_RATELIMIT_BACKOFF", "VAR_RATELIMIT_BACKOFF",
1452b7c0c8c1SCy Schubert "VAR_SEND_CLIENT_SUBNET", "VAR_CLIENT_SUBNET_ZONE",
1453b7c0c8c1SCy Schubert "VAR_CLIENT_SUBNET_ALWAYS_FORWARD", "VAR_CLIENT_SUBNET_OPCODE",
1454b7c0c8c1SCy Schubert "VAR_MAX_CLIENT_SUBNET_IPV4", "VAR_MAX_CLIENT_SUBNET_IPV6",
1455b7c0c8c1SCy Schubert "VAR_MIN_CLIENT_SUBNET_IPV4", "VAR_MIN_CLIENT_SUBNET_IPV6",
1456b7c0c8c1SCy Schubert "VAR_MAX_ECS_TREE_SIZE_IPV4", "VAR_MAX_ECS_TREE_SIZE_IPV6",
1457b7c0c8c1SCy Schubert "VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL",
1458*335c7cdaSCy Schubert "VAR_PERMIT_SMALL_HOLDDOWN", "VAR_CACHE_MIN_NEGATIVE_TTL",
1459*335c7cdaSCy Schubert "VAR_QNAME_MINIMISATION", "VAR_QNAME_MINIMISATION_STRICT",
1460*335c7cdaSCy Schubert "VAR_IP_FREEBIND", "VAR_DEFINE_TAG", "VAR_LOCAL_ZONE_TAG",
1461*335c7cdaSCy Schubert "VAR_ACCESS_CONTROL_TAG", "VAR_LOCAL_ZONE_OVERRIDE",
1462*335c7cdaSCy Schubert "VAR_ACCESS_CONTROL_TAG_ACTION", "VAR_ACCESS_CONTROL_TAG_DATA",
1463*335c7cdaSCy Schubert "VAR_VIEW", "VAR_ACCESS_CONTROL_VIEW", "VAR_VIEW_FIRST",
1464*335c7cdaSCy Schubert "VAR_SERVE_EXPIRED", "VAR_SERVE_EXPIRED_TTL",
1465b7c0c8c1SCy Schubert "VAR_SERVE_EXPIRED_TTL_RESET", "VAR_SERVE_EXPIRED_REPLY_TTL",
1466b7c0c8c1SCy Schubert "VAR_SERVE_EXPIRED_CLIENT_TIMEOUT", "VAR_EDE_SERVE_EXPIRED",
1467b7c0c8c1SCy Schubert "VAR_SERVE_ORIGINAL_TTL", "VAR_FAKE_DSA", "VAR_FAKE_SHA1",
1468b7c0c8c1SCy Schubert "VAR_LOG_IDENTITY", "VAR_HIDE_TRUSTANCHOR", "VAR_HIDE_HTTP_USER_AGENT",
1469b7c0c8c1SCy Schubert "VAR_HTTP_USER_AGENT", "VAR_TRUST_ANCHOR_SIGNALING",
1470b7c0c8c1SCy Schubert "VAR_AGGRESSIVE_NSEC", "VAR_USE_SYSTEMD", "VAR_SHM_ENABLE",
1471b7c0c8c1SCy Schubert "VAR_SHM_KEY", "VAR_ROOT_KEY_SENTINEL", "VAR_DNSCRYPT",
1472b7c0c8c1SCy Schubert "VAR_DNSCRYPT_ENABLE", "VAR_DNSCRYPT_PORT", "VAR_DNSCRYPT_PROVIDER",
1473b7c0c8c1SCy Schubert "VAR_DNSCRYPT_SECRET_KEY", "VAR_DNSCRYPT_PROVIDER_CERT",
1474b7c0c8c1SCy Schubert "VAR_DNSCRYPT_PROVIDER_CERT_ROTATED",
1475b7c0c8c1SCy Schubert "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE",
1476b7c0c8c1SCy Schubert "VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS",
1477b7c0c8c1SCy Schubert "VAR_DNSCRYPT_NONCE_CACHE_SIZE", "VAR_DNSCRYPT_NONCE_CACHE_SLABS",
1478b7c0c8c1SCy Schubert "VAR_PAD_RESPONSES", "VAR_PAD_RESPONSES_BLOCK_SIZE", "VAR_PAD_QUERIES",
1479b7c0c8c1SCy Schubert "VAR_PAD_QUERIES_BLOCK_SIZE", "VAR_IPSECMOD_ENABLED",
1480b7c0c8c1SCy Schubert "VAR_IPSECMOD_HOOK", "VAR_IPSECMOD_IGNORE_BOGUS", "VAR_IPSECMOD_MAX_TTL",
1481b7c0c8c1SCy Schubert "VAR_IPSECMOD_WHITELIST", "VAR_IPSECMOD_STRICT", "VAR_CACHEDB",
1482b7c0c8c1SCy Schubert "VAR_CACHEDB_BACKEND", "VAR_CACHEDB_SECRETSEED", "VAR_CACHEDB_REDISHOST",
1483b7c0c8c1SCy Schubert "VAR_CACHEDB_REDISPORT", "VAR_CACHEDB_REDISTIMEOUT",
1484b7c0c8c1SCy Schubert "VAR_CACHEDB_REDISEXPIRERECORDS", "VAR_CACHEDB_REDISPATH",
1485b7c0c8c1SCy Schubert "VAR_CACHEDB_REDISPASSWORD", "VAR_CACHEDB_REDISLOGICALDB",
1486b7c0c8c1SCy Schubert "VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM", "VAR_FOR_UPSTREAM",
1487b7c0c8c1SCy Schubert "VAR_AUTH_ZONE", "VAR_ZONEFILE", "VAR_MASTER", "VAR_URL",
1488b7c0c8c1SCy Schubert "VAR_FOR_DOWNSTREAM", "VAR_FALLBACK_ENABLED", "VAR_TLS_ADDITIONAL_PORT",
1489b7c0c8c1SCy Schubert "VAR_LOW_RTT", "VAR_LOW_RTT_PERMIL", "VAR_FAST_SERVER_PERMIL",
1490b7c0c8c1SCy Schubert "VAR_FAST_SERVER_NUM", "VAR_ALLOW_NOTIFY", "VAR_TLS_WIN_CERT",
1491b7c0c8c1SCy Schubert "VAR_TCP_CONNECTION_LIMIT", "VAR_ANSWER_COOKIE", "VAR_COOKIE_SECRET",
1492b7c0c8c1SCy Schubert "VAR_IP_RATELIMIT_COOKIE", "VAR_FORWARD_NO_CACHE", "VAR_STUB_NO_CACHE",
1493b7c0c8c1SCy Schubert "VAR_LOG_SERVFAIL", "VAR_DENY_ANY", "VAR_UNKNOWN_SERVER_TIME_LIMIT",
1494*335c7cdaSCy Schubert "VAR_LOG_TAG_QUERYREPLY", "VAR_DISCARD_TIMEOUT", "VAR_WAIT_LIMIT",
1495*335c7cdaSCy Schubert "VAR_WAIT_LIMIT_COOKIE", "VAR_WAIT_LIMIT_NETBLOCK",
1496*335c7cdaSCy Schubert "VAR_WAIT_LIMIT_COOKIE_NETBLOCK", "VAR_STREAM_WAIT_SIZE",
1497*335c7cdaSCy Schubert "VAR_TLS_CIPHERS", "VAR_TLS_CIPHERSUITES", "VAR_TLS_USE_SNI",
1498*335c7cdaSCy Schubert "VAR_IPSET", "VAR_IPSET_NAME_V4", "VAR_IPSET_NAME_V6",
1499*335c7cdaSCy Schubert "VAR_TLS_SESSION_TICKET_KEYS", "VAR_RPZ", "VAR_TAGS",
1500*335c7cdaSCy Schubert "VAR_RPZ_ACTION_OVERRIDE", "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG",
1501*335c7cdaSCy Schubert "VAR_RPZ_LOG_NAME", "VAR_DYNLIB", "VAR_DYNLIB_FILE",
1502*335c7cdaSCy Schubert "VAR_EDNS_CLIENT_STRING", "VAR_EDNS_CLIENT_STRING_OPCODE", "VAR_NSID",
1503b7c0c8c1SCy Schubert "VAR_ZONEMD_PERMISSIVE_MODE", "VAR_ZONEMD_CHECK",
1504b7c0c8c1SCy Schubert "VAR_ZONEMD_REJECT_ABSENCE", "VAR_RPZ_SIGNAL_NXDOMAIN_RA",
1505b7c0c8c1SCy Schubert "VAR_INTERFACE_AUTOMATIC_PORTS", "VAR_EDE", "VAR_INTERFACE_ACTION",
1506b7c0c8c1SCy Schubert "VAR_INTERFACE_VIEW", "VAR_INTERFACE_TAG", "VAR_INTERFACE_TAG_ACTION",
1507b7c0c8c1SCy Schubert "VAR_INTERFACE_TAG_DATA", "VAR_PROXY_PROTOCOL_PORT",
1508b7c0c8c1SCy Schubert "VAR_STATISTICS_INHIBIT_ZERO", "VAR_HARDEN_UNKNOWN_ADDITIONAL",
1509b7c0c8c1SCy Schubert "VAR_DISABLE_EDNS_DO", "VAR_CACHEDB_NO_STORE", "VAR_LOG_DESTADDR",
1510*335c7cdaSCy Schubert "VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED", "$accept", "toplevelvars",
1511*335c7cdaSCy Schubert "toplevelvar", "force_toplevel", "serverstart", "contents_server",
1512*335c7cdaSCy Schubert "content_server", "stubstart", "contents_stub", "content_stub",
1513*335c7cdaSCy Schubert "forwardstart", "contents_forward", "content_forward", "viewstart",
1514*335c7cdaSCy Schubert "contents_view", "content_view", "authstart", "contents_auth",
1515*335c7cdaSCy Schubert "content_auth", "rpz_tag", "rpz_action_override", "rpz_cname_override",
1516*335c7cdaSCy Schubert "rpz_log", "rpz_log_name", "rpz_signal_nxdomain_ra", "rpzstart",
1517*335c7cdaSCy Schubert "contents_rpz", "content_rpz", "server_num_threads", "server_verbosity",
1518*335c7cdaSCy Schubert "server_statistics_interval", "server_statistics_cumulative",
1519*335c7cdaSCy Schubert "server_extended_statistics", "server_statistics_inhibit_zero",
1520*335c7cdaSCy Schubert "server_shm_enable", "server_shm_key", "server_port",
1521*335c7cdaSCy Schubert "server_send_client_subnet", "server_client_subnet_zone",
1522b7c0c8c1SCy Schubert "server_client_subnet_always_forward", "server_client_subnet_opcode",
1523b7c0c8c1SCy Schubert "server_max_client_subnet_ipv4", "server_max_client_subnet_ipv6",
1524b7c0c8c1SCy Schubert "server_min_client_subnet_ipv4", "server_min_client_subnet_ipv6",
1525b7c0c8c1SCy Schubert "server_max_ecs_tree_size_ipv4", "server_max_ecs_tree_size_ipv6",
1526b7c0c8c1SCy Schubert "server_interface", "server_outgoing_interface", "server_outgoing_range",
1527b7c0c8c1SCy Schubert "server_outgoing_port_permit", "server_outgoing_port_avoid",
1528b7c0c8c1SCy Schubert "server_outgoing_num_tcp", "server_incoming_num_tcp",
1529b7c0c8c1SCy Schubert "server_interface_automatic", "server_interface_automatic_ports",
1530b7c0c8c1SCy Schubert "server_do_ip4", "server_do_ip6", "server_do_nat64", "server_do_udp",
1531b7c0c8c1SCy Schubert "server_do_tcp", "server_prefer_ip4", "server_prefer_ip6",
1532b7c0c8c1SCy Schubert "server_tcp_mss", "server_outgoing_tcp_mss", "server_tcp_idle_timeout",
1533b7c0c8c1SCy Schubert "server_max_reuse_tcp_queries", "server_tcp_reuse_timeout",
1534b7c0c8c1SCy Schubert "server_tcp_auth_query_timeout", "server_tcp_keepalive",
1535b7c0c8c1SCy Schubert "server_tcp_keepalive_timeout", "server_sock_queue_timeout",
1536b7c0c8c1SCy Schubert "server_tcp_upstream", "server_udp_upstream_without_downstream",
1537b7c0c8c1SCy Schubert "server_ssl_upstream", "server_ssl_service_key",
1538b7c0c8c1SCy Schubert "server_ssl_service_pem", "server_ssl_port", "server_tls_cert_bundle",
1539b7c0c8c1SCy Schubert "server_tls_win_cert", "server_tls_additional_port",
1540b7c0c8c1SCy Schubert "server_tls_ciphers", "server_tls_ciphersuites",
1541b7c0c8c1SCy Schubert "server_tls_session_ticket_keys", "server_tls_use_sni",
1542b7c0c8c1SCy Schubert "server_https_port", "server_http_endpoint", "server_http_max_streams",
1543b7c0c8c1SCy Schubert "server_http_query_buffer_size", "server_http_response_buffer_size",
1544b7c0c8c1SCy Schubert "server_http_nodelay", "server_http_notls_downstream",
1545b7c0c8c1SCy Schubert "server_use_systemd", "server_do_daemonize", "server_use_syslog",
1546b7c0c8c1SCy Schubert "server_log_time_ascii", "server_log_queries", "server_log_replies",
1547b7c0c8c1SCy Schubert "server_log_tag_queryreply", "server_log_servfail",
1548b7c0c8c1SCy Schubert "server_log_destaddr", "server_log_local_actions", "server_chroot",
1549b7c0c8c1SCy Schubert "server_username", "server_directory", "server_logfile",
1550b7c0c8c1SCy Schubert "server_pidfile", "server_root_hints", "server_dlv_anchor_file",
1551b7c0c8c1SCy Schubert "server_dlv_anchor", "server_auto_trust_anchor_file",
1552b7c0c8c1SCy Schubert "server_trust_anchor_file", "server_trusted_keys_file",
1553b7c0c8c1SCy Schubert "server_trust_anchor", "server_trust_anchor_signaling",
1554b7c0c8c1SCy Schubert "server_root_key_sentinel", "server_domain_insecure",
1555b7c0c8c1SCy Schubert "server_hide_identity", "server_hide_version", "server_hide_trustanchor",
1556b7c0c8c1SCy Schubert "server_hide_http_user_agent", "server_identity", "server_version",
1557b7c0c8c1SCy Schubert "server_http_user_agent", "server_nsid", "server_so_rcvbuf",
1558b7c0c8c1SCy Schubert "server_so_sndbuf", "server_so_reuseport", "server_ip_transparent",
1559b7c0c8c1SCy Schubert "server_ip_freebind", "server_ip_dscp", "server_stream_wait_size",
1560b7c0c8c1SCy Schubert "server_edns_buffer_size", "server_msg_buffer_size",
1561b7c0c8c1SCy Schubert "server_msg_cache_size", "server_msg_cache_slabs",
1562b7c0c8c1SCy Schubert "server_num_queries_per_thread", "server_jostle_timeout",
1563b7c0c8c1SCy Schubert "server_delay_close", "server_udp_connect", "server_unblock_lan_zones",
1564b7c0c8c1SCy Schubert "server_insecure_lan_zones", "server_rrset_cache_size",
1565b7c0c8c1SCy Schubert "server_rrset_cache_slabs", "server_infra_host_ttl",
1566b7c0c8c1SCy Schubert "server_infra_lame_ttl", "server_infra_cache_numhosts",
1567b7c0c8c1SCy Schubert "server_infra_cache_lame_size", "server_infra_cache_slabs",
1568b7c0c8c1SCy Schubert "server_infra_cache_min_rtt", "server_infra_cache_max_rtt",
1569b7c0c8c1SCy Schubert "server_infra_keep_probing", "server_target_fetch_policy",
1570b7c0c8c1SCy Schubert "server_harden_short_bufsize", "server_harden_large_queries",
1571b7c0c8c1SCy Schubert "server_harden_glue", "server_harden_dnssec_stripped",
1572b7c0c8c1SCy Schubert "server_harden_below_nxdomain", "server_harden_referral_path",
1573b7c0c8c1SCy Schubert "server_harden_algo_downgrade", "server_harden_unknown_additional",
1574b7c0c8c1SCy Schubert "server_use_caps_for_id", "server_caps_whitelist",
1575b7c0c8c1SCy Schubert "server_private_address", "server_private_domain", "server_prefetch",
1576b7c0c8c1SCy Schubert "server_prefetch_key", "server_deny_any",
1577b7c0c8c1SCy Schubert "server_unwanted_reply_threshold", "server_do_not_query_address",
1578b7c0c8c1SCy Schubert "server_do_not_query_localhost", "server_access_control",
1579b7c0c8c1SCy Schubert "server_interface_action", "server_module_conf",
1580b7c0c8c1SCy Schubert "server_val_override_date", "server_val_sig_skew_min",
1581b7c0c8c1SCy Schubert "server_val_sig_skew_max", "server_val_max_restart",
1582b7c0c8c1SCy Schubert "server_cache_max_ttl", "server_cache_max_negative_ttl",
1583*335c7cdaSCy Schubert "server_cache_min_negative_ttl", "server_cache_min_ttl",
1584*335c7cdaSCy Schubert "server_bogus_ttl", "server_val_clean_additional",
1585*335c7cdaSCy Schubert "server_val_permissive_mode", "server_aggressive_nsec",
1586*335c7cdaSCy Schubert "server_ignore_cd_flag", "server_disable_edns_do",
1587*335c7cdaSCy Schubert "server_serve_expired", "server_serve_expired_ttl",
1588*335c7cdaSCy Schubert "server_serve_expired_ttl_reset", "server_serve_expired_reply_ttl",
1589*335c7cdaSCy Schubert "server_serve_expired_client_timeout", "server_ede_serve_expired",
1590*335c7cdaSCy Schubert "server_serve_original_ttl", "server_fake_dsa", "server_fake_sha1",
1591*335c7cdaSCy Schubert "server_val_log_level", "server_val_nsec3_keysize_iterations",
1592*335c7cdaSCy Schubert "server_zonemd_permissive_mode", "server_add_holddown",
1593*335c7cdaSCy Schubert "server_del_holddown", "server_keep_missing",
1594b7c0c8c1SCy Schubert "server_permit_small_holddown", "server_key_cache_size",
1595b7c0c8c1SCy Schubert "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone",
1596b7c0c8c1SCy Schubert "server_local_data", "server_local_data_ptr", "server_minimal_responses",
1597b7c0c8c1SCy Schubert "server_rrset_roundrobin", "server_unknown_server_time_limit",
1598*335c7cdaSCy Schubert "server_discard_timeout", "server_wait_limit",
1599*335c7cdaSCy Schubert "server_wait_limit_cookie", "server_wait_limit_netblock",
1600*335c7cdaSCy Schubert "server_wait_limit_cookie_netblock", "server_max_udp_size",
1601*335c7cdaSCy Schubert "server_dns64_prefix", "server_dns64_synthall",
1602b7c0c8c1SCy Schubert "server_dns64_ignore_aaaa", "server_nat64_prefix", "server_define_tag",
1603b7c0c8c1SCy Schubert "server_local_zone_tag", "server_access_control_tag",
1604b7c0c8c1SCy Schubert "server_access_control_tag_action", "server_access_control_tag_data",
1605b7c0c8c1SCy Schubert "server_local_zone_override", "server_access_control_view",
1606b7c0c8c1SCy Schubert "server_interface_tag", "server_interface_tag_action",
1607b7c0c8c1SCy Schubert "server_interface_tag_data", "server_interface_view",
1608b7c0c8c1SCy Schubert "server_response_ip_tag", "server_ip_ratelimit",
1609b7c0c8c1SCy Schubert "server_ip_ratelimit_cookie", "server_ratelimit",
1610b7c0c8c1SCy Schubert "server_ip_ratelimit_size", "server_ratelimit_size",
1611b7c0c8c1SCy Schubert "server_ip_ratelimit_slabs", "server_ratelimit_slabs",
1612b7c0c8c1SCy Schubert "server_ratelimit_for_domain", "server_ratelimit_below_domain",
1613b7c0c8c1SCy Schubert "server_ip_ratelimit_factor", "server_ratelimit_factor",
1614b7c0c8c1SCy Schubert "server_ip_ratelimit_backoff", "server_ratelimit_backoff",
1615b7c0c8c1SCy Schubert "server_outbound_msg_retry", "server_max_sent_count",
1616b7c0c8c1SCy Schubert "server_max_query_restarts", "server_low_rtt", "server_fast_server_num",
1617b7c0c8c1SCy Schubert "server_fast_server_permil", "server_qname_minimisation",
1618b7c0c8c1SCy Schubert "server_qname_minimisation_strict", "server_pad_responses",
1619b7c0c8c1SCy Schubert "server_pad_responses_block_size", "server_pad_queries",
1620b7c0c8c1SCy Schubert "server_pad_queries_block_size", "server_ipsecmod_enabled",
1621b7c0c8c1SCy Schubert "server_ipsecmod_ignore_bogus", "server_ipsecmod_hook",
1622b7c0c8c1SCy Schubert "server_ipsecmod_max_ttl", "server_ipsecmod_whitelist",
1623b7c0c8c1SCy Schubert "server_ipsecmod_strict", "server_edns_client_string",
1624b7c0c8c1SCy Schubert "server_edns_client_string_opcode", "server_ede",
1625b7c0c8c1SCy Schubert "server_proxy_protocol_port", "stub_name", "stub_host", "stub_addr",
1626b7c0c8c1SCy Schubert "stub_first", "stub_no_cache", "stub_ssl_upstream", "stub_tcp_upstream",
1627b7c0c8c1SCy Schubert "stub_prime", "forward_name", "forward_host", "forward_addr",
1628b7c0c8c1SCy Schubert "forward_first", "forward_no_cache", "forward_ssl_upstream",
1629b7c0c8c1SCy Schubert "forward_tcp_upstream", "auth_name", "auth_zonefile", "auth_master",
1630b7c0c8c1SCy Schubert "auth_url", "auth_allow_notify", "auth_zonemd_check",
1631b7c0c8c1SCy Schubert "auth_zonemd_reject_absence", "auth_for_downstream", "auth_for_upstream",
1632b7c0c8c1SCy Schubert "auth_fallback_enabled", "view_name", "view_local_zone",
1633b7c0c8c1SCy Schubert "view_response_ip", "view_response_ip_data", "view_local_data",
1634b7c0c8c1SCy Schubert "view_local_data_ptr", "view_first", "rcstart", "contents_rc",
1635b7c0c8c1SCy Schubert "content_rc", "rc_control_enable", "rc_control_port",
1636b7c0c8c1SCy Schubert "rc_control_interface", "rc_control_use_cert", "rc_server_key_file",
1637b7c0c8c1SCy Schubert "rc_server_cert_file", "rc_control_key_file", "rc_control_cert_file",
1638b7c0c8c1SCy Schubert "dtstart", "contents_dt", "content_dt", "dt_dnstap_enable",
1639b7c0c8c1SCy Schubert "dt_dnstap_bidirectional", "dt_dnstap_socket_path", "dt_dnstap_ip",
1640b7c0c8c1SCy Schubert "dt_dnstap_tls", "dt_dnstap_tls_server_name",
1641b7c0c8c1SCy Schubert "dt_dnstap_tls_cert_bundle", "dt_dnstap_tls_client_key_file",
1642b7c0c8c1SCy Schubert "dt_dnstap_tls_client_cert_file", "dt_dnstap_send_identity",
1643b7c0c8c1SCy Schubert "dt_dnstap_send_version", "dt_dnstap_identity", "dt_dnstap_version",
1644b7c0c8c1SCy Schubert "dt_dnstap_log_resolver_query_messages",
1645b7c0c8c1SCy Schubert "dt_dnstap_log_resolver_response_messages",
1646b7c0c8c1SCy Schubert "dt_dnstap_log_client_query_messages",
1647b7c0c8c1SCy Schubert "dt_dnstap_log_client_response_messages",
1648b7c0c8c1SCy Schubert "dt_dnstap_log_forwarder_query_messages",
1649b7c0c8c1SCy Schubert "dt_dnstap_log_forwarder_response_messages", "pythonstart",
1650b7c0c8c1SCy Schubert "contents_py", "content_py", "py_script", "dynlibstart", "contents_dl",
1651b7c0c8c1SCy Schubert "content_dl", "dl_file", "server_disable_dnssec_lame_check",
1652b7c0c8c1SCy Schubert "server_log_identity", "server_response_ip", "server_response_ip_data",
1653b7c0c8c1SCy Schubert "dnscstart", "contents_dnsc", "content_dnsc", "dnsc_dnscrypt_enable",
1654b7c0c8c1SCy Schubert "dnsc_dnscrypt_port", "dnsc_dnscrypt_provider",
1655b7c0c8c1SCy Schubert "dnsc_dnscrypt_provider_cert", "dnsc_dnscrypt_provider_cert_rotated",
1656b7c0c8c1SCy Schubert "dnsc_dnscrypt_secret_key", "dnsc_dnscrypt_shared_secret_cache_size",
1657b7c0c8c1SCy Schubert "dnsc_dnscrypt_shared_secret_cache_slabs",
1658b7c0c8c1SCy Schubert "dnsc_dnscrypt_nonce_cache_size", "dnsc_dnscrypt_nonce_cache_slabs",
1659b7c0c8c1SCy Schubert "cachedbstart", "contents_cachedb", "content_cachedb",
1660b7c0c8c1SCy Schubert "cachedb_backend_name", "cachedb_secret_seed", "cachedb_no_store",
1661*335c7cdaSCy Schubert "cachedb_check_when_serve_expired", "redis_server_host",
1662*335c7cdaSCy Schubert "redis_server_port", "redis_server_path", "redis_server_password",
1663*335c7cdaSCy Schubert "redis_timeout", "redis_expire_records", "redis_logical_db",
1664*335c7cdaSCy Schubert "server_tcp_connection_limit", "server_answer_cookie",
1665*335c7cdaSCy Schubert "server_cookie_secret", "ipsetstart", "contents_ipset", "content_ipset",
1666*335c7cdaSCy Schubert "ipset_name_v4", "ipset_name_v6", YY_NULLPTR
1667b7c0c8c1SCy Schubert };
1668b7c0c8c1SCy Schubert
1669b7c0c8c1SCy Schubert static const char *
yysymbol_name(yysymbol_kind_t yysymbol)1670b7c0c8c1SCy Schubert yysymbol_name (yysymbol_kind_t yysymbol)
1671b7c0c8c1SCy Schubert {
1672b7c0c8c1SCy Schubert return yytname[yysymbol];
1673b7c0c8c1SCy Schubert }
1674b7c0c8c1SCy Schubert #endif
1675b7c0c8c1SCy Schubert
1676b7c0c8c1SCy Schubert #ifdef YYPRINT
1677b7c0c8c1SCy Schubert /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1678b7c0c8c1SCy Schubert (internal) symbol number NUM (which must be that of a token). */
1679b7c0c8c1SCy Schubert static const yytype_int16 yytoknum[] =
1680b7c0c8c1SCy Schubert {
1681b7c0c8c1SCy Schubert 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1682b7c0c8c1SCy Schubert 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1683b7c0c8c1SCy Schubert 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1684b7c0c8c1SCy Schubert 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1685b7c0c8c1SCy Schubert 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1686b7c0c8c1SCy Schubert 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1687b7c0c8c1SCy Schubert 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1688b7c0c8c1SCy Schubert 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1689b7c0c8c1SCy Schubert 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1690b7c0c8c1SCy Schubert 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1691b7c0c8c1SCy Schubert 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1692b7c0c8c1SCy Schubert 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1693b7c0c8c1SCy Schubert 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1694b7c0c8c1SCy Schubert 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1695b7c0c8c1SCy Schubert 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1696b7c0c8c1SCy Schubert 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1697b7c0c8c1SCy Schubert 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1698b7c0c8c1SCy Schubert 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1699b7c0c8c1SCy Schubert 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1700b7c0c8c1SCy Schubert 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1701b7c0c8c1SCy Schubert 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1702b7c0c8c1SCy Schubert 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1703b7c0c8c1SCy Schubert 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
1704b7c0c8c1SCy Schubert 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
1705b7c0c8c1SCy Schubert 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
1706b7c0c8c1SCy Schubert 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
1707b7c0c8c1SCy Schubert 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
1708b7c0c8c1SCy Schubert 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
1709b7c0c8c1SCy Schubert 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
1710b7c0c8c1SCy Schubert 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
1711b7c0c8c1SCy Schubert 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
1712b7c0c8c1SCy Schubert 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
1713b7c0c8c1SCy Schubert 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
1714b7c0c8c1SCy Schubert 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
1715*335c7cdaSCy Schubert 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
1716*335c7cdaSCy Schubert 605, 606, 607, 608, 609, 610, 611
1717b7c0c8c1SCy Schubert };
1718b7c0c8c1SCy Schubert #endif
1719b7c0c8c1SCy Schubert
1720*335c7cdaSCy Schubert #define YYPACT_NINF (-299)
1721b7c0c8c1SCy Schubert
1722b7c0c8c1SCy Schubert #define yypact_value_is_default(Yyn) \
1723b7c0c8c1SCy Schubert ((Yyn) == YYPACT_NINF)
1724b7c0c8c1SCy Schubert
1725b7c0c8c1SCy Schubert #define YYTABLE_NINF (-1)
1726b7c0c8c1SCy Schubert
1727b7c0c8c1SCy Schubert #define yytable_value_is_error(Yyn) \
1728b7c0c8c1SCy Schubert 0
1729b7c0c8c1SCy Schubert
1730b7c0c8c1SCy Schubert /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1731b7c0c8c1SCy Schubert STATE-NUM. */
1732b7c0c8c1SCy Schubert static const yytype_int16 yypact[] =
1733b7c0c8c1SCy Schubert {
1734*335c7cdaSCy Schubert -299, 267, -299, -299, -299, -299, -299, -299, -299, -299,
1735*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1736*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1737*335c7cdaSCy Schubert -299, -299, -13, 199, 225, 235, 112, 56, -14, 281,
1738*335c7cdaSCy Schubert -81, -298, -100, 135, -291, 31, 32, 33, 83, 89,
1739*335c7cdaSCy Schubert 94, 121, 122, 123, 125, 126, 134, 160, 161, 162,
1740*335c7cdaSCy Schubert 163, 164, 165, 166, 167, 168, 214, 216, 237, 240,
1741*335c7cdaSCy Schubert 241, 242, 243, 244, 245, 246, 258, 259, 260, 261,
1742*335c7cdaSCy Schubert 263, 264, 265, 266, 273, 274, 277, 280, 286, 287,
1743*335c7cdaSCy Schubert 302, 303, 306, 307, 310, 312, 317, 318, 319, 331,
1744*335c7cdaSCy Schubert 333, 336, 338, 343, 344, 345, 347, 348, 350, 351,
1745*335c7cdaSCy Schubert 352, 353, 354, 356, 357, 358, 360, 362, 363, 365,
1746*335c7cdaSCy Schubert 366, 367, 368, 369, 370, 371, 372, 374, 380, 381,
1747*335c7cdaSCy Schubert 382, 383, 384, 385, 386, 387, 389, 390, 391, 392,
1748*335c7cdaSCy Schubert 394, 400, 401, 402, 403, 404, 415, 416, 417, 420,
1749*335c7cdaSCy Schubert 421, 422, 423, 424, 425, 426, 427, 428, 430, 431,
1750*335c7cdaSCy Schubert 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
1751*335c7cdaSCy Schubert 463, 465, 466, 467, 468, 469, 470, 471, 472, 473,
1752*335c7cdaSCy Schubert 474, 475, 476, 477, 478, 480, 482, 483, 484, 485,
1753*335c7cdaSCy Schubert 486, 487, 488, 489, 490, 491, 492, 493, 495, 496,
1754*335c7cdaSCy Schubert 497, 498, 500, 501, 502, 503, 504, 505, 506, 507,
1755*335c7cdaSCy Schubert 508, 509, 510, 511, 512, 513, 514, 515, 517, 518,
1756*335c7cdaSCy Schubert 519, 520, 521, 522, 523, 525, 526, 527, 528, 529,
1757*335c7cdaSCy Schubert 530, 531, 532, 533, 534, 535, 536, 538, 539, 540,
1758*335c7cdaSCy Schubert 541, 542, 543, 544, 545, 546, 547, 548, 550, 551,
1759*335c7cdaSCy Schubert 552, 553, 554, 555, 556, 557, 558, 559, 560, 561,
1760*335c7cdaSCy Schubert 562, 563, 564, 565, 566, 567, 568, 569, 570, 571,
1761*335c7cdaSCy Schubert 572, 573, 574, 575, 576, 577, 578, 579, 580, 582,
1762*335c7cdaSCy Schubert 583, 584, 586, 587, 588, 589, 590, 592, 593, 594,
1763*335c7cdaSCy Schubert 595, 596, 597, 598, -299, -299, -299, -299, -299, -299,
1764*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1765*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1766*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1767*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1768*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1769*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1770*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1771*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1772*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1773*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1774*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1775*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1776*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1777*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1778*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1779*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1780*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1781*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1782*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1783*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1784*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1785*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1786*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1787*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1788*335c7cdaSCy Schubert -299, -299, -299, -299, 599, 600, 601, 602, 603, 604,
1789*335c7cdaSCy Schubert 605, 606, -299, -299, -299, -299, -299, -299, -299, -299,
1790*335c7cdaSCy Schubert -299, 607, 608, 609, 610, 611, 612, 613, -299, -299,
1791*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, 614, 615, 616, 617,
1792*335c7cdaSCy Schubert 618, 619, 620, -299, -299, -299, -299, -299, -299, -299,
1793*335c7cdaSCy Schubert -299, 621, 622, 623, 624, 625, 626, 627, 628, 629,
1794*335c7cdaSCy Schubert 630, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1795*335c7cdaSCy Schubert -299, -299, 631, 632, 633, 634, 635, 636, -299, -299,
1796*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1797*335c7cdaSCy Schubert -299, 637, 638, 639, 640, 641, 642, 643, 644, -299,
1798*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, 645, 646,
1799*335c7cdaSCy Schubert 647, 648, 649, 650, 651, 652, 653, 654, 655, 656,
1800*335c7cdaSCy Schubert 657, 658, 659, 660, 661, 662, 663, -299, -299, -299,
1801*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1802*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, 664, -299, -299,
1803*335c7cdaSCy Schubert 665, -299, -299, 666, 667, 668, 669, 670, 671, 672,
1804*335c7cdaSCy Schubert 673, 674, 675, -299, -299, -299, -299, -299, -299, -299,
1805*335c7cdaSCy Schubert -299, -299, -299, -299, 676, 677, 678, 679, 680, 681,
1806*335c7cdaSCy Schubert 682, 683, 684, 685, 686, -299, -299, -299, -299, -299,
1807*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, 687, 688, -299,
1808*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1809*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1810*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1811*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1812*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1813*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1814*335c7cdaSCy Schubert -299, -299, -299, -299, 689, 690, -299, -299, -299, -299,
1815*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1816*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1817*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1818*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1819*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1820*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1821*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, 691, 692, 693, -299,
1822*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1823*335c7cdaSCy Schubert -299, -299, 694, 695, -299, -299, -299, -299, -299, -299,
1824*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1825*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, 696, 697, 698, 699,
1826*335c7cdaSCy Schubert 700, 701, -299, -299, -299, -299, -299, -299, -299, -299,
1827*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1828*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1829*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, 702, -299, -299,
1830*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, 703, 704,
1831*335c7cdaSCy Schubert -299, -299, -299, -299, -299, 705, -299, -299, -299, -299,
1832*335c7cdaSCy Schubert -299, 706, 707, 708, 709, 710, -299, -299, -299, -299,
1833*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1834*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, 711, -299, -299,
1835*335c7cdaSCy Schubert 712, 713, -299, -299, -299, -299, -299, -299, -299, -299,
1836*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1837*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1838*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1839*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1840*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1841*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1842*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1843*335c7cdaSCy Schubert 714, 715, 716, -299, -299, -299, -299, -299, -299, -299,
1844*335c7cdaSCy Schubert -299, 717, 718, -299, -299, -299, -299, -299, -299, -299,
1845*335c7cdaSCy Schubert -299
1846b7c0c8c1SCy Schubert };
1847b7c0c8c1SCy Schubert
1848b7c0c8c1SCy Schubert /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1849b7c0c8c1SCy Schubert Performed when YYTABLE does not specify something else to do. Zero
1850b7c0c8c1SCy Schubert means the default is an error. */
1851b7c0c8c1SCy Schubert static const yytype_int16 yydefact[] =
1852b7c0c8c1SCy Schubert {
1853*335c7cdaSCy Schubert 2, 0, 1, 18, 19, 271, 282, 610, 670, 629,
1854*335c7cdaSCy Schubert 292, 684, 707, 302, 735, 321, 675, 3, 17, 21,
1855*335c7cdaSCy Schubert 273, 284, 294, 304, 323, 612, 631, 672, 677, 686,
1856*335c7cdaSCy Schubert 709, 737, 4, 5, 6, 10, 14, 15, 8, 9,
1857b7c0c8c1SCy Schubert 7, 16, 11, 12, 13, 0, 0, 0, 0, 0,
1858b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1862b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1863b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1865b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1866b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1867b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1870b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1871b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1876b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1878b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1879b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1880b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1881b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1882*335c7cdaSCy Schubert 0, 0, 0, 0, 20, 22, 23, 90, 93, 102,
1883*335c7cdaSCy Schubert 267, 219, 220, 24, 172, 173, 174, 175, 176, 177,
1884*335c7cdaSCy Schubert 178, 179, 180, 181, 39, 81, 25, 94, 95, 50,
1885*335c7cdaSCy Schubert 74, 89, 264, 26, 27, 28, 31, 32, 29, 30,
1886*335c7cdaSCy Schubert 33, 34, 35, 261, 262, 263, 36, 37, 38, 126,
1887*335c7cdaSCy Schubert 231, 127, 129, 130, 131, 233, 238, 234, 250, 251,
1888*335c7cdaSCy Schubert 252, 256, 132, 133, 134, 135, 136, 137, 138, 215,
1889*335c7cdaSCy Schubert 91, 80, 106, 124, 125, 243, 240, 270, 128, 40,
1890*335c7cdaSCy Schubert 41, 42, 43, 44, 82, 96, 97, 113, 68, 78,
1891*335c7cdaSCy Schubert 69, 223, 224, 107, 60, 61, 222, 64, 62, 63,
1892*335c7cdaSCy Schubert 65, 259, 117, 121, 142, 154, 187, 157, 249, 118,
1893*335c7cdaSCy Schubert 75, 45, 46, 47, 104, 143, 144, 145, 146, 48,
1894*335c7cdaSCy Schubert 49, 51, 52, 54, 55, 53, 151, 152, 158, 56,
1895*335c7cdaSCy Schubert 57, 58, 66, 85, 122, 99, 153, 268, 92, 182,
1896*335c7cdaSCy Schubert 100, 101, 119, 120, 241, 105, 59, 83, 86, 196,
1897*335c7cdaSCy Schubert 67, 70, 108, 109, 110, 84, 183, 184, 111, 71,
1898*335c7cdaSCy Schubert 72, 73, 232, 123, 269, 206, 207, 208, 209, 210,
1899*335c7cdaSCy Schubert 211, 212, 213, 221, 112, 79, 260, 114, 115, 116,
1900*335c7cdaSCy Schubert 185, 76, 77, 98, 87, 88, 103, 139, 140, 242,
1901*335c7cdaSCy Schubert 244, 245, 246, 247, 248, 141, 147, 148, 149, 150,
1902*335c7cdaSCy Schubert 188, 189, 191, 193, 194, 192, 195, 198, 199, 200,
1903*335c7cdaSCy Schubert 197, 216, 155, 255, 156, 161, 162, 159, 160, 163,
1904*335c7cdaSCy Schubert 164, 166, 165, 168, 167, 169, 170, 171, 235, 237,
1905*335c7cdaSCy Schubert 236, 186, 201, 202, 203, 204, 205, 225, 227, 226,
1906*335c7cdaSCy Schubert 228, 229, 230, 257, 258, 265, 266, 190, 214, 217,
1907*335c7cdaSCy Schubert 218, 239, 253, 254, 0, 0, 0, 0, 0, 0,
1908*335c7cdaSCy Schubert 0, 0, 272, 274, 275, 276, 278, 279, 280, 281,
1909*335c7cdaSCy Schubert 277, 0, 0, 0, 0, 0, 0, 0, 283, 285,
1910*335c7cdaSCy Schubert 286, 287, 288, 289, 290, 291, 0, 0, 0, 0,
1911*335c7cdaSCy Schubert 0, 0, 0, 293, 295, 296, 299, 300, 297, 301,
1912*335c7cdaSCy Schubert 298, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913*335c7cdaSCy Schubert 0, 303, 305, 306, 307, 308, 312, 313, 314, 309,
1914*335c7cdaSCy Schubert 310, 311, 0, 0, 0, 0, 0, 0, 326, 330,
1915*335c7cdaSCy Schubert 331, 332, 333, 334, 322, 324, 325, 327, 328, 329,
1916*335c7cdaSCy Schubert 335, 0, 0, 0, 0, 0, 0, 0, 0, 611,
1917*335c7cdaSCy Schubert 613, 615, 614, 620, 616, 617, 618, 619, 0, 0,
1918*335c7cdaSCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1919*335c7cdaSCy Schubert 0, 0, 0, 0, 0, 0, 0, 630, 632, 634,
1920*335c7cdaSCy Schubert 633, 635, 636, 637, 638, 639, 640, 641, 642, 643,
1921*335c7cdaSCy Schubert 644, 645, 646, 647, 648, 649, 650, 0, 671, 673,
1922*335c7cdaSCy Schubert 0, 676, 678, 0, 0, 0, 0, 0, 0, 0,
1923*335c7cdaSCy Schubert 0, 0, 0, 685, 687, 688, 689, 691, 692, 690,
1924*335c7cdaSCy Schubert 693, 694, 695, 696, 0, 0, 0, 0, 0, 0,
1925*335c7cdaSCy Schubert 0, 0, 0, 0, 0, 708, 710, 711, 718, 720,
1926*335c7cdaSCy Schubert 712, 713, 716, 717, 714, 715, 719, 0, 0, 736,
1927*335c7cdaSCy Schubert 738, 739, 337, 336, 344, 357, 355, 369, 364, 365,
1928*335c7cdaSCy Schubert 366, 370, 367, 368, 371, 372, 373, 377, 378, 379,
1929*335c7cdaSCy Schubert 410, 411, 412, 413, 414, 442, 443, 444, 450, 451,
1930*335c7cdaSCy Schubert 360, 452, 453, 456, 454, 455, 460, 461, 462, 477,
1931*335c7cdaSCy Schubert 425, 426, 429, 430, 463, 481, 419, 421, 482, 490,
1932*335c7cdaSCy Schubert 491, 492, 361, 441, 512, 513, 420, 506, 402, 356,
1933*335c7cdaSCy Schubert 415, 478, 486, 464, 0, 0, 516, 362, 338, 401,
1934*335c7cdaSCy Schubert 469, 339, 358, 359, 416, 417, 514, 466, 471, 472,
1935*335c7cdaSCy Schubert 375, 374, 340, 517, 445, 476, 403, 424, 483, 484,
1936*335c7cdaSCy Schubert 485, 489, 505, 418, 510, 508, 509, 433, 440, 473,
1937*335c7cdaSCy Schubert 474, 434, 435, 465, 494, 404, 405, 409, 380, 382,
1938*335c7cdaSCy Schubert 376, 383, 384, 385, 386, 393, 394, 395, 396, 397,
1939*335c7cdaSCy Schubert 398, 399, 518, 519, 526, 446, 447, 448, 449, 457,
1940*335c7cdaSCy Schubert 458, 459, 527, 528, 529, 530, 0, 0, 0, 467,
1941*335c7cdaSCy Schubert 436, 438, 680, 543, 548, 546, 545, 549, 547, 556,
1942*335c7cdaSCy Schubert 557, 558, 0, 0, 552, 553, 554, 555, 345, 346,
1943*335c7cdaSCy Schubert 347, 348, 349, 350, 351, 352, 353, 354, 470, 487,
1944*335c7cdaSCy Schubert 511, 488, 562, 563, 437, 531, 0, 0, 0, 0,
1945*335c7cdaSCy Schubert 0, 0, 496, 497, 498, 499, 500, 501, 502, 503,
1946*335c7cdaSCy Schubert 504, 681, 427, 428, 431, 422, 493, 400, 342, 343,
1947*335c7cdaSCy Schubert 423, 564, 565, 566, 567, 568, 570, 569, 571, 572,
1948*335c7cdaSCy Schubert 573, 381, 388, 559, 561, 560, 387, 0, 733, 734,
1949*335c7cdaSCy Schubert 544, 407, 475, 520, 406, 521, 522, 523, 0, 0,
1950*335c7cdaSCy Schubert 439, 389, 390, 392, 391, 0, 575, 432, 507, 363,
1951*335c7cdaSCy Schubert 576, 0, 0, 0, 0, 0, 577, 341, 468, 495,
1952*335c7cdaSCy Schubert 408, 578, 579, 580, 585, 583, 584, 581, 582, 586,
1953*335c7cdaSCy Schubert 587, 588, 589, 591, 592, 590, 603, 0, 607, 608,
1954*335c7cdaSCy Schubert 0, 0, 609, 593, 601, 594, 595, 596, 600, 602,
1955*335c7cdaSCy Schubert 597, 598, 599, 315, 316, 317, 318, 319, 320, 621,
1956*335c7cdaSCy Schubert 623, 622, 625, 626, 627, 628, 624, 651, 653, 654,
1957*335c7cdaSCy Schubert 655, 656, 657, 658, 659, 660, 661, 652, 662, 663,
1958*335c7cdaSCy Schubert 664, 665, 666, 667, 668, 669, 674, 679, 697, 698,
1959*335c7cdaSCy Schubert 699, 702, 700, 701, 703, 704, 705, 706, 721, 722,
1960*335c7cdaSCy Schubert 725, 726, 729, 730, 727, 728, 731, 723, 724, 740,
1961*335c7cdaSCy Schubert 741, 479, 515, 542, 682, 683, 550, 551, 532, 533,
1962*335c7cdaSCy Schubert 0, 0, 0, 537, 732, 524, 525, 574, 480, 541,
1963*335c7cdaSCy Schubert 538, 0, 0, 604, 605, 606, 536, 534, 535, 539,
1964*335c7cdaSCy Schubert 540
1965b7c0c8c1SCy Schubert };
1966b7c0c8c1SCy Schubert
1967b7c0c8c1SCy Schubert /* YYPGOTO[NTERM-NUM]. */
1968b7c0c8c1SCy Schubert static const yytype_int16 yypgoto[] =
1969b7c0c8c1SCy Schubert {
1970*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1971*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1972*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1973*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1974*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1975*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1976*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1977*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1978*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1979*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1980*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1981*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1982*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1983*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1984*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1985*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1986*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1987*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1988*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1989*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1990*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1991*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1992*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1993*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1994*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1995*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1996*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1997*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
1998*335c7cdaSCy Schubert -299, -299, -299, -299, -299, 719, 720, 721, 722, 723,
1999*335c7cdaSCy Schubert -299, -299, 724, -299, -299, -299, -299, -299, -299, -299,
2000*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
2001*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
2002*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
2003*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
2004*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
2005*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
2006*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
2007*335c7cdaSCy Schubert -299, -299, -299, -299, -299, -299, -299, -299, -299, -299,
2008*335c7cdaSCy Schubert -299, -299
2009b7c0c8c1SCy Schubert };
2010b7c0c8c1SCy Schubert
2011b7c0c8c1SCy Schubert /* YYDEFGOTO[NTERM-NUM]. */
2012b7c0c8c1SCy Schubert static const yytype_int16 yydefgoto[] =
2013b7c0c8c1SCy Schubert {
2014*335c7cdaSCy Schubert 0, 1, 17, 18, 19, 32, 294, 20, 33, 552,
2015*335c7cdaSCy Schubert 21, 34, 568, 22, 35, 583, 23, 36, 601, 618,
2016*335c7cdaSCy Schubert 619, 620, 621, 622, 623, 24, 37, 624, 295, 296,
2017*335c7cdaSCy Schubert 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
2018*335c7cdaSCy Schubert 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
2019*335c7cdaSCy Schubert 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
2020*335c7cdaSCy Schubert 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
2021*335c7cdaSCy Schubert 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
2022*335c7cdaSCy Schubert 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
2023*335c7cdaSCy Schubert 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
2024*335c7cdaSCy Schubert 367, 368, 369, 370, 371, 372, 373, 374, 375, 376,
2025*335c7cdaSCy Schubert 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
2026*335c7cdaSCy Schubert 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
2027*335c7cdaSCy Schubert 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
2028*335c7cdaSCy Schubert 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
2029*335c7cdaSCy Schubert 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
2030*335c7cdaSCy Schubert 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
2031*335c7cdaSCy Schubert 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
2032*335c7cdaSCy Schubert 447, 448, 449, 450, 451, 452, 453, 454, 455, 456,
2033*335c7cdaSCy Schubert 457, 458, 459, 460, 461, 462, 463, 464, 465, 466,
2034*335c7cdaSCy Schubert 467, 468, 469, 470, 471, 472, 473, 474, 475, 476,
2035*335c7cdaSCy Schubert 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
2036*335c7cdaSCy Schubert 487, 488, 489, 490, 491, 492, 493, 494, 495, 496,
2037*335c7cdaSCy Schubert 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
2038*335c7cdaSCy Schubert 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
2039*335c7cdaSCy Schubert 517, 518, 519, 520, 521, 522, 523, 524, 525, 526,
2040*335c7cdaSCy Schubert 527, 528, 529, 530, 531, 532, 533, 534, 535, 536,
2041*335c7cdaSCy Schubert 553, 554, 555, 556, 557, 558, 559, 560, 569, 570,
2042*335c7cdaSCy Schubert 571, 572, 573, 574, 575, 602, 603, 604, 605, 606,
2043*335c7cdaSCy Schubert 607, 608, 609, 610, 611, 584, 585, 586, 587, 588,
2044*335c7cdaSCy Schubert 589, 590, 25, 38, 639, 640, 641, 642, 643, 644,
2045*335c7cdaSCy Schubert 645, 646, 647, 26, 39, 667, 668, 669, 670, 671,
2046*335c7cdaSCy Schubert 672, 673, 674, 675, 676, 677, 678, 679, 680, 681,
2047*335c7cdaSCy Schubert 682, 683, 684, 685, 686, 27, 40, 688, 689, 28,
2048*335c7cdaSCy Schubert 41, 691, 692, 537, 538, 539, 540, 29, 42, 703,
2049*335c7cdaSCy Schubert 704, 705, 706, 707, 708, 709, 710, 711, 712, 713,
2050*335c7cdaSCy Schubert 30, 43, 725, 726, 727, 728, 729, 730, 731, 732,
2051*335c7cdaSCy Schubert 733, 734, 735, 736, 541, 542, 543, 31, 44, 739,
2052*335c7cdaSCy Schubert 740, 741
2053b7c0c8c1SCy Schubert };
2054b7c0c8c1SCy Schubert
2055b7c0c8c1SCy Schubert /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
2056b7c0c8c1SCy Schubert positive, shift that token. If negative, reduce the rule whose
2057b7c0c8c1SCy Schubert number is the opposite. If YYTABLE_NINF, syntax error. */
2058b7c0c8c1SCy Schubert static const yytype_int16 yytable[] =
2059b7c0c8c1SCy Schubert {
2060b7c0c8c1SCy Schubert 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2061b7c0c8c1SCy Schubert 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2062b7c0c8c1SCy Schubert 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2063*335c7cdaSCy Schubert 75, 76, 77, 78, 737, 738, 687, 690, 79, 80,
2064*335c7cdaSCy Schubert 81, 742, 743, 744, 82, 83, 84, 85, 86, 87,
2065b7c0c8c1SCy Schubert 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
2066b7c0c8c1SCy Schubert 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
2067b7c0c8c1SCy Schubert 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
2068*335c7cdaSCy Schubert 118, 119, 120, 121, 122, 631, 632, 633, 634, 635,
2069*335c7cdaSCy Schubert 636, 637, 638, 745, 123, 124, 125, 126, 127, 746,
2070*335c7cdaSCy Schubert 128, 129, 130, 591, 747, 131, 132, 133, 134, 135,
2071b7c0c8c1SCy Schubert 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
2072b7c0c8c1SCy Schubert 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2073*335c7cdaSCy Schubert 156, 748, 749, 750, 157, 751, 752, 158, 159, 160,
2074*335c7cdaSCy Schubert 161, 162, 163, 164, 753, 165, 166, 167, 168, 169,
2075*335c7cdaSCy Schubert 170, 171, 172, 173, 174, 175, 176, 177, 178, 591,
2076*335c7cdaSCy Schubert 693, 694, 695, 696, 697, 698, 699, 700, 701, 702,
2077*335c7cdaSCy Schubert 754, 755, 756, 757, 758, 759, 760, 761, 762, 179,
2078b7c0c8c1SCy Schubert 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
2079b7c0c8c1SCy Schubert 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
2080b7c0c8c1SCy Schubert 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
2081b7c0c8c1SCy Schubert 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
2082*335c7cdaSCy Schubert 220, 221, 222, 223, 763, 224, 764, 225, 226, 227,
2083b7c0c8c1SCy Schubert 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
2084*335c7cdaSCy Schubert 238, 239, 240, 241, 242, 243, 544, 765, 545, 546,
2085*335c7cdaSCy Schubert 766, 767, 768, 769, 770, 771, 772, 244, 245, 246,
2086*335c7cdaSCy Schubert 247, 248, 249, 250, 251, 252, 253, 2, 773, 774,
2087*335c7cdaSCy Schubert 775, 776, 561, 777, 778, 779, 780, 254, 3, 4,
2088*335c7cdaSCy Schubert 562, 563, 576, 781, 782, 255, 256, 783, 257, 258,
2089*335c7cdaSCy Schubert 784, 259, 260, 261, 262, 263, 785, 786, 264, 265,
2090*335c7cdaSCy Schubert 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
2091*335c7cdaSCy Schubert 276, 547, 787, 788, 277, 5, 789, 790, 577, 578,
2092*335c7cdaSCy Schubert 791, 6, 792, 278, 279, 280, 281, 793, 794, 795,
2093*335c7cdaSCy Schubert 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
2094*335c7cdaSCy Schubert 292, 796, 293, 797, 548, 579, 798, 549, 799, 593,
2095*335c7cdaSCy Schubert 594, 595, 596, 800, 801, 802, 550, 803, 804, 598,
2096*335c7cdaSCy Schubert 805, 806, 807, 808, 809, 7, 810, 811, 812, 564,
2097*335c7cdaSCy Schubert 813, 565, 814, 815, 566, 816, 817, 818, 819, 820,
2098*335c7cdaSCy Schubert 821, 822, 823, 8, 824, 612, 613, 614, 615, 616,
2099*335c7cdaSCy Schubert 825, 826, 827, 828, 829, 830, 831, 832, 617, 833,
2100*335c7cdaSCy Schubert 834, 835, 836, 592, 837, 593, 594, 595, 596, 597,
2101*335c7cdaSCy Schubert 838, 839, 840, 841, 842, 598, 714, 715, 716, 717,
2102*335c7cdaSCy Schubert 718, 719, 720, 721, 722, 843, 844, 845, 580, 581,
2103*335c7cdaSCy Schubert 846, 847, 848, 849, 850, 851, 852, 853, 854, 9,
2104*335c7cdaSCy Schubert 855, 856, 857, 858, 859, 860, 861, 862, 863, 864,
2105*335c7cdaSCy Schubert 865, 866, 599, 600, 648, 649, 650, 651, 652, 653,
2106*335c7cdaSCy Schubert 654, 655, 656, 657, 658, 659, 660, 661, 662, 663,
2107*335c7cdaSCy Schubert 664, 665, 666, 867, 582, 868, 869, 870, 871, 872,
2108*335c7cdaSCy Schubert 873, 874, 875, 876, 877, 878, 879, 880, 881, 723,
2109*335c7cdaSCy Schubert 882, 724, 883, 884, 885, 886, 887, 888, 889, 890,
2110*335c7cdaSCy Schubert 891, 892, 893, 894, 10, 895, 896, 897, 898, 551,
2111*335c7cdaSCy Schubert 899, 900, 901, 902, 903, 904, 905, 906, 907, 908,
2112*335c7cdaSCy Schubert 909, 910, 911, 912, 913, 914, 11, 915, 916, 917,
2113*335c7cdaSCy Schubert 918, 919, 920, 921, 567, 922, 923, 924, 925, 926,
2114*335c7cdaSCy Schubert 927, 928, 929, 930, 931, 932, 933, 12, 934, 935,
2115*335c7cdaSCy Schubert 936, 937, 938, 939, 940, 941, 942, 943, 944, 13,
2116*335c7cdaSCy Schubert 945, 946, 947, 948, 949, 950, 951, 952, 953, 954,
2117*335c7cdaSCy Schubert 955, 956, 957, 958, 959, 960, 961, 962, 963, 964,
2118*335c7cdaSCy Schubert 965, 966, 967, 968, 969, 970, 971, 972, 973, 974,
2119*335c7cdaSCy Schubert 975, 14, 976, 977, 978, 15, 979, 980, 981, 982,
2120*335c7cdaSCy Schubert 983, 16, 984, 985, 986, 987, 988, 989, 990, 991,
2121*335c7cdaSCy Schubert 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001,
2122*335c7cdaSCy Schubert 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
2123*335c7cdaSCy Schubert 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
2124*335c7cdaSCy Schubert 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031,
2125*335c7cdaSCy Schubert 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
2126*335c7cdaSCy Schubert 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051,
2127*335c7cdaSCy Schubert 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061,
2128*335c7cdaSCy Schubert 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071,
2129*335c7cdaSCy Schubert 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
2130*335c7cdaSCy Schubert 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091,
2131*335c7cdaSCy Schubert 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101,
2132*335c7cdaSCy Schubert 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 0,
2133b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2134b7c0c8c1SCy Schubert 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2135*335c7cdaSCy Schubert 0, 0, 0, 0, 0, 0, 625, 626, 627, 628,
2136*335c7cdaSCy Schubert 629, 630
2137b7c0c8c1SCy Schubert };
2138b7c0c8c1SCy Schubert
2139b7c0c8c1SCy Schubert static const yytype_int16 yycheck[] =
2140b7c0c8c1SCy Schubert {
2141b7c0c8c1SCy Schubert 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
2142b7c0c8c1SCy Schubert 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
2143b7c0c8c1SCy Schubert 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2144*335c7cdaSCy Schubert 43, 44, 45, 46, 325, 326, 117, 335, 51, 52,
2145b7c0c8c1SCy Schubert 53, 10, 10, 10, 57, 58, 59, 60, 61, 62,
2146b7c0c8c1SCy Schubert 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2147b7c0c8c1SCy Schubert 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2148b7c0c8c1SCy Schubert 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
2149*335c7cdaSCy Schubert 93, 94, 95, 96, 97, 99, 100, 101, 102, 103,
2150*335c7cdaSCy Schubert 104, 105, 106, 10, 107, 108, 109, 110, 111, 10,
2151b7c0c8c1SCy Schubert 113, 114, 115, 47, 10, 118, 119, 120, 121, 122,
2152b7c0c8c1SCy Schubert 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2153b7c0c8c1SCy Schubert 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
2154*335c7cdaSCy Schubert 143, 10, 10, 10, 147, 10, 10, 150, 151, 152,
2155b7c0c8c1SCy Schubert 153, 154, 155, 156, 10, 158, 159, 160, 161, 162,
2156*335c7cdaSCy Schubert 163, 164, 165, 166, 167, 168, 169, 170, 171, 47,
2157*335c7cdaSCy Schubert 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
2158*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 192,
2159b7c0c8c1SCy Schubert 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
2160b7c0c8c1SCy Schubert 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
2161b7c0c8c1SCy Schubert 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
2162b7c0c8c1SCy Schubert 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
2163*335c7cdaSCy Schubert 233, 234, 235, 236, 10, 238, 10, 240, 241, 242,
2164b7c0c8c1SCy Schubert 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
2165*335c7cdaSCy Schubert 253, 254, 255, 256, 257, 258, 47, 10, 49, 50,
2166*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 270, 271, 272,
2167*335c7cdaSCy Schubert 273, 274, 275, 276, 277, 278, 279, 0, 10, 10,
2168*335c7cdaSCy Schubert 10, 10, 47, 10, 10, 10, 10, 290, 11, 12,
2169*335c7cdaSCy Schubert 55, 56, 47, 10, 10, 298, 299, 10, 301, 302,
2170*335c7cdaSCy Schubert 10, 304, 305, 306, 307, 308, 10, 10, 311, 312,
2171*335c7cdaSCy Schubert 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
2172*335c7cdaSCy Schubert 323, 112, 10, 10, 327, 48, 10, 10, 83, 84,
2173*335c7cdaSCy Schubert 10, 54, 10, 336, 337, 338, 339, 10, 10, 10,
2174*335c7cdaSCy Schubert 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
2175*335c7cdaSCy Schubert 353, 10, 355, 10, 145, 110, 10, 148, 10, 293,
2176*335c7cdaSCy Schubert 294, 295, 296, 10, 10, 10, 157, 10, 10, 303,
2177*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 98, 10, 10, 10, 144,
2178*335c7cdaSCy Schubert 10, 146, 10, 10, 149, 10, 10, 10, 10, 10,
2179*335c7cdaSCy Schubert 10, 10, 10, 116, 10, 329, 330, 331, 332, 333,
2180*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 342, 10,
2181*335c7cdaSCy Schubert 10, 10, 10, 291, 10, 293, 294, 295, 296, 297,
2182*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 303, 281, 282, 283, 284,
2183*335c7cdaSCy Schubert 285, 286, 287, 288, 289, 10, 10, 10, 193, 194,
2184*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 172,
2185b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2186*335c7cdaSCy Schubert 10, 10, 340, 341, 173, 174, 175, 176, 177, 178,
2187*335c7cdaSCy Schubert 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
2188*335c7cdaSCy Schubert 189, 190, 191, 10, 239, 10, 10, 10, 10, 10,
2189*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 354,
2190*335c7cdaSCy Schubert 10, 356, 10, 10, 10, 10, 10, 10, 10, 10,
2191*335c7cdaSCy Schubert 10, 10, 10, 10, 237, 10, 10, 10, 10, 310,
2192*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2193*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 259, 10, 10, 10,
2194*335c7cdaSCy Schubert 10, 10, 10, 10, 309, 10, 10, 10, 10, 10,
2195*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 280, 10, 10,
2196*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 292,
2197b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2198b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2199b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2200*335c7cdaSCy Schubert 10, 324, 10, 10, 10, 328, 10, 10, 10, 10,
2201*335c7cdaSCy Schubert 10, 334, 10, 10, 10, 10, 10, 10, 10, 10,
2202b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2203b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2204b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2205b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2206b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2207b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2208b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2209b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2210b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2211b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2212b7c0c8c1SCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2213*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, -1,
2214b7c0c8c1SCy Schubert -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2215b7c0c8c1SCy Schubert -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2216*335c7cdaSCy Schubert -1, -1, -1, -1, -1, -1, 37, 37, 37, 37,
2217*335c7cdaSCy Schubert 37, 37
2218b7c0c8c1SCy Schubert };
2219b7c0c8c1SCy Schubert
2220b7c0c8c1SCy Schubert /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2221b7c0c8c1SCy Schubert symbol of state STATE-NUM. */
2222b7c0c8c1SCy Schubert static const yytype_int16 yystos[] =
2223b7c0c8c1SCy Schubert {
2224*335c7cdaSCy Schubert 0, 358, 0, 11, 12, 48, 54, 98, 116, 172,
2225*335c7cdaSCy Schubert 237, 259, 280, 292, 324, 328, 334, 359, 360, 361,
2226*335c7cdaSCy Schubert 364, 367, 370, 373, 382, 659, 670, 692, 696, 704,
2227*335c7cdaSCy Schubert 717, 734, 362, 365, 368, 371, 374, 383, 660, 671,
2228*335c7cdaSCy Schubert 693, 697, 705, 718, 735, 13, 14, 15, 16, 17,
2229b7c0c8c1SCy Schubert 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
2230b7c0c8c1SCy Schubert 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
2231b7c0c8c1SCy Schubert 38, 39, 40, 41, 42, 43, 44, 45, 46, 51,
2232b7c0c8c1SCy Schubert 52, 53, 57, 58, 59, 60, 61, 62, 63, 64,
2233b7c0c8c1SCy Schubert 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2234b7c0c8c1SCy Schubert 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2235b7c0c8c1SCy Schubert 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2236b7c0c8c1SCy Schubert 95, 96, 97, 107, 108, 109, 110, 111, 113, 114,
2237b7c0c8c1SCy Schubert 115, 118, 119, 120, 121, 122, 123, 124, 125, 126,
2238b7c0c8c1SCy Schubert 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
2239b7c0c8c1SCy Schubert 137, 138, 139, 140, 141, 142, 143, 147, 150, 151,
2240b7c0c8c1SCy Schubert 152, 153, 154, 155, 156, 158, 159, 160, 161, 162,
2241b7c0c8c1SCy Schubert 163, 164, 165, 166, 167, 168, 169, 170, 171, 192,
2242b7c0c8c1SCy Schubert 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
2243b7c0c8c1SCy Schubert 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
2244b7c0c8c1SCy Schubert 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
2245b7c0c8c1SCy Schubert 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
2246*335c7cdaSCy Schubert 233, 234, 235, 236, 238, 240, 241, 242, 243, 244,
2247b7c0c8c1SCy Schubert 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
2248*335c7cdaSCy Schubert 255, 256, 257, 258, 270, 271, 272, 273, 274, 275,
2249*335c7cdaSCy Schubert 276, 277, 278, 279, 290, 298, 299, 301, 302, 304,
2250*335c7cdaSCy Schubert 305, 306, 307, 308, 311, 312, 313, 314, 315, 316,
2251*335c7cdaSCy Schubert 317, 318, 319, 320, 321, 322, 323, 327, 336, 337,
2252*335c7cdaSCy Schubert 338, 339, 343, 344, 345, 346, 347, 348, 349, 350,
2253*335c7cdaSCy Schubert 351, 352, 353, 355, 363, 385, 386, 387, 388, 389,
2254*335c7cdaSCy Schubert 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
2255*335c7cdaSCy Schubert 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
2256*335c7cdaSCy Schubert 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
2257*335c7cdaSCy Schubert 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
2258*335c7cdaSCy Schubert 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
2259*335c7cdaSCy Schubert 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
2260*335c7cdaSCy Schubert 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
2261*335c7cdaSCy Schubert 460, 461, 462, 463, 464, 465, 466, 467, 468, 469,
2262*335c7cdaSCy Schubert 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
2263*335c7cdaSCy Schubert 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
2264*335c7cdaSCy Schubert 490, 491, 492, 493, 494, 495, 496, 497, 498, 499,
2265*335c7cdaSCy Schubert 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
2266*335c7cdaSCy Schubert 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
2267*335c7cdaSCy Schubert 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
2268*335c7cdaSCy Schubert 530, 531, 532, 533, 534, 535, 536, 537, 538, 539,
2269*335c7cdaSCy Schubert 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
2270*335c7cdaSCy Schubert 550, 551, 552, 553, 554, 555, 556, 557, 558, 559,
2271*335c7cdaSCy Schubert 560, 561, 562, 563, 564, 565, 566, 567, 568, 569,
2272*335c7cdaSCy Schubert 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
2273*335c7cdaSCy Schubert 580, 581, 582, 583, 584, 585, 586, 587, 588, 589,
2274*335c7cdaSCy Schubert 590, 591, 592, 593, 594, 595, 596, 597, 598, 599,
2275*335c7cdaSCy Schubert 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
2276*335c7cdaSCy Schubert 610, 611, 612, 613, 614, 615, 616, 617, 618, 619,
2277*335c7cdaSCy Schubert 620, 621, 622, 623, 624, 625, 626, 700, 701, 702,
2278*335c7cdaSCy Schubert 703, 731, 732, 733, 47, 49, 50, 112, 145, 148,
2279*335c7cdaSCy Schubert 157, 310, 366, 627, 628, 629, 630, 631, 632, 633,
2280*335c7cdaSCy Schubert 634, 47, 55, 56, 144, 146, 149, 309, 369, 635,
2281*335c7cdaSCy Schubert 636, 637, 638, 639, 640, 641, 47, 83, 84, 110,
2282*335c7cdaSCy Schubert 193, 194, 239, 372, 652, 653, 654, 655, 656, 657,
2283*335c7cdaSCy Schubert 658, 47, 291, 293, 294, 295, 296, 297, 303, 340,
2284*335c7cdaSCy Schubert 341, 375, 642, 643, 644, 645, 646, 647, 648, 649,
2285*335c7cdaSCy Schubert 650, 651, 329, 330, 331, 332, 333, 342, 376, 377,
2286*335c7cdaSCy Schubert 378, 379, 380, 381, 384, 642, 643, 644, 645, 646,
2287*335c7cdaSCy Schubert 649, 99, 100, 101, 102, 103, 104, 105, 106, 661,
2288*335c7cdaSCy Schubert 662, 663, 664, 665, 666, 667, 668, 669, 173, 174,
2289*335c7cdaSCy Schubert 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
2290*335c7cdaSCy Schubert 185, 186, 187, 188, 189, 190, 191, 672, 673, 674,
2291*335c7cdaSCy Schubert 675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
2292*335c7cdaSCy Schubert 685, 686, 687, 688, 689, 690, 691, 117, 694, 695,
2293*335c7cdaSCy Schubert 335, 698, 699, 260, 261, 262, 263, 264, 265, 266,
2294*335c7cdaSCy Schubert 267, 268, 269, 706, 707, 708, 709, 710, 711, 712,
2295*335c7cdaSCy Schubert 713, 714, 715, 716, 281, 282, 283, 284, 285, 286,
2296*335c7cdaSCy Schubert 287, 288, 289, 354, 356, 719, 720, 721, 722, 723,
2297*335c7cdaSCy Schubert 724, 725, 726, 727, 728, 729, 730, 325, 326, 736,
2298*335c7cdaSCy Schubert 737, 738, 10, 10, 10, 10, 10, 10, 10, 10,
2299*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2300*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2301*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2302*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2303*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2304*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2305*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2306*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2307*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2308*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2309*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2310*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2311*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2312*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2313*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2314*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2315*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2316*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2317*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2318*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2319*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2320*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2321*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2322*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2323*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2324*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2325*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2326*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2327*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2328*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2329*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2330*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2331*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2332*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2333*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2334*335c7cdaSCy Schubert 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
2335*335c7cdaSCy Schubert 10
2336*335c7cdaSCy Schubert };
2337*335c7cdaSCy Schubert
2338*335c7cdaSCy Schubert /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2339*335c7cdaSCy Schubert static const yytype_int16 yyr1[] =
2340*335c7cdaSCy Schubert {
2341*335c7cdaSCy Schubert 0, 357, 358, 358, 359, 359, 359, 359, 359, 359,
2342*335c7cdaSCy Schubert 359, 359, 359, 359, 359, 359, 359, 359, 360, 361,
2343*335c7cdaSCy Schubert 362, 362, 363, 363, 363, 363, 363, 363, 363, 363,
2344*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2345*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2346*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2347*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2348*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2349*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2350*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2351*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2352*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2353*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2354*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2355*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2356*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2357*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2358*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2359*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2360*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2361*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2362*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2363*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2364*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2365*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2366*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2367*335c7cdaSCy Schubert 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
2368*335c7cdaSCy Schubert 363, 364, 365, 365, 366, 366, 366, 366, 366, 366,
2369*335c7cdaSCy Schubert 366, 366, 367, 368, 368, 369, 369, 369, 369, 369,
2370*335c7cdaSCy Schubert 369, 369, 370, 371, 371, 372, 372, 372, 372, 372,
2371*335c7cdaSCy Schubert 372, 372, 373, 374, 374, 375, 375, 375, 375, 375,
2372*335c7cdaSCy Schubert 375, 375, 375, 375, 375, 376, 377, 378, 379, 380,
2373*335c7cdaSCy Schubert 381, 382, 383, 383, 384, 384, 384, 384, 384, 384,
2374*335c7cdaSCy Schubert 384, 384, 384, 384, 384, 384, 385, 386, 387, 388,
2375b7c0c8c1SCy Schubert 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
2376b7c0c8c1SCy Schubert 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
2377b7c0c8c1SCy Schubert 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
2378b7c0c8c1SCy Schubert 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
2379b7c0c8c1SCy Schubert 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
2380b7c0c8c1SCy Schubert 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
2381b7c0c8c1SCy Schubert 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
2382b7c0c8c1SCy Schubert 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
2383b7c0c8c1SCy Schubert 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
2384b7c0c8c1SCy Schubert 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
2385b7c0c8c1SCy Schubert 489, 490, 491, 492, 493, 494, 495, 496, 497, 498,
2386b7c0c8c1SCy Schubert 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
2387b7c0c8c1SCy Schubert 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
2388b7c0c8c1SCy Schubert 519, 520, 521, 522, 523, 524, 525, 526, 527, 528,
2389b7c0c8c1SCy Schubert 529, 530, 531, 532, 533, 534, 535, 536, 537, 538,
2390b7c0c8c1SCy Schubert 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
2391b7c0c8c1SCy Schubert 549, 550, 551, 552, 553, 554, 555, 556, 557, 558,
2392b7c0c8c1SCy Schubert 559, 560, 561, 562, 563, 564, 565, 566, 567, 568,
2393b7c0c8c1SCy Schubert 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
2394b7c0c8c1SCy Schubert 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
2395b7c0c8c1SCy Schubert 589, 590, 591, 592, 593, 594, 595, 596, 597, 598,
2396b7c0c8c1SCy Schubert 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
2397*335c7cdaSCy Schubert 609, 610, 611, 612, 613, 614, 615, 616, 617, 618,
2398*335c7cdaSCy Schubert 619, 620, 621, 622, 623, 624, 625, 626, 627, 628,
2399b7c0c8c1SCy Schubert 629, 630, 631, 632, 633, 634, 635, 636, 637, 638,
2400*335c7cdaSCy Schubert 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
2401*335c7cdaSCy Schubert 649, 650, 651, 652, 653, 654, 655, 656, 657, 658,
2402*335c7cdaSCy Schubert 659, 660, 660, 661, 661, 661, 661, 661, 661, 661,
2403b7c0c8c1SCy Schubert 661, 662, 663, 664, 665, 666, 667, 668, 669, 670,
2404*335c7cdaSCy Schubert 671, 671, 672, 672, 672, 672, 672, 672, 672, 672,
2405*335c7cdaSCy Schubert 672, 672, 672, 672, 672, 672, 672, 672, 672, 672,
2406*335c7cdaSCy Schubert 672, 673, 674, 675, 676, 677, 678, 679, 680, 681,
2407*335c7cdaSCy Schubert 682, 683, 684, 685, 686, 687, 688, 689, 690, 691,
2408*335c7cdaSCy Schubert 692, 693, 693, 694, 695, 696, 697, 697, 698, 699,
2409*335c7cdaSCy Schubert 700, 701, 702, 703, 704, 705, 705, 706, 706, 706,
2410*335c7cdaSCy Schubert 706, 706, 706, 706, 706, 706, 706, 707, 708, 709,
2411*335c7cdaSCy Schubert 710, 711, 712, 713, 714, 715, 716, 717, 718, 718,
2412*335c7cdaSCy Schubert 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
2413*335c7cdaSCy Schubert 719, 720, 721, 722, 723, 724, 725, 726, 727, 728,
2414*335c7cdaSCy Schubert 729, 730, 731, 732, 733, 734, 735, 735, 736, 736,
2415*335c7cdaSCy Schubert 737, 738
2416b7c0c8c1SCy Schubert };
2417b7c0c8c1SCy Schubert
2418b7c0c8c1SCy Schubert /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2419b7c0c8c1SCy Schubert static const yytype_int8 yyr2[] =
2420b7c0c8c1SCy Schubert {
2421b7c0c8c1SCy Schubert 0, 2, 0, 2, 2, 2, 2, 2, 2, 2,
2422b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
2423b7c0c8c1SCy Schubert 2, 0, 1, 1, 1, 1, 1, 1, 1, 1,
2424b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2425b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2426b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2427b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2428b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2429b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2430b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2431b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2432b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2433b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2434b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2435b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2436b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2437b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2438b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2439b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2440b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2441b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2442b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2443b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2444b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2445b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2446b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2447b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2448*335c7cdaSCy Schubert 1, 1, 2, 0, 1, 1, 1, 1, 1, 1,
2449*335c7cdaSCy Schubert 1, 1, 1, 2, 0, 1, 1, 1, 1, 1,
2450*335c7cdaSCy Schubert 1, 1, 1, 2, 0, 1, 1, 1, 1, 1,
2451*335c7cdaSCy Schubert 1, 1, 1, 2, 0, 1, 1, 1, 1, 1,
2452*335c7cdaSCy Schubert 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
2453*335c7cdaSCy Schubert 2, 1, 2, 0, 1, 1, 1, 1, 1, 1,
2454*335c7cdaSCy Schubert 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
2455b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2456b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2457b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2458b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2459b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2460b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2461b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2462b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2463b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2464b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2465b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2466b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2467b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2468*335c7cdaSCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
2469*335c7cdaSCy Schubert 3, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2470b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2471b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2472*335c7cdaSCy Schubert 2, 2, 2, 2, 2, 3, 2, 2, 2, 2,
2473*335c7cdaSCy Schubert 2, 2, 2, 2, 3, 3, 2, 2, 2, 2,
2474*335c7cdaSCy Schubert 2, 2, 3, 3, 4, 4, 4, 3, 3, 4,
2475*335c7cdaSCy Schubert 4, 3, 3, 2, 2, 2, 2, 2, 2, 2,
2476*335c7cdaSCy Schubert 3, 3, 2, 2, 2, 2, 2, 2, 2, 2,
2477b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2478*335c7cdaSCy Schubert 2, 2, 2, 2, 3, 2, 2, 2, 2, 2,
2479b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2480b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2481*335c7cdaSCy Schubert 2, 2, 2, 2, 3, 3, 3, 2, 2, 2,
2482*335c7cdaSCy Schubert 1, 2, 0, 1, 1, 1, 1, 1, 1, 1,
2483*335c7cdaSCy Schubert 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
2484*335c7cdaSCy Schubert 2, 0, 1, 1, 1, 1, 1, 1, 1, 1,
2485*335c7cdaSCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2486*335c7cdaSCy Schubert 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2487b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2488*335c7cdaSCy Schubert 1, 2, 0, 1, 2, 1, 2, 0, 1, 2,
2489*335c7cdaSCy Schubert 2, 2, 3, 3, 1, 2, 0, 1, 1, 1,
2490*335c7cdaSCy Schubert 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
2491b7c0c8c1SCy Schubert 2, 2, 2, 2, 2, 2, 2, 1, 2, 0,
2492b7c0c8c1SCy Schubert 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2493*335c7cdaSCy Schubert 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2494*335c7cdaSCy Schubert 2, 2, 3, 2, 2, 1, 2, 0, 1, 1,
2495*335c7cdaSCy Schubert 2, 2
2496b7c0c8c1SCy Schubert };
2497b7c0c8c1SCy Schubert
2498b7c0c8c1SCy Schubert
2499b7c0c8c1SCy Schubert enum { YYENOMEM = -2 };
2500b7c0c8c1SCy Schubert
2501b7c0c8c1SCy Schubert #define yyerrok (yyerrstatus = 0)
2502b7c0c8c1SCy Schubert #define yyclearin (yychar = YYEMPTY)
2503b7c0c8c1SCy Schubert
2504b7c0c8c1SCy Schubert #define YYACCEPT goto yyacceptlab
2505b7c0c8c1SCy Schubert #define YYABORT goto yyabortlab
2506b7c0c8c1SCy Schubert #define YYERROR goto yyerrorlab
2507b7c0c8c1SCy Schubert
2508b7c0c8c1SCy Schubert
2509b7c0c8c1SCy Schubert #define YYRECOVERING() (!!yyerrstatus)
2510b7c0c8c1SCy Schubert
2511b7c0c8c1SCy Schubert #define YYBACKUP(Token, Value) \
2512b7c0c8c1SCy Schubert do \
2513b7c0c8c1SCy Schubert if (yychar == YYEMPTY) \
2514b7c0c8c1SCy Schubert { \
2515b7c0c8c1SCy Schubert yychar = (Token); \
2516b7c0c8c1SCy Schubert yylval = (Value); \
2517b7c0c8c1SCy Schubert YYPOPSTACK (yylen); \
2518b7c0c8c1SCy Schubert yystate = *yyssp; \
2519b7c0c8c1SCy Schubert goto yybackup; \
2520b7c0c8c1SCy Schubert } \
2521b7c0c8c1SCy Schubert else \
2522b7c0c8c1SCy Schubert { \
2523b7c0c8c1SCy Schubert yyerror (YY_("syntax error: cannot back up")); \
2524b7c0c8c1SCy Schubert YYERROR; \
2525b7c0c8c1SCy Schubert } \
2526b7c0c8c1SCy Schubert while (0)
2527b7c0c8c1SCy Schubert
2528b7c0c8c1SCy Schubert /* Backward compatibility with an undocumented macro.
2529b7c0c8c1SCy Schubert Use YYerror or YYUNDEF. */
2530b7c0c8c1SCy Schubert #define YYERRCODE YYUNDEF
2531b7c0c8c1SCy Schubert
2532b7c0c8c1SCy Schubert
2533b7c0c8c1SCy Schubert /* Enable debugging if requested. */
2534b7c0c8c1SCy Schubert #if YYDEBUG
2535b7c0c8c1SCy Schubert
2536b7c0c8c1SCy Schubert # ifndef YYFPRINTF
2537b7c0c8c1SCy Schubert # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2538b7c0c8c1SCy Schubert # define YYFPRINTF fprintf
2539b7c0c8c1SCy Schubert # endif
2540b7c0c8c1SCy Schubert
2541b7c0c8c1SCy Schubert # define YYDPRINTF(Args) \
2542b7c0c8c1SCy Schubert do { \
2543b7c0c8c1SCy Schubert if (yydebug) \
2544b7c0c8c1SCy Schubert YYFPRINTF Args; \
2545b7c0c8c1SCy Schubert } while (0)
2546b7c0c8c1SCy Schubert
2547b7c0c8c1SCy Schubert /* This macro is provided for backward compatibility. */
2548b7c0c8c1SCy Schubert # ifndef YY_LOCATION_PRINT
2549b7c0c8c1SCy Schubert # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2550b7c0c8c1SCy Schubert # endif
2551b7c0c8c1SCy Schubert
2552b7c0c8c1SCy Schubert
2553b7c0c8c1SCy Schubert # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
2554b7c0c8c1SCy Schubert do { \
2555b7c0c8c1SCy Schubert if (yydebug) \
2556b7c0c8c1SCy Schubert { \
2557b7c0c8c1SCy Schubert YYFPRINTF (stderr, "%s ", Title); \
2558b7c0c8c1SCy Schubert yy_symbol_print (stderr, \
2559b7c0c8c1SCy Schubert Kind, Value); \
2560b7c0c8c1SCy Schubert YYFPRINTF (stderr, "\n"); \
2561b7c0c8c1SCy Schubert } \
2562b7c0c8c1SCy Schubert } while (0)
2563b7c0c8c1SCy Schubert
2564b7c0c8c1SCy Schubert
2565b7c0c8c1SCy Schubert /*-----------------------------------.
2566b7c0c8c1SCy Schubert | Print this symbol's value on YYO. |
2567b7c0c8c1SCy Schubert `-----------------------------------*/
2568b7c0c8c1SCy Schubert
2569b7c0c8c1SCy Schubert static void
yy_symbol_value_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep)2570b7c0c8c1SCy Schubert yy_symbol_value_print (FILE *yyo,
2571b7c0c8c1SCy Schubert yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
2572b7c0c8c1SCy Schubert {
2573b7c0c8c1SCy Schubert FILE *yyoutput = yyo;
2574b7c0c8c1SCy Schubert YY_USE (yyoutput);
2575b7c0c8c1SCy Schubert if (!yyvaluep)
2576b7c0c8c1SCy Schubert return;
2577b7c0c8c1SCy Schubert # ifdef YYPRINT
2578b7c0c8c1SCy Schubert if (yykind < YYNTOKENS)
2579b7c0c8c1SCy Schubert YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
2580b7c0c8c1SCy Schubert # endif
2581b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2582b7c0c8c1SCy Schubert YY_USE (yykind);
2583b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_END
2584b7c0c8c1SCy Schubert }
2585b7c0c8c1SCy Schubert
2586b7c0c8c1SCy Schubert
2587b7c0c8c1SCy Schubert /*---------------------------.
2588b7c0c8c1SCy Schubert | Print this symbol on YYO. |
2589b7c0c8c1SCy Schubert `---------------------------*/
2590b7c0c8c1SCy Schubert
2591b7c0c8c1SCy Schubert static void
yy_symbol_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep)2592b7c0c8c1SCy Schubert yy_symbol_print (FILE *yyo,
2593b7c0c8c1SCy Schubert yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
2594b7c0c8c1SCy Schubert {
2595b7c0c8c1SCy Schubert YYFPRINTF (yyo, "%s %s (",
2596b7c0c8c1SCy Schubert yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
2597b7c0c8c1SCy Schubert
2598b7c0c8c1SCy Schubert yy_symbol_value_print (yyo, yykind, yyvaluep);
2599b7c0c8c1SCy Schubert YYFPRINTF (yyo, ")");
2600b7c0c8c1SCy Schubert }
2601b7c0c8c1SCy Schubert
2602b7c0c8c1SCy Schubert /*------------------------------------------------------------------.
2603b7c0c8c1SCy Schubert | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2604b7c0c8c1SCy Schubert | TOP (included). |
2605b7c0c8c1SCy Schubert `------------------------------------------------------------------*/
2606b7c0c8c1SCy Schubert
2607b7c0c8c1SCy Schubert static void
yy_stack_print(yy_state_t * yybottom,yy_state_t * yytop)2608b7c0c8c1SCy Schubert yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
2609b7c0c8c1SCy Schubert {
2610b7c0c8c1SCy Schubert YYFPRINTF (stderr, "Stack now");
2611b7c0c8c1SCy Schubert for (; yybottom <= yytop; yybottom++)
2612b7c0c8c1SCy Schubert {
2613b7c0c8c1SCy Schubert int yybot = *yybottom;
2614b7c0c8c1SCy Schubert YYFPRINTF (stderr, " %d", yybot);
2615b7c0c8c1SCy Schubert }
2616b7c0c8c1SCy Schubert YYFPRINTF (stderr, "\n");
2617b7c0c8c1SCy Schubert }
2618b7c0c8c1SCy Schubert
2619b7c0c8c1SCy Schubert # define YY_STACK_PRINT(Bottom, Top) \
2620b7c0c8c1SCy Schubert do { \
2621b7c0c8c1SCy Schubert if (yydebug) \
2622b7c0c8c1SCy Schubert yy_stack_print ((Bottom), (Top)); \
2623b7c0c8c1SCy Schubert } while (0)
2624b7c0c8c1SCy Schubert
2625b7c0c8c1SCy Schubert
2626b7c0c8c1SCy Schubert /*------------------------------------------------.
2627b7c0c8c1SCy Schubert | Report that the YYRULE is going to be reduced. |
2628b7c0c8c1SCy Schubert `------------------------------------------------*/
2629b7c0c8c1SCy Schubert
2630b7c0c8c1SCy Schubert static void
yy_reduce_print(yy_state_t * yyssp,YYSTYPE * yyvsp,int yyrule)2631b7c0c8c1SCy Schubert yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
2632b7c0c8c1SCy Schubert int yyrule)
2633b7c0c8c1SCy Schubert {
2634b7c0c8c1SCy Schubert int yylno = yyrline[yyrule];
2635b7c0c8c1SCy Schubert int yynrhs = yyr2[yyrule];
2636b7c0c8c1SCy Schubert int yyi;
2637b7c0c8c1SCy Schubert YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
2638b7c0c8c1SCy Schubert yyrule - 1, yylno);
2639b7c0c8c1SCy Schubert /* The symbols being reduced. */
2640b7c0c8c1SCy Schubert for (yyi = 0; yyi < yynrhs; yyi++)
2641b7c0c8c1SCy Schubert {
2642b7c0c8c1SCy Schubert YYFPRINTF (stderr, " $%d = ", yyi + 1);
2643b7c0c8c1SCy Schubert yy_symbol_print (stderr,
2644b7c0c8c1SCy Schubert YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
2645b7c0c8c1SCy Schubert &yyvsp[(yyi + 1) - (yynrhs)]);
2646b7c0c8c1SCy Schubert YYFPRINTF (stderr, "\n");
2647b7c0c8c1SCy Schubert }
2648b7c0c8c1SCy Schubert }
2649b7c0c8c1SCy Schubert
2650b7c0c8c1SCy Schubert # define YY_REDUCE_PRINT(Rule) \
2651b7c0c8c1SCy Schubert do { \
2652b7c0c8c1SCy Schubert if (yydebug) \
2653b7c0c8c1SCy Schubert yy_reduce_print (yyssp, yyvsp, Rule); \
2654b7c0c8c1SCy Schubert } while (0)
2655b7c0c8c1SCy Schubert
2656b7c0c8c1SCy Schubert /* Nonzero means print parse trace. It is left uninitialized so that
2657b7c0c8c1SCy Schubert multiple parsers can coexist. */
2658b7c0c8c1SCy Schubert int yydebug;
2659b7c0c8c1SCy Schubert #else /* !YYDEBUG */
2660b7c0c8c1SCy Schubert # define YYDPRINTF(Args) ((void) 0)
2661b7c0c8c1SCy Schubert # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
2662b7c0c8c1SCy Schubert # define YY_STACK_PRINT(Bottom, Top)
2663b7c0c8c1SCy Schubert # define YY_REDUCE_PRINT(Rule)
2664b7c0c8c1SCy Schubert #endif /* !YYDEBUG */
2665b7c0c8c1SCy Schubert
2666b7c0c8c1SCy Schubert
2667b7c0c8c1SCy Schubert /* YYINITDEPTH -- initial size of the parser's stacks. */
2668b7c0c8c1SCy Schubert #ifndef YYINITDEPTH
2669b7c0c8c1SCy Schubert # define YYINITDEPTH 200
2670b7c0c8c1SCy Schubert #endif
2671b7c0c8c1SCy Schubert
2672b7c0c8c1SCy Schubert /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2673b7c0c8c1SCy Schubert if the built-in stack extension method is used).
2674b7c0c8c1SCy Schubert
2675b7c0c8c1SCy Schubert Do not make this value too large; the results are undefined if
2676b7c0c8c1SCy Schubert YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2677b7c0c8c1SCy Schubert evaluated with infinite-precision integer arithmetic. */
2678b7c0c8c1SCy Schubert
2679b7c0c8c1SCy Schubert #ifndef YYMAXDEPTH
2680b7c0c8c1SCy Schubert # define YYMAXDEPTH 10000
2681b7c0c8c1SCy Schubert #endif
2682b7c0c8c1SCy Schubert
2683b7c0c8c1SCy Schubert
2684b7c0c8c1SCy Schubert
2685b7c0c8c1SCy Schubert
2686b7c0c8c1SCy Schubert
2687b7c0c8c1SCy Schubert
2688b7c0c8c1SCy Schubert /*-----------------------------------------------.
2689b7c0c8c1SCy Schubert | Release the memory associated to this symbol. |
2690b7c0c8c1SCy Schubert `-----------------------------------------------*/
2691b7c0c8c1SCy Schubert
2692b7c0c8c1SCy Schubert static void
yydestruct(const char * yymsg,yysymbol_kind_t yykind,YYSTYPE * yyvaluep)2693b7c0c8c1SCy Schubert yydestruct (const char *yymsg,
2694b7c0c8c1SCy Schubert yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
2695b7c0c8c1SCy Schubert {
2696b7c0c8c1SCy Schubert YY_USE (yyvaluep);
2697b7c0c8c1SCy Schubert if (!yymsg)
2698b7c0c8c1SCy Schubert yymsg = "Deleting";
2699b7c0c8c1SCy Schubert YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
2700b7c0c8c1SCy Schubert
2701b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2702b7c0c8c1SCy Schubert YY_USE (yykind);
2703b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_END
2704b7c0c8c1SCy Schubert }
2705b7c0c8c1SCy Schubert
2706b7c0c8c1SCy Schubert
2707b7c0c8c1SCy Schubert /* Lookahead token kind. */
2708b7c0c8c1SCy Schubert int yychar;
2709b7c0c8c1SCy Schubert
2710b7c0c8c1SCy Schubert /* The semantic value of the lookahead symbol. */
2711b7c0c8c1SCy Schubert YYSTYPE yylval;
2712b7c0c8c1SCy Schubert /* Number of syntax errors so far. */
2713b7c0c8c1SCy Schubert int yynerrs;
2714b7c0c8c1SCy Schubert
2715b7c0c8c1SCy Schubert
2716b7c0c8c1SCy Schubert
2717b7c0c8c1SCy Schubert
2718b7c0c8c1SCy Schubert /*----------.
2719b7c0c8c1SCy Schubert | yyparse. |
2720b7c0c8c1SCy Schubert `----------*/
2721b7c0c8c1SCy Schubert
2722b7c0c8c1SCy Schubert int
yyparse(void)2723b7c0c8c1SCy Schubert yyparse (void)
2724b7c0c8c1SCy Schubert {
2725b7c0c8c1SCy Schubert yy_state_fast_t yystate = 0;
2726b7c0c8c1SCy Schubert /* Number of tokens to shift before error messages enabled. */
2727b7c0c8c1SCy Schubert int yyerrstatus = 0;
2728b7c0c8c1SCy Schubert
2729b7c0c8c1SCy Schubert /* Refer to the stacks through separate pointers, to allow yyoverflow
2730b7c0c8c1SCy Schubert to reallocate them elsewhere. */
2731b7c0c8c1SCy Schubert
2732b7c0c8c1SCy Schubert /* Their size. */
2733b7c0c8c1SCy Schubert YYPTRDIFF_T yystacksize = YYINITDEPTH;
2734b7c0c8c1SCy Schubert
2735b7c0c8c1SCy Schubert /* The state stack: array, bottom, top. */
2736b7c0c8c1SCy Schubert yy_state_t yyssa[YYINITDEPTH];
2737b7c0c8c1SCy Schubert yy_state_t *yyss = yyssa;
2738b7c0c8c1SCy Schubert yy_state_t *yyssp = yyss;
2739b7c0c8c1SCy Schubert
2740b7c0c8c1SCy Schubert /* The semantic value stack: array, bottom, top. */
2741b7c0c8c1SCy Schubert YYSTYPE yyvsa[YYINITDEPTH];
2742b7c0c8c1SCy Schubert YYSTYPE *yyvs = yyvsa;
2743b7c0c8c1SCy Schubert YYSTYPE *yyvsp = yyvs;
2744b7c0c8c1SCy Schubert
2745b7c0c8c1SCy Schubert int yyn;
2746b7c0c8c1SCy Schubert /* The return value of yyparse. */
2747b7c0c8c1SCy Schubert int yyresult;
2748b7c0c8c1SCy Schubert /* Lookahead symbol kind. */
2749b7c0c8c1SCy Schubert yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
2750b7c0c8c1SCy Schubert /* The variables used to return semantic value and location from the
2751b7c0c8c1SCy Schubert action routines. */
2752b7c0c8c1SCy Schubert YYSTYPE yyval;
2753b7c0c8c1SCy Schubert
2754b7c0c8c1SCy Schubert
2755b7c0c8c1SCy Schubert
2756b7c0c8c1SCy Schubert #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
2757b7c0c8c1SCy Schubert
2758b7c0c8c1SCy Schubert /* The number of symbols on the RHS of the reduced rule.
2759b7c0c8c1SCy Schubert Keep to zero when no symbol should be popped. */
2760b7c0c8c1SCy Schubert int yylen = 0;
2761b7c0c8c1SCy Schubert
2762b7c0c8c1SCy Schubert YYDPRINTF ((stderr, "Starting parse\n"));
2763b7c0c8c1SCy Schubert
2764b7c0c8c1SCy Schubert yychar = YYEMPTY; /* Cause a token to be read. */
2765b7c0c8c1SCy Schubert goto yysetstate;
2766b7c0c8c1SCy Schubert
2767b7c0c8c1SCy Schubert
2768b7c0c8c1SCy Schubert /*------------------------------------------------------------.
2769b7c0c8c1SCy Schubert | yynewstate -- push a new state, which is found in yystate. |
2770b7c0c8c1SCy Schubert `------------------------------------------------------------*/
2771b7c0c8c1SCy Schubert yynewstate:
2772b7c0c8c1SCy Schubert /* In all cases, when you get here, the value and location stacks
2773b7c0c8c1SCy Schubert have just been pushed. So pushing a state here evens the stacks. */
2774b7c0c8c1SCy Schubert yyssp++;
2775b7c0c8c1SCy Schubert
2776b7c0c8c1SCy Schubert
2777b7c0c8c1SCy Schubert /*--------------------------------------------------------------------.
2778b7c0c8c1SCy Schubert | yysetstate -- set current state (the top of the stack) to yystate. |
2779b7c0c8c1SCy Schubert `--------------------------------------------------------------------*/
2780b7c0c8c1SCy Schubert yysetstate:
2781b7c0c8c1SCy Schubert YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2782b7c0c8c1SCy Schubert YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
2783b7c0c8c1SCy Schubert YY_IGNORE_USELESS_CAST_BEGIN
2784b7c0c8c1SCy Schubert *yyssp = YY_CAST (yy_state_t, yystate);
2785b7c0c8c1SCy Schubert YY_IGNORE_USELESS_CAST_END
2786b7c0c8c1SCy Schubert YY_STACK_PRINT (yyss, yyssp);
2787b7c0c8c1SCy Schubert
2788b7c0c8c1SCy Schubert if (yyss + yystacksize - 1 <= yyssp)
2789b7c0c8c1SCy Schubert #if !defined yyoverflow && !defined YYSTACK_RELOCATE
2790b7c0c8c1SCy Schubert goto yyexhaustedlab;
2791b7c0c8c1SCy Schubert #else
2792b7c0c8c1SCy Schubert {
2793b7c0c8c1SCy Schubert /* Get the current used size of the three stacks, in elements. */
2794b7c0c8c1SCy Schubert YYPTRDIFF_T yysize = yyssp - yyss + 1;
2795b7c0c8c1SCy Schubert
2796b7c0c8c1SCy Schubert # if defined yyoverflow
2797b7c0c8c1SCy Schubert {
2798b7c0c8c1SCy Schubert /* Give user a chance to reallocate the stack. Use copies of
2799b7c0c8c1SCy Schubert these so that the &'s don't force the real ones into
2800b7c0c8c1SCy Schubert memory. */
2801b7c0c8c1SCy Schubert yy_state_t *yyss1 = yyss;
2802b7c0c8c1SCy Schubert YYSTYPE *yyvs1 = yyvs;
2803b7c0c8c1SCy Schubert
2804b7c0c8c1SCy Schubert /* Each stack pointer address is followed by the size of the
2805b7c0c8c1SCy Schubert data in use in that stack, in bytes. This used to be a
2806b7c0c8c1SCy Schubert conditional around just the two extra args, but that might
2807b7c0c8c1SCy Schubert be undefined if yyoverflow is a macro. */
2808b7c0c8c1SCy Schubert yyoverflow (YY_("memory exhausted"),
2809b7c0c8c1SCy Schubert &yyss1, yysize * YYSIZEOF (*yyssp),
2810b7c0c8c1SCy Schubert &yyvs1, yysize * YYSIZEOF (*yyvsp),
2811b7c0c8c1SCy Schubert &yystacksize);
2812b7c0c8c1SCy Schubert yyss = yyss1;
2813b7c0c8c1SCy Schubert yyvs = yyvs1;
2814b7c0c8c1SCy Schubert }
2815b7c0c8c1SCy Schubert # else /* defined YYSTACK_RELOCATE */
2816b7c0c8c1SCy Schubert /* Extend the stack our own way. */
2817b7c0c8c1SCy Schubert if (YYMAXDEPTH <= yystacksize)
2818b7c0c8c1SCy Schubert goto yyexhaustedlab;
2819b7c0c8c1SCy Schubert yystacksize *= 2;
2820b7c0c8c1SCy Schubert if (YYMAXDEPTH < yystacksize)
2821b7c0c8c1SCy Schubert yystacksize = YYMAXDEPTH;
2822b7c0c8c1SCy Schubert
2823b7c0c8c1SCy Schubert {
2824b7c0c8c1SCy Schubert yy_state_t *yyss1 = yyss;
2825b7c0c8c1SCy Schubert union yyalloc *yyptr =
2826b7c0c8c1SCy Schubert YY_CAST (union yyalloc *,
2827b7c0c8c1SCy Schubert YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
2828b7c0c8c1SCy Schubert if (! yyptr)
2829b7c0c8c1SCy Schubert goto yyexhaustedlab;
2830b7c0c8c1SCy Schubert YYSTACK_RELOCATE (yyss_alloc, yyss);
2831b7c0c8c1SCy Schubert YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2832b7c0c8c1SCy Schubert # undef YYSTACK_RELOCATE
2833b7c0c8c1SCy Schubert if (yyss1 != yyssa)
2834b7c0c8c1SCy Schubert YYSTACK_FREE (yyss1);
2835b7c0c8c1SCy Schubert }
2836b7c0c8c1SCy Schubert # endif
2837b7c0c8c1SCy Schubert
2838b7c0c8c1SCy Schubert yyssp = yyss + yysize - 1;
2839b7c0c8c1SCy Schubert yyvsp = yyvs + yysize - 1;
2840b7c0c8c1SCy Schubert
2841b7c0c8c1SCy Schubert YY_IGNORE_USELESS_CAST_BEGIN
2842b7c0c8c1SCy Schubert YYDPRINTF ((stderr, "Stack size increased to %ld\n",
2843b7c0c8c1SCy Schubert YY_CAST (long, yystacksize)));
2844b7c0c8c1SCy Schubert YY_IGNORE_USELESS_CAST_END
2845b7c0c8c1SCy Schubert
2846b7c0c8c1SCy Schubert if (yyss + yystacksize - 1 <= yyssp)
2847b7c0c8c1SCy Schubert YYABORT;
2848b7c0c8c1SCy Schubert }
2849b7c0c8c1SCy Schubert #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
2850b7c0c8c1SCy Schubert
2851b7c0c8c1SCy Schubert if (yystate == YYFINAL)
2852b7c0c8c1SCy Schubert YYACCEPT;
2853b7c0c8c1SCy Schubert
2854b7c0c8c1SCy Schubert goto yybackup;
2855b7c0c8c1SCy Schubert
2856b7c0c8c1SCy Schubert
2857b7c0c8c1SCy Schubert /*-----------.
2858b7c0c8c1SCy Schubert | yybackup. |
2859b7c0c8c1SCy Schubert `-----------*/
2860b7c0c8c1SCy Schubert yybackup:
2861b7c0c8c1SCy Schubert /* Do appropriate processing given the current state. Read a
2862b7c0c8c1SCy Schubert lookahead token if we need one and don't already have one. */
2863b7c0c8c1SCy Schubert
2864b7c0c8c1SCy Schubert /* First try to decide what to do without reference to lookahead token. */
2865b7c0c8c1SCy Schubert yyn = yypact[yystate];
2866b7c0c8c1SCy Schubert if (yypact_value_is_default (yyn))
2867b7c0c8c1SCy Schubert goto yydefault;
2868b7c0c8c1SCy Schubert
2869b7c0c8c1SCy Schubert /* Not known => get a lookahead token if don't already have one. */
2870b7c0c8c1SCy Schubert
2871b7c0c8c1SCy Schubert /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
2872b7c0c8c1SCy Schubert if (yychar == YYEMPTY)
2873b7c0c8c1SCy Schubert {
2874b7c0c8c1SCy Schubert YYDPRINTF ((stderr, "Reading a token\n"));
2875b7c0c8c1SCy Schubert yychar = yylex ();
2876b7c0c8c1SCy Schubert }
2877b7c0c8c1SCy Schubert
2878b7c0c8c1SCy Schubert if (yychar <= YYEOF)
2879b7c0c8c1SCy Schubert {
2880b7c0c8c1SCy Schubert yychar = YYEOF;
2881b7c0c8c1SCy Schubert yytoken = YYSYMBOL_YYEOF;
2882b7c0c8c1SCy Schubert YYDPRINTF ((stderr, "Now at end of input.\n"));
2883b7c0c8c1SCy Schubert }
2884b7c0c8c1SCy Schubert else if (yychar == YYerror)
2885b7c0c8c1SCy Schubert {
2886b7c0c8c1SCy Schubert /* The scanner already issued an error message, process directly
2887b7c0c8c1SCy Schubert to error recovery. But do not keep the error token as
2888b7c0c8c1SCy Schubert lookahead, it is too special and may lead us to an endless
2889b7c0c8c1SCy Schubert loop in error recovery. */
2890b7c0c8c1SCy Schubert yychar = YYUNDEF;
2891b7c0c8c1SCy Schubert yytoken = YYSYMBOL_YYerror;
2892b7c0c8c1SCy Schubert goto yyerrlab1;
2893b7c0c8c1SCy Schubert }
2894b7c0c8c1SCy Schubert else
2895b7c0c8c1SCy Schubert {
2896b7c0c8c1SCy Schubert yytoken = YYTRANSLATE (yychar);
2897b7c0c8c1SCy Schubert YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2898b7c0c8c1SCy Schubert }
2899b7c0c8c1SCy Schubert
2900b7c0c8c1SCy Schubert /* If the proper action on seeing token YYTOKEN is to reduce or to
2901b7c0c8c1SCy Schubert detect an error, take that action. */
2902b7c0c8c1SCy Schubert yyn += yytoken;
2903b7c0c8c1SCy Schubert if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2904b7c0c8c1SCy Schubert goto yydefault;
2905b7c0c8c1SCy Schubert yyn = yytable[yyn];
2906b7c0c8c1SCy Schubert if (yyn <= 0)
2907b7c0c8c1SCy Schubert {
2908b7c0c8c1SCy Schubert if (yytable_value_is_error (yyn))
2909b7c0c8c1SCy Schubert goto yyerrlab;
2910b7c0c8c1SCy Schubert yyn = -yyn;
2911b7c0c8c1SCy Schubert goto yyreduce;
2912b7c0c8c1SCy Schubert }
2913b7c0c8c1SCy Schubert
2914b7c0c8c1SCy Schubert /* Count tokens shifted since error; after three, turn off error
2915b7c0c8c1SCy Schubert status. */
2916b7c0c8c1SCy Schubert if (yyerrstatus)
2917b7c0c8c1SCy Schubert yyerrstatus--;
2918b7c0c8c1SCy Schubert
2919b7c0c8c1SCy Schubert /* Shift the lookahead token. */
2920b7c0c8c1SCy Schubert YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2921b7c0c8c1SCy Schubert yystate = yyn;
2922b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2923b7c0c8c1SCy Schubert *++yyvsp = yylval;
2924b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_END
2925b7c0c8c1SCy Schubert
2926b7c0c8c1SCy Schubert /* Discard the shifted token. */
2927b7c0c8c1SCy Schubert yychar = YYEMPTY;
2928b7c0c8c1SCy Schubert goto yynewstate;
2929b7c0c8c1SCy Schubert
2930b7c0c8c1SCy Schubert
2931b7c0c8c1SCy Schubert /*-----------------------------------------------------------.
2932b7c0c8c1SCy Schubert | yydefault -- do the default action for the current state. |
2933b7c0c8c1SCy Schubert `-----------------------------------------------------------*/
2934b7c0c8c1SCy Schubert yydefault:
2935b7c0c8c1SCy Schubert yyn = yydefact[yystate];
2936b7c0c8c1SCy Schubert if (yyn == 0)
2937b7c0c8c1SCy Schubert goto yyerrlab;
2938b7c0c8c1SCy Schubert goto yyreduce;
2939b7c0c8c1SCy Schubert
2940b7c0c8c1SCy Schubert
2941b7c0c8c1SCy Schubert /*-----------------------------.
2942b7c0c8c1SCy Schubert | yyreduce -- do a reduction. |
2943b7c0c8c1SCy Schubert `-----------------------------*/
2944b7c0c8c1SCy Schubert yyreduce:
2945b7c0c8c1SCy Schubert /* yyn is the number of a rule to reduce with. */
2946b7c0c8c1SCy Schubert yylen = yyr2[yyn];
2947b7c0c8c1SCy Schubert
2948b7c0c8c1SCy Schubert /* If YYLEN is nonzero, implement the default value of the action:
2949b7c0c8c1SCy Schubert '$$ = $1'.
2950b7c0c8c1SCy Schubert
2951b7c0c8c1SCy Schubert Otherwise, the following line sets YYVAL to garbage.
2952b7c0c8c1SCy Schubert This behavior is undocumented and Bison
2953b7c0c8c1SCy Schubert users should not rely upon it. Assigning to YYVAL
2954b7c0c8c1SCy Schubert unconditionally makes the parser a bit smaller, and it avoids a
2955b7c0c8c1SCy Schubert GCC warning that YYVAL may be used uninitialized. */
2956b7c0c8c1SCy Schubert yyval = yyvsp[1-yylen];
2957b7c0c8c1SCy Schubert
2958b7c0c8c1SCy Schubert
2959b7c0c8c1SCy Schubert YY_REDUCE_PRINT (yyn);
2960b7c0c8c1SCy Schubert switch (yyn)
2961b7c0c8c1SCy Schubert {
2962b7c0c8c1SCy Schubert case 18: /* force_toplevel: VAR_FORCE_TOPLEVEL */
2963*335c7cdaSCy Schubert #line 219 "util/configparser.y"
2964b7c0c8c1SCy Schubert {
2965b7c0c8c1SCy Schubert OUTYY(("\nP(force-toplevel)\n"));
2966b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 0;
2967b7c0c8c1SCy Schubert }
2968*335c7cdaSCy Schubert #line 2969 "util/configparser.c"
2969b7c0c8c1SCy Schubert break;
2970b7c0c8c1SCy Schubert
2971b7c0c8c1SCy Schubert case 19: /* serverstart: VAR_SERVER */
2972*335c7cdaSCy Schubert #line 226 "util/configparser.y"
2973b7c0c8c1SCy Schubert {
2974b7c0c8c1SCy Schubert OUTYY(("\nP(server:)\n"));
2975b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1;
2976b7c0c8c1SCy Schubert }
2977*335c7cdaSCy Schubert #line 2978 "util/configparser.c"
2978b7c0c8c1SCy Schubert break;
2979b7c0c8c1SCy Schubert
2980*335c7cdaSCy Schubert case 271: /* stubstart: VAR_STUB_ZONE */
2981*335c7cdaSCy Schubert #line 347 "util/configparser.y"
2982b7c0c8c1SCy Schubert {
2983b7c0c8c1SCy Schubert struct config_stub* s;
2984b7c0c8c1SCy Schubert OUTYY(("\nP(stub_zone:)\n"));
2985b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1;
2986b7c0c8c1SCy Schubert s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
2987b7c0c8c1SCy Schubert if(s) {
2988b7c0c8c1SCy Schubert s->next = cfg_parser->cfg->stubs;
2989b7c0c8c1SCy Schubert cfg_parser->cfg->stubs = s;
2990b7c0c8c1SCy Schubert } else {
2991b7c0c8c1SCy Schubert yyerror("out of memory");
2992b7c0c8c1SCy Schubert }
2993b7c0c8c1SCy Schubert }
2994*335c7cdaSCy Schubert #line 2995 "util/configparser.c"
2995b7c0c8c1SCy Schubert break;
2996b7c0c8c1SCy Schubert
2997*335c7cdaSCy Schubert case 282: /* forwardstart: VAR_FORWARD_ZONE */
2998*335c7cdaSCy Schubert #line 366 "util/configparser.y"
2999b7c0c8c1SCy Schubert {
3000b7c0c8c1SCy Schubert struct config_stub* s;
3001b7c0c8c1SCy Schubert OUTYY(("\nP(forward_zone:)\n"));
3002b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1;
3003b7c0c8c1SCy Schubert s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
3004b7c0c8c1SCy Schubert if(s) {
3005b7c0c8c1SCy Schubert s->next = cfg_parser->cfg->forwards;
3006b7c0c8c1SCy Schubert cfg_parser->cfg->forwards = s;
3007b7c0c8c1SCy Schubert } else {
3008b7c0c8c1SCy Schubert yyerror("out of memory");
3009b7c0c8c1SCy Schubert }
3010b7c0c8c1SCy Schubert }
3011*335c7cdaSCy Schubert #line 3012 "util/configparser.c"
3012b7c0c8c1SCy Schubert break;
3013b7c0c8c1SCy Schubert
3014*335c7cdaSCy Schubert case 292: /* viewstart: VAR_VIEW */
3015*335c7cdaSCy Schubert #line 385 "util/configparser.y"
3016b7c0c8c1SCy Schubert {
3017b7c0c8c1SCy Schubert struct config_view* s;
3018b7c0c8c1SCy Schubert OUTYY(("\nP(view:)\n"));
3019b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1;
3020b7c0c8c1SCy Schubert s = (struct config_view*)calloc(1, sizeof(struct config_view));
3021b7c0c8c1SCy Schubert if(s) {
3022b7c0c8c1SCy Schubert s->next = cfg_parser->cfg->views;
3023b7c0c8c1SCy Schubert if(s->next && !s->next->name)
3024b7c0c8c1SCy Schubert yyerror("view without name");
3025b7c0c8c1SCy Schubert cfg_parser->cfg->views = s;
3026b7c0c8c1SCy Schubert } else {
3027b7c0c8c1SCy Schubert yyerror("out of memory");
3028b7c0c8c1SCy Schubert }
3029b7c0c8c1SCy Schubert }
3030*335c7cdaSCy Schubert #line 3031 "util/configparser.c"
3031b7c0c8c1SCy Schubert break;
3032b7c0c8c1SCy Schubert
3033*335c7cdaSCy Schubert case 302: /* authstart: VAR_AUTH_ZONE */
3034*335c7cdaSCy Schubert #line 406 "util/configparser.y"
3035b7c0c8c1SCy Schubert {
3036b7c0c8c1SCy Schubert struct config_auth* s;
3037b7c0c8c1SCy Schubert OUTYY(("\nP(auth_zone:)\n"));
3038b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1;
3039b7c0c8c1SCy Schubert s = (struct config_auth*)calloc(1, sizeof(struct config_auth));
3040b7c0c8c1SCy Schubert if(s) {
3041b7c0c8c1SCy Schubert s->next = cfg_parser->cfg->auths;
3042b7c0c8c1SCy Schubert cfg_parser->cfg->auths = s;
3043b7c0c8c1SCy Schubert /* defaults for auth zone */
3044b7c0c8c1SCy Schubert s->for_downstream = 1;
3045b7c0c8c1SCy Schubert s->for_upstream = 1;
3046b7c0c8c1SCy Schubert s->fallback_enabled = 0;
3047b7c0c8c1SCy Schubert s->zonemd_check = 0;
3048b7c0c8c1SCy Schubert s->zonemd_reject_absence = 0;
3049b7c0c8c1SCy Schubert s->isrpz = 0;
3050b7c0c8c1SCy Schubert } else {
3051b7c0c8c1SCy Schubert yyerror("out of memory");
3052b7c0c8c1SCy Schubert }
3053b7c0c8c1SCy Schubert }
3054*335c7cdaSCy Schubert #line 3055 "util/configparser.c"
3055b7c0c8c1SCy Schubert break;
3056b7c0c8c1SCy Schubert
3057*335c7cdaSCy Schubert case 315: /* rpz_tag: VAR_TAGS STRING_ARG */
3058*335c7cdaSCy Schubert #line 434 "util/configparser.y"
3059b7c0c8c1SCy Schubert {
3060b7c0c8c1SCy Schubert uint8_t* bitlist;
3061b7c0c8c1SCy Schubert size_t len = 0;
3062b7c0c8c1SCy Schubert OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[0].str)));
3063b7c0c8c1SCy Schubert bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
3064b7c0c8c1SCy Schubert &len);
3065b7c0c8c1SCy Schubert free((yyvsp[0].str));
3066b7c0c8c1SCy Schubert if(!bitlist) {
3067b7c0c8c1SCy Schubert yyerror("could not parse tags, (define-tag them first)");
3068b7c0c8c1SCy Schubert }
3069b7c0c8c1SCy Schubert if(bitlist) {
3070b7c0c8c1SCy Schubert cfg_parser->cfg->auths->rpz_taglist = bitlist;
3071b7c0c8c1SCy Schubert cfg_parser->cfg->auths->rpz_taglistlen = len;
3072b7c0c8c1SCy Schubert
3073b7c0c8c1SCy Schubert }
3074b7c0c8c1SCy Schubert }
3075*335c7cdaSCy Schubert #line 3076 "util/configparser.c"
3076b7c0c8c1SCy Schubert break;
3077b7c0c8c1SCy Schubert
3078*335c7cdaSCy Schubert case 316: /* rpz_action_override: VAR_RPZ_ACTION_OVERRIDE STRING_ARG */
3079*335c7cdaSCy Schubert #line 453 "util/configparser.y"
3080b7c0c8c1SCy Schubert {
3081b7c0c8c1SCy Schubert OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str)));
3082b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 &&
3083b7c0c8c1SCy Schubert strcmp((yyvsp[0].str), "passthru")!=0 && strcmp((yyvsp[0].str), "drop")!=0 &&
3084b7c0c8c1SCy Schubert strcmp((yyvsp[0].str), "cname")!=0 && strcmp((yyvsp[0].str), "disabled")!=0) {
3085b7c0c8c1SCy Schubert yyerror("rpz-action-override action: expected nxdomain, "
3086b7c0c8c1SCy Schubert "nodata, passthru, drop, cname or disabled");
3087b7c0c8c1SCy Schubert free((yyvsp[0].str));
3088b7c0c8c1SCy Schubert cfg_parser->cfg->auths->rpz_action_override = NULL;
3089b7c0c8c1SCy Schubert }
3090b7c0c8c1SCy Schubert else {
3091b7c0c8c1SCy Schubert cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str);
3092b7c0c8c1SCy Schubert }
3093b7c0c8c1SCy Schubert }
3094*335c7cdaSCy Schubert #line 3095 "util/configparser.c"
3095b7c0c8c1SCy Schubert break;
3096b7c0c8c1SCy Schubert
3097*335c7cdaSCy Schubert case 317: /* rpz_cname_override: VAR_RPZ_CNAME_OVERRIDE STRING_ARG */
3098*335c7cdaSCy Schubert #line 470 "util/configparser.y"
3099b7c0c8c1SCy Schubert {
3100b7c0c8c1SCy Schubert OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str)));
3101b7c0c8c1SCy Schubert free(cfg_parser->cfg->auths->rpz_cname);
3102b7c0c8c1SCy Schubert cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str);
3103b7c0c8c1SCy Schubert }
3104*335c7cdaSCy Schubert #line 3105 "util/configparser.c"
3105b7c0c8c1SCy Schubert break;
3106b7c0c8c1SCy Schubert
3107*335c7cdaSCy Schubert case 318: /* rpz_log: VAR_RPZ_LOG STRING_ARG */
3108*335c7cdaSCy Schubert #line 478 "util/configparser.y"
3109b7c0c8c1SCy Schubert {
3110b7c0c8c1SCy Schubert OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str)));
3111b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3112b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3113b7c0c8c1SCy Schubert else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0);
3114b7c0c8c1SCy Schubert free((yyvsp[0].str));
3115b7c0c8c1SCy Schubert }
3116*335c7cdaSCy Schubert #line 3117 "util/configparser.c"
3117b7c0c8c1SCy Schubert break;
3118b7c0c8c1SCy Schubert
3119*335c7cdaSCy Schubert case 319: /* rpz_log_name: VAR_RPZ_LOG_NAME STRING_ARG */
3120*335c7cdaSCy Schubert #line 488 "util/configparser.y"
3121b7c0c8c1SCy Schubert {
3122b7c0c8c1SCy Schubert OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str)));
3123b7c0c8c1SCy Schubert free(cfg_parser->cfg->auths->rpz_log_name);
3124b7c0c8c1SCy Schubert cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str);
3125b7c0c8c1SCy Schubert }
3126*335c7cdaSCy Schubert #line 3127 "util/configparser.c"
3127b7c0c8c1SCy Schubert break;
3128b7c0c8c1SCy Schubert
3129*335c7cdaSCy Schubert case 320: /* rpz_signal_nxdomain_ra: VAR_RPZ_SIGNAL_NXDOMAIN_RA STRING_ARG */
3130*335c7cdaSCy Schubert #line 495 "util/configparser.y"
3131b7c0c8c1SCy Schubert {
3132b7c0c8c1SCy Schubert OUTYY(("P(rpz_signal_nxdomain_ra:%s)\n", (yyvsp[0].str)));
3133b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3134b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3135b7c0c8c1SCy Schubert else cfg_parser->cfg->auths->rpz_signal_nxdomain_ra = (strcmp((yyvsp[0].str), "yes")==0);
3136b7c0c8c1SCy Schubert free((yyvsp[0].str));
3137b7c0c8c1SCy Schubert }
3138*335c7cdaSCy Schubert #line 3139 "util/configparser.c"
3139b7c0c8c1SCy Schubert break;
3140b7c0c8c1SCy Schubert
3141*335c7cdaSCy Schubert case 321: /* rpzstart: VAR_RPZ */
3142*335c7cdaSCy Schubert #line 505 "util/configparser.y"
3143b7c0c8c1SCy Schubert {
3144b7c0c8c1SCy Schubert struct config_auth* s;
3145b7c0c8c1SCy Schubert OUTYY(("\nP(rpz:)\n"));
3146b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1;
3147b7c0c8c1SCy Schubert s = (struct config_auth*)calloc(1, sizeof(struct config_auth));
3148b7c0c8c1SCy Schubert if(s) {
3149b7c0c8c1SCy Schubert s->next = cfg_parser->cfg->auths;
3150b7c0c8c1SCy Schubert cfg_parser->cfg->auths = s;
3151b7c0c8c1SCy Schubert /* defaults for RPZ auth zone */
3152b7c0c8c1SCy Schubert s->for_downstream = 0;
3153b7c0c8c1SCy Schubert s->for_upstream = 0;
3154b7c0c8c1SCy Schubert s->fallback_enabled = 0;
3155b7c0c8c1SCy Schubert s->isrpz = 1;
3156b7c0c8c1SCy Schubert } else {
3157b7c0c8c1SCy Schubert yyerror("out of memory");
3158b7c0c8c1SCy Schubert }
3159b7c0c8c1SCy Schubert }
3160*335c7cdaSCy Schubert #line 3161 "util/configparser.c"
3161b7c0c8c1SCy Schubert break;
3162b7c0c8c1SCy Schubert
3163*335c7cdaSCy Schubert case 336: /* server_num_threads: VAR_NUM_THREADS STRING_ARG */
3164*335c7cdaSCy Schubert #line 530 "util/configparser.y"
3165b7c0c8c1SCy Schubert {
3166b7c0c8c1SCy Schubert OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str)));
3167b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3168b7c0c8c1SCy Schubert yyerror("number expected");
3169b7c0c8c1SCy Schubert else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
3170b7c0c8c1SCy Schubert free((yyvsp[0].str));
3171b7c0c8c1SCy Schubert }
3172*335c7cdaSCy Schubert #line 3173 "util/configparser.c"
3173b7c0c8c1SCy Schubert break;
3174b7c0c8c1SCy Schubert
3175*335c7cdaSCy Schubert case 337: /* server_verbosity: VAR_VERBOSITY STRING_ARG */
3176*335c7cdaSCy Schubert #line 539 "util/configparser.y"
3177b7c0c8c1SCy Schubert {
3178b7c0c8c1SCy Schubert OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str)));
3179b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3180b7c0c8c1SCy Schubert yyerror("number expected");
3181b7c0c8c1SCy Schubert else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
3182b7c0c8c1SCy Schubert free((yyvsp[0].str));
3183b7c0c8c1SCy Schubert }
3184*335c7cdaSCy Schubert #line 3185 "util/configparser.c"
3185b7c0c8c1SCy Schubert break;
3186b7c0c8c1SCy Schubert
3187*335c7cdaSCy Schubert case 338: /* server_statistics_interval: VAR_STATISTICS_INTERVAL STRING_ARG */
3188*335c7cdaSCy Schubert #line 548 "util/configparser.y"
3189b7c0c8c1SCy Schubert {
3190b7c0c8c1SCy Schubert OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str)));
3191b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
3192b7c0c8c1SCy Schubert cfg_parser->cfg->stat_interval = 0;
3193b7c0c8c1SCy Schubert else if(atoi((yyvsp[0].str)) == 0)
3194b7c0c8c1SCy Schubert yyerror("number expected");
3195b7c0c8c1SCy Schubert else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
3196b7c0c8c1SCy Schubert free((yyvsp[0].str));
3197b7c0c8c1SCy Schubert }
3198*335c7cdaSCy Schubert #line 3199 "util/configparser.c"
3199b7c0c8c1SCy Schubert break;
3200b7c0c8c1SCy Schubert
3201*335c7cdaSCy Schubert case 339: /* server_statistics_cumulative: VAR_STATISTICS_CUMULATIVE STRING_ARG */
3202*335c7cdaSCy Schubert #line 559 "util/configparser.y"
3203b7c0c8c1SCy Schubert {
3204b7c0c8c1SCy Schubert OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
3205b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3206b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3207b7c0c8c1SCy Schubert else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
3208b7c0c8c1SCy Schubert free((yyvsp[0].str));
3209b7c0c8c1SCy Schubert }
3210*335c7cdaSCy Schubert #line 3211 "util/configparser.c"
3211b7c0c8c1SCy Schubert break;
3212b7c0c8c1SCy Schubert
3213*335c7cdaSCy Schubert case 340: /* server_extended_statistics: VAR_EXTENDED_STATISTICS STRING_ARG */
3214*335c7cdaSCy Schubert #line 568 "util/configparser.y"
3215b7c0c8c1SCy Schubert {
3216b7c0c8c1SCy Schubert OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
3217b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3218b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3219b7c0c8c1SCy Schubert else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
3220b7c0c8c1SCy Schubert free((yyvsp[0].str));
3221b7c0c8c1SCy Schubert }
3222*335c7cdaSCy Schubert #line 3223 "util/configparser.c"
3223b7c0c8c1SCy Schubert break;
3224b7c0c8c1SCy Schubert
3225*335c7cdaSCy Schubert case 341: /* server_statistics_inhibit_zero: VAR_STATISTICS_INHIBIT_ZERO STRING_ARG */
3226*335c7cdaSCy Schubert #line 577 "util/configparser.y"
3227b7c0c8c1SCy Schubert {
3228b7c0c8c1SCy Schubert OUTYY(("P(server_statistics_inhibit_zero:%s)\n", (yyvsp[0].str)));
3229b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3230b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3231b7c0c8c1SCy Schubert else cfg_parser->cfg->stat_inhibit_zero = (strcmp((yyvsp[0].str), "yes")==0);
3232b7c0c8c1SCy Schubert free((yyvsp[0].str));
3233b7c0c8c1SCy Schubert }
3234*335c7cdaSCy Schubert #line 3235 "util/configparser.c"
3235b7c0c8c1SCy Schubert break;
3236b7c0c8c1SCy Schubert
3237*335c7cdaSCy Schubert case 342: /* server_shm_enable: VAR_SHM_ENABLE STRING_ARG */
3238*335c7cdaSCy Schubert #line 586 "util/configparser.y"
3239b7c0c8c1SCy Schubert {
3240b7c0c8c1SCy Schubert OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str)));
3241b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3242b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3243b7c0c8c1SCy Schubert else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0);
3244b7c0c8c1SCy Schubert free((yyvsp[0].str));
3245b7c0c8c1SCy Schubert }
3246*335c7cdaSCy Schubert #line 3247 "util/configparser.c"
3247b7c0c8c1SCy Schubert break;
3248b7c0c8c1SCy Schubert
3249*335c7cdaSCy Schubert case 343: /* server_shm_key: VAR_SHM_KEY STRING_ARG */
3250*335c7cdaSCy Schubert #line 595 "util/configparser.y"
3251b7c0c8c1SCy Schubert {
3252b7c0c8c1SCy Schubert OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str)));
3253b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
3254b7c0c8c1SCy Schubert cfg_parser->cfg->shm_key = 0;
3255b7c0c8c1SCy Schubert else if(atoi((yyvsp[0].str)) == 0)
3256b7c0c8c1SCy Schubert yyerror("number expected");
3257b7c0c8c1SCy Schubert else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str));
3258b7c0c8c1SCy Schubert free((yyvsp[0].str));
3259b7c0c8c1SCy Schubert }
3260*335c7cdaSCy Schubert #line 3261 "util/configparser.c"
3261b7c0c8c1SCy Schubert break;
3262b7c0c8c1SCy Schubert
3263*335c7cdaSCy Schubert case 344: /* server_port: VAR_PORT STRING_ARG */
3264*335c7cdaSCy Schubert #line 606 "util/configparser.y"
3265b7c0c8c1SCy Schubert {
3266b7c0c8c1SCy Schubert OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
3267b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
3268b7c0c8c1SCy Schubert yyerror("port number expected");
3269b7c0c8c1SCy Schubert else cfg_parser->cfg->port = atoi((yyvsp[0].str));
3270b7c0c8c1SCy Schubert free((yyvsp[0].str));
3271b7c0c8c1SCy Schubert }
3272*335c7cdaSCy Schubert #line 3273 "util/configparser.c"
3273b7c0c8c1SCy Schubert break;
3274b7c0c8c1SCy Schubert
3275*335c7cdaSCy Schubert case 345: /* server_send_client_subnet: VAR_SEND_CLIENT_SUBNET STRING_ARG */
3276*335c7cdaSCy Schubert #line 615 "util/configparser.y"
3277b7c0c8c1SCy Schubert {
3278b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET
3279b7c0c8c1SCy Schubert OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str)));
3280b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[0].str)))
3281b7c0c8c1SCy Schubert fatal_exit("out of memory adding client-subnet");
3282b7c0c8c1SCy Schubert #else
3283b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3284b7c0c8c1SCy Schubert free((yyvsp[0].str));
3285b7c0c8c1SCy Schubert #endif
3286b7c0c8c1SCy Schubert }
3287*335c7cdaSCy Schubert #line 3288 "util/configparser.c"
3288b7c0c8c1SCy Schubert break;
3289b7c0c8c1SCy Schubert
3290*335c7cdaSCy Schubert case 346: /* server_client_subnet_zone: VAR_CLIENT_SUBNET_ZONE STRING_ARG */
3291*335c7cdaSCy Schubert #line 627 "util/configparser.y"
3292b7c0c8c1SCy Schubert {
3293b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET
3294b7c0c8c1SCy Schubert OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str)));
3295b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone,
3296b7c0c8c1SCy Schubert (yyvsp[0].str)))
3297b7c0c8c1SCy Schubert fatal_exit("out of memory adding client-subnet-zone");
3298b7c0c8c1SCy Schubert #else
3299b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3300b7c0c8c1SCy Schubert free((yyvsp[0].str));
3301b7c0c8c1SCy Schubert #endif
3302b7c0c8c1SCy Schubert }
3303*335c7cdaSCy Schubert #line 3304 "util/configparser.c"
3304b7c0c8c1SCy Schubert break;
3305b7c0c8c1SCy Schubert
3306*335c7cdaSCy Schubert case 347: /* server_client_subnet_always_forward: VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG */
3307*335c7cdaSCy Schubert #line 641 "util/configparser.y"
3308b7c0c8c1SCy Schubert {
3309b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET
3310b7c0c8c1SCy Schubert OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str)));
3311b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3312b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3313b7c0c8c1SCy Schubert else
3314b7c0c8c1SCy Schubert cfg_parser->cfg->client_subnet_always_forward =
3315b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
3316b7c0c8c1SCy Schubert #else
3317b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3318b7c0c8c1SCy Schubert #endif
3319b7c0c8c1SCy Schubert free((yyvsp[0].str));
3320b7c0c8c1SCy Schubert }
3321*335c7cdaSCy Schubert #line 3322 "util/configparser.c"
3322b7c0c8c1SCy Schubert break;
3323b7c0c8c1SCy Schubert
3324*335c7cdaSCy Schubert case 348: /* server_client_subnet_opcode: VAR_CLIENT_SUBNET_OPCODE STRING_ARG */
3325*335c7cdaSCy Schubert #line 656 "util/configparser.y"
3326b7c0c8c1SCy Schubert {
3327b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET
3328b7c0c8c1SCy Schubert OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str)));
3329b7c0c8c1SCy Schubert OUTYY(("P(Deprecated option, ignoring)\n"));
3330b7c0c8c1SCy Schubert #else
3331b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3332b7c0c8c1SCy Schubert #endif
3333b7c0c8c1SCy Schubert free((yyvsp[0].str));
3334b7c0c8c1SCy Schubert }
3335*335c7cdaSCy Schubert #line 3336 "util/configparser.c"
3336b7c0c8c1SCy Schubert break;
3337b7c0c8c1SCy Schubert
3338*335c7cdaSCy Schubert case 349: /* server_max_client_subnet_ipv4: VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG */
3339*335c7cdaSCy Schubert #line 667 "util/configparser.y"
3340b7c0c8c1SCy Schubert {
3341b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET
3342b7c0c8c1SCy Schubert OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
3343b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3344b7c0c8c1SCy Schubert yyerror("IPv4 subnet length expected");
3345b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 32)
3346b7c0c8c1SCy Schubert cfg_parser->cfg->max_client_subnet_ipv4 = 32;
3347b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0)
3348b7c0c8c1SCy Schubert cfg_parser->cfg->max_client_subnet_ipv4 = 0;
3349b7c0c8c1SCy Schubert else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str));
3350b7c0c8c1SCy Schubert #else
3351b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3352b7c0c8c1SCy Schubert #endif
3353b7c0c8c1SCy Schubert free((yyvsp[0].str));
3354b7c0c8c1SCy Schubert }
3355*335c7cdaSCy Schubert #line 3356 "util/configparser.c"
3356b7c0c8c1SCy Schubert break;
3357b7c0c8c1SCy Schubert
3358*335c7cdaSCy Schubert case 350: /* server_max_client_subnet_ipv6: VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG */
3359*335c7cdaSCy Schubert #line 684 "util/configparser.y"
3360b7c0c8c1SCy Schubert {
3361b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET
3362b7c0c8c1SCy Schubert OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
3363b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3364b7c0c8c1SCy Schubert yyerror("Ipv6 subnet length expected");
3365b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 128)
3366b7c0c8c1SCy Schubert cfg_parser->cfg->max_client_subnet_ipv6 = 128;
3367b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0)
3368b7c0c8c1SCy Schubert cfg_parser->cfg->max_client_subnet_ipv6 = 0;
3369b7c0c8c1SCy Schubert else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str));
3370b7c0c8c1SCy Schubert #else
3371b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3372b7c0c8c1SCy Schubert #endif
3373b7c0c8c1SCy Schubert free((yyvsp[0].str));
3374b7c0c8c1SCy Schubert }
3375*335c7cdaSCy Schubert #line 3376 "util/configparser.c"
3376b7c0c8c1SCy Schubert break;
3377b7c0c8c1SCy Schubert
3378*335c7cdaSCy Schubert case 351: /* server_min_client_subnet_ipv4: VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG */
3379*335c7cdaSCy Schubert #line 701 "util/configparser.y"
3380b7c0c8c1SCy Schubert {
3381b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET
3382b7c0c8c1SCy Schubert OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str)));
3383b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3384b7c0c8c1SCy Schubert yyerror("IPv4 subnet length expected");
3385b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 32)
3386b7c0c8c1SCy Schubert cfg_parser->cfg->min_client_subnet_ipv4 = 32;
3387b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0)
3388b7c0c8c1SCy Schubert cfg_parser->cfg->min_client_subnet_ipv4 = 0;
3389b7c0c8c1SCy Schubert else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi((yyvsp[0].str));
3390b7c0c8c1SCy Schubert #else
3391b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3392b7c0c8c1SCy Schubert #endif
3393b7c0c8c1SCy Schubert free((yyvsp[0].str));
3394b7c0c8c1SCy Schubert }
3395*335c7cdaSCy Schubert #line 3396 "util/configparser.c"
3396b7c0c8c1SCy Schubert break;
3397b7c0c8c1SCy Schubert
3398*335c7cdaSCy Schubert case 352: /* server_min_client_subnet_ipv6: VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG */
3399*335c7cdaSCy Schubert #line 718 "util/configparser.y"
3400b7c0c8c1SCy Schubert {
3401b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET
3402b7c0c8c1SCy Schubert OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str)));
3403b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3404b7c0c8c1SCy Schubert yyerror("Ipv6 subnet length expected");
3405b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 128)
3406b7c0c8c1SCy Schubert cfg_parser->cfg->min_client_subnet_ipv6 = 128;
3407b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0)
3408b7c0c8c1SCy Schubert cfg_parser->cfg->min_client_subnet_ipv6 = 0;
3409b7c0c8c1SCy Schubert else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi((yyvsp[0].str));
3410b7c0c8c1SCy Schubert #else
3411b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3412b7c0c8c1SCy Schubert #endif
3413b7c0c8c1SCy Schubert free((yyvsp[0].str));
3414b7c0c8c1SCy Schubert }
3415*335c7cdaSCy Schubert #line 3416 "util/configparser.c"
3416b7c0c8c1SCy Schubert break;
3417b7c0c8c1SCy Schubert
3418*335c7cdaSCy Schubert case 353: /* server_max_ecs_tree_size_ipv4: VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG */
3419*335c7cdaSCy Schubert #line 735 "util/configparser.y"
3420b7c0c8c1SCy Schubert {
3421b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET
3422b7c0c8c1SCy Schubert OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str)));
3423b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3424b7c0c8c1SCy Schubert yyerror("IPv4 ECS tree size expected");
3425b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0)
3426b7c0c8c1SCy Schubert cfg_parser->cfg->max_ecs_tree_size_ipv4 = 0;
3427b7c0c8c1SCy Schubert else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi((yyvsp[0].str));
3428b7c0c8c1SCy Schubert #else
3429b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3430b7c0c8c1SCy Schubert #endif
3431b7c0c8c1SCy Schubert free((yyvsp[0].str));
3432b7c0c8c1SCy Schubert }
3433*335c7cdaSCy Schubert #line 3434 "util/configparser.c"
3434b7c0c8c1SCy Schubert break;
3435b7c0c8c1SCy Schubert
3436*335c7cdaSCy Schubert case 354: /* server_max_ecs_tree_size_ipv6: VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG */
3437*335c7cdaSCy Schubert #line 750 "util/configparser.y"
3438b7c0c8c1SCy Schubert {
3439b7c0c8c1SCy Schubert #ifdef CLIENT_SUBNET
3440b7c0c8c1SCy Schubert OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str)));
3441b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3442b7c0c8c1SCy Schubert yyerror("IPv6 ECS tree size expected");
3443b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0)
3444b7c0c8c1SCy Schubert cfg_parser->cfg->max_ecs_tree_size_ipv6 = 0;
3445b7c0c8c1SCy Schubert else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi((yyvsp[0].str));
3446b7c0c8c1SCy Schubert #else
3447b7c0c8c1SCy Schubert OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
3448b7c0c8c1SCy Schubert #endif
3449b7c0c8c1SCy Schubert free((yyvsp[0].str));
3450b7c0c8c1SCy Schubert }
3451*335c7cdaSCy Schubert #line 3452 "util/configparser.c"
3452b7c0c8c1SCy Schubert break;
3453b7c0c8c1SCy Schubert
3454*335c7cdaSCy Schubert case 355: /* server_interface: VAR_INTERFACE STRING_ARG */
3455*335c7cdaSCy Schubert #line 765 "util/configparser.y"
3456b7c0c8c1SCy Schubert {
3457b7c0c8c1SCy Schubert OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
3458b7c0c8c1SCy Schubert if(cfg_parser->cfg->num_ifs == 0)
3459b7c0c8c1SCy Schubert cfg_parser->cfg->ifs = calloc(1, sizeof(char*));
3460b7c0c8c1SCy Schubert else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs,
3461b7c0c8c1SCy Schubert (cfg_parser->cfg->num_ifs+1)*sizeof(char*));
3462b7c0c8c1SCy Schubert if(!cfg_parser->cfg->ifs)
3463b7c0c8c1SCy Schubert yyerror("out of memory");
3464b7c0c8c1SCy Schubert else
3465b7c0c8c1SCy Schubert cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
3466b7c0c8c1SCy Schubert }
3467*335c7cdaSCy Schubert #line 3468 "util/configparser.c"
3468b7c0c8c1SCy Schubert break;
3469b7c0c8c1SCy Schubert
3470*335c7cdaSCy Schubert case 356: /* server_outgoing_interface: VAR_OUTGOING_INTERFACE STRING_ARG */
3471*335c7cdaSCy Schubert #line 778 "util/configparser.y"
3472b7c0c8c1SCy Schubert {
3473b7c0c8c1SCy Schubert OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
3474b7c0c8c1SCy Schubert if(cfg_parser->cfg->num_out_ifs == 0)
3475b7c0c8c1SCy Schubert cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*));
3476b7c0c8c1SCy Schubert else cfg_parser->cfg->out_ifs = realloc(
3477b7c0c8c1SCy Schubert cfg_parser->cfg->out_ifs,
3478b7c0c8c1SCy Schubert (cfg_parser->cfg->num_out_ifs+1)*sizeof(char*));
3479b7c0c8c1SCy Schubert if(!cfg_parser->cfg->out_ifs)
3480b7c0c8c1SCy Schubert yyerror("out of memory");
3481b7c0c8c1SCy Schubert else
3482b7c0c8c1SCy Schubert cfg_parser->cfg->out_ifs[
3483b7c0c8c1SCy Schubert cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
3484b7c0c8c1SCy Schubert }
3485*335c7cdaSCy Schubert #line 3486 "util/configparser.c"
3486b7c0c8c1SCy Schubert break;
3487b7c0c8c1SCy Schubert
3488*335c7cdaSCy Schubert case 357: /* server_outgoing_range: VAR_OUTGOING_RANGE STRING_ARG */
3489*335c7cdaSCy Schubert #line 793 "util/configparser.y"
3490b7c0c8c1SCy Schubert {
3491b7c0c8c1SCy Schubert OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
3492b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
3493b7c0c8c1SCy Schubert yyerror("number expected");
3494b7c0c8c1SCy Schubert else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
3495b7c0c8c1SCy Schubert free((yyvsp[0].str));
3496b7c0c8c1SCy Schubert }
3497*335c7cdaSCy Schubert #line 3498 "util/configparser.c"
3498b7c0c8c1SCy Schubert break;
3499b7c0c8c1SCy Schubert
3500*335c7cdaSCy Schubert case 358: /* server_outgoing_port_permit: VAR_OUTGOING_PORT_PERMIT STRING_ARG */
3501*335c7cdaSCy Schubert #line 802 "util/configparser.y"
3502b7c0c8c1SCy Schubert {
3503b7c0c8c1SCy Schubert OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
3504b7c0c8c1SCy Schubert if(!cfg_mark_ports((yyvsp[0].str), 1,
3505b7c0c8c1SCy Schubert cfg_parser->cfg->outgoing_avail_ports, 65536))
3506b7c0c8c1SCy Schubert yyerror("port number or range (\"low-high\") expected");
3507b7c0c8c1SCy Schubert free((yyvsp[0].str));
3508b7c0c8c1SCy Schubert }
3509*335c7cdaSCy Schubert #line 3510 "util/configparser.c"
3510b7c0c8c1SCy Schubert break;
3511b7c0c8c1SCy Schubert
3512*335c7cdaSCy Schubert case 359: /* server_outgoing_port_avoid: VAR_OUTGOING_PORT_AVOID STRING_ARG */
3513*335c7cdaSCy Schubert #line 811 "util/configparser.y"
3514b7c0c8c1SCy Schubert {
3515b7c0c8c1SCy Schubert OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
3516b7c0c8c1SCy Schubert if(!cfg_mark_ports((yyvsp[0].str), 0,
3517b7c0c8c1SCy Schubert cfg_parser->cfg->outgoing_avail_ports, 65536))
3518b7c0c8c1SCy Schubert yyerror("port number or range (\"low-high\") expected");
3519b7c0c8c1SCy Schubert free((yyvsp[0].str));
3520b7c0c8c1SCy Schubert }
3521*335c7cdaSCy Schubert #line 3522 "util/configparser.c"
3522b7c0c8c1SCy Schubert break;
3523b7c0c8c1SCy Schubert
3524*335c7cdaSCy Schubert case 360: /* server_outgoing_num_tcp: VAR_OUTGOING_NUM_TCP STRING_ARG */
3525*335c7cdaSCy Schubert #line 820 "util/configparser.y"
3526b7c0c8c1SCy Schubert {
3527b7c0c8c1SCy Schubert OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
3528b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3529b7c0c8c1SCy Schubert yyerror("number expected");
3530b7c0c8c1SCy Schubert else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
3531b7c0c8c1SCy Schubert free((yyvsp[0].str));
3532b7c0c8c1SCy Schubert }
3533*335c7cdaSCy Schubert #line 3534 "util/configparser.c"
3534b7c0c8c1SCy Schubert break;
3535b7c0c8c1SCy Schubert
3536*335c7cdaSCy Schubert case 361: /* server_incoming_num_tcp: VAR_INCOMING_NUM_TCP STRING_ARG */
3537*335c7cdaSCy Schubert #line 829 "util/configparser.y"
3538b7c0c8c1SCy Schubert {
3539b7c0c8c1SCy Schubert OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
3540b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3541b7c0c8c1SCy Schubert yyerror("number expected");
3542b7c0c8c1SCy Schubert else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
3543b7c0c8c1SCy Schubert free((yyvsp[0].str));
3544b7c0c8c1SCy Schubert }
3545*335c7cdaSCy Schubert #line 3546 "util/configparser.c"
3546b7c0c8c1SCy Schubert break;
3547b7c0c8c1SCy Schubert
3548*335c7cdaSCy Schubert case 362: /* server_interface_automatic: VAR_INTERFACE_AUTOMATIC STRING_ARG */
3549*335c7cdaSCy Schubert #line 838 "util/configparser.y"
3550b7c0c8c1SCy Schubert {
3551b7c0c8c1SCy Schubert OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
3552b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3553b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3554b7c0c8c1SCy Schubert else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
3555b7c0c8c1SCy Schubert free((yyvsp[0].str));
3556b7c0c8c1SCy Schubert }
3557*335c7cdaSCy Schubert #line 3558 "util/configparser.c"
3558b7c0c8c1SCy Schubert break;
3559b7c0c8c1SCy Schubert
3560*335c7cdaSCy Schubert case 363: /* server_interface_automatic_ports: VAR_INTERFACE_AUTOMATIC_PORTS STRING_ARG */
3561*335c7cdaSCy Schubert #line 847 "util/configparser.y"
3562b7c0c8c1SCy Schubert {
3563b7c0c8c1SCy Schubert OUTYY(("P(server_interface_automatic_ports:%s)\n", (yyvsp[0].str)));
3564b7c0c8c1SCy Schubert free(cfg_parser->cfg->if_automatic_ports);
3565b7c0c8c1SCy Schubert cfg_parser->cfg->if_automatic_ports = (yyvsp[0].str);
3566b7c0c8c1SCy Schubert }
3567*335c7cdaSCy Schubert #line 3568 "util/configparser.c"
3568b7c0c8c1SCy Schubert break;
3569b7c0c8c1SCy Schubert
3570*335c7cdaSCy Schubert case 364: /* server_do_ip4: VAR_DO_IP4 STRING_ARG */
3571*335c7cdaSCy Schubert #line 854 "util/configparser.y"
3572b7c0c8c1SCy Schubert {
3573b7c0c8c1SCy Schubert OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
3574b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3575b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3576b7c0c8c1SCy Schubert else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
3577b7c0c8c1SCy Schubert free((yyvsp[0].str));
3578b7c0c8c1SCy Schubert }
3579*335c7cdaSCy Schubert #line 3580 "util/configparser.c"
3580b7c0c8c1SCy Schubert break;
3581b7c0c8c1SCy Schubert
3582*335c7cdaSCy Schubert case 365: /* server_do_ip6: VAR_DO_IP6 STRING_ARG */
3583*335c7cdaSCy Schubert #line 863 "util/configparser.y"
3584b7c0c8c1SCy Schubert {
3585b7c0c8c1SCy Schubert OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
3586b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3587b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3588b7c0c8c1SCy Schubert else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
3589b7c0c8c1SCy Schubert free((yyvsp[0].str));
3590b7c0c8c1SCy Schubert }
3591*335c7cdaSCy Schubert #line 3592 "util/configparser.c"
3592b7c0c8c1SCy Schubert break;
3593b7c0c8c1SCy Schubert
3594*335c7cdaSCy Schubert case 366: /* server_do_nat64: VAR_DO_NAT64 STRING_ARG */
3595*335c7cdaSCy Schubert #line 872 "util/configparser.y"
3596b7c0c8c1SCy Schubert {
3597b7c0c8c1SCy Schubert OUTYY(("P(server_do_nat64:%s)\n", (yyvsp[0].str)));
3598b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3599b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3600b7c0c8c1SCy Schubert else cfg_parser->cfg->do_nat64 = (strcmp((yyvsp[0].str), "yes")==0);
3601b7c0c8c1SCy Schubert free((yyvsp[0].str));
3602b7c0c8c1SCy Schubert }
3603*335c7cdaSCy Schubert #line 3604 "util/configparser.c"
3604b7c0c8c1SCy Schubert break;
3605b7c0c8c1SCy Schubert
3606*335c7cdaSCy Schubert case 367: /* server_do_udp: VAR_DO_UDP STRING_ARG */
3607*335c7cdaSCy Schubert #line 881 "util/configparser.y"
3608b7c0c8c1SCy Schubert {
3609b7c0c8c1SCy Schubert OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
3610b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3611b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3612b7c0c8c1SCy Schubert else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
3613b7c0c8c1SCy Schubert free((yyvsp[0].str));
3614b7c0c8c1SCy Schubert }
3615*335c7cdaSCy Schubert #line 3616 "util/configparser.c"
3616b7c0c8c1SCy Schubert break;
3617b7c0c8c1SCy Schubert
3618*335c7cdaSCy Schubert case 368: /* server_do_tcp: VAR_DO_TCP STRING_ARG */
3619*335c7cdaSCy Schubert #line 890 "util/configparser.y"
3620b7c0c8c1SCy Schubert {
3621b7c0c8c1SCy Schubert OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
3622b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3623b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3624b7c0c8c1SCy Schubert else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
3625b7c0c8c1SCy Schubert free((yyvsp[0].str));
3626b7c0c8c1SCy Schubert }
3627*335c7cdaSCy Schubert #line 3628 "util/configparser.c"
3628b7c0c8c1SCy Schubert break;
3629b7c0c8c1SCy Schubert
3630*335c7cdaSCy Schubert case 369: /* server_prefer_ip4: VAR_PREFER_IP4 STRING_ARG */
3631*335c7cdaSCy Schubert #line 899 "util/configparser.y"
3632b7c0c8c1SCy Schubert {
3633b7c0c8c1SCy Schubert OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str)));
3634b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3635b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3636b7c0c8c1SCy Schubert else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
3637b7c0c8c1SCy Schubert free((yyvsp[0].str));
3638b7c0c8c1SCy Schubert }
3639*335c7cdaSCy Schubert #line 3640 "util/configparser.c"
3640b7c0c8c1SCy Schubert break;
3641b7c0c8c1SCy Schubert
3642*335c7cdaSCy Schubert case 370: /* server_prefer_ip6: VAR_PREFER_IP6 STRING_ARG */
3643*335c7cdaSCy Schubert #line 908 "util/configparser.y"
3644b7c0c8c1SCy Schubert {
3645b7c0c8c1SCy Schubert OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
3646b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3647b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3648b7c0c8c1SCy Schubert else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
3649b7c0c8c1SCy Schubert free((yyvsp[0].str));
3650b7c0c8c1SCy Schubert }
3651*335c7cdaSCy Schubert #line 3652 "util/configparser.c"
3652b7c0c8c1SCy Schubert break;
3653b7c0c8c1SCy Schubert
3654*335c7cdaSCy Schubert case 371: /* server_tcp_mss: VAR_TCP_MSS STRING_ARG */
3655*335c7cdaSCy Schubert #line 917 "util/configparser.y"
3656b7c0c8c1SCy Schubert {
3657b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
3658b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3659b7c0c8c1SCy Schubert yyerror("number expected");
3660b7c0c8c1SCy Schubert else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
3661b7c0c8c1SCy Schubert free((yyvsp[0].str));
3662b7c0c8c1SCy Schubert }
3663*335c7cdaSCy Schubert #line 3664 "util/configparser.c"
3664b7c0c8c1SCy Schubert break;
3665b7c0c8c1SCy Schubert
3666*335c7cdaSCy Schubert case 372: /* server_outgoing_tcp_mss: VAR_OUTGOING_TCP_MSS STRING_ARG */
3667*335c7cdaSCy Schubert #line 926 "util/configparser.y"
3668b7c0c8c1SCy Schubert {
3669b7c0c8c1SCy Schubert OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
3670b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3671b7c0c8c1SCy Schubert yyerror("number expected");
3672b7c0c8c1SCy Schubert else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
3673b7c0c8c1SCy Schubert free((yyvsp[0].str));
3674b7c0c8c1SCy Schubert }
3675*335c7cdaSCy Schubert #line 3676 "util/configparser.c"
3676b7c0c8c1SCy Schubert break;
3677b7c0c8c1SCy Schubert
3678*335c7cdaSCy Schubert case 373: /* server_tcp_idle_timeout: VAR_TCP_IDLE_TIMEOUT STRING_ARG */
3679*335c7cdaSCy Schubert #line 935 "util/configparser.y"
3680b7c0c8c1SCy Schubert {
3681b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str)));
3682b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3683b7c0c8c1SCy Schubert yyerror("number expected");
3684b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 120000)
3685b7c0c8c1SCy Schubert cfg_parser->cfg->tcp_idle_timeout = 120000;
3686b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 1)
3687b7c0c8c1SCy Schubert cfg_parser->cfg->tcp_idle_timeout = 1;
3688b7c0c8c1SCy Schubert else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str));
3689b7c0c8c1SCy Schubert free((yyvsp[0].str));
3690b7c0c8c1SCy Schubert }
3691*335c7cdaSCy Schubert #line 3692 "util/configparser.c"
3692b7c0c8c1SCy Schubert break;
3693b7c0c8c1SCy Schubert
3694*335c7cdaSCy Schubert case 374: /* server_max_reuse_tcp_queries: VAR_MAX_REUSE_TCP_QUERIES STRING_ARG */
3695*335c7cdaSCy Schubert #line 948 "util/configparser.y"
3696b7c0c8c1SCy Schubert {
3697b7c0c8c1SCy Schubert OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", (yyvsp[0].str)));
3698b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3699b7c0c8c1SCy Schubert yyerror("number expected");
3700b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 1)
3701b7c0c8c1SCy Schubert cfg_parser->cfg->max_reuse_tcp_queries = 0;
3702b7c0c8c1SCy Schubert else cfg_parser->cfg->max_reuse_tcp_queries = atoi((yyvsp[0].str));
3703b7c0c8c1SCy Schubert free((yyvsp[0].str));
3704b7c0c8c1SCy Schubert }
3705*335c7cdaSCy Schubert #line 3706 "util/configparser.c"
3706b7c0c8c1SCy Schubert break;
3707b7c0c8c1SCy Schubert
3708*335c7cdaSCy Schubert case 375: /* server_tcp_reuse_timeout: VAR_TCP_REUSE_TIMEOUT STRING_ARG */
3709*335c7cdaSCy Schubert #line 959 "util/configparser.y"
3710b7c0c8c1SCy Schubert {
3711b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_reuse_timeout:%s)\n", (yyvsp[0].str)));
3712b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3713b7c0c8c1SCy Schubert yyerror("number expected");
3714b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 1)
3715b7c0c8c1SCy Schubert cfg_parser->cfg->tcp_reuse_timeout = 0;
3716b7c0c8c1SCy Schubert else cfg_parser->cfg->tcp_reuse_timeout = atoi((yyvsp[0].str));
3717b7c0c8c1SCy Schubert free((yyvsp[0].str));
3718b7c0c8c1SCy Schubert }
3719*335c7cdaSCy Schubert #line 3720 "util/configparser.c"
3720b7c0c8c1SCy Schubert break;
3721b7c0c8c1SCy Schubert
3722*335c7cdaSCy Schubert case 376: /* server_tcp_auth_query_timeout: VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG */
3723*335c7cdaSCy Schubert #line 970 "util/configparser.y"
3724b7c0c8c1SCy Schubert {
3725b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", (yyvsp[0].str)));
3726b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3727b7c0c8c1SCy Schubert yyerror("number expected");
3728b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 1)
3729b7c0c8c1SCy Schubert cfg_parser->cfg->tcp_auth_query_timeout = 0;
3730b7c0c8c1SCy Schubert else cfg_parser->cfg->tcp_auth_query_timeout = atoi((yyvsp[0].str));
3731b7c0c8c1SCy Schubert free((yyvsp[0].str));
3732b7c0c8c1SCy Schubert }
3733*335c7cdaSCy Schubert #line 3734 "util/configparser.c"
3734b7c0c8c1SCy Schubert break;
3735b7c0c8c1SCy Schubert
3736*335c7cdaSCy Schubert case 377: /* server_tcp_keepalive: VAR_EDNS_TCP_KEEPALIVE STRING_ARG */
3737*335c7cdaSCy Schubert #line 981 "util/configparser.y"
3738b7c0c8c1SCy Schubert {
3739b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str)));
3740b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3741b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3742b7c0c8c1SCy Schubert else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0);
3743b7c0c8c1SCy Schubert free((yyvsp[0].str));
3744b7c0c8c1SCy Schubert }
3745*335c7cdaSCy Schubert #line 3746 "util/configparser.c"
3746b7c0c8c1SCy Schubert break;
3747b7c0c8c1SCy Schubert
3748*335c7cdaSCy Schubert case 378: /* server_tcp_keepalive_timeout: VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG */
3749*335c7cdaSCy Schubert #line 990 "util/configparser.y"
3750b7c0c8c1SCy Schubert {
3751b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str)));
3752b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3753b7c0c8c1SCy Schubert yyerror("number expected");
3754b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 6553500)
3755b7c0c8c1SCy Schubert cfg_parser->cfg->tcp_keepalive_timeout = 6553500;
3756b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 1)
3757b7c0c8c1SCy Schubert cfg_parser->cfg->tcp_keepalive_timeout = 0;
3758b7c0c8c1SCy Schubert else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str));
3759b7c0c8c1SCy Schubert free((yyvsp[0].str));
3760b7c0c8c1SCy Schubert }
3761*335c7cdaSCy Schubert #line 3762 "util/configparser.c"
3762b7c0c8c1SCy Schubert break;
3763b7c0c8c1SCy Schubert
3764*335c7cdaSCy Schubert case 379: /* server_sock_queue_timeout: VAR_SOCK_QUEUE_TIMEOUT STRING_ARG */
3765*335c7cdaSCy Schubert #line 1003 "util/configparser.y"
3766b7c0c8c1SCy Schubert {
3767b7c0c8c1SCy Schubert OUTYY(("P(server_sock_queue_timeout:%s)\n", (yyvsp[0].str)));
3768b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3769b7c0c8c1SCy Schubert yyerror("number expected");
3770b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 6553500)
3771b7c0c8c1SCy Schubert cfg_parser->cfg->sock_queue_timeout = 6553500;
3772b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 1)
3773b7c0c8c1SCy Schubert cfg_parser->cfg->sock_queue_timeout = 0;
3774b7c0c8c1SCy Schubert else cfg_parser->cfg->sock_queue_timeout = atoi((yyvsp[0].str));
3775b7c0c8c1SCy Schubert free((yyvsp[0].str));
3776b7c0c8c1SCy Schubert }
3777*335c7cdaSCy Schubert #line 3778 "util/configparser.c"
3778b7c0c8c1SCy Schubert break;
3779b7c0c8c1SCy Schubert
3780*335c7cdaSCy Schubert case 380: /* server_tcp_upstream: VAR_TCP_UPSTREAM STRING_ARG */
3781*335c7cdaSCy Schubert #line 1016 "util/configparser.y"
3782b7c0c8c1SCy Schubert {
3783b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
3784b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3785b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3786b7c0c8c1SCy Schubert else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
3787b7c0c8c1SCy Schubert free((yyvsp[0].str));
3788b7c0c8c1SCy Schubert }
3789*335c7cdaSCy Schubert #line 3790 "util/configparser.c"
3790b7c0c8c1SCy Schubert break;
3791b7c0c8c1SCy Schubert
3792*335c7cdaSCy Schubert case 381: /* server_udp_upstream_without_downstream: VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG */
3793*335c7cdaSCy Schubert #line 1025 "util/configparser.y"
3794b7c0c8c1SCy Schubert {
3795b7c0c8c1SCy Schubert OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str)));
3796b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3797b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3798b7c0c8c1SCy Schubert else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0);
3799b7c0c8c1SCy Schubert free((yyvsp[0].str));
3800b7c0c8c1SCy Schubert }
3801*335c7cdaSCy Schubert #line 3802 "util/configparser.c"
3802b7c0c8c1SCy Schubert break;
3803b7c0c8c1SCy Schubert
3804*335c7cdaSCy Schubert case 382: /* server_ssl_upstream: VAR_SSL_UPSTREAM STRING_ARG */
3805*335c7cdaSCy Schubert #line 1034 "util/configparser.y"
3806b7c0c8c1SCy Schubert {
3807b7c0c8c1SCy Schubert OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
3808b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3809b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3810b7c0c8c1SCy Schubert else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
3811b7c0c8c1SCy Schubert free((yyvsp[0].str));
3812b7c0c8c1SCy Schubert }
3813*335c7cdaSCy Schubert #line 3814 "util/configparser.c"
3814b7c0c8c1SCy Schubert break;
3815b7c0c8c1SCy Schubert
3816*335c7cdaSCy Schubert case 383: /* server_ssl_service_key: VAR_SSL_SERVICE_KEY STRING_ARG */
3817*335c7cdaSCy Schubert #line 1043 "util/configparser.y"
3818b7c0c8c1SCy Schubert {
3819b7c0c8c1SCy Schubert OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str)));
3820b7c0c8c1SCy Schubert free(cfg_parser->cfg->ssl_service_key);
3821b7c0c8c1SCy Schubert cfg_parser->cfg->ssl_service_key = (yyvsp[0].str);
3822b7c0c8c1SCy Schubert }
3823*335c7cdaSCy Schubert #line 3824 "util/configparser.c"
3824b7c0c8c1SCy Schubert break;
3825b7c0c8c1SCy Schubert
3826*335c7cdaSCy Schubert case 384: /* server_ssl_service_pem: VAR_SSL_SERVICE_PEM STRING_ARG */
3827*335c7cdaSCy Schubert #line 1050 "util/configparser.y"
3828b7c0c8c1SCy Schubert {
3829b7c0c8c1SCy Schubert OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str)));
3830b7c0c8c1SCy Schubert free(cfg_parser->cfg->ssl_service_pem);
3831b7c0c8c1SCy Schubert cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str);
3832b7c0c8c1SCy Schubert }
3833*335c7cdaSCy Schubert #line 3834 "util/configparser.c"
3834b7c0c8c1SCy Schubert break;
3835b7c0c8c1SCy Schubert
3836*335c7cdaSCy Schubert case 385: /* server_ssl_port: VAR_SSL_PORT STRING_ARG */
3837*335c7cdaSCy Schubert #line 1057 "util/configparser.y"
3838b7c0c8c1SCy Schubert {
3839b7c0c8c1SCy Schubert OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
3840b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
3841b7c0c8c1SCy Schubert yyerror("port number expected");
3842b7c0c8c1SCy Schubert else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
3843b7c0c8c1SCy Schubert free((yyvsp[0].str));
3844b7c0c8c1SCy Schubert }
3845*335c7cdaSCy Schubert #line 3846 "util/configparser.c"
3846b7c0c8c1SCy Schubert break;
3847b7c0c8c1SCy Schubert
3848*335c7cdaSCy Schubert case 386: /* server_tls_cert_bundle: VAR_TLS_CERT_BUNDLE STRING_ARG */
3849*335c7cdaSCy Schubert #line 1066 "util/configparser.y"
3850b7c0c8c1SCy Schubert {
3851b7c0c8c1SCy Schubert OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
3852b7c0c8c1SCy Schubert free(cfg_parser->cfg->tls_cert_bundle);
3853b7c0c8c1SCy Schubert cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str);
3854b7c0c8c1SCy Schubert }
3855*335c7cdaSCy Schubert #line 3856 "util/configparser.c"
3856b7c0c8c1SCy Schubert break;
3857b7c0c8c1SCy Schubert
3858*335c7cdaSCy Schubert case 387: /* server_tls_win_cert: VAR_TLS_WIN_CERT STRING_ARG */
3859*335c7cdaSCy Schubert #line 1073 "util/configparser.y"
3860b7c0c8c1SCy Schubert {
3861b7c0c8c1SCy Schubert OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str)));
3862b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3863b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3864b7c0c8c1SCy Schubert else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0);
3865b7c0c8c1SCy Schubert free((yyvsp[0].str));
3866b7c0c8c1SCy Schubert }
3867*335c7cdaSCy Schubert #line 3868 "util/configparser.c"
3868b7c0c8c1SCy Schubert break;
3869b7c0c8c1SCy Schubert
3870*335c7cdaSCy Schubert case 388: /* server_tls_additional_port: VAR_TLS_ADDITIONAL_PORT STRING_ARG */
3871*335c7cdaSCy Schubert #line 1082 "util/configparser.y"
3872b7c0c8c1SCy Schubert {
3873b7c0c8c1SCy Schubert OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str)));
3874b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port,
3875b7c0c8c1SCy Schubert (yyvsp[0].str)))
3876b7c0c8c1SCy Schubert yyerror("out of memory");
3877b7c0c8c1SCy Schubert }
3878*335c7cdaSCy Schubert #line 3879 "util/configparser.c"
3879b7c0c8c1SCy Schubert break;
3880b7c0c8c1SCy Schubert
3881*335c7cdaSCy Schubert case 389: /* server_tls_ciphers: VAR_TLS_CIPHERS STRING_ARG */
3882*335c7cdaSCy Schubert #line 1090 "util/configparser.y"
3883b7c0c8c1SCy Schubert {
3884b7c0c8c1SCy Schubert OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str)));
3885b7c0c8c1SCy Schubert free(cfg_parser->cfg->tls_ciphers);
3886b7c0c8c1SCy Schubert cfg_parser->cfg->tls_ciphers = (yyvsp[0].str);
3887b7c0c8c1SCy Schubert }
3888*335c7cdaSCy Schubert #line 3889 "util/configparser.c"
3889b7c0c8c1SCy Schubert break;
3890b7c0c8c1SCy Schubert
3891*335c7cdaSCy Schubert case 390: /* server_tls_ciphersuites: VAR_TLS_CIPHERSUITES STRING_ARG */
3892*335c7cdaSCy Schubert #line 1097 "util/configparser.y"
3893b7c0c8c1SCy Schubert {
3894b7c0c8c1SCy Schubert OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str)));
3895b7c0c8c1SCy Schubert free(cfg_parser->cfg->tls_ciphersuites);
3896b7c0c8c1SCy Schubert cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str);
3897b7c0c8c1SCy Schubert }
3898*335c7cdaSCy Schubert #line 3899 "util/configparser.c"
3899b7c0c8c1SCy Schubert break;
3900b7c0c8c1SCy Schubert
3901*335c7cdaSCy Schubert case 391: /* server_tls_session_ticket_keys: VAR_TLS_SESSION_TICKET_KEYS STRING_ARG */
3902*335c7cdaSCy Schubert #line 1104 "util/configparser.y"
3903b7c0c8c1SCy Schubert {
3904b7c0c8c1SCy Schubert OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str)));
3905b7c0c8c1SCy Schubert if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys,
3906b7c0c8c1SCy Schubert (yyvsp[0].str)))
3907b7c0c8c1SCy Schubert yyerror("out of memory");
3908b7c0c8c1SCy Schubert }
3909*335c7cdaSCy Schubert #line 3910 "util/configparser.c"
3910b7c0c8c1SCy Schubert break;
3911b7c0c8c1SCy Schubert
3912*335c7cdaSCy Schubert case 392: /* server_tls_use_sni: VAR_TLS_USE_SNI STRING_ARG */
3913*335c7cdaSCy Schubert #line 1112 "util/configparser.y"
3914b7c0c8c1SCy Schubert {
3915b7c0c8c1SCy Schubert OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str)));
3916b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3917b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3918b7c0c8c1SCy Schubert else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0);
3919b7c0c8c1SCy Schubert free((yyvsp[0].str));
3920b7c0c8c1SCy Schubert }
3921*335c7cdaSCy Schubert #line 3922 "util/configparser.c"
3922b7c0c8c1SCy Schubert break;
3923b7c0c8c1SCy Schubert
3924*335c7cdaSCy Schubert case 393: /* server_https_port: VAR_HTTPS_PORT STRING_ARG */
3925*335c7cdaSCy Schubert #line 1121 "util/configparser.y"
3926b7c0c8c1SCy Schubert {
3927b7c0c8c1SCy Schubert OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str)));
3928b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
3929b7c0c8c1SCy Schubert yyerror("port number expected");
3930b7c0c8c1SCy Schubert else cfg_parser->cfg->https_port = atoi((yyvsp[0].str));
3931b7c0c8c1SCy Schubert free((yyvsp[0].str));
3932b7c0c8c1SCy Schubert }
3933*335c7cdaSCy Schubert #line 3934 "util/configparser.c"
3934b7c0c8c1SCy Schubert break;
3935b7c0c8c1SCy Schubert
3936*335c7cdaSCy Schubert case 394: /* server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG */
3937*335c7cdaSCy Schubert #line 1129 "util/configparser.y"
3938b7c0c8c1SCy Schubert {
3939b7c0c8c1SCy Schubert OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str)));
3940b7c0c8c1SCy Schubert free(cfg_parser->cfg->http_endpoint);
3941b7c0c8c1SCy Schubert if((yyvsp[0].str) && (yyvsp[0].str)[0] != '/') {
3942b7c0c8c1SCy Schubert cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[0].str))+2);
3943b7c0c8c1SCy Schubert if(!cfg_parser->cfg->http_endpoint)
3944b7c0c8c1SCy Schubert yyerror("out of memory");
3945b7c0c8c1SCy Schubert cfg_parser->cfg->http_endpoint[0] = '/';
3946b7c0c8c1SCy Schubert memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[0].str),
3947b7c0c8c1SCy Schubert strlen((yyvsp[0].str))+1);
3948b7c0c8c1SCy Schubert free((yyvsp[0].str));
3949b7c0c8c1SCy Schubert } else {
3950b7c0c8c1SCy Schubert cfg_parser->cfg->http_endpoint = (yyvsp[0].str);
3951b7c0c8c1SCy Schubert }
3952b7c0c8c1SCy Schubert }
3953*335c7cdaSCy Schubert #line 3954 "util/configparser.c"
3954b7c0c8c1SCy Schubert break;
3955b7c0c8c1SCy Schubert
3956*335c7cdaSCy Schubert case 395: /* server_http_max_streams: VAR_HTTP_MAX_STREAMS STRING_ARG */
3957*335c7cdaSCy Schubert #line 1145 "util/configparser.y"
3958b7c0c8c1SCy Schubert {
3959b7c0c8c1SCy Schubert OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str)));
3960b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
3961b7c0c8c1SCy Schubert yyerror("number expected");
3962b7c0c8c1SCy Schubert else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str));
3963b7c0c8c1SCy Schubert free((yyvsp[0].str));
3964b7c0c8c1SCy Schubert }
3965*335c7cdaSCy Schubert #line 3966 "util/configparser.c"
3966b7c0c8c1SCy Schubert break;
3967b7c0c8c1SCy Schubert
3968*335c7cdaSCy Schubert case 396: /* server_http_query_buffer_size: VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG */
3969*335c7cdaSCy Schubert #line 1153 "util/configparser.y"
3970b7c0c8c1SCy Schubert {
3971b7c0c8c1SCy Schubert OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str)));
3972b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str),
3973b7c0c8c1SCy Schubert &cfg_parser->cfg->http_query_buffer_size))
3974b7c0c8c1SCy Schubert yyerror("memory size expected");
3975b7c0c8c1SCy Schubert free((yyvsp[0].str));
3976b7c0c8c1SCy Schubert }
3977*335c7cdaSCy Schubert #line 3978 "util/configparser.c"
3978b7c0c8c1SCy Schubert break;
3979b7c0c8c1SCy Schubert
3980*335c7cdaSCy Schubert case 397: /* server_http_response_buffer_size: VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG */
3981*335c7cdaSCy Schubert #line 1161 "util/configparser.y"
3982b7c0c8c1SCy Schubert {
3983b7c0c8c1SCy Schubert OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str)));
3984b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str),
3985b7c0c8c1SCy Schubert &cfg_parser->cfg->http_response_buffer_size))
3986b7c0c8c1SCy Schubert yyerror("memory size expected");
3987b7c0c8c1SCy Schubert free((yyvsp[0].str));
3988b7c0c8c1SCy Schubert }
3989*335c7cdaSCy Schubert #line 3990 "util/configparser.c"
3990b7c0c8c1SCy Schubert break;
3991b7c0c8c1SCy Schubert
3992*335c7cdaSCy Schubert case 398: /* server_http_nodelay: VAR_HTTP_NODELAY STRING_ARG */
3993*335c7cdaSCy Schubert #line 1169 "util/configparser.y"
3994b7c0c8c1SCy Schubert {
3995b7c0c8c1SCy Schubert OUTYY(("P(server_http_nodelay:%s)\n", (yyvsp[0].str)));
3996b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
3997b7c0c8c1SCy Schubert yyerror("expected yes or no.");
3998b7c0c8c1SCy Schubert else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0);
3999b7c0c8c1SCy Schubert free((yyvsp[0].str));
4000b7c0c8c1SCy Schubert }
4001*335c7cdaSCy Schubert #line 4002 "util/configparser.c"
4002b7c0c8c1SCy Schubert break;
4003b7c0c8c1SCy Schubert
4004*335c7cdaSCy Schubert case 399: /* server_http_notls_downstream: VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG */
4005*335c7cdaSCy Schubert #line 1177 "util/configparser.y"
4006b7c0c8c1SCy Schubert {
4007b7c0c8c1SCy Schubert OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str)));
4008b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4009b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4010b7c0c8c1SCy Schubert else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0);
4011b7c0c8c1SCy Schubert free((yyvsp[0].str));
4012b7c0c8c1SCy Schubert }
4013*335c7cdaSCy Schubert #line 4014 "util/configparser.c"
4014b7c0c8c1SCy Schubert break;
4015b7c0c8c1SCy Schubert
4016*335c7cdaSCy Schubert case 400: /* server_use_systemd: VAR_USE_SYSTEMD STRING_ARG */
4017*335c7cdaSCy Schubert #line 1185 "util/configparser.y"
4018b7c0c8c1SCy Schubert {
4019b7c0c8c1SCy Schubert OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str)));
4020b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4021b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4022b7c0c8c1SCy Schubert else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0);
4023b7c0c8c1SCy Schubert free((yyvsp[0].str));
4024b7c0c8c1SCy Schubert }
4025*335c7cdaSCy Schubert #line 4026 "util/configparser.c"
4026b7c0c8c1SCy Schubert break;
4027b7c0c8c1SCy Schubert
4028*335c7cdaSCy Schubert case 401: /* server_do_daemonize: VAR_DO_DAEMONIZE STRING_ARG */
4029*335c7cdaSCy Schubert #line 1194 "util/configparser.y"
4030b7c0c8c1SCy Schubert {
4031b7c0c8c1SCy Schubert OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str)));
4032b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4033b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4034b7c0c8c1SCy Schubert else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
4035b7c0c8c1SCy Schubert free((yyvsp[0].str));
4036b7c0c8c1SCy Schubert }
4037*335c7cdaSCy Schubert #line 4038 "util/configparser.c"
4038b7c0c8c1SCy Schubert break;
4039b7c0c8c1SCy Schubert
4040*335c7cdaSCy Schubert case 402: /* server_use_syslog: VAR_USE_SYSLOG STRING_ARG */
4041*335c7cdaSCy Schubert #line 1203 "util/configparser.y"
4042b7c0c8c1SCy Schubert {
4043b7c0c8c1SCy Schubert OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str)));
4044b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4045b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4046b7c0c8c1SCy Schubert else cfg_parser->cfg->use_syslog = (strcmp((yyvsp[0].str), "yes")==0);
4047b7c0c8c1SCy Schubert #if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS)
4048b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") == 0)
4049b7c0c8c1SCy Schubert yyerror("no syslog services are available. "
4050b7c0c8c1SCy Schubert "(reconfigure and compile to add)");
4051b7c0c8c1SCy Schubert #endif
4052b7c0c8c1SCy Schubert free((yyvsp[0].str));
4053b7c0c8c1SCy Schubert }
4054*335c7cdaSCy Schubert #line 4055 "util/configparser.c"
4055b7c0c8c1SCy Schubert break;
4056b7c0c8c1SCy Schubert
4057*335c7cdaSCy Schubert case 403: /* server_log_time_ascii: VAR_LOG_TIME_ASCII STRING_ARG */
4058*335c7cdaSCy Schubert #line 1217 "util/configparser.y"
4059b7c0c8c1SCy Schubert {
4060b7c0c8c1SCy Schubert OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str)));
4061b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4062b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4063b7c0c8c1SCy Schubert else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
4064b7c0c8c1SCy Schubert free((yyvsp[0].str));
4065b7c0c8c1SCy Schubert }
4066*335c7cdaSCy Schubert #line 4067 "util/configparser.c"
4067b7c0c8c1SCy Schubert break;
4068b7c0c8c1SCy Schubert
4069*335c7cdaSCy Schubert case 404: /* server_log_queries: VAR_LOG_QUERIES STRING_ARG */
4070*335c7cdaSCy Schubert #line 1226 "util/configparser.y"
4071b7c0c8c1SCy Schubert {
4072b7c0c8c1SCy Schubert OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str)));
4073b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4074b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4075b7c0c8c1SCy Schubert else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
4076b7c0c8c1SCy Schubert free((yyvsp[0].str));
4077b7c0c8c1SCy Schubert }
4078*335c7cdaSCy Schubert #line 4079 "util/configparser.c"
4079b7c0c8c1SCy Schubert break;
4080b7c0c8c1SCy Schubert
4081*335c7cdaSCy Schubert case 405: /* server_log_replies: VAR_LOG_REPLIES STRING_ARG */
4082*335c7cdaSCy Schubert #line 1235 "util/configparser.y"
4083b7c0c8c1SCy Schubert {
4084b7c0c8c1SCy Schubert OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str)));
4085b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4086b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4087b7c0c8c1SCy Schubert else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0);
4088b7c0c8c1SCy Schubert free((yyvsp[0].str));
4089b7c0c8c1SCy Schubert }
4090*335c7cdaSCy Schubert #line 4091 "util/configparser.c"
4091b7c0c8c1SCy Schubert break;
4092b7c0c8c1SCy Schubert
4093*335c7cdaSCy Schubert case 406: /* server_log_tag_queryreply: VAR_LOG_TAG_QUERYREPLY STRING_ARG */
4094*335c7cdaSCy Schubert #line 1244 "util/configparser.y"
4095b7c0c8c1SCy Schubert {
4096b7c0c8c1SCy Schubert OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str)));
4097b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4098b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4099b7c0c8c1SCy Schubert else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0);
4100b7c0c8c1SCy Schubert free((yyvsp[0].str));
4101b7c0c8c1SCy Schubert }
4102*335c7cdaSCy Schubert #line 4103 "util/configparser.c"
4103b7c0c8c1SCy Schubert break;
4104b7c0c8c1SCy Schubert
4105*335c7cdaSCy Schubert case 407: /* server_log_servfail: VAR_LOG_SERVFAIL STRING_ARG */
4106*335c7cdaSCy Schubert #line 1253 "util/configparser.y"
4107b7c0c8c1SCy Schubert {
4108b7c0c8c1SCy Schubert OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str)));
4109b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4110b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4111b7c0c8c1SCy Schubert else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0);
4112b7c0c8c1SCy Schubert free((yyvsp[0].str));
4113b7c0c8c1SCy Schubert }
4114*335c7cdaSCy Schubert #line 4115 "util/configparser.c"
4115b7c0c8c1SCy Schubert break;
4116b7c0c8c1SCy Schubert
4117*335c7cdaSCy Schubert case 408: /* server_log_destaddr: VAR_LOG_DESTADDR STRING_ARG */
4118*335c7cdaSCy Schubert #line 1262 "util/configparser.y"
4119b7c0c8c1SCy Schubert {
4120b7c0c8c1SCy Schubert OUTYY(("P(server_log_destaddr:%s)\n", (yyvsp[0].str)));
4121b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4122b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4123b7c0c8c1SCy Schubert else cfg_parser->cfg->log_destaddr = (strcmp((yyvsp[0].str), "yes")==0);
4124b7c0c8c1SCy Schubert free((yyvsp[0].str));
4125b7c0c8c1SCy Schubert }
4126*335c7cdaSCy Schubert #line 4127 "util/configparser.c"
4127b7c0c8c1SCy Schubert break;
4128b7c0c8c1SCy Schubert
4129*335c7cdaSCy Schubert case 409: /* server_log_local_actions: VAR_LOG_LOCAL_ACTIONS STRING_ARG */
4130*335c7cdaSCy Schubert #line 1271 "util/configparser.y"
4131b7c0c8c1SCy Schubert {
4132b7c0c8c1SCy Schubert OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str)));
4133b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4134b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4135b7c0c8c1SCy Schubert else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0);
4136b7c0c8c1SCy Schubert free((yyvsp[0].str));
4137b7c0c8c1SCy Schubert }
4138*335c7cdaSCy Schubert #line 4139 "util/configparser.c"
4139b7c0c8c1SCy Schubert break;
4140b7c0c8c1SCy Schubert
4141*335c7cdaSCy Schubert case 410: /* server_chroot: VAR_CHROOT STRING_ARG */
4142*335c7cdaSCy Schubert #line 1280 "util/configparser.y"
4143b7c0c8c1SCy Schubert {
4144b7c0c8c1SCy Schubert OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str)));
4145b7c0c8c1SCy Schubert free(cfg_parser->cfg->chrootdir);
4146b7c0c8c1SCy Schubert cfg_parser->cfg->chrootdir = (yyvsp[0].str);
4147b7c0c8c1SCy Schubert }
4148*335c7cdaSCy Schubert #line 4149 "util/configparser.c"
4149b7c0c8c1SCy Schubert break;
4150b7c0c8c1SCy Schubert
4151*335c7cdaSCy Schubert case 411: /* server_username: VAR_USERNAME STRING_ARG */
4152*335c7cdaSCy Schubert #line 1287 "util/configparser.y"
4153b7c0c8c1SCy Schubert {
4154b7c0c8c1SCy Schubert OUTYY(("P(server_username:%s)\n", (yyvsp[0].str)));
4155b7c0c8c1SCy Schubert free(cfg_parser->cfg->username);
4156b7c0c8c1SCy Schubert cfg_parser->cfg->username = (yyvsp[0].str);
4157b7c0c8c1SCy Schubert }
4158*335c7cdaSCy Schubert #line 4159 "util/configparser.c"
4159b7c0c8c1SCy Schubert break;
4160b7c0c8c1SCy Schubert
4161*335c7cdaSCy Schubert case 412: /* server_directory: VAR_DIRECTORY STRING_ARG */
4162*335c7cdaSCy Schubert #line 1294 "util/configparser.y"
4163b7c0c8c1SCy Schubert {
4164b7c0c8c1SCy Schubert OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
4165b7c0c8c1SCy Schubert free(cfg_parser->cfg->directory);
4166b7c0c8c1SCy Schubert cfg_parser->cfg->directory = (yyvsp[0].str);
4167b7c0c8c1SCy Schubert /* change there right away for includes relative to this */
4168b7c0c8c1SCy Schubert if((yyvsp[0].str)[0]) {
4169b7c0c8c1SCy Schubert char* d;
4170b7c0c8c1SCy Schubert #ifdef UB_ON_WINDOWS
4171b7c0c8c1SCy Schubert w_config_adjust_directory(cfg_parser->cfg);
4172b7c0c8c1SCy Schubert #endif
4173b7c0c8c1SCy Schubert d = cfg_parser->cfg->directory;
4174b7c0c8c1SCy Schubert /* adjust directory if we have already chroot,
4175b7c0c8c1SCy Schubert * like, we reread after sighup */
4176b7c0c8c1SCy Schubert if(cfg_parser->chroot && cfg_parser->chroot[0] &&
4177b7c0c8c1SCy Schubert strncmp(d, cfg_parser->chroot, strlen(
4178b7c0c8c1SCy Schubert cfg_parser->chroot)) == 0)
4179b7c0c8c1SCy Schubert d += strlen(cfg_parser->chroot);
4180b7c0c8c1SCy Schubert if(d[0]) {
4181b7c0c8c1SCy Schubert if(chdir(d))
4182b7c0c8c1SCy Schubert log_err("cannot chdir to directory: %s (%s)",
4183b7c0c8c1SCy Schubert d, strerror(errno));
4184b7c0c8c1SCy Schubert }
4185b7c0c8c1SCy Schubert }
4186b7c0c8c1SCy Schubert }
4187*335c7cdaSCy Schubert #line 4188 "util/configparser.c"
4188b7c0c8c1SCy Schubert break;
4189b7c0c8c1SCy Schubert
4190*335c7cdaSCy Schubert case 413: /* server_logfile: VAR_LOGFILE STRING_ARG */
4191*335c7cdaSCy Schubert #line 1320 "util/configparser.y"
4192b7c0c8c1SCy Schubert {
4193b7c0c8c1SCy Schubert OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str)));
4194b7c0c8c1SCy Schubert free(cfg_parser->cfg->logfile);
4195b7c0c8c1SCy Schubert cfg_parser->cfg->logfile = (yyvsp[0].str);
4196b7c0c8c1SCy Schubert cfg_parser->cfg->use_syslog = 0;
4197b7c0c8c1SCy Schubert }
4198*335c7cdaSCy Schubert #line 4199 "util/configparser.c"
4199b7c0c8c1SCy Schubert break;
4200b7c0c8c1SCy Schubert
4201*335c7cdaSCy Schubert case 414: /* server_pidfile: VAR_PIDFILE STRING_ARG */
4202*335c7cdaSCy Schubert #line 1328 "util/configparser.y"
4203b7c0c8c1SCy Schubert {
4204b7c0c8c1SCy Schubert OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str)));
4205b7c0c8c1SCy Schubert free(cfg_parser->cfg->pidfile);
4206b7c0c8c1SCy Schubert cfg_parser->cfg->pidfile = (yyvsp[0].str);
4207b7c0c8c1SCy Schubert }
4208*335c7cdaSCy Schubert #line 4209 "util/configparser.c"
4209b7c0c8c1SCy Schubert break;
4210b7c0c8c1SCy Schubert
4211*335c7cdaSCy Schubert case 415: /* server_root_hints: VAR_ROOT_HINTS STRING_ARG */
4212*335c7cdaSCy Schubert #line 1335 "util/configparser.y"
4213b7c0c8c1SCy Schubert {
4214b7c0c8c1SCy Schubert OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str)));
4215b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str)))
4216b7c0c8c1SCy Schubert yyerror("out of memory");
4217b7c0c8c1SCy Schubert }
4218*335c7cdaSCy Schubert #line 4219 "util/configparser.c"
4219b7c0c8c1SCy Schubert break;
4220b7c0c8c1SCy Schubert
4221*335c7cdaSCy Schubert case 416: /* server_dlv_anchor_file: VAR_DLV_ANCHOR_FILE STRING_ARG */
4222*335c7cdaSCy Schubert #line 1342 "util/configparser.y"
4223b7c0c8c1SCy Schubert {
4224b7c0c8c1SCy Schubert OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str)));
4225b7c0c8c1SCy Schubert log_warn("option dlv-anchor-file ignored: DLV is decommissioned");
4226b7c0c8c1SCy Schubert free((yyvsp[0].str));
4227b7c0c8c1SCy Schubert }
4228*335c7cdaSCy Schubert #line 4229 "util/configparser.c"
4229b7c0c8c1SCy Schubert break;
4230b7c0c8c1SCy Schubert
4231*335c7cdaSCy Schubert case 417: /* server_dlv_anchor: VAR_DLV_ANCHOR STRING_ARG */
4232*335c7cdaSCy Schubert #line 1349 "util/configparser.y"
4233b7c0c8c1SCy Schubert {
4234b7c0c8c1SCy Schubert OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str)));
4235b7c0c8c1SCy Schubert log_warn("option dlv-anchor ignored: DLV is decommissioned");
4236b7c0c8c1SCy Schubert free((yyvsp[0].str));
4237b7c0c8c1SCy Schubert }
4238*335c7cdaSCy Schubert #line 4239 "util/configparser.c"
4239b7c0c8c1SCy Schubert break;
4240b7c0c8c1SCy Schubert
4241*335c7cdaSCy Schubert case 418: /* server_auto_trust_anchor_file: VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG */
4242*335c7cdaSCy Schubert #line 1356 "util/configparser.y"
4243b7c0c8c1SCy Schubert {
4244b7c0c8c1SCy Schubert OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str)));
4245b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->
4246b7c0c8c1SCy Schubert auto_trust_anchor_file_list, (yyvsp[0].str)))
4247b7c0c8c1SCy Schubert yyerror("out of memory");
4248b7c0c8c1SCy Schubert }
4249*335c7cdaSCy Schubert #line 4250 "util/configparser.c"
4250b7c0c8c1SCy Schubert break;
4251b7c0c8c1SCy Schubert
4252*335c7cdaSCy Schubert case 419: /* server_trust_anchor_file: VAR_TRUST_ANCHOR_FILE STRING_ARG */
4253*335c7cdaSCy Schubert #line 1364 "util/configparser.y"
4254b7c0c8c1SCy Schubert {
4255b7c0c8c1SCy Schubert OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str)));
4256b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->
4257b7c0c8c1SCy Schubert trust_anchor_file_list, (yyvsp[0].str)))
4258b7c0c8c1SCy Schubert yyerror("out of memory");
4259b7c0c8c1SCy Schubert }
4260*335c7cdaSCy Schubert #line 4261 "util/configparser.c"
4261b7c0c8c1SCy Schubert break;
4262b7c0c8c1SCy Schubert
4263*335c7cdaSCy Schubert case 420: /* server_trusted_keys_file: VAR_TRUSTED_KEYS_FILE STRING_ARG */
4264*335c7cdaSCy Schubert #line 1372 "util/configparser.y"
4265b7c0c8c1SCy Schubert {
4266b7c0c8c1SCy Schubert OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str)));
4267b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->
4268b7c0c8c1SCy Schubert trusted_keys_file_list, (yyvsp[0].str)))
4269b7c0c8c1SCy Schubert yyerror("out of memory");
4270b7c0c8c1SCy Schubert }
4271*335c7cdaSCy Schubert #line 4272 "util/configparser.c"
4272b7c0c8c1SCy Schubert break;
4273b7c0c8c1SCy Schubert
4274*335c7cdaSCy Schubert case 421: /* server_trust_anchor: VAR_TRUST_ANCHOR STRING_ARG */
4275*335c7cdaSCy Schubert #line 1380 "util/configparser.y"
4276b7c0c8c1SCy Schubert {
4277b7c0c8c1SCy Schubert OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str)));
4278b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str)))
4279b7c0c8c1SCy Schubert yyerror("out of memory");
4280b7c0c8c1SCy Schubert }
4281*335c7cdaSCy Schubert #line 4282 "util/configparser.c"
4282b7c0c8c1SCy Schubert break;
4283b7c0c8c1SCy Schubert
4284*335c7cdaSCy Schubert case 422: /* server_trust_anchor_signaling: VAR_TRUST_ANCHOR_SIGNALING STRING_ARG */
4285*335c7cdaSCy Schubert #line 1387 "util/configparser.y"
4286b7c0c8c1SCy Schubert {
4287b7c0c8c1SCy Schubert OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str)));
4288b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4289b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4290b7c0c8c1SCy Schubert else
4291b7c0c8c1SCy Schubert cfg_parser->cfg->trust_anchor_signaling =
4292b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4293b7c0c8c1SCy Schubert free((yyvsp[0].str));
4294b7c0c8c1SCy Schubert }
4295*335c7cdaSCy Schubert #line 4296 "util/configparser.c"
4296b7c0c8c1SCy Schubert break;
4297b7c0c8c1SCy Schubert
4298*335c7cdaSCy Schubert case 423: /* server_root_key_sentinel: VAR_ROOT_KEY_SENTINEL STRING_ARG */
4299*335c7cdaSCy Schubert #line 1398 "util/configparser.y"
4300b7c0c8c1SCy Schubert {
4301b7c0c8c1SCy Schubert OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str)));
4302b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4303b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4304b7c0c8c1SCy Schubert else
4305b7c0c8c1SCy Schubert cfg_parser->cfg->root_key_sentinel =
4306b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4307b7c0c8c1SCy Schubert free((yyvsp[0].str));
4308b7c0c8c1SCy Schubert }
4309*335c7cdaSCy Schubert #line 4310 "util/configparser.c"
4310b7c0c8c1SCy Schubert break;
4311b7c0c8c1SCy Schubert
4312*335c7cdaSCy Schubert case 424: /* server_domain_insecure: VAR_DOMAIN_INSECURE STRING_ARG */
4313*335c7cdaSCy Schubert #line 1409 "util/configparser.y"
4314b7c0c8c1SCy Schubert {
4315b7c0c8c1SCy Schubert OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str)));
4316b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str)))
4317b7c0c8c1SCy Schubert yyerror("out of memory");
4318b7c0c8c1SCy Schubert }
4319*335c7cdaSCy Schubert #line 4320 "util/configparser.c"
4320b7c0c8c1SCy Schubert break;
4321b7c0c8c1SCy Schubert
4322*335c7cdaSCy Schubert case 425: /* server_hide_identity: VAR_HIDE_IDENTITY STRING_ARG */
4323*335c7cdaSCy Schubert #line 1416 "util/configparser.y"
4324b7c0c8c1SCy Schubert {
4325b7c0c8c1SCy Schubert OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str)));
4326b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4327b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4328b7c0c8c1SCy Schubert else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
4329b7c0c8c1SCy Schubert free((yyvsp[0].str));
4330b7c0c8c1SCy Schubert }
4331*335c7cdaSCy Schubert #line 4332 "util/configparser.c"
4332b7c0c8c1SCy Schubert break;
4333b7c0c8c1SCy Schubert
4334*335c7cdaSCy Schubert case 426: /* server_hide_version: VAR_HIDE_VERSION STRING_ARG */
4335*335c7cdaSCy Schubert #line 1425 "util/configparser.y"
4336b7c0c8c1SCy Schubert {
4337b7c0c8c1SCy Schubert OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str)));
4338b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4339b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4340b7c0c8c1SCy Schubert else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
4341b7c0c8c1SCy Schubert free((yyvsp[0].str));
4342b7c0c8c1SCy Schubert }
4343*335c7cdaSCy Schubert #line 4344 "util/configparser.c"
4344b7c0c8c1SCy Schubert break;
4345b7c0c8c1SCy Schubert
4346*335c7cdaSCy Schubert case 427: /* server_hide_trustanchor: VAR_HIDE_TRUSTANCHOR STRING_ARG */
4347*335c7cdaSCy Schubert #line 1434 "util/configparser.y"
4348b7c0c8c1SCy Schubert {
4349b7c0c8c1SCy Schubert OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str)));
4350b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4351b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4352b7c0c8c1SCy Schubert else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0);
4353b7c0c8c1SCy Schubert free((yyvsp[0].str));
4354b7c0c8c1SCy Schubert }
4355*335c7cdaSCy Schubert #line 4356 "util/configparser.c"
4356b7c0c8c1SCy Schubert break;
4357b7c0c8c1SCy Schubert
4358*335c7cdaSCy Schubert case 428: /* server_hide_http_user_agent: VAR_HIDE_HTTP_USER_AGENT STRING_ARG */
4359*335c7cdaSCy Schubert #line 1443 "util/configparser.y"
4360b7c0c8c1SCy Schubert {
4361b7c0c8c1SCy Schubert OUTYY(("P(server_hide_user_agent:%s)\n", (yyvsp[0].str)));
4362b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4363b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4364b7c0c8c1SCy Schubert else cfg_parser->cfg->hide_http_user_agent = (strcmp((yyvsp[0].str), "yes")==0);
4365b7c0c8c1SCy Schubert free((yyvsp[0].str));
4366b7c0c8c1SCy Schubert }
4367*335c7cdaSCy Schubert #line 4368 "util/configparser.c"
4368b7c0c8c1SCy Schubert break;
4369b7c0c8c1SCy Schubert
4370*335c7cdaSCy Schubert case 429: /* server_identity: VAR_IDENTITY STRING_ARG */
4371*335c7cdaSCy Schubert #line 1452 "util/configparser.y"
4372b7c0c8c1SCy Schubert {
4373b7c0c8c1SCy Schubert OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str)));
4374b7c0c8c1SCy Schubert free(cfg_parser->cfg->identity);
4375b7c0c8c1SCy Schubert cfg_parser->cfg->identity = (yyvsp[0].str);
4376b7c0c8c1SCy Schubert }
4377*335c7cdaSCy Schubert #line 4378 "util/configparser.c"
4378b7c0c8c1SCy Schubert break;
4379b7c0c8c1SCy Schubert
4380*335c7cdaSCy Schubert case 430: /* server_version: VAR_VERSION STRING_ARG */
4381*335c7cdaSCy Schubert #line 1459 "util/configparser.y"
4382b7c0c8c1SCy Schubert {
4383b7c0c8c1SCy Schubert OUTYY(("P(server_version:%s)\n", (yyvsp[0].str)));
4384b7c0c8c1SCy Schubert free(cfg_parser->cfg->version);
4385b7c0c8c1SCy Schubert cfg_parser->cfg->version = (yyvsp[0].str);
4386b7c0c8c1SCy Schubert }
4387*335c7cdaSCy Schubert #line 4388 "util/configparser.c"
4388b7c0c8c1SCy Schubert break;
4389b7c0c8c1SCy Schubert
4390*335c7cdaSCy Schubert case 431: /* server_http_user_agent: VAR_HTTP_USER_AGENT STRING_ARG */
4391*335c7cdaSCy Schubert #line 1466 "util/configparser.y"
4392b7c0c8c1SCy Schubert {
4393b7c0c8c1SCy Schubert OUTYY(("P(server_http_user_agent:%s)\n", (yyvsp[0].str)));
4394b7c0c8c1SCy Schubert free(cfg_parser->cfg->http_user_agent);
4395b7c0c8c1SCy Schubert cfg_parser->cfg->http_user_agent = (yyvsp[0].str);
4396b7c0c8c1SCy Schubert }
4397*335c7cdaSCy Schubert #line 4398 "util/configparser.c"
4398b7c0c8c1SCy Schubert break;
4399b7c0c8c1SCy Schubert
4400*335c7cdaSCy Schubert case 432: /* server_nsid: VAR_NSID STRING_ARG */
4401*335c7cdaSCy Schubert #line 1473 "util/configparser.y"
4402b7c0c8c1SCy Schubert {
4403b7c0c8c1SCy Schubert OUTYY(("P(server_nsid:%s)\n", (yyvsp[0].str)));
4404b7c0c8c1SCy Schubert free(cfg_parser->cfg->nsid_cfg_str);
4405b7c0c8c1SCy Schubert cfg_parser->cfg->nsid_cfg_str = (yyvsp[0].str);
4406b7c0c8c1SCy Schubert free(cfg_parser->cfg->nsid);
4407b7c0c8c1SCy Schubert cfg_parser->cfg->nsid = NULL;
4408b7c0c8c1SCy Schubert cfg_parser->cfg->nsid_len = 0;
4409b7c0c8c1SCy Schubert if (*(yyvsp[0].str) == 0)
4410b7c0c8c1SCy Schubert ; /* pass; empty string is not setting nsid */
4411b7c0c8c1SCy Schubert else if (!(cfg_parser->cfg->nsid = cfg_parse_nsid(
4412b7c0c8c1SCy Schubert (yyvsp[0].str), &cfg_parser->cfg->nsid_len)))
4413b7c0c8c1SCy Schubert yyerror("the NSID must be either a hex string or an "
4414b7c0c8c1SCy Schubert "ascii character string prepended with ascii_.");
4415b7c0c8c1SCy Schubert }
4416*335c7cdaSCy Schubert #line 4417 "util/configparser.c"
4417b7c0c8c1SCy Schubert break;
4418b7c0c8c1SCy Schubert
4419*335c7cdaSCy Schubert case 433: /* server_so_rcvbuf: VAR_SO_RCVBUF STRING_ARG */
4420*335c7cdaSCy Schubert #line 1489 "util/configparser.y"
4421b7c0c8c1SCy Schubert {
4422b7c0c8c1SCy Schubert OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str)));
4423b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf))
4424b7c0c8c1SCy Schubert yyerror("buffer size expected");
4425b7c0c8c1SCy Schubert free((yyvsp[0].str));
4426b7c0c8c1SCy Schubert }
4427*335c7cdaSCy Schubert #line 4428 "util/configparser.c"
4428b7c0c8c1SCy Schubert break;
4429b7c0c8c1SCy Schubert
4430*335c7cdaSCy Schubert case 434: /* server_so_sndbuf: VAR_SO_SNDBUF STRING_ARG */
4431*335c7cdaSCy Schubert #line 1497 "util/configparser.y"
4432b7c0c8c1SCy Schubert {
4433b7c0c8c1SCy Schubert OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str)));
4434b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf))
4435b7c0c8c1SCy Schubert yyerror("buffer size expected");
4436b7c0c8c1SCy Schubert free((yyvsp[0].str));
4437b7c0c8c1SCy Schubert }
4438*335c7cdaSCy Schubert #line 4439 "util/configparser.c"
4439b7c0c8c1SCy Schubert break;
4440b7c0c8c1SCy Schubert
4441*335c7cdaSCy Schubert case 435: /* server_so_reuseport: VAR_SO_REUSEPORT STRING_ARG */
4442*335c7cdaSCy Schubert #line 1505 "util/configparser.y"
4443b7c0c8c1SCy Schubert {
4444b7c0c8c1SCy Schubert OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str)));
4445b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4446b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4447b7c0c8c1SCy Schubert else cfg_parser->cfg->so_reuseport =
4448b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4449b7c0c8c1SCy Schubert free((yyvsp[0].str));
4450b7c0c8c1SCy Schubert }
4451*335c7cdaSCy Schubert #line 4452 "util/configparser.c"
4452b7c0c8c1SCy Schubert break;
4453b7c0c8c1SCy Schubert
4454*335c7cdaSCy Schubert case 436: /* server_ip_transparent: VAR_IP_TRANSPARENT STRING_ARG */
4455*335c7cdaSCy Schubert #line 1515 "util/configparser.y"
4456b7c0c8c1SCy Schubert {
4457b7c0c8c1SCy Schubert OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str)));
4458b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4459b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4460b7c0c8c1SCy Schubert else cfg_parser->cfg->ip_transparent =
4461b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4462b7c0c8c1SCy Schubert free((yyvsp[0].str));
4463b7c0c8c1SCy Schubert }
4464*335c7cdaSCy Schubert #line 4465 "util/configparser.c"
4465b7c0c8c1SCy Schubert break;
4466b7c0c8c1SCy Schubert
4467*335c7cdaSCy Schubert case 437: /* server_ip_freebind: VAR_IP_FREEBIND STRING_ARG */
4468*335c7cdaSCy Schubert #line 1525 "util/configparser.y"
4469b7c0c8c1SCy Schubert {
4470b7c0c8c1SCy Schubert OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str)));
4471b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4472b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4473b7c0c8c1SCy Schubert else cfg_parser->cfg->ip_freebind =
4474b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4475b7c0c8c1SCy Schubert free((yyvsp[0].str));
4476b7c0c8c1SCy Schubert }
4477*335c7cdaSCy Schubert #line 4478 "util/configparser.c"
4478b7c0c8c1SCy Schubert break;
4479b7c0c8c1SCy Schubert
4480*335c7cdaSCy Schubert case 438: /* server_ip_dscp: VAR_IP_DSCP STRING_ARG */
4481*335c7cdaSCy Schubert #line 1535 "util/configparser.y"
4482b7c0c8c1SCy Schubert {
4483b7c0c8c1SCy Schubert OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str)));
4484b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4485b7c0c8c1SCy Schubert yyerror("number expected");
4486b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 63)
4487b7c0c8c1SCy Schubert yyerror("value too large (max 63)");
4488b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 0)
4489b7c0c8c1SCy Schubert yyerror("value too small (min 0)");
4490b7c0c8c1SCy Schubert else
4491b7c0c8c1SCy Schubert cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str));
4492b7c0c8c1SCy Schubert free((yyvsp[0].str));
4493b7c0c8c1SCy Schubert }
4494*335c7cdaSCy Schubert #line 4495 "util/configparser.c"
4495b7c0c8c1SCy Schubert break;
4496b7c0c8c1SCy Schubert
4497*335c7cdaSCy Schubert case 439: /* server_stream_wait_size: VAR_STREAM_WAIT_SIZE STRING_ARG */
4498*335c7cdaSCy Schubert #line 1549 "util/configparser.y"
4499b7c0c8c1SCy Schubert {
4500b7c0c8c1SCy Schubert OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str)));
4501b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size))
4502b7c0c8c1SCy Schubert yyerror("memory size expected");
4503b7c0c8c1SCy Schubert free((yyvsp[0].str));
4504b7c0c8c1SCy Schubert }
4505*335c7cdaSCy Schubert #line 4506 "util/configparser.c"
4506b7c0c8c1SCy Schubert break;
4507b7c0c8c1SCy Schubert
4508*335c7cdaSCy Schubert case 440: /* server_edns_buffer_size: VAR_EDNS_BUFFER_SIZE STRING_ARG */
4509*335c7cdaSCy Schubert #line 1557 "util/configparser.y"
4510b7c0c8c1SCy Schubert {
4511b7c0c8c1SCy Schubert OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
4512b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
4513b7c0c8c1SCy Schubert yyerror("number expected");
4514b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 12)
4515b7c0c8c1SCy Schubert yyerror("edns buffer size too small");
4516b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) > 65535)
4517b7c0c8c1SCy Schubert cfg_parser->cfg->edns_buffer_size = 65535;
4518b7c0c8c1SCy Schubert else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
4519b7c0c8c1SCy Schubert free((yyvsp[0].str));
4520b7c0c8c1SCy Schubert }
4521*335c7cdaSCy Schubert #line 4522 "util/configparser.c"
4522b7c0c8c1SCy Schubert break;
4523b7c0c8c1SCy Schubert
4524*335c7cdaSCy Schubert case 441: /* server_msg_buffer_size: VAR_MSG_BUFFER_SIZE STRING_ARG */
4525*335c7cdaSCy Schubert #line 1570 "util/configparser.y"
4526b7c0c8c1SCy Schubert {
4527b7c0c8c1SCy Schubert OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
4528b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
4529b7c0c8c1SCy Schubert yyerror("number expected");
4530b7c0c8c1SCy Schubert else if (atoi((yyvsp[0].str)) < 4096)
4531b7c0c8c1SCy Schubert yyerror("message buffer size too small (use 4096)");
4532b7c0c8c1SCy Schubert else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
4533b7c0c8c1SCy Schubert free((yyvsp[0].str));
4534b7c0c8c1SCy Schubert }
4535*335c7cdaSCy Schubert #line 4536 "util/configparser.c"
4536b7c0c8c1SCy Schubert break;
4537b7c0c8c1SCy Schubert
4538*335c7cdaSCy Schubert case 442: /* server_msg_cache_size: VAR_MSG_CACHE_SIZE STRING_ARG */
4539*335c7cdaSCy Schubert #line 1581 "util/configparser.y"
4540b7c0c8c1SCy Schubert {
4541b7c0c8c1SCy Schubert OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str)));
4542b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size))
4543b7c0c8c1SCy Schubert yyerror("memory size expected");
4544b7c0c8c1SCy Schubert free((yyvsp[0].str));
4545b7c0c8c1SCy Schubert }
4546*335c7cdaSCy Schubert #line 4547 "util/configparser.c"
4547b7c0c8c1SCy Schubert break;
4548b7c0c8c1SCy Schubert
4549*335c7cdaSCy Schubert case 443: /* server_msg_cache_slabs: VAR_MSG_CACHE_SLABS STRING_ARG */
4550*335c7cdaSCy Schubert #line 1589 "util/configparser.y"
4551b7c0c8c1SCy Schubert {
4552b7c0c8c1SCy Schubert OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
4553b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) {
4554b7c0c8c1SCy Schubert yyerror("number expected");
4555b7c0c8c1SCy Schubert } else {
4556b7c0c8c1SCy Schubert cfg_parser->cfg->msg_cache_slabs = atoi((yyvsp[0].str));
4557b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->msg_cache_slabs))
4558b7c0c8c1SCy Schubert yyerror("must be a power of 2");
4559b7c0c8c1SCy Schubert }
4560b7c0c8c1SCy Schubert free((yyvsp[0].str));
4561b7c0c8c1SCy Schubert }
4562*335c7cdaSCy Schubert #line 4563 "util/configparser.c"
4563b7c0c8c1SCy Schubert break;
4564b7c0c8c1SCy Schubert
4565*335c7cdaSCy Schubert case 444: /* server_num_queries_per_thread: VAR_NUM_QUERIES_PER_THREAD STRING_ARG */
4566*335c7cdaSCy Schubert #line 1602 "util/configparser.y"
4567b7c0c8c1SCy Schubert {
4568b7c0c8c1SCy Schubert OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
4569b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
4570b7c0c8c1SCy Schubert yyerror("number expected");
4571b7c0c8c1SCy Schubert else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
4572b7c0c8c1SCy Schubert free((yyvsp[0].str));
4573b7c0c8c1SCy Schubert }
4574*335c7cdaSCy Schubert #line 4575 "util/configparser.c"
4575b7c0c8c1SCy Schubert break;
4576b7c0c8c1SCy Schubert
4577*335c7cdaSCy Schubert case 445: /* server_jostle_timeout: VAR_JOSTLE_TIMEOUT STRING_ARG */
4578*335c7cdaSCy Schubert #line 1611 "util/configparser.y"
4579b7c0c8c1SCy Schubert {
4580b7c0c8c1SCy Schubert OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str)));
4581b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4582b7c0c8c1SCy Schubert yyerror("number expected");
4583b7c0c8c1SCy Schubert else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
4584b7c0c8c1SCy Schubert free((yyvsp[0].str));
4585b7c0c8c1SCy Schubert }
4586*335c7cdaSCy Schubert #line 4587 "util/configparser.c"
4587b7c0c8c1SCy Schubert break;
4588b7c0c8c1SCy Schubert
4589*335c7cdaSCy Schubert case 446: /* server_delay_close: VAR_DELAY_CLOSE STRING_ARG */
4590*335c7cdaSCy Schubert #line 1620 "util/configparser.y"
4591b7c0c8c1SCy Schubert {
4592b7c0c8c1SCy Schubert OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str)));
4593b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4594b7c0c8c1SCy Schubert yyerror("number expected");
4595b7c0c8c1SCy Schubert else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
4596b7c0c8c1SCy Schubert free((yyvsp[0].str));
4597b7c0c8c1SCy Schubert }
4598*335c7cdaSCy Schubert #line 4599 "util/configparser.c"
4599b7c0c8c1SCy Schubert break;
4600b7c0c8c1SCy Schubert
4601*335c7cdaSCy Schubert case 447: /* server_udp_connect: VAR_UDP_CONNECT STRING_ARG */
4602*335c7cdaSCy Schubert #line 1629 "util/configparser.y"
4603b7c0c8c1SCy Schubert {
4604b7c0c8c1SCy Schubert OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str)));
4605b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4606b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4607b7c0c8c1SCy Schubert else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0);
4608b7c0c8c1SCy Schubert free((yyvsp[0].str));
4609b7c0c8c1SCy Schubert }
4610*335c7cdaSCy Schubert #line 4611 "util/configparser.c"
4611b7c0c8c1SCy Schubert break;
4612b7c0c8c1SCy Schubert
4613*335c7cdaSCy Schubert case 448: /* server_unblock_lan_zones: VAR_UNBLOCK_LAN_ZONES STRING_ARG */
4614*335c7cdaSCy Schubert #line 1638 "util/configparser.y"
4615b7c0c8c1SCy Schubert {
4616b7c0c8c1SCy Schubert OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str)));
4617b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4618b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4619b7c0c8c1SCy Schubert else cfg_parser->cfg->unblock_lan_zones =
4620b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4621b7c0c8c1SCy Schubert free((yyvsp[0].str));
4622b7c0c8c1SCy Schubert }
4623*335c7cdaSCy Schubert #line 4624 "util/configparser.c"
4624b7c0c8c1SCy Schubert break;
4625b7c0c8c1SCy Schubert
4626*335c7cdaSCy Schubert case 449: /* server_insecure_lan_zones: VAR_INSECURE_LAN_ZONES STRING_ARG */
4627*335c7cdaSCy Schubert #line 1648 "util/configparser.y"
4628b7c0c8c1SCy Schubert {
4629b7c0c8c1SCy Schubert OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str)));
4630b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4631b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4632b7c0c8c1SCy Schubert else cfg_parser->cfg->insecure_lan_zones =
4633b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4634b7c0c8c1SCy Schubert free((yyvsp[0].str));
4635b7c0c8c1SCy Schubert }
4636*335c7cdaSCy Schubert #line 4637 "util/configparser.c"
4637b7c0c8c1SCy Schubert break;
4638b7c0c8c1SCy Schubert
4639*335c7cdaSCy Schubert case 450: /* server_rrset_cache_size: VAR_RRSET_CACHE_SIZE STRING_ARG */
4640*335c7cdaSCy Schubert #line 1658 "util/configparser.y"
4641b7c0c8c1SCy Schubert {
4642b7c0c8c1SCy Schubert OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str)));
4643b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size))
4644b7c0c8c1SCy Schubert yyerror("memory size expected");
4645b7c0c8c1SCy Schubert free((yyvsp[0].str));
4646b7c0c8c1SCy Schubert }
4647*335c7cdaSCy Schubert #line 4648 "util/configparser.c"
4648b7c0c8c1SCy Schubert break;
4649b7c0c8c1SCy Schubert
4650*335c7cdaSCy Schubert case 451: /* server_rrset_cache_slabs: VAR_RRSET_CACHE_SLABS STRING_ARG */
4651*335c7cdaSCy Schubert #line 1666 "util/configparser.y"
4652b7c0c8c1SCy Schubert {
4653b7c0c8c1SCy Schubert OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
4654b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) {
4655b7c0c8c1SCy Schubert yyerror("number expected");
4656b7c0c8c1SCy Schubert } else {
4657b7c0c8c1SCy Schubert cfg_parser->cfg->rrset_cache_slabs = atoi((yyvsp[0].str));
4658b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs))
4659b7c0c8c1SCy Schubert yyerror("must be a power of 2");
4660b7c0c8c1SCy Schubert }
4661b7c0c8c1SCy Schubert free((yyvsp[0].str));
4662b7c0c8c1SCy Schubert }
4663*335c7cdaSCy Schubert #line 4664 "util/configparser.c"
4664b7c0c8c1SCy Schubert break;
4665b7c0c8c1SCy Schubert
4666*335c7cdaSCy Schubert case 452: /* server_infra_host_ttl: VAR_INFRA_HOST_TTL STRING_ARG */
4667*335c7cdaSCy Schubert #line 1679 "util/configparser.y"
4668b7c0c8c1SCy Schubert {
4669b7c0c8c1SCy Schubert OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str)));
4670b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4671b7c0c8c1SCy Schubert yyerror("number expected");
4672b7c0c8c1SCy Schubert else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
4673b7c0c8c1SCy Schubert free((yyvsp[0].str));
4674b7c0c8c1SCy Schubert }
4675*335c7cdaSCy Schubert #line 4676 "util/configparser.c"
4676b7c0c8c1SCy Schubert break;
4677b7c0c8c1SCy Schubert
4678*335c7cdaSCy Schubert case 453: /* server_infra_lame_ttl: VAR_INFRA_LAME_TTL STRING_ARG */
4679*335c7cdaSCy Schubert #line 1688 "util/configparser.y"
4680b7c0c8c1SCy Schubert {
4681b7c0c8c1SCy Schubert OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str)));
4682b7c0c8c1SCy Schubert verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
4683b7c0c8c1SCy Schubert "removed, use infra-host-ttl)", (yyvsp[0].str));
4684b7c0c8c1SCy Schubert free((yyvsp[0].str));
4685b7c0c8c1SCy Schubert }
4686*335c7cdaSCy Schubert #line 4687 "util/configparser.c"
4687b7c0c8c1SCy Schubert break;
4688b7c0c8c1SCy Schubert
4689*335c7cdaSCy Schubert case 454: /* server_infra_cache_numhosts: VAR_INFRA_CACHE_NUMHOSTS STRING_ARG */
4690*335c7cdaSCy Schubert #line 1696 "util/configparser.y"
4691b7c0c8c1SCy Schubert {
4692b7c0c8c1SCy Schubert OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
4693b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
4694b7c0c8c1SCy Schubert yyerror("number expected");
4695b7c0c8c1SCy Schubert else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
4696b7c0c8c1SCy Schubert free((yyvsp[0].str));
4697b7c0c8c1SCy Schubert }
4698*335c7cdaSCy Schubert #line 4699 "util/configparser.c"
4699b7c0c8c1SCy Schubert break;
4700b7c0c8c1SCy Schubert
4701*335c7cdaSCy Schubert case 455: /* server_infra_cache_lame_size: VAR_INFRA_CACHE_LAME_SIZE STRING_ARG */
4702*335c7cdaSCy Schubert #line 1705 "util/configparser.y"
4703b7c0c8c1SCy Schubert {
4704b7c0c8c1SCy Schubert OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str)));
4705b7c0c8c1SCy Schubert verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
4706b7c0c8c1SCy Schubert "(option removed, use infra-cache-numhosts)", (yyvsp[0].str));
4707b7c0c8c1SCy Schubert free((yyvsp[0].str));
4708b7c0c8c1SCy Schubert }
4709*335c7cdaSCy Schubert #line 4710 "util/configparser.c"
4710b7c0c8c1SCy Schubert break;
4711b7c0c8c1SCy Schubert
4712*335c7cdaSCy Schubert case 456: /* server_infra_cache_slabs: VAR_INFRA_CACHE_SLABS STRING_ARG */
4713*335c7cdaSCy Schubert #line 1713 "util/configparser.y"
4714b7c0c8c1SCy Schubert {
4715b7c0c8c1SCy Schubert OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
4716b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) {
4717b7c0c8c1SCy Schubert yyerror("number expected");
4718b7c0c8c1SCy Schubert } else {
4719b7c0c8c1SCy Schubert cfg_parser->cfg->infra_cache_slabs = atoi((yyvsp[0].str));
4720b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->infra_cache_slabs))
4721b7c0c8c1SCy Schubert yyerror("must be a power of 2");
4722b7c0c8c1SCy Schubert }
4723b7c0c8c1SCy Schubert free((yyvsp[0].str));
4724b7c0c8c1SCy Schubert }
4725*335c7cdaSCy Schubert #line 4726 "util/configparser.c"
4726b7c0c8c1SCy Schubert break;
4727b7c0c8c1SCy Schubert
4728*335c7cdaSCy Schubert case 457: /* server_infra_cache_min_rtt: VAR_INFRA_CACHE_MIN_RTT STRING_ARG */
4729*335c7cdaSCy Schubert #line 1726 "util/configparser.y"
4730b7c0c8c1SCy Schubert {
4731b7c0c8c1SCy Schubert OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str)));
4732b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4733b7c0c8c1SCy Schubert yyerror("number expected");
4734b7c0c8c1SCy Schubert else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
4735b7c0c8c1SCy Schubert free((yyvsp[0].str));
4736b7c0c8c1SCy Schubert }
4737*335c7cdaSCy Schubert #line 4738 "util/configparser.c"
4738b7c0c8c1SCy Schubert break;
4739b7c0c8c1SCy Schubert
4740*335c7cdaSCy Schubert case 458: /* server_infra_cache_max_rtt: VAR_INFRA_CACHE_MAX_RTT STRING_ARG */
4741*335c7cdaSCy Schubert #line 1735 "util/configparser.y"
4742b7c0c8c1SCy Schubert {
4743b7c0c8c1SCy Schubert OUTYY(("P(server_infra_cache_max_rtt:%s)\n", (yyvsp[0].str)));
4744b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4745b7c0c8c1SCy Schubert yyerror("number expected");
4746b7c0c8c1SCy Schubert else cfg_parser->cfg->infra_cache_max_rtt = atoi((yyvsp[0].str));
4747b7c0c8c1SCy Schubert free((yyvsp[0].str));
4748b7c0c8c1SCy Schubert }
4749*335c7cdaSCy Schubert #line 4750 "util/configparser.c"
4750b7c0c8c1SCy Schubert break;
4751b7c0c8c1SCy Schubert
4752*335c7cdaSCy Schubert case 459: /* server_infra_keep_probing: VAR_INFRA_KEEP_PROBING STRING_ARG */
4753*335c7cdaSCy Schubert #line 1744 "util/configparser.y"
4754b7c0c8c1SCy Schubert {
4755b7c0c8c1SCy Schubert OUTYY(("P(server_infra_keep_probing:%s)\n", (yyvsp[0].str)));
4756b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4757b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4758b7c0c8c1SCy Schubert else cfg_parser->cfg->infra_keep_probing =
4759b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4760b7c0c8c1SCy Schubert free((yyvsp[0].str));
4761b7c0c8c1SCy Schubert }
4762*335c7cdaSCy Schubert #line 4763 "util/configparser.c"
4763b7c0c8c1SCy Schubert break;
4764b7c0c8c1SCy Schubert
4765*335c7cdaSCy Schubert case 460: /* server_target_fetch_policy: VAR_TARGET_FETCH_POLICY STRING_ARG */
4766*335c7cdaSCy Schubert #line 1754 "util/configparser.y"
4767b7c0c8c1SCy Schubert {
4768b7c0c8c1SCy Schubert OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str)));
4769b7c0c8c1SCy Schubert free(cfg_parser->cfg->target_fetch_policy);
4770b7c0c8c1SCy Schubert cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str);
4771b7c0c8c1SCy Schubert }
4772*335c7cdaSCy Schubert #line 4773 "util/configparser.c"
4773b7c0c8c1SCy Schubert break;
4774b7c0c8c1SCy Schubert
4775*335c7cdaSCy Schubert case 461: /* server_harden_short_bufsize: VAR_HARDEN_SHORT_BUFSIZE STRING_ARG */
4776*335c7cdaSCy Schubert #line 1761 "util/configparser.y"
4777b7c0c8c1SCy Schubert {
4778b7c0c8c1SCy Schubert OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str)));
4779b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4780b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4781b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_short_bufsize =
4782b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4783b7c0c8c1SCy Schubert free((yyvsp[0].str));
4784b7c0c8c1SCy Schubert }
4785*335c7cdaSCy Schubert #line 4786 "util/configparser.c"
4786b7c0c8c1SCy Schubert break;
4787b7c0c8c1SCy Schubert
4788*335c7cdaSCy Schubert case 462: /* server_harden_large_queries: VAR_HARDEN_LARGE_QUERIES STRING_ARG */
4789*335c7cdaSCy Schubert #line 1771 "util/configparser.y"
4790b7c0c8c1SCy Schubert {
4791b7c0c8c1SCy Schubert OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str)));
4792b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4793b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4794b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_large_queries =
4795b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4796b7c0c8c1SCy Schubert free((yyvsp[0].str));
4797b7c0c8c1SCy Schubert }
4798*335c7cdaSCy Schubert #line 4799 "util/configparser.c"
4799b7c0c8c1SCy Schubert break;
4800b7c0c8c1SCy Schubert
4801*335c7cdaSCy Schubert case 463: /* server_harden_glue: VAR_HARDEN_GLUE STRING_ARG */
4802*335c7cdaSCy Schubert #line 1781 "util/configparser.y"
4803b7c0c8c1SCy Schubert {
4804b7c0c8c1SCy Schubert OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str)));
4805b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4806b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4807b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_glue =
4808b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4809b7c0c8c1SCy Schubert free((yyvsp[0].str));
4810b7c0c8c1SCy Schubert }
4811*335c7cdaSCy Schubert #line 4812 "util/configparser.c"
4812b7c0c8c1SCy Schubert break;
4813b7c0c8c1SCy Schubert
4814*335c7cdaSCy Schubert case 464: /* server_harden_dnssec_stripped: VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG */
4815*335c7cdaSCy Schubert #line 1791 "util/configparser.y"
4816b7c0c8c1SCy Schubert {
4817b7c0c8c1SCy Schubert OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str)));
4818b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4819b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4820b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_dnssec_stripped =
4821b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4822b7c0c8c1SCy Schubert free((yyvsp[0].str));
4823b7c0c8c1SCy Schubert }
4824*335c7cdaSCy Schubert #line 4825 "util/configparser.c"
4825b7c0c8c1SCy Schubert break;
4826b7c0c8c1SCy Schubert
4827*335c7cdaSCy Schubert case 465: /* server_harden_below_nxdomain: VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG */
4828*335c7cdaSCy Schubert #line 1801 "util/configparser.y"
4829b7c0c8c1SCy Schubert {
4830b7c0c8c1SCy Schubert OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str)));
4831b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4832b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4833b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_below_nxdomain =
4834b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4835b7c0c8c1SCy Schubert free((yyvsp[0].str));
4836b7c0c8c1SCy Schubert }
4837*335c7cdaSCy Schubert #line 4838 "util/configparser.c"
4838b7c0c8c1SCy Schubert break;
4839b7c0c8c1SCy Schubert
4840*335c7cdaSCy Schubert case 466: /* server_harden_referral_path: VAR_HARDEN_REFERRAL_PATH STRING_ARG */
4841*335c7cdaSCy Schubert #line 1811 "util/configparser.y"
4842b7c0c8c1SCy Schubert {
4843b7c0c8c1SCy Schubert OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str)));
4844b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4845b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4846b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_referral_path =
4847b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4848b7c0c8c1SCy Schubert free((yyvsp[0].str));
4849b7c0c8c1SCy Schubert }
4850*335c7cdaSCy Schubert #line 4851 "util/configparser.c"
4851b7c0c8c1SCy Schubert break;
4852b7c0c8c1SCy Schubert
4853*335c7cdaSCy Schubert case 467: /* server_harden_algo_downgrade: VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG */
4854*335c7cdaSCy Schubert #line 1821 "util/configparser.y"
4855b7c0c8c1SCy Schubert {
4856b7c0c8c1SCy Schubert OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str)));
4857b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4858b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4859b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_algo_downgrade =
4860b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4861b7c0c8c1SCy Schubert free((yyvsp[0].str));
4862b7c0c8c1SCy Schubert }
4863*335c7cdaSCy Schubert #line 4864 "util/configparser.c"
4864b7c0c8c1SCy Schubert break;
4865b7c0c8c1SCy Schubert
4866*335c7cdaSCy Schubert case 468: /* server_harden_unknown_additional: VAR_HARDEN_UNKNOWN_ADDITIONAL STRING_ARG */
4867*335c7cdaSCy Schubert #line 1831 "util/configparser.y"
4868b7c0c8c1SCy Schubert {
4869b7c0c8c1SCy Schubert OUTYY(("P(server_harden_unknown_additional:%s)\n", (yyvsp[0].str)));
4870b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4871b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4872b7c0c8c1SCy Schubert else cfg_parser->cfg->harden_unknown_additional =
4873b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4874b7c0c8c1SCy Schubert free((yyvsp[0].str));
4875b7c0c8c1SCy Schubert }
4876*335c7cdaSCy Schubert #line 4877 "util/configparser.c"
4877b7c0c8c1SCy Schubert break;
4878b7c0c8c1SCy Schubert
4879*335c7cdaSCy Schubert case 469: /* server_use_caps_for_id: VAR_USE_CAPS_FOR_ID STRING_ARG */
4880*335c7cdaSCy Schubert #line 1841 "util/configparser.y"
4881b7c0c8c1SCy Schubert {
4882b7c0c8c1SCy Schubert OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str)));
4883b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4884b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4885b7c0c8c1SCy Schubert else cfg_parser->cfg->use_caps_bits_for_id =
4886b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4887b7c0c8c1SCy Schubert free((yyvsp[0].str));
4888b7c0c8c1SCy Schubert }
4889*335c7cdaSCy Schubert #line 4890 "util/configparser.c"
4890b7c0c8c1SCy Schubert break;
4891b7c0c8c1SCy Schubert
4892*335c7cdaSCy Schubert case 470: /* server_caps_whitelist: VAR_CAPS_WHITELIST STRING_ARG */
4893*335c7cdaSCy Schubert #line 1851 "util/configparser.y"
4894b7c0c8c1SCy Schubert {
4895b7c0c8c1SCy Schubert OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str)));
4896b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str)))
4897b7c0c8c1SCy Schubert yyerror("out of memory");
4898b7c0c8c1SCy Schubert }
4899*335c7cdaSCy Schubert #line 4900 "util/configparser.c"
4900b7c0c8c1SCy Schubert break;
4901b7c0c8c1SCy Schubert
4902*335c7cdaSCy Schubert case 471: /* server_private_address: VAR_PRIVATE_ADDRESS STRING_ARG */
4903*335c7cdaSCy Schubert #line 1858 "util/configparser.y"
4904b7c0c8c1SCy Schubert {
4905b7c0c8c1SCy Schubert OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str)));
4906b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str)))
4907b7c0c8c1SCy Schubert yyerror("out of memory");
4908b7c0c8c1SCy Schubert }
4909*335c7cdaSCy Schubert #line 4910 "util/configparser.c"
4910b7c0c8c1SCy Schubert break;
4911b7c0c8c1SCy Schubert
4912*335c7cdaSCy Schubert case 472: /* server_private_domain: VAR_PRIVATE_DOMAIN STRING_ARG */
4913*335c7cdaSCy Schubert #line 1865 "util/configparser.y"
4914b7c0c8c1SCy Schubert {
4915b7c0c8c1SCy Schubert OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str)));
4916b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str)))
4917b7c0c8c1SCy Schubert yyerror("out of memory");
4918b7c0c8c1SCy Schubert }
4919*335c7cdaSCy Schubert #line 4920 "util/configparser.c"
4920b7c0c8c1SCy Schubert break;
4921b7c0c8c1SCy Schubert
4922*335c7cdaSCy Schubert case 473: /* server_prefetch: VAR_PREFETCH STRING_ARG */
4923*335c7cdaSCy Schubert #line 1872 "util/configparser.y"
4924b7c0c8c1SCy Schubert {
4925b7c0c8c1SCy Schubert OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str)));
4926b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4927b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4928b7c0c8c1SCy Schubert else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
4929b7c0c8c1SCy Schubert free((yyvsp[0].str));
4930b7c0c8c1SCy Schubert }
4931*335c7cdaSCy Schubert #line 4932 "util/configparser.c"
4932b7c0c8c1SCy Schubert break;
4933b7c0c8c1SCy Schubert
4934*335c7cdaSCy Schubert case 474: /* server_prefetch_key: VAR_PREFETCH_KEY STRING_ARG */
4935*335c7cdaSCy Schubert #line 1881 "util/configparser.y"
4936b7c0c8c1SCy Schubert {
4937b7c0c8c1SCy Schubert OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str)));
4938b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4939b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4940b7c0c8c1SCy Schubert else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
4941b7c0c8c1SCy Schubert free((yyvsp[0].str));
4942b7c0c8c1SCy Schubert }
4943*335c7cdaSCy Schubert #line 4944 "util/configparser.c"
4944b7c0c8c1SCy Schubert break;
4945b7c0c8c1SCy Schubert
4946*335c7cdaSCy Schubert case 475: /* server_deny_any: VAR_DENY_ANY STRING_ARG */
4947*335c7cdaSCy Schubert #line 1890 "util/configparser.y"
4948b7c0c8c1SCy Schubert {
4949b7c0c8c1SCy Schubert OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str)));
4950b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4951b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4952b7c0c8c1SCy Schubert else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0);
4953b7c0c8c1SCy Schubert free((yyvsp[0].str));
4954b7c0c8c1SCy Schubert }
4955*335c7cdaSCy Schubert #line 4956 "util/configparser.c"
4956b7c0c8c1SCy Schubert break;
4957b7c0c8c1SCy Schubert
4958*335c7cdaSCy Schubert case 476: /* server_unwanted_reply_threshold: VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG */
4959*335c7cdaSCy Schubert #line 1899 "util/configparser.y"
4960b7c0c8c1SCy Schubert {
4961b7c0c8c1SCy Schubert OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str)));
4962b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
4963b7c0c8c1SCy Schubert yyerror("number expected");
4964b7c0c8c1SCy Schubert else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
4965b7c0c8c1SCy Schubert free((yyvsp[0].str));
4966b7c0c8c1SCy Schubert }
4967*335c7cdaSCy Schubert #line 4968 "util/configparser.c"
4968b7c0c8c1SCy Schubert break;
4969b7c0c8c1SCy Schubert
4970*335c7cdaSCy Schubert case 477: /* server_do_not_query_address: VAR_DO_NOT_QUERY_ADDRESS STRING_ARG */
4971*335c7cdaSCy Schubert #line 1908 "util/configparser.y"
4972b7c0c8c1SCy Schubert {
4973b7c0c8c1SCy Schubert OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str)));
4974b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str)))
4975b7c0c8c1SCy Schubert yyerror("out of memory");
4976b7c0c8c1SCy Schubert }
4977*335c7cdaSCy Schubert #line 4978 "util/configparser.c"
4978b7c0c8c1SCy Schubert break;
4979b7c0c8c1SCy Schubert
4980*335c7cdaSCy Schubert case 478: /* server_do_not_query_localhost: VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG */
4981*335c7cdaSCy Schubert #line 1915 "util/configparser.y"
4982b7c0c8c1SCy Schubert {
4983b7c0c8c1SCy Schubert OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str)));
4984b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
4985b7c0c8c1SCy Schubert yyerror("expected yes or no.");
4986b7c0c8c1SCy Schubert else cfg_parser->cfg->donotquery_localhost =
4987b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
4988b7c0c8c1SCy Schubert free((yyvsp[0].str));
4989b7c0c8c1SCy Schubert }
4990*335c7cdaSCy Schubert #line 4991 "util/configparser.c"
4991b7c0c8c1SCy Schubert break;
4992b7c0c8c1SCy Schubert
4993*335c7cdaSCy Schubert case 479: /* server_access_control: VAR_ACCESS_CONTROL STRING_ARG STRING_ARG */
4994*335c7cdaSCy Schubert #line 1925 "util/configparser.y"
4995b7c0c8c1SCy Schubert {
4996b7c0c8c1SCy Schubert OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
4997b7c0c8c1SCy Schubert validate_acl_action((yyvsp[0].str));
4998b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->acls, (yyvsp[-1].str), (yyvsp[0].str)))
4999b7c0c8c1SCy Schubert fatal_exit("out of memory adding acl");
5000b7c0c8c1SCy Schubert }
5001*335c7cdaSCy Schubert #line 5002 "util/configparser.c"
5002b7c0c8c1SCy Schubert break;
5003b7c0c8c1SCy Schubert
5004*335c7cdaSCy Schubert case 480: /* server_interface_action: VAR_INTERFACE_ACTION STRING_ARG STRING_ARG */
5005*335c7cdaSCy Schubert #line 1933 "util/configparser.y"
5006b7c0c8c1SCy Schubert {
5007b7c0c8c1SCy Schubert OUTYY(("P(server_interface_action:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
5008b7c0c8c1SCy Schubert validate_acl_action((yyvsp[0].str));
5009b7c0c8c1SCy Schubert if(!cfg_str2list_insert(
5010b7c0c8c1SCy Schubert &cfg_parser->cfg->interface_actions, (yyvsp[-1].str), (yyvsp[0].str)))
5011b7c0c8c1SCy Schubert fatal_exit("out of memory adding acl");
5012b7c0c8c1SCy Schubert }
5013*335c7cdaSCy Schubert #line 5014 "util/configparser.c"
5014b7c0c8c1SCy Schubert break;
5015b7c0c8c1SCy Schubert
5016*335c7cdaSCy Schubert case 481: /* server_module_conf: VAR_MODULE_CONF STRING_ARG */
5017*335c7cdaSCy Schubert #line 1942 "util/configparser.y"
5018b7c0c8c1SCy Schubert {
5019b7c0c8c1SCy Schubert OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str)));
5020b7c0c8c1SCy Schubert free(cfg_parser->cfg->module_conf);
5021b7c0c8c1SCy Schubert cfg_parser->cfg->module_conf = (yyvsp[0].str);
5022b7c0c8c1SCy Schubert }
5023*335c7cdaSCy Schubert #line 5024 "util/configparser.c"
5024b7c0c8c1SCy Schubert break;
5025b7c0c8c1SCy Schubert
5026*335c7cdaSCy Schubert case 482: /* server_val_override_date: VAR_VAL_OVERRIDE_DATE STRING_ARG */
5027*335c7cdaSCy Schubert #line 1949 "util/configparser.y"
5028b7c0c8c1SCy Schubert {
5029b7c0c8c1SCy Schubert OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str)));
5030b7c0c8c1SCy Schubert if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
5031b7c0c8c1SCy Schubert cfg_parser->cfg->val_date_override = 0;
5032b7c0c8c1SCy Schubert } else if(strlen((yyvsp[0].str)) == 14) {
5033b7c0c8c1SCy Schubert cfg_parser->cfg->val_date_override =
5034b7c0c8c1SCy Schubert cfg_convert_timeval((yyvsp[0].str));
5035b7c0c8c1SCy Schubert if(!cfg_parser->cfg->val_date_override)
5036b7c0c8c1SCy Schubert yyerror("bad date/time specification");
5037b7c0c8c1SCy Schubert } else {
5038b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
5039b7c0c8c1SCy Schubert yyerror("number expected");
5040b7c0c8c1SCy Schubert cfg_parser->cfg->val_date_override = atoi((yyvsp[0].str));
5041b7c0c8c1SCy Schubert }
5042b7c0c8c1SCy Schubert free((yyvsp[0].str));
5043b7c0c8c1SCy Schubert }
5044*335c7cdaSCy Schubert #line 5045 "util/configparser.c"
5045b7c0c8c1SCy Schubert break;
5046b7c0c8c1SCy Schubert
5047*335c7cdaSCy Schubert case 483: /* server_val_sig_skew_min: VAR_VAL_SIG_SKEW_MIN STRING_ARG */
5048*335c7cdaSCy Schubert #line 1967 "util/configparser.y"
5049b7c0c8c1SCy Schubert {
5050b7c0c8c1SCy Schubert OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str)));
5051b7c0c8c1SCy Schubert if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
5052b7c0c8c1SCy Schubert cfg_parser->cfg->val_sig_skew_min = 0;
5053b7c0c8c1SCy Schubert } else {
5054b7c0c8c1SCy Schubert cfg_parser->cfg->val_sig_skew_min = atoi((yyvsp[0].str));
5055b7c0c8c1SCy Schubert if(!cfg_parser->cfg->val_sig_skew_min)
5056b7c0c8c1SCy Schubert yyerror("number expected");
5057b7c0c8c1SCy Schubert }
5058b7c0c8c1SCy Schubert free((yyvsp[0].str));
5059b7c0c8c1SCy Schubert }
5060*335c7cdaSCy Schubert #line 5061 "util/configparser.c"
5061b7c0c8c1SCy Schubert break;
5062b7c0c8c1SCy Schubert
5063*335c7cdaSCy Schubert case 484: /* server_val_sig_skew_max: VAR_VAL_SIG_SKEW_MAX STRING_ARG */
5064*335c7cdaSCy Schubert #line 1980 "util/configparser.y"
5065b7c0c8c1SCy Schubert {
5066b7c0c8c1SCy Schubert OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str)));
5067b7c0c8c1SCy Schubert if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
5068b7c0c8c1SCy Schubert cfg_parser->cfg->val_sig_skew_max = 0;
5069b7c0c8c1SCy Schubert } else {
5070b7c0c8c1SCy Schubert cfg_parser->cfg->val_sig_skew_max = atoi((yyvsp[0].str));
5071b7c0c8c1SCy Schubert if(!cfg_parser->cfg->val_sig_skew_max)
5072b7c0c8c1SCy Schubert yyerror("number expected");
5073b7c0c8c1SCy Schubert }
5074b7c0c8c1SCy Schubert free((yyvsp[0].str));
5075b7c0c8c1SCy Schubert }
5076*335c7cdaSCy Schubert #line 5077 "util/configparser.c"
5077b7c0c8c1SCy Schubert break;
5078b7c0c8c1SCy Schubert
5079*335c7cdaSCy Schubert case 485: /* server_val_max_restart: VAR_VAL_MAX_RESTART STRING_ARG */
5080*335c7cdaSCy Schubert #line 1993 "util/configparser.y"
5081b7c0c8c1SCy Schubert {
5082b7c0c8c1SCy Schubert OUTYY(("P(server_val_max_restart:%s)\n", (yyvsp[0].str)));
5083b7c0c8c1SCy Schubert if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
5084b7c0c8c1SCy Schubert cfg_parser->cfg->val_max_restart = 0;
5085b7c0c8c1SCy Schubert } else {
5086b7c0c8c1SCy Schubert cfg_parser->cfg->val_max_restart = atoi((yyvsp[0].str));
5087b7c0c8c1SCy Schubert if(!cfg_parser->cfg->val_max_restart)
5088b7c0c8c1SCy Schubert yyerror("number expected");
5089b7c0c8c1SCy Schubert }
5090b7c0c8c1SCy Schubert free((yyvsp[0].str));
5091b7c0c8c1SCy Schubert }
5092*335c7cdaSCy Schubert #line 5093 "util/configparser.c"
5093b7c0c8c1SCy Schubert break;
5094b7c0c8c1SCy Schubert
5095*335c7cdaSCy Schubert case 486: /* server_cache_max_ttl: VAR_CACHE_MAX_TTL STRING_ARG */
5096*335c7cdaSCy Schubert #line 2006 "util/configparser.y"
5097b7c0c8c1SCy Schubert {
5098b7c0c8c1SCy Schubert OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str)));
5099b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5100b7c0c8c1SCy Schubert yyerror("number expected");
5101b7c0c8c1SCy Schubert else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
5102b7c0c8c1SCy Schubert free((yyvsp[0].str));
5103b7c0c8c1SCy Schubert }
5104*335c7cdaSCy Schubert #line 5105 "util/configparser.c"
5105b7c0c8c1SCy Schubert break;
5106b7c0c8c1SCy Schubert
5107*335c7cdaSCy Schubert case 487: /* server_cache_max_negative_ttl: VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG */
5108*335c7cdaSCy Schubert #line 2015 "util/configparser.y"
5109b7c0c8c1SCy Schubert {
5110b7c0c8c1SCy Schubert OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str)));
5111b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5112b7c0c8c1SCy Schubert yyerror("number expected");
5113b7c0c8c1SCy Schubert else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
5114b7c0c8c1SCy Schubert free((yyvsp[0].str));
5115b7c0c8c1SCy Schubert }
5116*335c7cdaSCy Schubert #line 5117 "util/configparser.c"
5117b7c0c8c1SCy Schubert break;
5118b7c0c8c1SCy Schubert
5119*335c7cdaSCy Schubert case 488: /* server_cache_min_negative_ttl: VAR_CACHE_MIN_NEGATIVE_TTL STRING_ARG */
5120*335c7cdaSCy Schubert #line 2024 "util/configparser.y"
5121*335c7cdaSCy Schubert {
5122*335c7cdaSCy Schubert OUTYY(("P(server_cache_min_negative_ttl:%s)\n", (yyvsp[0].str)));
5123*335c7cdaSCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5124*335c7cdaSCy Schubert yyerror("number expected");
5125*335c7cdaSCy Schubert else cfg_parser->cfg->min_negative_ttl = atoi((yyvsp[0].str));
5126*335c7cdaSCy Schubert free((yyvsp[0].str));
5127*335c7cdaSCy Schubert }
5128*335c7cdaSCy Schubert #line 5129 "util/configparser.c"
5129*335c7cdaSCy Schubert break;
5130*335c7cdaSCy Schubert
5131*335c7cdaSCy Schubert case 489: /* server_cache_min_ttl: VAR_CACHE_MIN_TTL STRING_ARG */
5132*335c7cdaSCy Schubert #line 2033 "util/configparser.y"
5133b7c0c8c1SCy Schubert {
5134b7c0c8c1SCy Schubert OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str)));
5135b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5136b7c0c8c1SCy Schubert yyerror("number expected");
5137b7c0c8c1SCy Schubert else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
5138b7c0c8c1SCy Schubert free((yyvsp[0].str));
5139b7c0c8c1SCy Schubert }
5140*335c7cdaSCy Schubert #line 5141 "util/configparser.c"
5141b7c0c8c1SCy Schubert break;
5142b7c0c8c1SCy Schubert
5143*335c7cdaSCy Schubert case 490: /* server_bogus_ttl: VAR_BOGUS_TTL STRING_ARG */
5144*335c7cdaSCy Schubert #line 2042 "util/configparser.y"
5145b7c0c8c1SCy Schubert {
5146b7c0c8c1SCy Schubert OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str)));
5147b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5148b7c0c8c1SCy Schubert yyerror("number expected");
5149b7c0c8c1SCy Schubert else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
5150b7c0c8c1SCy Schubert free((yyvsp[0].str));
5151b7c0c8c1SCy Schubert }
5152*335c7cdaSCy Schubert #line 5153 "util/configparser.c"
5153b7c0c8c1SCy Schubert break;
5154b7c0c8c1SCy Schubert
5155*335c7cdaSCy Schubert case 491: /* server_val_clean_additional: VAR_VAL_CLEAN_ADDITIONAL STRING_ARG */
5156*335c7cdaSCy Schubert #line 2051 "util/configparser.y"
5157b7c0c8c1SCy Schubert {
5158b7c0c8c1SCy Schubert OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str)));
5159b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5160b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5161b7c0c8c1SCy Schubert else cfg_parser->cfg->val_clean_additional =
5162b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
5163b7c0c8c1SCy Schubert free((yyvsp[0].str));
5164b7c0c8c1SCy Schubert }
5165*335c7cdaSCy Schubert #line 5166 "util/configparser.c"
5166b7c0c8c1SCy Schubert break;
5167b7c0c8c1SCy Schubert
5168*335c7cdaSCy Schubert case 492: /* server_val_permissive_mode: VAR_VAL_PERMISSIVE_MODE STRING_ARG */
5169*335c7cdaSCy Schubert #line 2061 "util/configparser.y"
5170b7c0c8c1SCy Schubert {
5171b7c0c8c1SCy Schubert OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str)));
5172b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5173b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5174b7c0c8c1SCy Schubert else cfg_parser->cfg->val_permissive_mode =
5175b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
5176b7c0c8c1SCy Schubert free((yyvsp[0].str));
5177b7c0c8c1SCy Schubert }
5178*335c7cdaSCy Schubert #line 5179 "util/configparser.c"
5179b7c0c8c1SCy Schubert break;
5180b7c0c8c1SCy Schubert
5181*335c7cdaSCy Schubert case 493: /* server_aggressive_nsec: VAR_AGGRESSIVE_NSEC STRING_ARG */
5182*335c7cdaSCy Schubert #line 2071 "util/configparser.y"
5183b7c0c8c1SCy Schubert {
5184b7c0c8c1SCy Schubert OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str)));
5185b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5186b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5187b7c0c8c1SCy Schubert else
5188b7c0c8c1SCy Schubert cfg_parser->cfg->aggressive_nsec =
5189b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
5190b7c0c8c1SCy Schubert free((yyvsp[0].str));
5191b7c0c8c1SCy Schubert }
5192*335c7cdaSCy Schubert #line 5193 "util/configparser.c"
5193b7c0c8c1SCy Schubert break;
5194b7c0c8c1SCy Schubert
5195*335c7cdaSCy Schubert case 494: /* server_ignore_cd_flag: VAR_IGNORE_CD_FLAG STRING_ARG */
5196*335c7cdaSCy Schubert #line 2082 "util/configparser.y"
5197b7c0c8c1SCy Schubert {
5198b7c0c8c1SCy Schubert OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str)));
5199b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5200b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5201b7c0c8c1SCy Schubert else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
5202b7c0c8c1SCy Schubert free((yyvsp[0].str));
5203b7c0c8c1SCy Schubert }
5204*335c7cdaSCy Schubert #line 5205 "util/configparser.c"
5205b7c0c8c1SCy Schubert break;
5206b7c0c8c1SCy Schubert
5207*335c7cdaSCy Schubert case 495: /* server_disable_edns_do: VAR_DISABLE_EDNS_DO STRING_ARG */
5208*335c7cdaSCy Schubert #line 2091 "util/configparser.y"
5209b7c0c8c1SCy Schubert {
5210b7c0c8c1SCy Schubert OUTYY(("P(server_disable_edns_do:%s)\n", (yyvsp[0].str)));
5211b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5212b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5213b7c0c8c1SCy Schubert else cfg_parser->cfg->disable_edns_do = (strcmp((yyvsp[0].str), "yes")==0);
5214b7c0c8c1SCy Schubert free((yyvsp[0].str));
5215b7c0c8c1SCy Schubert }
5216*335c7cdaSCy Schubert #line 5217 "util/configparser.c"
5217b7c0c8c1SCy Schubert break;
5218b7c0c8c1SCy Schubert
5219*335c7cdaSCy Schubert case 496: /* server_serve_expired: VAR_SERVE_EXPIRED STRING_ARG */
5220*335c7cdaSCy Schubert #line 2100 "util/configparser.y"
5221b7c0c8c1SCy Schubert {
5222b7c0c8c1SCy Schubert OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str)));
5223b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5224b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5225b7c0c8c1SCy Schubert else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
5226b7c0c8c1SCy Schubert free((yyvsp[0].str));
5227b7c0c8c1SCy Schubert }
5228*335c7cdaSCy Schubert #line 5229 "util/configparser.c"
5229b7c0c8c1SCy Schubert break;
5230b7c0c8c1SCy Schubert
5231*335c7cdaSCy Schubert case 497: /* server_serve_expired_ttl: VAR_SERVE_EXPIRED_TTL STRING_ARG */
5232*335c7cdaSCy Schubert #line 2109 "util/configparser.y"
5233b7c0c8c1SCy Schubert {
5234b7c0c8c1SCy Schubert OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str)));
5235b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5236b7c0c8c1SCy Schubert yyerror("number expected");
5237b7c0c8c1SCy Schubert else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str));
5238b7c0c8c1SCy Schubert free((yyvsp[0].str));
5239b7c0c8c1SCy Schubert }
5240*335c7cdaSCy Schubert #line 5241 "util/configparser.c"
5241b7c0c8c1SCy Schubert break;
5242b7c0c8c1SCy Schubert
5243*335c7cdaSCy Schubert case 498: /* server_serve_expired_ttl_reset: VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG */
5244*335c7cdaSCy Schubert #line 2118 "util/configparser.y"
5245b7c0c8c1SCy Schubert {
5246b7c0c8c1SCy Schubert OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str)));
5247b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5248b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5249b7c0c8c1SCy Schubert else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0);
5250b7c0c8c1SCy Schubert free((yyvsp[0].str));
5251b7c0c8c1SCy Schubert }
5252*335c7cdaSCy Schubert #line 5253 "util/configparser.c"
5253b7c0c8c1SCy Schubert break;
5254b7c0c8c1SCy Schubert
5255*335c7cdaSCy Schubert case 499: /* server_serve_expired_reply_ttl: VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG */
5256*335c7cdaSCy Schubert #line 2127 "util/configparser.y"
5257b7c0c8c1SCy Schubert {
5258b7c0c8c1SCy Schubert OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str)));
5259b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5260b7c0c8c1SCy Schubert yyerror("number expected");
5261b7c0c8c1SCy Schubert else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str));
5262b7c0c8c1SCy Schubert free((yyvsp[0].str));
5263b7c0c8c1SCy Schubert }
5264*335c7cdaSCy Schubert #line 5265 "util/configparser.c"
5265b7c0c8c1SCy Schubert break;
5266b7c0c8c1SCy Schubert
5267*335c7cdaSCy Schubert case 500: /* server_serve_expired_client_timeout: VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG */
5268*335c7cdaSCy Schubert #line 2136 "util/configparser.y"
5269b7c0c8c1SCy Schubert {
5270b7c0c8c1SCy Schubert OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str)));
5271b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5272b7c0c8c1SCy Schubert yyerror("number expected");
5273b7c0c8c1SCy Schubert else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str));
5274b7c0c8c1SCy Schubert free((yyvsp[0].str));
5275b7c0c8c1SCy Schubert }
5276*335c7cdaSCy Schubert #line 5277 "util/configparser.c"
5277b7c0c8c1SCy Schubert break;
5278b7c0c8c1SCy Schubert
5279*335c7cdaSCy Schubert case 501: /* server_ede_serve_expired: VAR_EDE_SERVE_EXPIRED STRING_ARG */
5280*335c7cdaSCy Schubert #line 2145 "util/configparser.y"
5281b7c0c8c1SCy Schubert {
5282b7c0c8c1SCy Schubert OUTYY(("P(server_ede_serve_expired:%s)\n", (yyvsp[0].str)));
5283b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5284b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5285b7c0c8c1SCy Schubert else cfg_parser->cfg->ede_serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
5286b7c0c8c1SCy Schubert free((yyvsp[0].str));
5287b7c0c8c1SCy Schubert }
5288*335c7cdaSCy Schubert #line 5289 "util/configparser.c"
5289b7c0c8c1SCy Schubert break;
5290b7c0c8c1SCy Schubert
5291*335c7cdaSCy Schubert case 502: /* server_serve_original_ttl: VAR_SERVE_ORIGINAL_TTL STRING_ARG */
5292*335c7cdaSCy Schubert #line 2154 "util/configparser.y"
5293b7c0c8c1SCy Schubert {
5294b7c0c8c1SCy Schubert OUTYY(("P(server_serve_original_ttl:%s)\n", (yyvsp[0].str)));
5295b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5296b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5297b7c0c8c1SCy Schubert else cfg_parser->cfg->serve_original_ttl = (strcmp((yyvsp[0].str), "yes")==0);
5298b7c0c8c1SCy Schubert free((yyvsp[0].str));
5299b7c0c8c1SCy Schubert }
5300*335c7cdaSCy Schubert #line 5301 "util/configparser.c"
5301b7c0c8c1SCy Schubert break;
5302b7c0c8c1SCy Schubert
5303*335c7cdaSCy Schubert case 503: /* server_fake_dsa: VAR_FAKE_DSA STRING_ARG */
5304*335c7cdaSCy Schubert #line 2163 "util/configparser.y"
5305b7c0c8c1SCy Schubert {
5306b7c0c8c1SCy Schubert OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str)));
5307b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5308b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5309b7c0c8c1SCy Schubert #if defined(HAVE_SSL) || defined(HAVE_NETTLE)
5310b7c0c8c1SCy Schubert else fake_dsa = (strcmp((yyvsp[0].str), "yes")==0);
5311b7c0c8c1SCy Schubert if(fake_dsa)
5312b7c0c8c1SCy Schubert log_warn("test option fake_dsa is enabled");
5313b7c0c8c1SCy Schubert #endif
5314b7c0c8c1SCy Schubert free((yyvsp[0].str));
5315b7c0c8c1SCy Schubert }
5316*335c7cdaSCy Schubert #line 5317 "util/configparser.c"
5317b7c0c8c1SCy Schubert break;
5318b7c0c8c1SCy Schubert
5319*335c7cdaSCy Schubert case 504: /* server_fake_sha1: VAR_FAKE_SHA1 STRING_ARG */
5320*335c7cdaSCy Schubert #line 2176 "util/configparser.y"
5321b7c0c8c1SCy Schubert {
5322b7c0c8c1SCy Schubert OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str)));
5323b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5324b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5325b7c0c8c1SCy Schubert #if defined(HAVE_SSL) || defined(HAVE_NETTLE)
5326b7c0c8c1SCy Schubert else fake_sha1 = (strcmp((yyvsp[0].str), "yes")==0);
5327b7c0c8c1SCy Schubert if(fake_sha1)
5328b7c0c8c1SCy Schubert log_warn("test option fake_sha1 is enabled");
5329b7c0c8c1SCy Schubert #endif
5330b7c0c8c1SCy Schubert free((yyvsp[0].str));
5331b7c0c8c1SCy Schubert }
5332*335c7cdaSCy Schubert #line 5333 "util/configparser.c"
5333b7c0c8c1SCy Schubert break;
5334b7c0c8c1SCy Schubert
5335*335c7cdaSCy Schubert case 505: /* server_val_log_level: VAR_VAL_LOG_LEVEL STRING_ARG */
5336*335c7cdaSCy Schubert #line 2189 "util/configparser.y"
5337b7c0c8c1SCy Schubert {
5338b7c0c8c1SCy Schubert OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str)));
5339b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5340b7c0c8c1SCy Schubert yyerror("number expected");
5341b7c0c8c1SCy Schubert else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
5342b7c0c8c1SCy Schubert free((yyvsp[0].str));
5343b7c0c8c1SCy Schubert }
5344*335c7cdaSCy Schubert #line 5345 "util/configparser.c"
5345b7c0c8c1SCy Schubert break;
5346b7c0c8c1SCy Schubert
5347*335c7cdaSCy Schubert case 506: /* server_val_nsec3_keysize_iterations: VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG */
5348*335c7cdaSCy Schubert #line 2198 "util/configparser.y"
5349b7c0c8c1SCy Schubert {
5350b7c0c8c1SCy Schubert OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str)));
5351b7c0c8c1SCy Schubert free(cfg_parser->cfg->val_nsec3_key_iterations);
5352b7c0c8c1SCy Schubert cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str);
5353b7c0c8c1SCy Schubert }
5354*335c7cdaSCy Schubert #line 5355 "util/configparser.c"
5355b7c0c8c1SCy Schubert break;
5356b7c0c8c1SCy Schubert
5357*335c7cdaSCy Schubert case 507: /* server_zonemd_permissive_mode: VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG */
5358*335c7cdaSCy Schubert #line 2205 "util/configparser.y"
5359b7c0c8c1SCy Schubert {
5360b7c0c8c1SCy Schubert OUTYY(("P(server_zonemd_permissive_mode:%s)\n", (yyvsp[0].str)));
5361b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5362b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5363b7c0c8c1SCy Schubert else cfg_parser->cfg->zonemd_permissive_mode = (strcmp((yyvsp[0].str), "yes")==0);
5364b7c0c8c1SCy Schubert free((yyvsp[0].str));
5365b7c0c8c1SCy Schubert }
5366*335c7cdaSCy Schubert #line 5367 "util/configparser.c"
5367b7c0c8c1SCy Schubert break;
5368b7c0c8c1SCy Schubert
5369*335c7cdaSCy Schubert case 508: /* server_add_holddown: VAR_ADD_HOLDDOWN STRING_ARG */
5370*335c7cdaSCy Schubert #line 2214 "util/configparser.y"
5371b7c0c8c1SCy Schubert {
5372b7c0c8c1SCy Schubert OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str)));
5373b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5374b7c0c8c1SCy Schubert yyerror("number expected");
5375b7c0c8c1SCy Schubert else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
5376b7c0c8c1SCy Schubert free((yyvsp[0].str));
5377b7c0c8c1SCy Schubert }
5378*335c7cdaSCy Schubert #line 5379 "util/configparser.c"
5379b7c0c8c1SCy Schubert break;
5380b7c0c8c1SCy Schubert
5381*335c7cdaSCy Schubert case 509: /* server_del_holddown: VAR_DEL_HOLDDOWN STRING_ARG */
5382*335c7cdaSCy Schubert #line 2223 "util/configparser.y"
5383b7c0c8c1SCy Schubert {
5384b7c0c8c1SCy Schubert OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str)));
5385b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5386b7c0c8c1SCy Schubert yyerror("number expected");
5387b7c0c8c1SCy Schubert else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
5388b7c0c8c1SCy Schubert free((yyvsp[0].str));
5389b7c0c8c1SCy Schubert }
5390*335c7cdaSCy Schubert #line 5391 "util/configparser.c"
5391b7c0c8c1SCy Schubert break;
5392b7c0c8c1SCy Schubert
5393*335c7cdaSCy Schubert case 510: /* server_keep_missing: VAR_KEEP_MISSING STRING_ARG */
5394*335c7cdaSCy Schubert #line 2232 "util/configparser.y"
5395b7c0c8c1SCy Schubert {
5396b7c0c8c1SCy Schubert OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str)));
5397b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5398b7c0c8c1SCy Schubert yyerror("number expected");
5399b7c0c8c1SCy Schubert else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
5400b7c0c8c1SCy Schubert free((yyvsp[0].str));
5401b7c0c8c1SCy Schubert }
5402*335c7cdaSCy Schubert #line 5403 "util/configparser.c"
5403b7c0c8c1SCy Schubert break;
5404b7c0c8c1SCy Schubert
5405*335c7cdaSCy Schubert case 511: /* server_permit_small_holddown: VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG */
5406*335c7cdaSCy Schubert #line 2241 "util/configparser.y"
5407b7c0c8c1SCy Schubert {
5408b7c0c8c1SCy Schubert OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str)));
5409b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5410b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5411b7c0c8c1SCy Schubert else cfg_parser->cfg->permit_small_holddown =
5412b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
5413b7c0c8c1SCy Schubert free((yyvsp[0].str));
5414b7c0c8c1SCy Schubert }
5415*335c7cdaSCy Schubert #line 5416 "util/configparser.c"
5416b7c0c8c1SCy Schubert break;
5417b7c0c8c1SCy Schubert
5418*335c7cdaSCy Schubert case 512: /* server_key_cache_size: VAR_KEY_CACHE_SIZE STRING_ARG */
5419*335c7cdaSCy Schubert #line 2251 "util/configparser.y"
5420b7c0c8c1SCy Schubert {
5421b7c0c8c1SCy Schubert OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str)));
5422b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size))
5423b7c0c8c1SCy Schubert yyerror("memory size expected");
5424b7c0c8c1SCy Schubert free((yyvsp[0].str));
5425b7c0c8c1SCy Schubert }
5426*335c7cdaSCy Schubert #line 5427 "util/configparser.c"
5427b7c0c8c1SCy Schubert break;
5428b7c0c8c1SCy Schubert
5429*335c7cdaSCy Schubert case 513: /* server_key_cache_slabs: VAR_KEY_CACHE_SLABS STRING_ARG */
5430*335c7cdaSCy Schubert #line 2259 "util/configparser.y"
5431b7c0c8c1SCy Schubert {
5432b7c0c8c1SCy Schubert OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
5433b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) {
5434b7c0c8c1SCy Schubert yyerror("number expected");
5435b7c0c8c1SCy Schubert } else {
5436b7c0c8c1SCy Schubert cfg_parser->cfg->key_cache_slabs = atoi((yyvsp[0].str));
5437b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->key_cache_slabs))
5438b7c0c8c1SCy Schubert yyerror("must be a power of 2");
5439b7c0c8c1SCy Schubert }
5440b7c0c8c1SCy Schubert free((yyvsp[0].str));
5441b7c0c8c1SCy Schubert }
5442*335c7cdaSCy Schubert #line 5443 "util/configparser.c"
5443b7c0c8c1SCy Schubert break;
5444b7c0c8c1SCy Schubert
5445*335c7cdaSCy Schubert case 514: /* server_neg_cache_size: VAR_NEG_CACHE_SIZE STRING_ARG */
5446*335c7cdaSCy Schubert #line 2272 "util/configparser.y"
5447b7c0c8c1SCy Schubert {
5448b7c0c8c1SCy Schubert OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str)));
5449b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size))
5450b7c0c8c1SCy Schubert yyerror("memory size expected");
5451b7c0c8c1SCy Schubert free((yyvsp[0].str));
5452b7c0c8c1SCy Schubert }
5453*335c7cdaSCy Schubert #line 5454 "util/configparser.c"
5454b7c0c8c1SCy Schubert break;
5455b7c0c8c1SCy Schubert
5456*335c7cdaSCy Schubert case 515: /* server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */
5457*335c7cdaSCy Schubert #line 2280 "util/configparser.y"
5458b7c0c8c1SCy Schubert {
5459b7c0c8c1SCy Schubert OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
5460b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
5461b7c0c8c1SCy Schubert strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 &&
5462b7c0c8c1SCy Schubert strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0
5463b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "typetransparent")!=0
5464b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_transparent")!=0
5465b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "block_a")!=0
5466b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_refuse")!=0
5467b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_nxdomain")!=0
5468b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_nodata")!=0
5469b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_deny")!=0
5470b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_null")!=0
5471b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "noview")!=0
5472b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0
5473b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "inform_redirect") != 0
5474b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "ipset") != 0) {
5475b7c0c8c1SCy Schubert yyerror("local-zone type: expected static, deny, "
5476b7c0c8c1SCy Schubert "refuse, redirect, transparent, "
5477b7c0c8c1SCy Schubert "typetransparent, inform, inform_deny, "
5478b7c0c8c1SCy Schubert "inform_redirect, always_transparent, block_a,"
5479b7c0c8c1SCy Schubert "always_refuse, always_nxdomain, "
5480b7c0c8c1SCy Schubert "always_nodata, always_deny, always_null, "
5481b7c0c8c1SCy Schubert "noview, nodefault or ipset");
5482b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5483b7c0c8c1SCy Schubert free((yyvsp[0].str));
5484b7c0c8c1SCy Schubert } else if(strcmp((yyvsp[0].str), "nodefault")==0) {
5485b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->
5486b7c0c8c1SCy Schubert local_zones_nodefault, (yyvsp[-1].str)))
5487b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone");
5488b7c0c8c1SCy Schubert free((yyvsp[0].str));
5489b7c0c8c1SCy Schubert #ifdef USE_IPSET
5490b7c0c8c1SCy Schubert } else if(strcmp((yyvsp[0].str), "ipset")==0) {
5491b7c0c8c1SCy Schubert size_t len = strlen((yyvsp[-1].str));
5492b7c0c8c1SCy Schubert /* Make sure to add the trailing dot.
5493b7c0c8c1SCy Schubert * These are str compared to domain names. */
5494b7c0c8c1SCy Schubert if((yyvsp[-1].str)[len-1] != '.') {
5495b7c0c8c1SCy Schubert if(!((yyvsp[-1].str) = realloc((yyvsp[-1].str), len+2))) {
5496b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone");
5497b7c0c8c1SCy Schubert }
5498b7c0c8c1SCy Schubert (yyvsp[-1].str)[len] = '.';
5499b7c0c8c1SCy Schubert (yyvsp[-1].str)[len+1] = 0;
5500b7c0c8c1SCy Schubert }
5501b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->
5502b7c0c8c1SCy Schubert local_zones_ipset, (yyvsp[-1].str)))
5503b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone");
5504b7c0c8c1SCy Schubert free((yyvsp[0].str));
5505b7c0c8c1SCy Schubert #endif
5506b7c0c8c1SCy Schubert } else {
5507b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones,
5508b7c0c8c1SCy Schubert (yyvsp[-1].str), (yyvsp[0].str)))
5509b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone");
5510b7c0c8c1SCy Schubert }
5511b7c0c8c1SCy Schubert }
5512*335c7cdaSCy Schubert #line 5513 "util/configparser.c"
5513b7c0c8c1SCy Schubert break;
5514b7c0c8c1SCy Schubert
5515*335c7cdaSCy Schubert case 516: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */
5516*335c7cdaSCy Schubert #line 2336 "util/configparser.y"
5517b7c0c8c1SCy Schubert {
5518b7c0c8c1SCy Schubert OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str)));
5519b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str)))
5520b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-data");
5521b7c0c8c1SCy Schubert }
5522*335c7cdaSCy Schubert #line 5523 "util/configparser.c"
5523b7c0c8c1SCy Schubert break;
5524b7c0c8c1SCy Schubert
5525*335c7cdaSCy Schubert case 517: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */
5526*335c7cdaSCy Schubert #line 2343 "util/configparser.y"
5527b7c0c8c1SCy Schubert {
5528b7c0c8c1SCy Schubert char* ptr;
5529b7c0c8c1SCy Schubert OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
5530b7c0c8c1SCy Schubert ptr = cfg_ptr_reverse((yyvsp[0].str));
5531b7c0c8c1SCy Schubert free((yyvsp[0].str));
5532b7c0c8c1SCy Schubert if(ptr) {
5533b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->
5534b7c0c8c1SCy Schubert local_data, ptr))
5535b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-data");
5536b7c0c8c1SCy Schubert } else {
5537b7c0c8c1SCy Schubert yyerror("local-data-ptr could not be reversed");
5538b7c0c8c1SCy Schubert }
5539b7c0c8c1SCy Schubert }
5540*335c7cdaSCy Schubert #line 5541 "util/configparser.c"
5541b7c0c8c1SCy Schubert break;
5542b7c0c8c1SCy Schubert
5543*335c7cdaSCy Schubert case 518: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */
5544*335c7cdaSCy Schubert #line 2358 "util/configparser.y"
5545b7c0c8c1SCy Schubert {
5546b7c0c8c1SCy Schubert OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str)));
5547b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5548b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5549b7c0c8c1SCy Schubert else cfg_parser->cfg->minimal_responses =
5550b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
5551b7c0c8c1SCy Schubert free((yyvsp[0].str));
5552b7c0c8c1SCy Schubert }
5553*335c7cdaSCy Schubert #line 5554 "util/configparser.c"
5554b7c0c8c1SCy Schubert break;
5555b7c0c8c1SCy Schubert
5556*335c7cdaSCy Schubert case 519: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */
5557*335c7cdaSCy Schubert #line 2368 "util/configparser.y"
5558b7c0c8c1SCy Schubert {
5559b7c0c8c1SCy Schubert OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str)));
5560b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5561b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5562b7c0c8c1SCy Schubert else cfg_parser->cfg->rrset_roundrobin =
5563b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
5564b7c0c8c1SCy Schubert free((yyvsp[0].str));
5565b7c0c8c1SCy Schubert }
5566*335c7cdaSCy Schubert #line 5567 "util/configparser.c"
5567b7c0c8c1SCy Schubert break;
5568b7c0c8c1SCy Schubert
5569*335c7cdaSCy Schubert case 520: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */
5570*335c7cdaSCy Schubert #line 2378 "util/configparser.y"
5571b7c0c8c1SCy Schubert {
5572b7c0c8c1SCy Schubert OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str)));
5573b7c0c8c1SCy Schubert cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str));
5574b7c0c8c1SCy Schubert free((yyvsp[0].str));
5575b7c0c8c1SCy Schubert }
5576*335c7cdaSCy Schubert #line 5577 "util/configparser.c"
5577b7c0c8c1SCy Schubert break;
5578b7c0c8c1SCy Schubert
5579*335c7cdaSCy Schubert case 521: /* server_discard_timeout: VAR_DISCARD_TIMEOUT STRING_ARG */
5580*335c7cdaSCy Schubert #line 2385 "util/configparser.y"
5581*335c7cdaSCy Schubert {
5582*335c7cdaSCy Schubert OUTYY(("P(server_discard_timeout:%s)\n", (yyvsp[0].str)));
5583*335c7cdaSCy Schubert cfg_parser->cfg->discard_timeout = atoi((yyvsp[0].str));
5584*335c7cdaSCy Schubert free((yyvsp[0].str));
5585*335c7cdaSCy Schubert }
5586*335c7cdaSCy Schubert #line 5587 "util/configparser.c"
5587*335c7cdaSCy Schubert break;
5588*335c7cdaSCy Schubert
5589*335c7cdaSCy Schubert case 522: /* server_wait_limit: VAR_WAIT_LIMIT STRING_ARG */
5590*335c7cdaSCy Schubert #line 2392 "util/configparser.y"
5591*335c7cdaSCy Schubert {
5592*335c7cdaSCy Schubert OUTYY(("P(server_wait_limit:%s)\n", (yyvsp[0].str)));
5593*335c7cdaSCy Schubert cfg_parser->cfg->wait_limit = atoi((yyvsp[0].str));
5594*335c7cdaSCy Schubert free((yyvsp[0].str));
5595*335c7cdaSCy Schubert }
5596*335c7cdaSCy Schubert #line 5597 "util/configparser.c"
5597*335c7cdaSCy Schubert break;
5598*335c7cdaSCy Schubert
5599*335c7cdaSCy Schubert case 523: /* server_wait_limit_cookie: VAR_WAIT_LIMIT_COOKIE STRING_ARG */
5600*335c7cdaSCy Schubert #line 2399 "util/configparser.y"
5601*335c7cdaSCy Schubert {
5602*335c7cdaSCy Schubert OUTYY(("P(server_wait_limit_cookie:%s)\n", (yyvsp[0].str)));
5603*335c7cdaSCy Schubert cfg_parser->cfg->wait_limit_cookie = atoi((yyvsp[0].str));
5604*335c7cdaSCy Schubert free((yyvsp[0].str));
5605*335c7cdaSCy Schubert }
5606*335c7cdaSCy Schubert #line 5607 "util/configparser.c"
5607*335c7cdaSCy Schubert break;
5608*335c7cdaSCy Schubert
5609*335c7cdaSCy Schubert case 524: /* server_wait_limit_netblock: VAR_WAIT_LIMIT_NETBLOCK STRING_ARG STRING_ARG */
5610*335c7cdaSCy Schubert #line 2406 "util/configparser.y"
5611*335c7cdaSCy Schubert {
5612*335c7cdaSCy Schubert OUTYY(("P(server_wait_limit_netblock:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
5613*335c7cdaSCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
5614*335c7cdaSCy Schubert yyerror("number expected");
5615*335c7cdaSCy Schubert free((yyvsp[-1].str));
5616*335c7cdaSCy Schubert free((yyvsp[0].str));
5617*335c7cdaSCy Schubert } else {
5618*335c7cdaSCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->
5619*335c7cdaSCy Schubert wait_limit_netblock, (yyvsp[-1].str), (yyvsp[0].str)))
5620*335c7cdaSCy Schubert fatal_exit("out of memory adding "
5621*335c7cdaSCy Schubert "wait-limit-netblock");
5622*335c7cdaSCy Schubert }
5623*335c7cdaSCy Schubert }
5624*335c7cdaSCy Schubert #line 5625 "util/configparser.c"
5625*335c7cdaSCy Schubert break;
5626*335c7cdaSCy Schubert
5627*335c7cdaSCy Schubert case 525: /* server_wait_limit_cookie_netblock: VAR_WAIT_LIMIT_COOKIE_NETBLOCK STRING_ARG STRING_ARG */
5628*335c7cdaSCy Schubert #line 2421 "util/configparser.y"
5629*335c7cdaSCy Schubert {
5630*335c7cdaSCy Schubert OUTYY(("P(server_wait_limit_cookie_netblock:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
5631*335c7cdaSCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
5632*335c7cdaSCy Schubert yyerror("number expected");
5633*335c7cdaSCy Schubert free((yyvsp[-1].str));
5634*335c7cdaSCy Schubert free((yyvsp[0].str));
5635*335c7cdaSCy Schubert } else {
5636*335c7cdaSCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->
5637*335c7cdaSCy Schubert wait_limit_cookie_netblock, (yyvsp[-1].str), (yyvsp[0].str)))
5638*335c7cdaSCy Schubert fatal_exit("out of memory adding "
5639*335c7cdaSCy Schubert "wait-limit-cookie-netblock");
5640*335c7cdaSCy Schubert }
5641*335c7cdaSCy Schubert }
5642*335c7cdaSCy Schubert #line 5643 "util/configparser.c"
5643*335c7cdaSCy Schubert break;
5644*335c7cdaSCy Schubert
5645*335c7cdaSCy Schubert case 526: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */
5646*335c7cdaSCy Schubert #line 2436 "util/configparser.y"
5647b7c0c8c1SCy Schubert {
5648b7c0c8c1SCy Schubert OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str)));
5649b7c0c8c1SCy Schubert cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str));
5650b7c0c8c1SCy Schubert free((yyvsp[0].str));
5651b7c0c8c1SCy Schubert }
5652*335c7cdaSCy Schubert #line 5653 "util/configparser.c"
5653b7c0c8c1SCy Schubert break;
5654b7c0c8c1SCy Schubert
5655*335c7cdaSCy Schubert case 527: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */
5656*335c7cdaSCy Schubert #line 2443 "util/configparser.y"
5657b7c0c8c1SCy Schubert {
5658b7c0c8c1SCy Schubert OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str)));
5659b7c0c8c1SCy Schubert free(cfg_parser->cfg->dns64_prefix);
5660b7c0c8c1SCy Schubert cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
5661b7c0c8c1SCy Schubert }
5662*335c7cdaSCy Schubert #line 5663 "util/configparser.c"
5663b7c0c8c1SCy Schubert break;
5664b7c0c8c1SCy Schubert
5665*335c7cdaSCy Schubert case 528: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */
5666*335c7cdaSCy Schubert #line 2450 "util/configparser.y"
5667b7c0c8c1SCy Schubert {
5668b7c0c8c1SCy Schubert OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str)));
5669b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
5670b7c0c8c1SCy Schubert yyerror("expected yes or no.");
5671b7c0c8c1SCy Schubert else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
5672b7c0c8c1SCy Schubert free((yyvsp[0].str));
5673b7c0c8c1SCy Schubert }
5674*335c7cdaSCy Schubert #line 5675 "util/configparser.c"
5675b7c0c8c1SCy Schubert break;
5676b7c0c8c1SCy Schubert
5677*335c7cdaSCy Schubert case 529: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */
5678*335c7cdaSCy Schubert #line 2459 "util/configparser.y"
5679b7c0c8c1SCy Schubert {
5680b7c0c8c1SCy Schubert OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str)));
5681b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa,
5682b7c0c8c1SCy Schubert (yyvsp[0].str)))
5683b7c0c8c1SCy Schubert fatal_exit("out of memory adding dns64-ignore-aaaa");
5684b7c0c8c1SCy Schubert }
5685*335c7cdaSCy Schubert #line 5686 "util/configparser.c"
5686b7c0c8c1SCy Schubert break;
5687b7c0c8c1SCy Schubert
5688*335c7cdaSCy Schubert case 530: /* server_nat64_prefix: VAR_NAT64_PREFIX STRING_ARG */
5689*335c7cdaSCy Schubert #line 2467 "util/configparser.y"
5690b7c0c8c1SCy Schubert {
5691b7c0c8c1SCy Schubert OUTYY(("P(nat64_prefix:%s)\n", (yyvsp[0].str)));
5692b7c0c8c1SCy Schubert free(cfg_parser->cfg->nat64_prefix);
5693b7c0c8c1SCy Schubert cfg_parser->cfg->nat64_prefix = (yyvsp[0].str);
5694b7c0c8c1SCy Schubert }
5695*335c7cdaSCy Schubert #line 5696 "util/configparser.c"
5696b7c0c8c1SCy Schubert break;
5697b7c0c8c1SCy Schubert
5698*335c7cdaSCy Schubert case 531: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */
5699*335c7cdaSCy Schubert #line 2474 "util/configparser.y"
5700b7c0c8c1SCy Schubert {
5701b7c0c8c1SCy Schubert char* p, *s = (yyvsp[0].str);
5702b7c0c8c1SCy Schubert OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
5703b7c0c8c1SCy Schubert while((p=strsep(&s, " \t\n")) != NULL) {
5704b7c0c8c1SCy Schubert if(*p) {
5705b7c0c8c1SCy Schubert if(!config_add_tag(cfg_parser->cfg, p))
5706b7c0c8c1SCy Schubert yyerror("could not define-tag, "
5707b7c0c8c1SCy Schubert "out of memory");
5708b7c0c8c1SCy Schubert }
5709b7c0c8c1SCy Schubert }
5710b7c0c8c1SCy Schubert free((yyvsp[0].str));
5711b7c0c8c1SCy Schubert }
5712*335c7cdaSCy Schubert #line 5713 "util/configparser.c"
5713b7c0c8c1SCy Schubert break;
5714b7c0c8c1SCy Schubert
5715*335c7cdaSCy Schubert case 532: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */
5716*335c7cdaSCy Schubert #line 2488 "util/configparser.y"
5717b7c0c8c1SCy Schubert {
5718b7c0c8c1SCy Schubert size_t len = 0;
5719b7c0c8c1SCy Schubert uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
5720b7c0c8c1SCy Schubert &len);
5721b7c0c8c1SCy Schubert free((yyvsp[0].str));
5722b7c0c8c1SCy Schubert OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[-1].str)));
5723b7c0c8c1SCy Schubert if(!bitlist) {
5724b7c0c8c1SCy Schubert yyerror("could not parse tags, (define-tag them first)");
5725b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5726b7c0c8c1SCy Schubert }
5727b7c0c8c1SCy Schubert if(bitlist) {
5728b7c0c8c1SCy Schubert if(!cfg_strbytelist_insert(
5729b7c0c8c1SCy Schubert &cfg_parser->cfg->local_zone_tags,
5730b7c0c8c1SCy Schubert (yyvsp[-1].str), bitlist, len)) {
5731b7c0c8c1SCy Schubert yyerror("out of memory");
5732b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5733b7c0c8c1SCy Schubert }
5734b7c0c8c1SCy Schubert }
5735b7c0c8c1SCy Schubert }
5736*335c7cdaSCy Schubert #line 5737 "util/configparser.c"
5737b7c0c8c1SCy Schubert break;
5738b7c0c8c1SCy Schubert
5739*335c7cdaSCy Schubert case 533: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */
5740*335c7cdaSCy Schubert #line 2509 "util/configparser.y"
5741b7c0c8c1SCy Schubert {
5742b7c0c8c1SCy Schubert size_t len = 0;
5743b7c0c8c1SCy Schubert uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
5744b7c0c8c1SCy Schubert &len);
5745b7c0c8c1SCy Schubert free((yyvsp[0].str));
5746b7c0c8c1SCy Schubert OUTYY(("P(server_access_control_tag:%s)\n", (yyvsp[-1].str)));
5747b7c0c8c1SCy Schubert if(!bitlist) {
5748b7c0c8c1SCy Schubert yyerror("could not parse tags, (define-tag them first)");
5749b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5750b7c0c8c1SCy Schubert }
5751b7c0c8c1SCy Schubert if(bitlist) {
5752b7c0c8c1SCy Schubert if(!cfg_strbytelist_insert(
5753b7c0c8c1SCy Schubert &cfg_parser->cfg->acl_tags,
5754b7c0c8c1SCy Schubert (yyvsp[-1].str), bitlist, len)) {
5755b7c0c8c1SCy Schubert yyerror("out of memory");
5756b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5757b7c0c8c1SCy Schubert }
5758b7c0c8c1SCy Schubert }
5759b7c0c8c1SCy Schubert }
5760*335c7cdaSCy Schubert #line 5761 "util/configparser.c"
5761b7c0c8c1SCy Schubert break;
5762b7c0c8c1SCy Schubert
5763*335c7cdaSCy Schubert case 534: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */
5764*335c7cdaSCy Schubert #line 2530 "util/configparser.y"
5765b7c0c8c1SCy Schubert {
5766b7c0c8c1SCy Schubert OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
5767b7c0c8c1SCy Schubert if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
5768b7c0c8c1SCy Schubert (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
5769b7c0c8c1SCy Schubert yyerror("out of memory");
5770b7c0c8c1SCy Schubert free((yyvsp[-2].str));
5771b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5772b7c0c8c1SCy Schubert free((yyvsp[0].str));
5773b7c0c8c1SCy Schubert }
5774b7c0c8c1SCy Schubert }
5775*335c7cdaSCy Schubert #line 5776 "util/configparser.c"
5776b7c0c8c1SCy Schubert break;
5777b7c0c8c1SCy Schubert
5778*335c7cdaSCy Schubert case 535: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */
5779*335c7cdaSCy Schubert #line 2542 "util/configparser.y"
5780b7c0c8c1SCy Schubert {
5781b7c0c8c1SCy Schubert OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
5782b7c0c8c1SCy Schubert if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
5783b7c0c8c1SCy Schubert (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
5784b7c0c8c1SCy Schubert yyerror("out of memory");
5785b7c0c8c1SCy Schubert free((yyvsp[-2].str));
5786b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5787b7c0c8c1SCy Schubert free((yyvsp[0].str));
5788b7c0c8c1SCy Schubert }
5789b7c0c8c1SCy Schubert }
5790*335c7cdaSCy Schubert #line 5791 "util/configparser.c"
5791b7c0c8c1SCy Schubert break;
5792b7c0c8c1SCy Schubert
5793*335c7cdaSCy Schubert case 536: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */
5794*335c7cdaSCy Schubert #line 2554 "util/configparser.y"
5795b7c0c8c1SCy Schubert {
5796b7c0c8c1SCy Schubert OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
5797b7c0c8c1SCy Schubert if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides,
5798b7c0c8c1SCy Schubert (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
5799b7c0c8c1SCy Schubert yyerror("out of memory");
5800b7c0c8c1SCy Schubert free((yyvsp[-2].str));
5801b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5802b7c0c8c1SCy Schubert free((yyvsp[0].str));
5803b7c0c8c1SCy Schubert }
5804b7c0c8c1SCy Schubert }
5805*335c7cdaSCy Schubert #line 5806 "util/configparser.c"
5806b7c0c8c1SCy Schubert break;
5807b7c0c8c1SCy Schubert
5808*335c7cdaSCy Schubert case 537: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */
5809*335c7cdaSCy Schubert #line 2566 "util/configparser.y"
5810b7c0c8c1SCy Schubert {
5811b7c0c8c1SCy Schubert OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
5812b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view,
5813b7c0c8c1SCy Schubert (yyvsp[-1].str), (yyvsp[0].str))) {
5814b7c0c8c1SCy Schubert yyerror("out of memory");
5815b7c0c8c1SCy Schubert }
5816b7c0c8c1SCy Schubert }
5817*335c7cdaSCy Schubert #line 5818 "util/configparser.c"
5818b7c0c8c1SCy Schubert break;
5819b7c0c8c1SCy Schubert
5820*335c7cdaSCy Schubert case 538: /* server_interface_tag: VAR_INTERFACE_TAG STRING_ARG STRING_ARG */
5821*335c7cdaSCy Schubert #line 2575 "util/configparser.y"
5822b7c0c8c1SCy Schubert {
5823b7c0c8c1SCy Schubert size_t len = 0;
5824b7c0c8c1SCy Schubert uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
5825b7c0c8c1SCy Schubert &len);
5826b7c0c8c1SCy Schubert free((yyvsp[0].str));
5827b7c0c8c1SCy Schubert OUTYY(("P(server_interface_tag:%s)\n", (yyvsp[-1].str)));
5828b7c0c8c1SCy Schubert if(!bitlist) {
5829b7c0c8c1SCy Schubert yyerror("could not parse tags, (define-tag them first)");
5830b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5831b7c0c8c1SCy Schubert }
5832b7c0c8c1SCy Schubert if(bitlist) {
5833b7c0c8c1SCy Schubert if(!cfg_strbytelist_insert(
5834b7c0c8c1SCy Schubert &cfg_parser->cfg->interface_tags,
5835b7c0c8c1SCy Schubert (yyvsp[-1].str), bitlist, len)) {
5836b7c0c8c1SCy Schubert yyerror("out of memory");
5837b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5838b7c0c8c1SCy Schubert }
5839b7c0c8c1SCy Schubert }
5840b7c0c8c1SCy Schubert }
5841*335c7cdaSCy Schubert #line 5842 "util/configparser.c"
5842b7c0c8c1SCy Schubert break;
5843b7c0c8c1SCy Schubert
5844*335c7cdaSCy Schubert case 539: /* server_interface_tag_action: VAR_INTERFACE_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */
5845*335c7cdaSCy Schubert #line 2596 "util/configparser.y"
5846b7c0c8c1SCy Schubert {
5847b7c0c8c1SCy Schubert OUTYY(("P(server_interface_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
5848b7c0c8c1SCy Schubert if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_actions,
5849b7c0c8c1SCy Schubert (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
5850b7c0c8c1SCy Schubert yyerror("out of memory");
5851b7c0c8c1SCy Schubert free((yyvsp[-2].str));
5852b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5853b7c0c8c1SCy Schubert free((yyvsp[0].str));
5854b7c0c8c1SCy Schubert }
5855b7c0c8c1SCy Schubert }
5856*335c7cdaSCy Schubert #line 5857 "util/configparser.c"
5857b7c0c8c1SCy Schubert break;
5858b7c0c8c1SCy Schubert
5859*335c7cdaSCy Schubert case 540: /* server_interface_tag_data: VAR_INTERFACE_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */
5860*335c7cdaSCy Schubert #line 2608 "util/configparser.y"
5861b7c0c8c1SCy Schubert {
5862b7c0c8c1SCy Schubert OUTYY(("P(server_interface_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
5863b7c0c8c1SCy Schubert if(!cfg_str3list_insert(&cfg_parser->cfg->interface_tag_datas,
5864b7c0c8c1SCy Schubert (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
5865b7c0c8c1SCy Schubert yyerror("out of memory");
5866b7c0c8c1SCy Schubert free((yyvsp[-2].str));
5867b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5868b7c0c8c1SCy Schubert free((yyvsp[0].str));
5869b7c0c8c1SCy Schubert }
5870b7c0c8c1SCy Schubert }
5871*335c7cdaSCy Schubert #line 5872 "util/configparser.c"
5872b7c0c8c1SCy Schubert break;
5873b7c0c8c1SCy Schubert
5874*335c7cdaSCy Schubert case 541: /* server_interface_view: VAR_INTERFACE_VIEW STRING_ARG STRING_ARG */
5875*335c7cdaSCy Schubert #line 2620 "util/configparser.y"
5876b7c0c8c1SCy Schubert {
5877b7c0c8c1SCy Schubert OUTYY(("P(server_interface_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
5878b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->interface_view,
5879b7c0c8c1SCy Schubert (yyvsp[-1].str), (yyvsp[0].str))) {
5880b7c0c8c1SCy Schubert yyerror("out of memory");
5881b7c0c8c1SCy Schubert }
5882b7c0c8c1SCy Schubert }
5883*335c7cdaSCy Schubert #line 5884 "util/configparser.c"
5884b7c0c8c1SCy Schubert break;
5885b7c0c8c1SCy Schubert
5886*335c7cdaSCy Schubert case 542: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */
5887*335c7cdaSCy Schubert #line 2629 "util/configparser.y"
5888b7c0c8c1SCy Schubert {
5889b7c0c8c1SCy Schubert size_t len = 0;
5890b7c0c8c1SCy Schubert uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
5891b7c0c8c1SCy Schubert &len);
5892b7c0c8c1SCy Schubert free((yyvsp[0].str));
5893b7c0c8c1SCy Schubert OUTYY(("P(response_ip_tag:%s)\n", (yyvsp[-1].str)));
5894b7c0c8c1SCy Schubert if(!bitlist) {
5895b7c0c8c1SCy Schubert yyerror("could not parse tags, (define-tag them first)");
5896b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5897b7c0c8c1SCy Schubert }
5898b7c0c8c1SCy Schubert if(bitlist) {
5899b7c0c8c1SCy Schubert if(!cfg_strbytelist_insert(
5900b7c0c8c1SCy Schubert &cfg_parser->cfg->respip_tags,
5901b7c0c8c1SCy Schubert (yyvsp[-1].str), bitlist, len)) {
5902b7c0c8c1SCy Schubert yyerror("out of memory");
5903b7c0c8c1SCy Schubert free((yyvsp[-1].str));
5904b7c0c8c1SCy Schubert }
5905b7c0c8c1SCy Schubert }
5906b7c0c8c1SCy Schubert }
5907*335c7cdaSCy Schubert #line 5908 "util/configparser.c"
5908b7c0c8c1SCy Schubert break;
5909b7c0c8c1SCy Schubert
5910*335c7cdaSCy Schubert case 543: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */
5911*335c7cdaSCy Schubert #line 2650 "util/configparser.y"
5912b7c0c8c1SCy Schubert {
5913b7c0c8c1SCy Schubert OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str)));
5914b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5915b7c0c8c1SCy Schubert yyerror("number expected");
5916b7c0c8c1SCy Schubert else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str));
5917b7c0c8c1SCy Schubert free((yyvsp[0].str));
5918b7c0c8c1SCy Schubert }
5919*335c7cdaSCy Schubert #line 5920 "util/configparser.c"
5920b7c0c8c1SCy Schubert break;
5921b7c0c8c1SCy Schubert
5922*335c7cdaSCy Schubert case 544: /* server_ip_ratelimit_cookie: VAR_IP_RATELIMIT_COOKIE STRING_ARG */
5923*335c7cdaSCy Schubert #line 2659 "util/configparser.y"
5924b7c0c8c1SCy Schubert {
5925b7c0c8c1SCy Schubert OUTYY(("P(server_ip_ratelimit_cookie:%s)\n", (yyvsp[0].str)));
5926b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5927b7c0c8c1SCy Schubert yyerror("number expected");
5928b7c0c8c1SCy Schubert else cfg_parser->cfg->ip_ratelimit_cookie = atoi((yyvsp[0].str));
5929b7c0c8c1SCy Schubert free((yyvsp[0].str));
5930b7c0c8c1SCy Schubert }
5931*335c7cdaSCy Schubert #line 5932 "util/configparser.c"
5932b7c0c8c1SCy Schubert break;
5933b7c0c8c1SCy Schubert
5934*335c7cdaSCy Schubert case 545: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */
5935*335c7cdaSCy Schubert #line 2668 "util/configparser.y"
5936b7c0c8c1SCy Schubert {
5937b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str)));
5938b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
5939b7c0c8c1SCy Schubert yyerror("number expected");
5940b7c0c8c1SCy Schubert else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
5941b7c0c8c1SCy Schubert free((yyvsp[0].str));
5942b7c0c8c1SCy Schubert }
5943*335c7cdaSCy Schubert #line 5944 "util/configparser.c"
5944b7c0c8c1SCy Schubert break;
5945b7c0c8c1SCy Schubert
5946*335c7cdaSCy Schubert case 546: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */
5947*335c7cdaSCy Schubert #line 2677 "util/configparser.y"
5948b7c0c8c1SCy Schubert {
5949b7c0c8c1SCy Schubert OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str)));
5950b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size))
5951b7c0c8c1SCy Schubert yyerror("memory size expected");
5952b7c0c8c1SCy Schubert free((yyvsp[0].str));
5953b7c0c8c1SCy Schubert }
5954*335c7cdaSCy Schubert #line 5955 "util/configparser.c"
5955b7c0c8c1SCy Schubert break;
5956b7c0c8c1SCy Schubert
5957*335c7cdaSCy Schubert case 547: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */
5958*335c7cdaSCy Schubert #line 2685 "util/configparser.y"
5959b7c0c8c1SCy Schubert {
5960b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str)));
5961b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size))
5962b7c0c8c1SCy Schubert yyerror("memory size expected");
5963b7c0c8c1SCy Schubert free((yyvsp[0].str));
5964b7c0c8c1SCy Schubert }
5965*335c7cdaSCy Schubert #line 5966 "util/configparser.c"
5966b7c0c8c1SCy Schubert break;
5967b7c0c8c1SCy Schubert
5968*335c7cdaSCy Schubert case 548: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */
5969*335c7cdaSCy Schubert #line 2693 "util/configparser.y"
5970b7c0c8c1SCy Schubert {
5971b7c0c8c1SCy Schubert OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
5972b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) {
5973b7c0c8c1SCy Schubert yyerror("number expected");
5974b7c0c8c1SCy Schubert } else {
5975b7c0c8c1SCy Schubert cfg_parser->cfg->ip_ratelimit_slabs = atoi((yyvsp[0].str));
5976b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs))
5977b7c0c8c1SCy Schubert yyerror("must be a power of 2");
5978b7c0c8c1SCy Schubert }
5979b7c0c8c1SCy Schubert free((yyvsp[0].str));
5980b7c0c8c1SCy Schubert }
5981*335c7cdaSCy Schubert #line 5982 "util/configparser.c"
5982b7c0c8c1SCy Schubert break;
5983b7c0c8c1SCy Schubert
5984*335c7cdaSCy Schubert case 549: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */
5985*335c7cdaSCy Schubert #line 2706 "util/configparser.y"
5986b7c0c8c1SCy Schubert {
5987b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
5988b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) {
5989b7c0c8c1SCy Schubert yyerror("number expected");
5990b7c0c8c1SCy Schubert } else {
5991b7c0c8c1SCy Schubert cfg_parser->cfg->ratelimit_slabs = atoi((yyvsp[0].str));
5992b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->ratelimit_slabs))
5993b7c0c8c1SCy Schubert yyerror("must be a power of 2");
5994b7c0c8c1SCy Schubert }
5995b7c0c8c1SCy Schubert free((yyvsp[0].str));
5996b7c0c8c1SCy Schubert }
5997*335c7cdaSCy Schubert #line 5998 "util/configparser.c"
5998b7c0c8c1SCy Schubert break;
5999b7c0c8c1SCy Schubert
6000*335c7cdaSCy Schubert case 550: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */
6001*335c7cdaSCy Schubert #line 2719 "util/configparser.y"
6002b7c0c8c1SCy Schubert {
6003b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
6004b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
6005b7c0c8c1SCy Schubert yyerror("number expected");
6006b7c0c8c1SCy Schubert free((yyvsp[-1].str));
6007b7c0c8c1SCy Schubert free((yyvsp[0].str));
6008b7c0c8c1SCy Schubert } else {
6009b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->
6010b7c0c8c1SCy Schubert ratelimit_for_domain, (yyvsp[-1].str), (yyvsp[0].str)))
6011b7c0c8c1SCy Schubert fatal_exit("out of memory adding "
6012b7c0c8c1SCy Schubert "ratelimit-for-domain");
6013b7c0c8c1SCy Schubert }
6014b7c0c8c1SCy Schubert }
6015*335c7cdaSCy Schubert #line 6016 "util/configparser.c"
6016b7c0c8c1SCy Schubert break;
6017b7c0c8c1SCy Schubert
6018*335c7cdaSCy Schubert case 551: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */
6019*335c7cdaSCy Schubert #line 2734 "util/configparser.y"
6020b7c0c8c1SCy Schubert {
6021b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
6022b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) {
6023b7c0c8c1SCy Schubert yyerror("number expected");
6024b7c0c8c1SCy Schubert free((yyvsp[-1].str));
6025b7c0c8c1SCy Schubert free((yyvsp[0].str));
6026b7c0c8c1SCy Schubert } else {
6027b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->
6028b7c0c8c1SCy Schubert ratelimit_below_domain, (yyvsp[-1].str), (yyvsp[0].str)))
6029b7c0c8c1SCy Schubert fatal_exit("out of memory adding "
6030b7c0c8c1SCy Schubert "ratelimit-below-domain");
6031b7c0c8c1SCy Schubert }
6032b7c0c8c1SCy Schubert }
6033*335c7cdaSCy Schubert #line 6034 "util/configparser.c"
6034b7c0c8c1SCy Schubert break;
6035b7c0c8c1SCy Schubert
6036*335c7cdaSCy Schubert case 552: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */
6037*335c7cdaSCy Schubert #line 2749 "util/configparser.y"
6038b7c0c8c1SCy Schubert {
6039b7c0c8c1SCy Schubert OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str)));
6040b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6041b7c0c8c1SCy Schubert yyerror("number expected");
6042b7c0c8c1SCy Schubert else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str));
6043b7c0c8c1SCy Schubert free((yyvsp[0].str));
6044b7c0c8c1SCy Schubert }
6045*335c7cdaSCy Schubert #line 6046 "util/configparser.c"
6046b7c0c8c1SCy Schubert break;
6047b7c0c8c1SCy Schubert
6048*335c7cdaSCy Schubert case 553: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */
6049*335c7cdaSCy Schubert #line 2758 "util/configparser.y"
6050b7c0c8c1SCy Schubert {
6051b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str)));
6052b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6053b7c0c8c1SCy Schubert yyerror("number expected");
6054b7c0c8c1SCy Schubert else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
6055b7c0c8c1SCy Schubert free((yyvsp[0].str));
6056b7c0c8c1SCy Schubert }
6057*335c7cdaSCy Schubert #line 6058 "util/configparser.c"
6058b7c0c8c1SCy Schubert break;
6059b7c0c8c1SCy Schubert
6060*335c7cdaSCy Schubert case 554: /* server_ip_ratelimit_backoff: VAR_IP_RATELIMIT_BACKOFF STRING_ARG */
6061*335c7cdaSCy Schubert #line 2767 "util/configparser.y"
6062b7c0c8c1SCy Schubert {
6063b7c0c8c1SCy Schubert OUTYY(("P(server_ip_ratelimit_backoff:%s)\n", (yyvsp[0].str)));
6064b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6065b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6066b7c0c8c1SCy Schubert else cfg_parser->cfg->ip_ratelimit_backoff =
6067b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6068b7c0c8c1SCy Schubert free((yyvsp[0].str));
6069b7c0c8c1SCy Schubert }
6070*335c7cdaSCy Schubert #line 6071 "util/configparser.c"
6071b7c0c8c1SCy Schubert break;
6072b7c0c8c1SCy Schubert
6073*335c7cdaSCy Schubert case 555: /* server_ratelimit_backoff: VAR_RATELIMIT_BACKOFF STRING_ARG */
6074*335c7cdaSCy Schubert #line 2777 "util/configparser.y"
6075b7c0c8c1SCy Schubert {
6076b7c0c8c1SCy Schubert OUTYY(("P(server_ratelimit_backoff:%s)\n", (yyvsp[0].str)));
6077b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6078b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6079b7c0c8c1SCy Schubert else cfg_parser->cfg->ratelimit_backoff =
6080b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6081b7c0c8c1SCy Schubert free((yyvsp[0].str));
6082b7c0c8c1SCy Schubert }
6083*335c7cdaSCy Schubert #line 6084 "util/configparser.c"
6084b7c0c8c1SCy Schubert break;
6085b7c0c8c1SCy Schubert
6086*335c7cdaSCy Schubert case 556: /* server_outbound_msg_retry: VAR_OUTBOUND_MSG_RETRY STRING_ARG */
6087*335c7cdaSCy Schubert #line 2787 "util/configparser.y"
6088b7c0c8c1SCy Schubert {
6089b7c0c8c1SCy Schubert OUTYY(("P(server_outbound_msg_retry:%s)\n", (yyvsp[0].str)));
6090b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6091b7c0c8c1SCy Schubert yyerror("number expected");
6092b7c0c8c1SCy Schubert else cfg_parser->cfg->outbound_msg_retry = atoi((yyvsp[0].str));
6093b7c0c8c1SCy Schubert free((yyvsp[0].str));
6094b7c0c8c1SCy Schubert }
6095*335c7cdaSCy Schubert #line 6096 "util/configparser.c"
6096b7c0c8c1SCy Schubert break;
6097b7c0c8c1SCy Schubert
6098*335c7cdaSCy Schubert case 557: /* server_max_sent_count: VAR_MAX_SENT_COUNT STRING_ARG */
6099*335c7cdaSCy Schubert #line 2796 "util/configparser.y"
6100b7c0c8c1SCy Schubert {
6101b7c0c8c1SCy Schubert OUTYY(("P(server_max_sent_count:%s)\n", (yyvsp[0].str)));
6102b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6103b7c0c8c1SCy Schubert yyerror("number expected");
6104b7c0c8c1SCy Schubert else cfg_parser->cfg->max_sent_count = atoi((yyvsp[0].str));
6105b7c0c8c1SCy Schubert free((yyvsp[0].str));
6106b7c0c8c1SCy Schubert }
6107*335c7cdaSCy Schubert #line 6108 "util/configparser.c"
6108b7c0c8c1SCy Schubert break;
6109b7c0c8c1SCy Schubert
6110*335c7cdaSCy Schubert case 558: /* server_max_query_restarts: VAR_MAX_QUERY_RESTARTS STRING_ARG */
6111*335c7cdaSCy Schubert #line 2805 "util/configparser.y"
6112b7c0c8c1SCy Schubert {
6113b7c0c8c1SCy Schubert OUTYY(("P(server_max_query_restarts:%s)\n", (yyvsp[0].str)));
6114b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6115b7c0c8c1SCy Schubert yyerror("number expected");
6116b7c0c8c1SCy Schubert else cfg_parser->cfg->max_query_restarts = atoi((yyvsp[0].str));
6117b7c0c8c1SCy Schubert free((yyvsp[0].str));
6118b7c0c8c1SCy Schubert }
6119*335c7cdaSCy Schubert #line 6120 "util/configparser.c"
6120b7c0c8c1SCy Schubert break;
6121b7c0c8c1SCy Schubert
6122*335c7cdaSCy Schubert case 559: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */
6123*335c7cdaSCy Schubert #line 2814 "util/configparser.y"
6124b7c0c8c1SCy Schubert {
6125b7c0c8c1SCy Schubert OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n"));
6126b7c0c8c1SCy Schubert free((yyvsp[0].str));
6127b7c0c8c1SCy Schubert }
6128*335c7cdaSCy Schubert #line 6129 "util/configparser.c"
6129b7c0c8c1SCy Schubert break;
6130b7c0c8c1SCy Schubert
6131*335c7cdaSCy Schubert case 560: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */
6132*335c7cdaSCy Schubert #line 2820 "util/configparser.y"
6133b7c0c8c1SCy Schubert {
6134b7c0c8c1SCy Schubert OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str)));
6135b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) <= 0)
6136b7c0c8c1SCy Schubert yyerror("number expected");
6137b7c0c8c1SCy Schubert else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str));
6138b7c0c8c1SCy Schubert free((yyvsp[0].str));
6139b7c0c8c1SCy Schubert }
6140*335c7cdaSCy Schubert #line 6141 "util/configparser.c"
6141b7c0c8c1SCy Schubert break;
6142b7c0c8c1SCy Schubert
6143*335c7cdaSCy Schubert case 561: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */
6144*335c7cdaSCy Schubert #line 2829 "util/configparser.y"
6145b7c0c8c1SCy Schubert {
6146b7c0c8c1SCy Schubert OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str)));
6147b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6148b7c0c8c1SCy Schubert yyerror("number expected");
6149b7c0c8c1SCy Schubert else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str));
6150b7c0c8c1SCy Schubert free((yyvsp[0].str));
6151b7c0c8c1SCy Schubert }
6152*335c7cdaSCy Schubert #line 6153 "util/configparser.c"
6153b7c0c8c1SCy Schubert break;
6154b7c0c8c1SCy Schubert
6155*335c7cdaSCy Schubert case 562: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */
6156*335c7cdaSCy Schubert #line 2838 "util/configparser.y"
6157b7c0c8c1SCy Schubert {
6158b7c0c8c1SCy Schubert OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str)));
6159b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6160b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6161b7c0c8c1SCy Schubert else cfg_parser->cfg->qname_minimisation =
6162b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6163b7c0c8c1SCy Schubert free((yyvsp[0].str));
6164b7c0c8c1SCy Schubert }
6165*335c7cdaSCy Schubert #line 6166 "util/configparser.c"
6166b7c0c8c1SCy Schubert break;
6167b7c0c8c1SCy Schubert
6168*335c7cdaSCy Schubert case 563: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */
6169*335c7cdaSCy Schubert #line 2848 "util/configparser.y"
6170b7c0c8c1SCy Schubert {
6171b7c0c8c1SCy Schubert OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str)));
6172b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6173b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6174b7c0c8c1SCy Schubert else cfg_parser->cfg->qname_minimisation_strict =
6175b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6176b7c0c8c1SCy Schubert free((yyvsp[0].str));
6177b7c0c8c1SCy Schubert }
6178*335c7cdaSCy Schubert #line 6179 "util/configparser.c"
6179b7c0c8c1SCy Schubert break;
6180b7c0c8c1SCy Schubert
6181*335c7cdaSCy Schubert case 564: /* server_pad_responses: VAR_PAD_RESPONSES STRING_ARG */
6182*335c7cdaSCy Schubert #line 2858 "util/configparser.y"
6183b7c0c8c1SCy Schubert {
6184b7c0c8c1SCy Schubert OUTYY(("P(server_pad_responses:%s)\n", (yyvsp[0].str)));
6185b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6186b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6187b7c0c8c1SCy Schubert else cfg_parser->cfg->pad_responses =
6188b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6189b7c0c8c1SCy Schubert free((yyvsp[0].str));
6190b7c0c8c1SCy Schubert }
6191*335c7cdaSCy Schubert #line 6192 "util/configparser.c"
6192b7c0c8c1SCy Schubert break;
6193b7c0c8c1SCy Schubert
6194*335c7cdaSCy Schubert case 565: /* server_pad_responses_block_size: VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG */
6195*335c7cdaSCy Schubert #line 2868 "util/configparser.y"
6196b7c0c8c1SCy Schubert {
6197b7c0c8c1SCy Schubert OUTYY(("P(server_pad_responses_block_size:%s)\n", (yyvsp[0].str)));
6198b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
6199b7c0c8c1SCy Schubert yyerror("number expected");
6200b7c0c8c1SCy Schubert else cfg_parser->cfg->pad_responses_block_size = atoi((yyvsp[0].str));
6201b7c0c8c1SCy Schubert free((yyvsp[0].str));
6202b7c0c8c1SCy Schubert }
6203*335c7cdaSCy Schubert #line 6204 "util/configparser.c"
6204b7c0c8c1SCy Schubert break;
6205b7c0c8c1SCy Schubert
6206*335c7cdaSCy Schubert case 566: /* server_pad_queries: VAR_PAD_QUERIES STRING_ARG */
6207*335c7cdaSCy Schubert #line 2877 "util/configparser.y"
6208b7c0c8c1SCy Schubert {
6209b7c0c8c1SCy Schubert OUTYY(("P(server_pad_queries:%s)\n", (yyvsp[0].str)));
6210b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6211b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6212b7c0c8c1SCy Schubert else cfg_parser->cfg->pad_queries =
6213b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6214b7c0c8c1SCy Schubert free((yyvsp[0].str));
6215b7c0c8c1SCy Schubert }
6216*335c7cdaSCy Schubert #line 6217 "util/configparser.c"
6217b7c0c8c1SCy Schubert break;
6218b7c0c8c1SCy Schubert
6219*335c7cdaSCy Schubert case 567: /* server_pad_queries_block_size: VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG */
6220*335c7cdaSCy Schubert #line 2887 "util/configparser.y"
6221b7c0c8c1SCy Schubert {
6222b7c0c8c1SCy Schubert OUTYY(("P(server_pad_queries_block_size:%s)\n", (yyvsp[0].str)));
6223b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
6224b7c0c8c1SCy Schubert yyerror("number expected");
6225b7c0c8c1SCy Schubert else cfg_parser->cfg->pad_queries_block_size = atoi((yyvsp[0].str));
6226b7c0c8c1SCy Schubert free((yyvsp[0].str));
6227b7c0c8c1SCy Schubert }
6228*335c7cdaSCy Schubert #line 6229 "util/configparser.c"
6229b7c0c8c1SCy Schubert break;
6230b7c0c8c1SCy Schubert
6231*335c7cdaSCy Schubert case 568: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */
6232*335c7cdaSCy Schubert #line 2896 "util/configparser.y"
6233b7c0c8c1SCy Schubert {
6234b7c0c8c1SCy Schubert #ifdef USE_IPSECMOD
6235b7c0c8c1SCy Schubert OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str)));
6236b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6237b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6238b7c0c8c1SCy Schubert else cfg_parser->cfg->ipsecmod_enabled = (strcmp((yyvsp[0].str), "yes")==0);
6239b7c0c8c1SCy Schubert #else
6240b7c0c8c1SCy Schubert OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
6241b7c0c8c1SCy Schubert #endif
6242b7c0c8c1SCy Schubert free((yyvsp[0].str));
6243b7c0c8c1SCy Schubert }
6244*335c7cdaSCy Schubert #line 6245 "util/configparser.c"
6245b7c0c8c1SCy Schubert break;
6246b7c0c8c1SCy Schubert
6247*335c7cdaSCy Schubert case 569: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */
6248*335c7cdaSCy Schubert #line 2909 "util/configparser.y"
6249b7c0c8c1SCy Schubert {
6250b7c0c8c1SCy Schubert #ifdef USE_IPSECMOD
6251b7c0c8c1SCy Schubert OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str)));
6252b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6253b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6254b7c0c8c1SCy Schubert else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp((yyvsp[0].str), "yes")==0);
6255b7c0c8c1SCy Schubert #else
6256b7c0c8c1SCy Schubert OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
6257b7c0c8c1SCy Schubert #endif
6258b7c0c8c1SCy Schubert free((yyvsp[0].str));
6259b7c0c8c1SCy Schubert }
6260*335c7cdaSCy Schubert #line 6261 "util/configparser.c"
6261b7c0c8c1SCy Schubert break;
6262b7c0c8c1SCy Schubert
6263*335c7cdaSCy Schubert case 570: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */
6264*335c7cdaSCy Schubert #line 2922 "util/configparser.y"
6265b7c0c8c1SCy Schubert {
6266b7c0c8c1SCy Schubert #ifdef USE_IPSECMOD
6267b7c0c8c1SCy Schubert OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str)));
6268b7c0c8c1SCy Schubert free(cfg_parser->cfg->ipsecmod_hook);
6269b7c0c8c1SCy Schubert cfg_parser->cfg->ipsecmod_hook = (yyvsp[0].str);
6270b7c0c8c1SCy Schubert #else
6271b7c0c8c1SCy Schubert OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
6272b7c0c8c1SCy Schubert free((yyvsp[0].str));
6273b7c0c8c1SCy Schubert #endif
6274b7c0c8c1SCy Schubert }
6275*335c7cdaSCy Schubert #line 6276 "util/configparser.c"
6276b7c0c8c1SCy Schubert break;
6277b7c0c8c1SCy Schubert
6278*335c7cdaSCy Schubert case 571: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */
6279*335c7cdaSCy Schubert #line 2934 "util/configparser.y"
6280b7c0c8c1SCy Schubert {
6281b7c0c8c1SCy Schubert #ifdef USE_IPSECMOD
6282b7c0c8c1SCy Schubert OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str)));
6283b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6284b7c0c8c1SCy Schubert yyerror("number expected");
6285b7c0c8c1SCy Schubert else cfg_parser->cfg->ipsecmod_max_ttl = atoi((yyvsp[0].str));
6286b7c0c8c1SCy Schubert free((yyvsp[0].str));
6287b7c0c8c1SCy Schubert #else
6288b7c0c8c1SCy Schubert OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
6289b7c0c8c1SCy Schubert free((yyvsp[0].str));
6290b7c0c8c1SCy Schubert #endif
6291b7c0c8c1SCy Schubert }
6292*335c7cdaSCy Schubert #line 6293 "util/configparser.c"
6293b7c0c8c1SCy Schubert break;
6294b7c0c8c1SCy Schubert
6295*335c7cdaSCy Schubert case 572: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */
6296*335c7cdaSCy Schubert #line 2948 "util/configparser.y"
6297b7c0c8c1SCy Schubert {
6298b7c0c8c1SCy Schubert #ifdef USE_IPSECMOD
6299b7c0c8c1SCy Schubert OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str)));
6300b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[0].str)))
6301b7c0c8c1SCy Schubert yyerror("out of memory");
6302b7c0c8c1SCy Schubert #else
6303b7c0c8c1SCy Schubert OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
6304b7c0c8c1SCy Schubert free((yyvsp[0].str));
6305b7c0c8c1SCy Schubert #endif
6306b7c0c8c1SCy Schubert }
6307*335c7cdaSCy Schubert #line 6308 "util/configparser.c"
6308b7c0c8c1SCy Schubert break;
6309b7c0c8c1SCy Schubert
6310*335c7cdaSCy Schubert case 573: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */
6311*335c7cdaSCy Schubert #line 2960 "util/configparser.y"
6312b7c0c8c1SCy Schubert {
6313b7c0c8c1SCy Schubert #ifdef USE_IPSECMOD
6314b7c0c8c1SCy Schubert OUTYY(("P(server_ipsecmod_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->ipsecmod_strict = (strcmp((yyvsp[0].str), "yes")==0);
6318b7c0c8c1SCy Schubert free((yyvsp[0].str));
6319b7c0c8c1SCy Schubert #else
6320b7c0c8c1SCy Schubert OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
6321b7c0c8c1SCy Schubert free((yyvsp[0].str));
6322b7c0c8c1SCy Schubert #endif
6323b7c0c8c1SCy Schubert }
6324*335c7cdaSCy Schubert #line 6325 "util/configparser.c"
6325b7c0c8c1SCy Schubert break;
6326b7c0c8c1SCy Schubert
6327*335c7cdaSCy Schubert case 574: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */
6328*335c7cdaSCy Schubert #line 2974 "util/configparser.y"
6329b7c0c8c1SCy Schubert {
6330b7c0c8c1SCy Schubert OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
6331b7c0c8c1SCy Schubert if(!cfg_str2list_insert(
6332b7c0c8c1SCy Schubert &cfg_parser->cfg->edns_client_strings, (yyvsp[-1].str), (yyvsp[0].str)))
6333b7c0c8c1SCy Schubert fatal_exit("out of memory adding "
6334b7c0c8c1SCy Schubert "edns-client-string");
6335b7c0c8c1SCy Schubert }
6336*335c7cdaSCy Schubert #line 6337 "util/configparser.c"
6337b7c0c8c1SCy Schubert break;
6338b7c0c8c1SCy Schubert
6339*335c7cdaSCy Schubert case 575: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */
6340*335c7cdaSCy Schubert #line 2983 "util/configparser.y"
6341b7c0c8c1SCy Schubert {
6342b7c0c8c1SCy Schubert OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str)));
6343b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
6344b7c0c8c1SCy Schubert yyerror("option code expected");
6345b7c0c8c1SCy Schubert else if(atoi((yyvsp[0].str)) > 65535 || atoi((yyvsp[0].str)) < 0)
6346b7c0c8c1SCy Schubert yyerror("option code must be in interval [0, 65535]");
6347b7c0c8c1SCy Schubert else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[0].str));
6348b7c0c8c1SCy Schubert free((yyvsp[0].str));
6349b7c0c8c1SCy Schubert }
6350*335c7cdaSCy Schubert #line 6351 "util/configparser.c"
6351b7c0c8c1SCy Schubert break;
6352b7c0c8c1SCy Schubert
6353*335c7cdaSCy Schubert case 576: /* server_ede: VAR_EDE STRING_ARG */
6354*335c7cdaSCy Schubert #line 2994 "util/configparser.y"
6355b7c0c8c1SCy Schubert {
6356b7c0c8c1SCy Schubert OUTYY(("P(server_ede:%s)\n", (yyvsp[0].str)));
6357b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6358b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6359b7c0c8c1SCy Schubert else cfg_parser->cfg->ede = (strcmp((yyvsp[0].str), "yes")==0);
6360b7c0c8c1SCy Schubert free((yyvsp[0].str));
6361b7c0c8c1SCy Schubert }
6362*335c7cdaSCy Schubert #line 6363 "util/configparser.c"
6363b7c0c8c1SCy Schubert break;
6364b7c0c8c1SCy Schubert
6365*335c7cdaSCy Schubert case 577: /* server_proxy_protocol_port: VAR_PROXY_PROTOCOL_PORT STRING_ARG */
6366*335c7cdaSCy Schubert #line 3003 "util/configparser.y"
6367b7c0c8c1SCy Schubert {
6368b7c0c8c1SCy Schubert OUTYY(("P(server_proxy_protocol_port:%s)\n", (yyvsp[0].str)));
6369b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->proxy_protocol_port, (yyvsp[0].str)))
6370b7c0c8c1SCy Schubert yyerror("out of memory");
6371b7c0c8c1SCy Schubert }
6372*335c7cdaSCy Schubert #line 6373 "util/configparser.c"
6373b7c0c8c1SCy Schubert break;
6374b7c0c8c1SCy Schubert
6375*335c7cdaSCy Schubert case 578: /* stub_name: VAR_NAME STRING_ARG */
6376*335c7cdaSCy Schubert #line 3010 "util/configparser.y"
6377b7c0c8c1SCy Schubert {
6378b7c0c8c1SCy Schubert OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
6379b7c0c8c1SCy Schubert if(cfg_parser->cfg->stubs->name)
6380b7c0c8c1SCy Schubert yyerror("stub name override, there must be one name "
6381b7c0c8c1SCy Schubert "for one stub-zone");
6382b7c0c8c1SCy Schubert free(cfg_parser->cfg->stubs->name);
6383b7c0c8c1SCy Schubert cfg_parser->cfg->stubs->name = (yyvsp[0].str);
6384b7c0c8c1SCy Schubert }
6385*335c7cdaSCy Schubert #line 6386 "util/configparser.c"
6386b7c0c8c1SCy Schubert break;
6387b7c0c8c1SCy Schubert
6388*335c7cdaSCy Schubert case 579: /* stub_host: VAR_STUB_HOST STRING_ARG */
6389*335c7cdaSCy Schubert #line 3020 "util/configparser.y"
6390b7c0c8c1SCy Schubert {
6391b7c0c8c1SCy Schubert OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str)));
6392b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str)))
6393b7c0c8c1SCy Schubert yyerror("out of memory");
6394b7c0c8c1SCy Schubert }
6395*335c7cdaSCy Schubert #line 6396 "util/configparser.c"
6396b7c0c8c1SCy Schubert break;
6397b7c0c8c1SCy Schubert
6398*335c7cdaSCy Schubert case 580: /* stub_addr: VAR_STUB_ADDR STRING_ARG */
6399*335c7cdaSCy Schubert #line 3027 "util/configparser.y"
6400b7c0c8c1SCy Schubert {
6401b7c0c8c1SCy Schubert OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str)));
6402b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str)))
6403b7c0c8c1SCy Schubert yyerror("out of memory");
6404b7c0c8c1SCy Schubert }
6405*335c7cdaSCy Schubert #line 6406 "util/configparser.c"
6406b7c0c8c1SCy Schubert break;
6407b7c0c8c1SCy Schubert
6408*335c7cdaSCy Schubert case 581: /* stub_first: VAR_STUB_FIRST STRING_ARG */
6409*335c7cdaSCy Schubert #line 3034 "util/configparser.y"
6410b7c0c8c1SCy Schubert {
6411b7c0c8c1SCy Schubert OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str)));
6412b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6413b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6414b7c0c8c1SCy Schubert else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
6415b7c0c8c1SCy Schubert free((yyvsp[0].str));
6416b7c0c8c1SCy Schubert }
6417*335c7cdaSCy Schubert #line 6418 "util/configparser.c"
6418b7c0c8c1SCy Schubert break;
6419b7c0c8c1SCy Schubert
6420*335c7cdaSCy Schubert case 582: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */
6421*335c7cdaSCy Schubert #line 3043 "util/configparser.y"
6422b7c0c8c1SCy Schubert {
6423b7c0c8c1SCy Schubert OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str)));
6424b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6425b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6426b7c0c8c1SCy Schubert else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
6427b7c0c8c1SCy Schubert free((yyvsp[0].str));
6428b7c0c8c1SCy Schubert }
6429*335c7cdaSCy Schubert #line 6430 "util/configparser.c"
6430b7c0c8c1SCy Schubert break;
6431b7c0c8c1SCy Schubert
6432*335c7cdaSCy Schubert case 583: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */
6433*335c7cdaSCy Schubert #line 3052 "util/configparser.y"
6434b7c0c8c1SCy Schubert {
6435b7c0c8c1SCy Schubert OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str)));
6436b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6437b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6438b7c0c8c1SCy Schubert else cfg_parser->cfg->stubs->ssl_upstream =
6439b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6440b7c0c8c1SCy Schubert free((yyvsp[0].str));
6441b7c0c8c1SCy Schubert }
6442*335c7cdaSCy Schubert #line 6443 "util/configparser.c"
6443b7c0c8c1SCy Schubert break;
6444b7c0c8c1SCy Schubert
6445*335c7cdaSCy Schubert case 584: /* stub_tcp_upstream: VAR_STUB_TCP_UPSTREAM STRING_ARG */
6446*335c7cdaSCy Schubert #line 3062 "util/configparser.y"
6447b7c0c8c1SCy Schubert {
6448b7c0c8c1SCy Schubert OUTYY(("P(stub-tcp-upstream:%s)\n", (yyvsp[0].str)));
6449b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6450b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6451b7c0c8c1SCy Schubert else cfg_parser->cfg->stubs->tcp_upstream =
6452b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6453b7c0c8c1SCy Schubert free((yyvsp[0].str));
6454b7c0c8c1SCy Schubert }
6455*335c7cdaSCy Schubert #line 6456 "util/configparser.c"
6456b7c0c8c1SCy Schubert break;
6457b7c0c8c1SCy Schubert
6458*335c7cdaSCy Schubert case 585: /* stub_prime: VAR_STUB_PRIME STRING_ARG */
6459*335c7cdaSCy Schubert #line 3072 "util/configparser.y"
6460b7c0c8c1SCy Schubert {
6461b7c0c8c1SCy Schubert OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str)));
6462b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6463b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6464b7c0c8c1SCy Schubert else cfg_parser->cfg->stubs->isprime =
6465b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6466b7c0c8c1SCy Schubert free((yyvsp[0].str));
6467b7c0c8c1SCy Schubert }
6468*335c7cdaSCy Schubert #line 6469 "util/configparser.c"
6469b7c0c8c1SCy Schubert break;
6470b7c0c8c1SCy Schubert
6471*335c7cdaSCy Schubert case 586: /* forward_name: VAR_NAME STRING_ARG */
6472*335c7cdaSCy Schubert #line 3082 "util/configparser.y"
6473b7c0c8c1SCy Schubert {
6474b7c0c8c1SCy Schubert OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
6475b7c0c8c1SCy Schubert if(cfg_parser->cfg->forwards->name)
6476b7c0c8c1SCy Schubert yyerror("forward name override, there must be one "
6477b7c0c8c1SCy Schubert "name for one forward-zone");
6478b7c0c8c1SCy Schubert free(cfg_parser->cfg->forwards->name);
6479b7c0c8c1SCy Schubert cfg_parser->cfg->forwards->name = (yyvsp[0].str);
6480b7c0c8c1SCy Schubert }
6481*335c7cdaSCy Schubert #line 6482 "util/configparser.c"
6482b7c0c8c1SCy Schubert break;
6483b7c0c8c1SCy Schubert
6484*335c7cdaSCy Schubert case 587: /* forward_host: VAR_FORWARD_HOST STRING_ARG */
6485*335c7cdaSCy Schubert #line 3092 "util/configparser.y"
6486b7c0c8c1SCy Schubert {
6487b7c0c8c1SCy Schubert OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str)));
6488b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str)))
6489b7c0c8c1SCy Schubert yyerror("out of memory");
6490b7c0c8c1SCy Schubert }
6491*335c7cdaSCy Schubert #line 6492 "util/configparser.c"
6492b7c0c8c1SCy Schubert break;
6493b7c0c8c1SCy Schubert
6494*335c7cdaSCy Schubert case 588: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */
6495*335c7cdaSCy Schubert #line 3099 "util/configparser.y"
6496b7c0c8c1SCy Schubert {
6497b7c0c8c1SCy Schubert OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str)));
6498b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str)))
6499b7c0c8c1SCy Schubert yyerror("out of memory");
6500b7c0c8c1SCy Schubert }
6501*335c7cdaSCy Schubert #line 6502 "util/configparser.c"
6502b7c0c8c1SCy Schubert break;
6503b7c0c8c1SCy Schubert
6504*335c7cdaSCy Schubert case 589: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */
6505*335c7cdaSCy Schubert #line 3106 "util/configparser.y"
6506b7c0c8c1SCy Schubert {
6507b7c0c8c1SCy Schubert OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str)));
6508b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6509b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6510b7c0c8c1SCy Schubert else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
6511b7c0c8c1SCy Schubert free((yyvsp[0].str));
6512b7c0c8c1SCy Schubert }
6513*335c7cdaSCy Schubert #line 6514 "util/configparser.c"
6514b7c0c8c1SCy Schubert break;
6515b7c0c8c1SCy Schubert
6516*335c7cdaSCy Schubert case 590: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */
6517*335c7cdaSCy Schubert #line 3115 "util/configparser.y"
6518b7c0c8c1SCy Schubert {
6519b7c0c8c1SCy Schubert OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str)));
6520b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6521b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6522b7c0c8c1SCy Schubert else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0);
6523b7c0c8c1SCy Schubert free((yyvsp[0].str));
6524b7c0c8c1SCy Schubert }
6525*335c7cdaSCy Schubert #line 6526 "util/configparser.c"
6526b7c0c8c1SCy Schubert break;
6527b7c0c8c1SCy Schubert
6528*335c7cdaSCy Schubert case 591: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */
6529*335c7cdaSCy Schubert #line 3124 "util/configparser.y"
6530b7c0c8c1SCy Schubert {
6531b7c0c8c1SCy Schubert OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str)));
6532b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6533b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6534b7c0c8c1SCy Schubert else cfg_parser->cfg->forwards->ssl_upstream =
6535b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6536b7c0c8c1SCy Schubert free((yyvsp[0].str));
6537b7c0c8c1SCy Schubert }
6538*335c7cdaSCy Schubert #line 6539 "util/configparser.c"
6539b7c0c8c1SCy Schubert break;
6540b7c0c8c1SCy Schubert
6541*335c7cdaSCy Schubert case 592: /* forward_tcp_upstream: VAR_FORWARD_TCP_UPSTREAM STRING_ARG */
6542*335c7cdaSCy Schubert #line 3134 "util/configparser.y"
6543b7c0c8c1SCy Schubert {
6544b7c0c8c1SCy Schubert OUTYY(("P(forward-tcp-upstream:%s)\n", (yyvsp[0].str)));
6545b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6546b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6547b7c0c8c1SCy Schubert else cfg_parser->cfg->forwards->tcp_upstream =
6548b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6549b7c0c8c1SCy Schubert free((yyvsp[0].str));
6550b7c0c8c1SCy Schubert }
6551*335c7cdaSCy Schubert #line 6552 "util/configparser.c"
6552b7c0c8c1SCy Schubert break;
6553b7c0c8c1SCy Schubert
6554*335c7cdaSCy Schubert case 593: /* auth_name: VAR_NAME STRING_ARG */
6555*335c7cdaSCy Schubert #line 3144 "util/configparser.y"
6556b7c0c8c1SCy Schubert {
6557b7c0c8c1SCy Schubert OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
6558b7c0c8c1SCy Schubert if(cfg_parser->cfg->auths->name)
6559b7c0c8c1SCy Schubert yyerror("auth name override, there must be one name "
6560b7c0c8c1SCy Schubert "for one auth-zone");
6561b7c0c8c1SCy Schubert free(cfg_parser->cfg->auths->name);
6562b7c0c8c1SCy Schubert cfg_parser->cfg->auths->name = (yyvsp[0].str);
6563b7c0c8c1SCy Schubert }
6564*335c7cdaSCy Schubert #line 6565 "util/configparser.c"
6565b7c0c8c1SCy Schubert break;
6566b7c0c8c1SCy Schubert
6567*335c7cdaSCy Schubert case 594: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */
6568*335c7cdaSCy Schubert #line 3154 "util/configparser.y"
6569b7c0c8c1SCy Schubert {
6570b7c0c8c1SCy Schubert OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str)));
6571b7c0c8c1SCy Schubert free(cfg_parser->cfg->auths->zonefile);
6572b7c0c8c1SCy Schubert cfg_parser->cfg->auths->zonefile = (yyvsp[0].str);
6573b7c0c8c1SCy Schubert }
6574*335c7cdaSCy Schubert #line 6575 "util/configparser.c"
6575b7c0c8c1SCy Schubert break;
6576b7c0c8c1SCy Schubert
6577*335c7cdaSCy Schubert case 595: /* auth_master: VAR_MASTER STRING_ARG */
6578*335c7cdaSCy Schubert #line 3161 "util/configparser.y"
6579b7c0c8c1SCy Schubert {
6580b7c0c8c1SCy Schubert OUTYY(("P(master:%s)\n", (yyvsp[0].str)));
6581b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str)))
6582b7c0c8c1SCy Schubert yyerror("out of memory");
6583b7c0c8c1SCy Schubert }
6584*335c7cdaSCy Schubert #line 6585 "util/configparser.c"
6585b7c0c8c1SCy Schubert break;
6586b7c0c8c1SCy Schubert
6587*335c7cdaSCy Schubert case 596: /* auth_url: VAR_URL STRING_ARG */
6588*335c7cdaSCy Schubert #line 3168 "util/configparser.y"
6589b7c0c8c1SCy Schubert {
6590b7c0c8c1SCy Schubert OUTYY(("P(url:%s)\n", (yyvsp[0].str)));
6591b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str)))
6592b7c0c8c1SCy Schubert yyerror("out of memory");
6593b7c0c8c1SCy Schubert }
6594*335c7cdaSCy Schubert #line 6595 "util/configparser.c"
6595b7c0c8c1SCy Schubert break;
6596b7c0c8c1SCy Schubert
6597*335c7cdaSCy Schubert case 597: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */
6598*335c7cdaSCy Schubert #line 3175 "util/configparser.y"
6599b7c0c8c1SCy Schubert {
6600b7c0c8c1SCy Schubert OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str)));
6601b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify,
6602b7c0c8c1SCy Schubert (yyvsp[0].str)))
6603b7c0c8c1SCy Schubert yyerror("out of memory");
6604b7c0c8c1SCy Schubert }
6605*335c7cdaSCy Schubert #line 6606 "util/configparser.c"
6606b7c0c8c1SCy Schubert break;
6607b7c0c8c1SCy Schubert
6608*335c7cdaSCy Schubert case 598: /* auth_zonemd_check: VAR_ZONEMD_CHECK STRING_ARG */
6609*335c7cdaSCy Schubert #line 3183 "util/configparser.y"
6610b7c0c8c1SCy Schubert {
6611b7c0c8c1SCy Schubert OUTYY(("P(zonemd-check:%s)\n", (yyvsp[0].str)));
6612b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6613b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6614b7c0c8c1SCy Schubert else cfg_parser->cfg->auths->zonemd_check =
6615b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6616b7c0c8c1SCy Schubert free((yyvsp[0].str));
6617b7c0c8c1SCy Schubert }
6618*335c7cdaSCy Schubert #line 6619 "util/configparser.c"
6619b7c0c8c1SCy Schubert break;
6620b7c0c8c1SCy Schubert
6621*335c7cdaSCy Schubert case 599: /* auth_zonemd_reject_absence: VAR_ZONEMD_REJECT_ABSENCE STRING_ARG */
6622*335c7cdaSCy Schubert #line 3193 "util/configparser.y"
6623b7c0c8c1SCy Schubert {
6624b7c0c8c1SCy Schubert OUTYY(("P(zonemd-reject-absence:%s)\n", (yyvsp[0].str)));
6625b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6626b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6627b7c0c8c1SCy Schubert else cfg_parser->cfg->auths->zonemd_reject_absence =
6628b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6629b7c0c8c1SCy Schubert free((yyvsp[0].str));
6630b7c0c8c1SCy Schubert }
6631*335c7cdaSCy Schubert #line 6632 "util/configparser.c"
6632b7c0c8c1SCy Schubert break;
6633b7c0c8c1SCy Schubert
6634*335c7cdaSCy Schubert case 600: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */
6635*335c7cdaSCy Schubert #line 3203 "util/configparser.y"
6636b7c0c8c1SCy Schubert {
6637b7c0c8c1SCy Schubert OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str)));
6638b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6639b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6640b7c0c8c1SCy Schubert else cfg_parser->cfg->auths->for_downstream =
6641b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6642b7c0c8c1SCy Schubert free((yyvsp[0].str));
6643b7c0c8c1SCy Schubert }
6644*335c7cdaSCy Schubert #line 6645 "util/configparser.c"
6645b7c0c8c1SCy Schubert break;
6646b7c0c8c1SCy Schubert
6647*335c7cdaSCy Schubert case 601: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */
6648*335c7cdaSCy Schubert #line 3213 "util/configparser.y"
6649b7c0c8c1SCy Schubert {
6650b7c0c8c1SCy Schubert OUTYY(("P(for-upstream:%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->auths->for_upstream =
6654b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6655b7c0c8c1SCy Schubert free((yyvsp[0].str));
6656b7c0c8c1SCy Schubert }
6657*335c7cdaSCy Schubert #line 6658 "util/configparser.c"
6658b7c0c8c1SCy Schubert break;
6659b7c0c8c1SCy Schubert
6660*335c7cdaSCy Schubert case 602: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */
6661*335c7cdaSCy Schubert #line 3223 "util/configparser.y"
6662b7c0c8c1SCy Schubert {
6663b7c0c8c1SCy Schubert OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str)));
6664b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6665b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6666b7c0c8c1SCy Schubert else cfg_parser->cfg->auths->fallback_enabled =
6667b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6668b7c0c8c1SCy Schubert free((yyvsp[0].str));
6669b7c0c8c1SCy Schubert }
6670*335c7cdaSCy Schubert #line 6671 "util/configparser.c"
6671b7c0c8c1SCy Schubert break;
6672b7c0c8c1SCy Schubert
6673*335c7cdaSCy Schubert case 603: /* view_name: VAR_NAME STRING_ARG */
6674*335c7cdaSCy Schubert #line 3233 "util/configparser.y"
6675b7c0c8c1SCy Schubert {
6676b7c0c8c1SCy Schubert OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
6677b7c0c8c1SCy Schubert if(cfg_parser->cfg->views->name)
6678b7c0c8c1SCy Schubert yyerror("view name override, there must be one "
6679b7c0c8c1SCy Schubert "name for one view");
6680b7c0c8c1SCy Schubert free(cfg_parser->cfg->views->name);
6681b7c0c8c1SCy Schubert cfg_parser->cfg->views->name = (yyvsp[0].str);
6682b7c0c8c1SCy Schubert }
6683*335c7cdaSCy Schubert #line 6684 "util/configparser.c"
6684b7c0c8c1SCy Schubert break;
6685b7c0c8c1SCy Schubert
6686*335c7cdaSCy Schubert case 604: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */
6687*335c7cdaSCy Schubert #line 3243 "util/configparser.y"
6688b7c0c8c1SCy Schubert {
6689b7c0c8c1SCy Schubert OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
6690b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
6691b7c0c8c1SCy Schubert strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 &&
6692b7c0c8c1SCy Schubert strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0
6693b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "typetransparent")!=0
6694b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_transparent")!=0
6695b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_refuse")!=0
6696b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_nxdomain")!=0
6697b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_nodata")!=0
6698b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_deny")!=0
6699b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "always_null")!=0
6700b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "noview")!=0
6701b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0
6702b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "inform_redirect") != 0
6703b7c0c8c1SCy Schubert && strcmp((yyvsp[0].str), "ipset") != 0) {
6704b7c0c8c1SCy Schubert yyerror("local-zone type: expected static, deny, "
6705b7c0c8c1SCy Schubert "refuse, redirect, transparent, "
6706b7c0c8c1SCy Schubert "typetransparent, inform, inform_deny, "
6707b7c0c8c1SCy Schubert "inform_redirect, always_transparent, "
6708b7c0c8c1SCy Schubert "always_refuse, always_nxdomain, "
6709b7c0c8c1SCy Schubert "always_nodata, always_deny, always_null, "
6710b7c0c8c1SCy Schubert "noview, nodefault or ipset");
6711b7c0c8c1SCy Schubert free((yyvsp[-1].str));
6712b7c0c8c1SCy Schubert free((yyvsp[0].str));
6713b7c0c8c1SCy Schubert } else if(strcmp((yyvsp[0].str), "nodefault")==0) {
6714b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->views->
6715b7c0c8c1SCy Schubert local_zones_nodefault, (yyvsp[-1].str)))
6716b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone");
6717b7c0c8c1SCy Schubert free((yyvsp[0].str));
6718b7c0c8c1SCy Schubert #ifdef USE_IPSET
6719b7c0c8c1SCy Schubert } else if(strcmp((yyvsp[0].str), "ipset")==0) {
6720b7c0c8c1SCy Schubert size_t len = strlen((yyvsp[-1].str));
6721b7c0c8c1SCy Schubert /* Make sure to add the trailing dot.
6722b7c0c8c1SCy Schubert * These are str compared to domain names. */
6723b7c0c8c1SCy Schubert if((yyvsp[-1].str)[len-1] != '.') {
6724b7c0c8c1SCy Schubert if(!((yyvsp[-1].str) = realloc((yyvsp[-1].str), len+2))) {
6725b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone");
6726b7c0c8c1SCy Schubert }
6727b7c0c8c1SCy Schubert (yyvsp[-1].str)[len] = '.';
6728b7c0c8c1SCy Schubert (yyvsp[-1].str)[len+1] = 0;
6729b7c0c8c1SCy Schubert }
6730b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->views->
6731b7c0c8c1SCy Schubert local_zones_ipset, (yyvsp[-1].str)))
6732b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone");
6733b7c0c8c1SCy Schubert free((yyvsp[0].str));
6734b7c0c8c1SCy Schubert #endif
6735b7c0c8c1SCy Schubert } else {
6736b7c0c8c1SCy Schubert if(!cfg_str2list_insert(
6737b7c0c8c1SCy Schubert &cfg_parser->cfg->views->local_zones,
6738b7c0c8c1SCy Schubert (yyvsp[-1].str), (yyvsp[0].str)))
6739b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-zone");
6740b7c0c8c1SCy Schubert }
6741b7c0c8c1SCy Schubert }
6742*335c7cdaSCy Schubert #line 6743 "util/configparser.c"
6743b7c0c8c1SCy Schubert break;
6744b7c0c8c1SCy Schubert
6745*335c7cdaSCy Schubert case 605: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */
6746*335c7cdaSCy Schubert #line 3299 "util/configparser.y"
6747b7c0c8c1SCy Schubert {
6748b7c0c8c1SCy Schubert OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
6749b7c0c8c1SCy Schubert validate_respip_action((yyvsp[0].str));
6750b7c0c8c1SCy Schubert if(!cfg_str2list_insert(
6751b7c0c8c1SCy Schubert &cfg_parser->cfg->views->respip_actions, (yyvsp[-1].str), (yyvsp[0].str)))
6752b7c0c8c1SCy Schubert fatal_exit("out of memory adding per-view "
6753b7c0c8c1SCy Schubert "response-ip action");
6754b7c0c8c1SCy Schubert }
6755*335c7cdaSCy Schubert #line 6756 "util/configparser.c"
6756b7c0c8c1SCy Schubert break;
6757b7c0c8c1SCy Schubert
6758*335c7cdaSCy Schubert case 606: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */
6759*335c7cdaSCy Schubert #line 3309 "util/configparser.y"
6760b7c0c8c1SCy Schubert {
6761b7c0c8c1SCy Schubert OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str)));
6762b7c0c8c1SCy Schubert if(!cfg_str2list_insert(
6763b7c0c8c1SCy Schubert &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str)))
6764b7c0c8c1SCy Schubert fatal_exit("out of memory adding response-ip-data");
6765b7c0c8c1SCy Schubert }
6766*335c7cdaSCy Schubert #line 6767 "util/configparser.c"
6767b7c0c8c1SCy Schubert break;
6768b7c0c8c1SCy Schubert
6769*335c7cdaSCy Schubert case 607: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */
6770*335c7cdaSCy Schubert #line 3317 "util/configparser.y"
6771b7c0c8c1SCy Schubert {
6772b7c0c8c1SCy Schubert OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str)));
6773b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) {
6774b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-data");
6775b7c0c8c1SCy Schubert }
6776b7c0c8c1SCy Schubert }
6777*335c7cdaSCy Schubert #line 6778 "util/configparser.c"
6778b7c0c8c1SCy Schubert break;
6779b7c0c8c1SCy Schubert
6780*335c7cdaSCy Schubert case 608: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */
6781*335c7cdaSCy Schubert #line 3325 "util/configparser.y"
6782b7c0c8c1SCy Schubert {
6783b7c0c8c1SCy Schubert char* ptr;
6784b7c0c8c1SCy Schubert OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str)));
6785b7c0c8c1SCy Schubert ptr = cfg_ptr_reverse((yyvsp[0].str));
6786b7c0c8c1SCy Schubert free((yyvsp[0].str));
6787b7c0c8c1SCy Schubert if(ptr) {
6788b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->views->
6789b7c0c8c1SCy Schubert local_data, ptr))
6790b7c0c8c1SCy Schubert fatal_exit("out of memory adding local-data");
6791b7c0c8c1SCy Schubert } else {
6792b7c0c8c1SCy Schubert yyerror("local-data-ptr could not be reversed");
6793b7c0c8c1SCy Schubert }
6794b7c0c8c1SCy Schubert }
6795*335c7cdaSCy Schubert #line 6796 "util/configparser.c"
6796b7c0c8c1SCy Schubert break;
6797b7c0c8c1SCy Schubert
6798*335c7cdaSCy Schubert case 609: /* view_first: VAR_VIEW_FIRST STRING_ARG */
6799*335c7cdaSCy Schubert #line 3340 "util/configparser.y"
6800b7c0c8c1SCy Schubert {
6801b7c0c8c1SCy Schubert OUTYY(("P(view-first:%s)\n", (yyvsp[0].str)));
6802b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6803b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6804b7c0c8c1SCy Schubert else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
6805b7c0c8c1SCy Schubert free((yyvsp[0].str));
6806b7c0c8c1SCy Schubert }
6807*335c7cdaSCy Schubert #line 6808 "util/configparser.c"
6808b7c0c8c1SCy Schubert break;
6809b7c0c8c1SCy Schubert
6810*335c7cdaSCy Schubert case 610: /* rcstart: VAR_REMOTE_CONTROL */
6811*335c7cdaSCy Schubert #line 3349 "util/configparser.y"
6812b7c0c8c1SCy Schubert {
6813b7c0c8c1SCy Schubert OUTYY(("\nP(remote-control:)\n"));
6814b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1;
6815b7c0c8c1SCy Schubert }
6816*335c7cdaSCy Schubert #line 6817 "util/configparser.c"
6817b7c0c8c1SCy Schubert break;
6818b7c0c8c1SCy Schubert
6819*335c7cdaSCy Schubert case 621: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */
6820*335c7cdaSCy Schubert #line 3361 "util/configparser.y"
6821b7c0c8c1SCy Schubert {
6822b7c0c8c1SCy Schubert OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str)));
6823b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6824b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6825b7c0c8c1SCy Schubert else cfg_parser->cfg->remote_control_enable =
6826b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6827b7c0c8c1SCy Schubert free((yyvsp[0].str));
6828b7c0c8c1SCy Schubert }
6829*335c7cdaSCy Schubert #line 6830 "util/configparser.c"
6830b7c0c8c1SCy Schubert break;
6831b7c0c8c1SCy Schubert
6832*335c7cdaSCy Schubert case 622: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */
6833*335c7cdaSCy Schubert #line 3371 "util/configparser.y"
6834b7c0c8c1SCy Schubert {
6835b7c0c8c1SCy Schubert OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
6836b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
6837b7c0c8c1SCy Schubert yyerror("control port number expected");
6838b7c0c8c1SCy Schubert else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
6839b7c0c8c1SCy Schubert free((yyvsp[0].str));
6840b7c0c8c1SCy Schubert }
6841*335c7cdaSCy Schubert #line 6842 "util/configparser.c"
6842b7c0c8c1SCy Schubert break;
6843b7c0c8c1SCy Schubert
6844*335c7cdaSCy Schubert case 623: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */
6845*335c7cdaSCy Schubert #line 3380 "util/configparser.y"
6846b7c0c8c1SCy Schubert {
6847b7c0c8c1SCy Schubert OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
6848b7c0c8c1SCy Schubert if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
6849b7c0c8c1SCy Schubert yyerror("out of memory");
6850b7c0c8c1SCy Schubert }
6851*335c7cdaSCy Schubert #line 6852 "util/configparser.c"
6852b7c0c8c1SCy Schubert break;
6853b7c0c8c1SCy Schubert
6854*335c7cdaSCy Schubert case 624: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */
6855*335c7cdaSCy Schubert #line 3387 "util/configparser.y"
6856b7c0c8c1SCy Schubert {
6857b7c0c8c1SCy Schubert OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
6858b7c0c8c1SCy Schubert cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0);
6859b7c0c8c1SCy Schubert free((yyvsp[0].str));
6860b7c0c8c1SCy Schubert }
6861*335c7cdaSCy Schubert #line 6862 "util/configparser.c"
6862b7c0c8c1SCy Schubert break;
6863b7c0c8c1SCy Schubert
6864*335c7cdaSCy Schubert case 625: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */
6865*335c7cdaSCy Schubert #line 3394 "util/configparser.y"
6866b7c0c8c1SCy Schubert {
6867b7c0c8c1SCy Schubert OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str)));
6868b7c0c8c1SCy Schubert free(cfg_parser->cfg->server_key_file);
6869b7c0c8c1SCy Schubert cfg_parser->cfg->server_key_file = (yyvsp[0].str);
6870b7c0c8c1SCy Schubert }
6871*335c7cdaSCy Schubert #line 6872 "util/configparser.c"
6872b7c0c8c1SCy Schubert break;
6873b7c0c8c1SCy Schubert
6874*335c7cdaSCy Schubert case 626: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */
6875*335c7cdaSCy Schubert #line 3401 "util/configparser.y"
6876b7c0c8c1SCy Schubert {
6877b7c0c8c1SCy Schubert OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str)));
6878b7c0c8c1SCy Schubert free(cfg_parser->cfg->server_cert_file);
6879b7c0c8c1SCy Schubert cfg_parser->cfg->server_cert_file = (yyvsp[0].str);
6880b7c0c8c1SCy Schubert }
6881*335c7cdaSCy Schubert #line 6882 "util/configparser.c"
6882b7c0c8c1SCy Schubert break;
6883b7c0c8c1SCy Schubert
6884*335c7cdaSCy Schubert case 627: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */
6885*335c7cdaSCy Schubert #line 3408 "util/configparser.y"
6886b7c0c8c1SCy Schubert {
6887b7c0c8c1SCy Schubert OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str)));
6888b7c0c8c1SCy Schubert free(cfg_parser->cfg->control_key_file);
6889b7c0c8c1SCy Schubert cfg_parser->cfg->control_key_file = (yyvsp[0].str);
6890b7c0c8c1SCy Schubert }
6891*335c7cdaSCy Schubert #line 6892 "util/configparser.c"
6892b7c0c8c1SCy Schubert break;
6893b7c0c8c1SCy Schubert
6894*335c7cdaSCy Schubert case 628: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */
6895*335c7cdaSCy Schubert #line 3415 "util/configparser.y"
6896b7c0c8c1SCy Schubert {
6897b7c0c8c1SCy Schubert OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str)));
6898b7c0c8c1SCy Schubert free(cfg_parser->cfg->control_cert_file);
6899b7c0c8c1SCy Schubert cfg_parser->cfg->control_cert_file = (yyvsp[0].str);
6900b7c0c8c1SCy Schubert }
6901*335c7cdaSCy Schubert #line 6902 "util/configparser.c"
6902b7c0c8c1SCy Schubert break;
6903b7c0c8c1SCy Schubert
6904*335c7cdaSCy Schubert case 629: /* dtstart: VAR_DNSTAP */
6905*335c7cdaSCy Schubert #line 3422 "util/configparser.y"
6906b7c0c8c1SCy Schubert {
6907b7c0c8c1SCy Schubert OUTYY(("\nP(dnstap:)\n"));
6908b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1;
6909b7c0c8c1SCy Schubert }
6910*335c7cdaSCy Schubert #line 6911 "util/configparser.c"
6911b7c0c8c1SCy Schubert break;
6912b7c0c8c1SCy Schubert
6913*335c7cdaSCy Schubert case 651: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */
6914*335c7cdaSCy Schubert #line 3443 "util/configparser.y"
6915b7c0c8c1SCy Schubert {
6916b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str)));
6917b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6918b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6919b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
6920b7c0c8c1SCy Schubert free((yyvsp[0].str));
6921b7c0c8c1SCy Schubert }
6922*335c7cdaSCy Schubert #line 6923 "util/configparser.c"
6923b7c0c8c1SCy Schubert break;
6924b7c0c8c1SCy Schubert
6925*335c7cdaSCy Schubert case 652: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */
6926*335c7cdaSCy Schubert #line 3452 "util/configparser.y"
6927b7c0c8c1SCy Schubert {
6928b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str)));
6929b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6930b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6931b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_bidirectional =
6932b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
6933b7c0c8c1SCy Schubert free((yyvsp[0].str));
6934b7c0c8c1SCy Schubert }
6935*335c7cdaSCy Schubert #line 6936 "util/configparser.c"
6936b7c0c8c1SCy Schubert break;
6937b7c0c8c1SCy Schubert
6938*335c7cdaSCy Schubert case 653: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */
6939*335c7cdaSCy Schubert #line 3462 "util/configparser.y"
6940b7c0c8c1SCy Schubert {
6941b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str)));
6942b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_socket_path);
6943b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str);
6944b7c0c8c1SCy Schubert }
6945*335c7cdaSCy Schubert #line 6946 "util/configparser.c"
6946b7c0c8c1SCy Schubert break;
6947b7c0c8c1SCy Schubert
6948*335c7cdaSCy Schubert case 654: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */
6949*335c7cdaSCy Schubert #line 3469 "util/configparser.y"
6950b7c0c8c1SCy Schubert {
6951b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str)));
6952b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_ip);
6953b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_ip = (yyvsp[0].str);
6954b7c0c8c1SCy Schubert }
6955*335c7cdaSCy Schubert #line 6956 "util/configparser.c"
6956b7c0c8c1SCy Schubert break;
6957b7c0c8c1SCy Schubert
6958*335c7cdaSCy Schubert case 655: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */
6959*335c7cdaSCy Schubert #line 3476 "util/configparser.y"
6960b7c0c8c1SCy Schubert {
6961b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str)));
6962b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
6963b7c0c8c1SCy Schubert yyerror("expected yes or no.");
6964b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0);
6965b7c0c8c1SCy Schubert free((yyvsp[0].str));
6966b7c0c8c1SCy Schubert }
6967*335c7cdaSCy Schubert #line 6968 "util/configparser.c"
6968b7c0c8c1SCy Schubert break;
6969b7c0c8c1SCy Schubert
6970*335c7cdaSCy Schubert case 656: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */
6971*335c7cdaSCy Schubert #line 3485 "util/configparser.y"
6972b7c0c8c1SCy Schubert {
6973b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str)));
6974b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_tls_server_name);
6975b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str);
6976b7c0c8c1SCy Schubert }
6977*335c7cdaSCy Schubert #line 6978 "util/configparser.c"
6978b7c0c8c1SCy Schubert break;
6979b7c0c8c1SCy Schubert
6980*335c7cdaSCy Schubert case 657: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */
6981*335c7cdaSCy Schubert #line 3492 "util/configparser.y"
6982b7c0c8c1SCy Schubert {
6983b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str)));
6984b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_tls_cert_bundle);
6985b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str);
6986b7c0c8c1SCy Schubert }
6987*335c7cdaSCy Schubert #line 6988 "util/configparser.c"
6988b7c0c8c1SCy Schubert break;
6989b7c0c8c1SCy Schubert
6990*335c7cdaSCy Schubert case 658: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */
6991*335c7cdaSCy Schubert #line 3499 "util/configparser.y"
6992b7c0c8c1SCy Schubert {
6993b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str)));
6994b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_tls_client_key_file);
6995b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str);
6996b7c0c8c1SCy Schubert }
6997*335c7cdaSCy Schubert #line 6998 "util/configparser.c"
6998b7c0c8c1SCy Schubert break;
6999b7c0c8c1SCy Schubert
7000*335c7cdaSCy Schubert case 659: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */
7001*335c7cdaSCy Schubert #line 3506 "util/configparser.y"
7002b7c0c8c1SCy Schubert {
7003b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str)));
7004b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_tls_client_cert_file);
7005b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str);
7006b7c0c8c1SCy Schubert }
7007*335c7cdaSCy Schubert #line 7008 "util/configparser.c"
7008b7c0c8c1SCy Schubert break;
7009b7c0c8c1SCy Schubert
7010*335c7cdaSCy Schubert case 660: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */
7011*335c7cdaSCy Schubert #line 3513 "util/configparser.y"
7012b7c0c8c1SCy Schubert {
7013b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str)));
7014b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7015b7c0c8c1SCy Schubert yyerror("expected yes or no.");
7016b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
7017b7c0c8c1SCy Schubert free((yyvsp[0].str));
7018b7c0c8c1SCy Schubert }
7019*335c7cdaSCy Schubert #line 7020 "util/configparser.c"
7020b7c0c8c1SCy Schubert break;
7021b7c0c8c1SCy Schubert
7022*335c7cdaSCy Schubert case 661: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */
7023*335c7cdaSCy Schubert #line 3522 "util/configparser.y"
7024b7c0c8c1SCy Schubert {
7025b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str)));
7026b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7027b7c0c8c1SCy Schubert yyerror("expected yes or no.");
7028b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
7029b7c0c8c1SCy Schubert free((yyvsp[0].str));
7030b7c0c8c1SCy Schubert }
7031*335c7cdaSCy Schubert #line 7032 "util/configparser.c"
7032b7c0c8c1SCy Schubert break;
7033b7c0c8c1SCy Schubert
7034*335c7cdaSCy Schubert case 662: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */
7035*335c7cdaSCy Schubert #line 3531 "util/configparser.y"
7036b7c0c8c1SCy Schubert {
7037b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str)));
7038b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_identity);
7039b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_identity = (yyvsp[0].str);
7040b7c0c8c1SCy Schubert }
7041*335c7cdaSCy Schubert #line 7042 "util/configparser.c"
7042b7c0c8c1SCy Schubert break;
7043b7c0c8c1SCy Schubert
7044*335c7cdaSCy Schubert case 663: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */
7045*335c7cdaSCy Schubert #line 3538 "util/configparser.y"
7046b7c0c8c1SCy Schubert {
7047b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str)));
7048b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnstap_version);
7049b7c0c8c1SCy Schubert cfg_parser->cfg->dnstap_version = (yyvsp[0].str);
7050b7c0c8c1SCy Schubert }
7051*335c7cdaSCy Schubert #line 7052 "util/configparser.c"
7052b7c0c8c1SCy Schubert break;
7053b7c0c8c1SCy Schubert
7054*335c7cdaSCy Schubert case 664: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */
7055*335c7cdaSCy Schubert #line 3545 "util/configparser.y"
7056b7c0c8c1SCy Schubert {
7057b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str)));
7058b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7059b7c0c8c1SCy Schubert yyerror("expected yes or no.");
7060b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_log_resolver_query_messages =
7061b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
7062b7c0c8c1SCy Schubert free((yyvsp[0].str));
7063b7c0c8c1SCy Schubert }
7064*335c7cdaSCy Schubert #line 7065 "util/configparser.c"
7065b7c0c8c1SCy Schubert break;
7066b7c0c8c1SCy Schubert
7067*335c7cdaSCy Schubert case 665: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */
7068*335c7cdaSCy Schubert #line 3555 "util/configparser.y"
7069b7c0c8c1SCy Schubert {
7070b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str)));
7071b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7072b7c0c8c1SCy Schubert yyerror("expected yes or no.");
7073b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_log_resolver_response_messages =
7074b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
7075b7c0c8c1SCy Schubert free((yyvsp[0].str));
7076b7c0c8c1SCy Schubert }
7077*335c7cdaSCy Schubert #line 7078 "util/configparser.c"
7078b7c0c8c1SCy Schubert break;
7079b7c0c8c1SCy Schubert
7080*335c7cdaSCy Schubert case 666: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */
7081*335c7cdaSCy Schubert #line 3565 "util/configparser.y"
7082b7c0c8c1SCy Schubert {
7083b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str)));
7084b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7085b7c0c8c1SCy Schubert yyerror("expected yes or no.");
7086b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_log_client_query_messages =
7087b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
7088b7c0c8c1SCy Schubert free((yyvsp[0].str));
7089b7c0c8c1SCy Schubert }
7090*335c7cdaSCy Schubert #line 7091 "util/configparser.c"
7091b7c0c8c1SCy Schubert break;
7092b7c0c8c1SCy Schubert
7093*335c7cdaSCy Schubert case 667: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */
7094*335c7cdaSCy Schubert #line 3575 "util/configparser.y"
7095b7c0c8c1SCy Schubert {
7096b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str)));
7097b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7098b7c0c8c1SCy Schubert yyerror("expected yes or no.");
7099b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_log_client_response_messages =
7100b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
7101b7c0c8c1SCy Schubert free((yyvsp[0].str));
7102b7c0c8c1SCy Schubert }
7103*335c7cdaSCy Schubert #line 7104 "util/configparser.c"
7104b7c0c8c1SCy Schubert break;
7105b7c0c8c1SCy Schubert
7106*335c7cdaSCy Schubert case 668: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */
7107*335c7cdaSCy Schubert #line 3585 "util/configparser.y"
7108b7c0c8c1SCy Schubert {
7109b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str)));
7110b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7111b7c0c8c1SCy Schubert yyerror("expected yes or no.");
7112b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_log_forwarder_query_messages =
7113b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
7114b7c0c8c1SCy Schubert free((yyvsp[0].str));
7115b7c0c8c1SCy Schubert }
7116*335c7cdaSCy Schubert #line 7117 "util/configparser.c"
7117b7c0c8c1SCy Schubert break;
7118b7c0c8c1SCy Schubert
7119*335c7cdaSCy Schubert case 669: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */
7120*335c7cdaSCy Schubert #line 3595 "util/configparser.y"
7121b7c0c8c1SCy Schubert {
7122b7c0c8c1SCy Schubert OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str)));
7123b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7124b7c0c8c1SCy Schubert yyerror("expected yes or no.");
7125b7c0c8c1SCy Schubert else cfg_parser->cfg->dnstap_log_forwarder_response_messages =
7126b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
7127b7c0c8c1SCy Schubert free((yyvsp[0].str));
7128b7c0c8c1SCy Schubert }
7129*335c7cdaSCy Schubert #line 7130 "util/configparser.c"
7130b7c0c8c1SCy Schubert break;
7131b7c0c8c1SCy Schubert
7132*335c7cdaSCy Schubert case 670: /* pythonstart: VAR_PYTHON */
7133*335c7cdaSCy Schubert #line 3605 "util/configparser.y"
7134b7c0c8c1SCy Schubert {
7135b7c0c8c1SCy Schubert OUTYY(("\nP(python:)\n"));
7136b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1;
7137b7c0c8c1SCy Schubert }
7138*335c7cdaSCy Schubert #line 7139 "util/configparser.c"
7139b7c0c8c1SCy Schubert break;
7140b7c0c8c1SCy Schubert
7141*335c7cdaSCy Schubert case 674: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */
7142*335c7cdaSCy Schubert #line 3615 "util/configparser.y"
7143b7c0c8c1SCy Schubert {
7144b7c0c8c1SCy Schubert OUTYY(("P(python-script:%s)\n", (yyvsp[0].str)));
7145b7c0c8c1SCy Schubert if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str)))
7146b7c0c8c1SCy Schubert yyerror("out of memory");
7147b7c0c8c1SCy Schubert }
7148*335c7cdaSCy Schubert #line 7149 "util/configparser.c"
7149b7c0c8c1SCy Schubert break;
7150b7c0c8c1SCy Schubert
7151*335c7cdaSCy Schubert case 675: /* dynlibstart: VAR_DYNLIB */
7152*335c7cdaSCy Schubert #line 3622 "util/configparser.y"
7153b7c0c8c1SCy Schubert {
7154b7c0c8c1SCy Schubert OUTYY(("\nP(dynlib:)\n"));
7155b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1;
7156b7c0c8c1SCy Schubert }
7157*335c7cdaSCy Schubert #line 7158 "util/configparser.c"
7158b7c0c8c1SCy Schubert break;
7159b7c0c8c1SCy Schubert
7160*335c7cdaSCy Schubert case 679: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */
7161*335c7cdaSCy Schubert #line 3632 "util/configparser.y"
7162b7c0c8c1SCy Schubert {
7163b7c0c8c1SCy Schubert OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str)));
7164b7c0c8c1SCy Schubert if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str)))
7165b7c0c8c1SCy Schubert yyerror("out of memory");
7166b7c0c8c1SCy Schubert }
7167*335c7cdaSCy Schubert #line 7168 "util/configparser.c"
7168b7c0c8c1SCy Schubert break;
7169b7c0c8c1SCy Schubert
7170*335c7cdaSCy Schubert case 680: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */
7171*335c7cdaSCy Schubert #line 3639 "util/configparser.y"
7172b7c0c8c1SCy Schubert {
7173b7c0c8c1SCy Schubert OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str)));
7174b7c0c8c1SCy Schubert if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7175b7c0c8c1SCy Schubert yyerror("expected yes or no.");
7176b7c0c8c1SCy Schubert else cfg_parser->cfg->disable_dnssec_lame_check =
7177b7c0c8c1SCy Schubert (strcmp((yyvsp[0].str), "yes")==0);
7178b7c0c8c1SCy Schubert free((yyvsp[0].str));
7179b7c0c8c1SCy Schubert }
7180*335c7cdaSCy Schubert #line 7181 "util/configparser.c"
7181b7c0c8c1SCy Schubert break;
7182b7c0c8c1SCy Schubert
7183*335c7cdaSCy Schubert case 681: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */
7184*335c7cdaSCy Schubert #line 3649 "util/configparser.y"
7185b7c0c8c1SCy Schubert {
7186b7c0c8c1SCy Schubert OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str)));
7187b7c0c8c1SCy Schubert free(cfg_parser->cfg->log_identity);
7188b7c0c8c1SCy Schubert cfg_parser->cfg->log_identity = (yyvsp[0].str);
7189b7c0c8c1SCy Schubert }
7190*335c7cdaSCy Schubert #line 7191 "util/configparser.c"
7191b7c0c8c1SCy Schubert break;
7192b7c0c8c1SCy Schubert
7193*335c7cdaSCy Schubert case 682: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */
7194*335c7cdaSCy Schubert #line 3656 "util/configparser.y"
7195b7c0c8c1SCy Schubert {
7196b7c0c8c1SCy Schubert OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
7197b7c0c8c1SCy Schubert validate_respip_action((yyvsp[0].str));
7198b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->respip_actions,
7199b7c0c8c1SCy Schubert (yyvsp[-1].str), (yyvsp[0].str)))
7200b7c0c8c1SCy Schubert fatal_exit("out of memory adding response-ip");
7201b7c0c8c1SCy Schubert }
7202*335c7cdaSCy Schubert #line 7203 "util/configparser.c"
7203b7c0c8c1SCy Schubert break;
7204b7c0c8c1SCy Schubert
7205*335c7cdaSCy Schubert case 683: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */
7206*335c7cdaSCy Schubert #line 3665 "util/configparser.y"
7207b7c0c8c1SCy Schubert {
7208b7c0c8c1SCy Schubert OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str)));
7209b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data,
7210b7c0c8c1SCy Schubert (yyvsp[-1].str), (yyvsp[0].str)))
7211b7c0c8c1SCy Schubert fatal_exit("out of memory adding response-ip-data");
7212b7c0c8c1SCy Schubert }
7213*335c7cdaSCy Schubert #line 7214 "util/configparser.c"
7214b7c0c8c1SCy Schubert break;
7215b7c0c8c1SCy Schubert
7216*335c7cdaSCy Schubert case 684: /* dnscstart: VAR_DNSCRYPT */
7217*335c7cdaSCy Schubert #line 3673 "util/configparser.y"
7218b7c0c8c1SCy Schubert {
7219b7c0c8c1SCy Schubert OUTYY(("\nP(dnscrypt:)\n"));
7220b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1;
7221b7c0c8c1SCy Schubert }
7222*335c7cdaSCy Schubert #line 7223 "util/configparser.c"
7223b7c0c8c1SCy Schubert break;
7224b7c0c8c1SCy Schubert
7225*335c7cdaSCy Schubert case 697: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */
7226*335c7cdaSCy Schubert #line 3690 "util/configparser.y"
7227b7c0c8c1SCy Schubert {
7228b7c0c8c1SCy Schubert OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str)));
7229b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7230b7c0c8c1SCy Schubert yyerror("expected yes or no.");
7231b7c0c8c1SCy Schubert else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0);
7232b7c0c8c1SCy Schubert free((yyvsp[0].str));
7233b7c0c8c1SCy Schubert }
7234*335c7cdaSCy Schubert #line 7235 "util/configparser.c"
7235b7c0c8c1SCy Schubert break;
7236b7c0c8c1SCy Schubert
7237*335c7cdaSCy Schubert case 698: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */
7238*335c7cdaSCy Schubert #line 3699 "util/configparser.y"
7239b7c0c8c1SCy Schubert {
7240b7c0c8c1SCy Schubert OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str)));
7241b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
7242b7c0c8c1SCy Schubert yyerror("port number expected");
7243b7c0c8c1SCy Schubert else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str));
7244b7c0c8c1SCy Schubert free((yyvsp[0].str));
7245b7c0c8c1SCy Schubert }
7246*335c7cdaSCy Schubert #line 7247 "util/configparser.c"
7247b7c0c8c1SCy Schubert break;
7248b7c0c8c1SCy Schubert
7249*335c7cdaSCy Schubert case 699: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */
7250*335c7cdaSCy Schubert #line 3708 "util/configparser.y"
7251b7c0c8c1SCy Schubert {
7252b7c0c8c1SCy Schubert OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str)));
7253b7c0c8c1SCy Schubert free(cfg_parser->cfg->dnscrypt_provider);
7254b7c0c8c1SCy Schubert cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str);
7255b7c0c8c1SCy Schubert }
7256*335c7cdaSCy Schubert #line 7257 "util/configparser.c"
7257b7c0c8c1SCy Schubert break;
7258b7c0c8c1SCy Schubert
7259*335c7cdaSCy Schubert case 700: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */
7260*335c7cdaSCy Schubert #line 3715 "util/configparser.y"
7261b7c0c8c1SCy Schubert {
7262b7c0c8c1SCy Schubert OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str)));
7263b7c0c8c1SCy Schubert if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
7264b7c0c8c1SCy Schubert log_warn("dnscrypt-provider-cert %s is a duplicate", (yyvsp[0].str));
7265b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str)))
7266b7c0c8c1SCy Schubert fatal_exit("out of memory adding dnscrypt-provider-cert");
7267b7c0c8c1SCy Schubert }
7268*335c7cdaSCy Schubert #line 7269 "util/configparser.c"
7269b7c0c8c1SCy Schubert break;
7270b7c0c8c1SCy Schubert
7271*335c7cdaSCy Schubert case 701: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */
7272*335c7cdaSCy Schubert #line 3724 "util/configparser.y"
7273b7c0c8c1SCy Schubert {
7274b7c0c8c1SCy Schubert OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str)));
7275b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str)))
7276b7c0c8c1SCy Schubert fatal_exit("out of memory adding dnscrypt-provider-cert-rotated");
7277b7c0c8c1SCy Schubert }
7278*335c7cdaSCy Schubert #line 7279 "util/configparser.c"
7279b7c0c8c1SCy Schubert break;
7280b7c0c8c1SCy Schubert
7281*335c7cdaSCy Schubert case 702: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */
7282*335c7cdaSCy Schubert #line 3731 "util/configparser.y"
7283b7c0c8c1SCy Schubert {
7284b7c0c8c1SCy Schubert OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str)));
7285b7c0c8c1SCy Schubert if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
7286b7c0c8c1SCy Schubert log_warn("dnscrypt-secret-key: %s is a duplicate", (yyvsp[0].str));
7287b7c0c8c1SCy Schubert if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str)))
7288b7c0c8c1SCy Schubert fatal_exit("out of memory adding dnscrypt-secret-key");
7289b7c0c8c1SCy Schubert }
7290*335c7cdaSCy Schubert #line 7291 "util/configparser.c"
7291b7c0c8c1SCy Schubert break;
7292b7c0c8c1SCy Schubert
7293*335c7cdaSCy Schubert case 703: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */
7294*335c7cdaSCy Schubert #line 3740 "util/configparser.y"
7295b7c0c8c1SCy Schubert {
7296b7c0c8c1SCy Schubert OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str)));
7297b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
7298b7c0c8c1SCy Schubert yyerror("memory size expected");
7299b7c0c8c1SCy Schubert free((yyvsp[0].str));
7300b7c0c8c1SCy Schubert }
7301*335c7cdaSCy Schubert #line 7302 "util/configparser.c"
7302b7c0c8c1SCy Schubert break;
7303b7c0c8c1SCy Schubert
7304*335c7cdaSCy Schubert case 704: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */
7305*335c7cdaSCy Schubert #line 3748 "util/configparser.y"
7306b7c0c8c1SCy Schubert {
7307b7c0c8c1SCy Schubert OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str)));
7308b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) {
7309b7c0c8c1SCy Schubert yyerror("number expected");
7310b7c0c8c1SCy Schubert } else {
7311b7c0c8c1SCy Schubert cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi((yyvsp[0].str));
7312b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs))
7313b7c0c8c1SCy Schubert yyerror("must be a power of 2");
7314b7c0c8c1SCy Schubert }
7315b7c0c8c1SCy Schubert free((yyvsp[0].str));
7316b7c0c8c1SCy Schubert }
7317*335c7cdaSCy Schubert #line 7318 "util/configparser.c"
7318b7c0c8c1SCy Schubert break;
7319b7c0c8c1SCy Schubert
7320*335c7cdaSCy Schubert case 705: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */
7321*335c7cdaSCy Schubert #line 3761 "util/configparser.y"
7322b7c0c8c1SCy Schubert {
7323b7c0c8c1SCy Schubert OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str)));
7324b7c0c8c1SCy Schubert if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size))
7325b7c0c8c1SCy Schubert yyerror("memory size expected");
7326b7c0c8c1SCy Schubert free((yyvsp[0].str));
7327b7c0c8c1SCy Schubert }
7328*335c7cdaSCy Schubert #line 7329 "util/configparser.c"
7329b7c0c8c1SCy Schubert break;
7330b7c0c8c1SCy Schubert
7331*335c7cdaSCy Schubert case 706: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */
7332*335c7cdaSCy Schubert #line 3769 "util/configparser.y"
7333b7c0c8c1SCy Schubert {
7334b7c0c8c1SCy Schubert OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str)));
7335b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0) {
7336b7c0c8c1SCy Schubert yyerror("number expected");
7337b7c0c8c1SCy Schubert } else {
7338b7c0c8c1SCy Schubert cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi((yyvsp[0].str));
7339b7c0c8c1SCy Schubert if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs))
7340b7c0c8c1SCy Schubert yyerror("must be a power of 2");
7341b7c0c8c1SCy Schubert }
7342b7c0c8c1SCy Schubert free((yyvsp[0].str));
7343b7c0c8c1SCy Schubert }
7344*335c7cdaSCy Schubert #line 7345 "util/configparser.c"
7345b7c0c8c1SCy Schubert break;
7346b7c0c8c1SCy Schubert
7347*335c7cdaSCy Schubert case 707: /* cachedbstart: VAR_CACHEDB */
7348*335c7cdaSCy Schubert #line 3782 "util/configparser.y"
7349b7c0c8c1SCy Schubert {
7350b7c0c8c1SCy Schubert OUTYY(("\nP(cachedb:)\n"));
7351b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1;
7352b7c0c8c1SCy Schubert }
7353*335c7cdaSCy Schubert #line 7354 "util/configparser.c"
7354b7c0c8c1SCy Schubert break;
7355b7c0c8c1SCy Schubert
7356*335c7cdaSCy Schubert case 721: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */
7357*335c7cdaSCy Schubert #line 3795 "util/configparser.y"
7358b7c0c8c1SCy Schubert {
7359b7c0c8c1SCy Schubert #ifdef USE_CACHEDB
7360b7c0c8c1SCy Schubert OUTYY(("P(backend:%s)\n", (yyvsp[0].str)));
7361b7c0c8c1SCy Schubert free(cfg_parser->cfg->cachedb_backend);
7362b7c0c8c1SCy Schubert cfg_parser->cfg->cachedb_backend = (yyvsp[0].str);
7363b7c0c8c1SCy Schubert #else
7364b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb, ignoring)\n"));
7365b7c0c8c1SCy Schubert free((yyvsp[0].str));
7366b7c0c8c1SCy Schubert #endif
7367b7c0c8c1SCy Schubert }
7368*335c7cdaSCy Schubert #line 7369 "util/configparser.c"
7369b7c0c8c1SCy Schubert break;
7370b7c0c8c1SCy Schubert
7371*335c7cdaSCy Schubert case 722: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */
7372*335c7cdaSCy Schubert #line 3807 "util/configparser.y"
7373b7c0c8c1SCy Schubert {
7374b7c0c8c1SCy Schubert #ifdef USE_CACHEDB
7375b7c0c8c1SCy Schubert OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str)));
7376b7c0c8c1SCy Schubert free(cfg_parser->cfg->cachedb_secret);
7377b7c0c8c1SCy Schubert cfg_parser->cfg->cachedb_secret = (yyvsp[0].str);
7378b7c0c8c1SCy Schubert #else
7379b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb, ignoring)\n"));
7380b7c0c8c1SCy Schubert free((yyvsp[0].str));
7381b7c0c8c1SCy Schubert #endif
7382b7c0c8c1SCy Schubert }
7383*335c7cdaSCy Schubert #line 7384 "util/configparser.c"
7384b7c0c8c1SCy Schubert break;
7385b7c0c8c1SCy Schubert
7386*335c7cdaSCy Schubert case 723: /* cachedb_no_store: VAR_CACHEDB_NO_STORE STRING_ARG */
7387*335c7cdaSCy Schubert #line 3819 "util/configparser.y"
7388b7c0c8c1SCy Schubert {
7389b7c0c8c1SCy Schubert #ifdef USE_CACHEDB
7390b7c0c8c1SCy Schubert OUTYY(("P(cachedb_no_store:%s)\n", (yyvsp[0].str)));
7391b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7392b7c0c8c1SCy Schubert yyerror("expected yes or no.");
7393b7c0c8c1SCy Schubert else cfg_parser->cfg->cachedb_no_store = (strcmp((yyvsp[0].str), "yes")==0);
7394b7c0c8c1SCy Schubert #else
7395b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb, ignoring)\n"));
7396b7c0c8c1SCy Schubert #endif
7397b7c0c8c1SCy Schubert free((yyvsp[0].str));
7398b7c0c8c1SCy Schubert }
7399*335c7cdaSCy Schubert #line 7400 "util/configparser.c"
7400b7c0c8c1SCy Schubert break;
7401b7c0c8c1SCy Schubert
7402*335c7cdaSCy Schubert case 724: /* cachedb_check_when_serve_expired: VAR_CACHEDB_CHECK_WHEN_SERVE_EXPIRED STRING_ARG */
7403*335c7cdaSCy Schubert #line 3832 "util/configparser.y"
7404*335c7cdaSCy Schubert {
7405*335c7cdaSCy Schubert #ifdef USE_CACHEDB
7406*335c7cdaSCy Schubert OUTYY(("P(cachedb_check_when_serve_expired:%s)\n", (yyvsp[0].str)));
7407*335c7cdaSCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7408*335c7cdaSCy Schubert yyerror("expected yes or no.");
7409*335c7cdaSCy Schubert else cfg_parser->cfg->cachedb_check_when_serve_expired = (strcmp((yyvsp[0].str), "yes")==0);
7410*335c7cdaSCy Schubert #else
7411*335c7cdaSCy Schubert OUTYY(("P(Compiled without cachedb, ignoring)\n"));
7412*335c7cdaSCy Schubert #endif
7413*335c7cdaSCy Schubert free((yyvsp[0].str));
7414*335c7cdaSCy Schubert }
7415*335c7cdaSCy Schubert #line 7416 "util/configparser.c"
7416*335c7cdaSCy Schubert break;
7417*335c7cdaSCy Schubert
7418*335c7cdaSCy Schubert case 725: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */
7419*335c7cdaSCy Schubert #line 3845 "util/configparser.y"
7420b7c0c8c1SCy Schubert {
7421b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS)
7422b7c0c8c1SCy Schubert OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str)));
7423b7c0c8c1SCy Schubert free(cfg_parser->cfg->redis_server_host);
7424b7c0c8c1SCy Schubert cfg_parser->cfg->redis_server_host = (yyvsp[0].str);
7425b7c0c8c1SCy Schubert #else
7426b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
7427b7c0c8c1SCy Schubert free((yyvsp[0].str));
7428b7c0c8c1SCy Schubert #endif
7429b7c0c8c1SCy Schubert }
7430*335c7cdaSCy Schubert #line 7431 "util/configparser.c"
7431b7c0c8c1SCy Schubert break;
7432b7c0c8c1SCy Schubert
7433*335c7cdaSCy Schubert case 726: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */
7434*335c7cdaSCy Schubert #line 3857 "util/configparser.y"
7435b7c0c8c1SCy Schubert {
7436b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS)
7437b7c0c8c1SCy Schubert int port;
7438b7c0c8c1SCy Schubert OUTYY(("P(redis_server_port:%s)\n", (yyvsp[0].str)));
7439b7c0c8c1SCy Schubert port = atoi((yyvsp[0].str));
7440b7c0c8c1SCy Schubert if(port == 0 || port < 0 || port > 65535)
7441b7c0c8c1SCy Schubert yyerror("valid redis server port number expected");
7442b7c0c8c1SCy Schubert else cfg_parser->cfg->redis_server_port = port;
7443b7c0c8c1SCy Schubert #else
7444b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
7445b7c0c8c1SCy Schubert #endif
7446b7c0c8c1SCy Schubert free((yyvsp[0].str));
7447b7c0c8c1SCy Schubert }
7448*335c7cdaSCy Schubert #line 7449 "util/configparser.c"
7449b7c0c8c1SCy Schubert break;
7450b7c0c8c1SCy Schubert
7451*335c7cdaSCy Schubert case 727: /* redis_server_path: VAR_CACHEDB_REDISPATH STRING_ARG */
7452*335c7cdaSCy Schubert #line 3872 "util/configparser.y"
7453b7c0c8c1SCy Schubert {
7454b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS)
7455b7c0c8c1SCy Schubert OUTYY(("P(redis_server_path:%s)\n", (yyvsp[0].str)));
7456b7c0c8c1SCy Schubert free(cfg_parser->cfg->redis_server_path);
7457b7c0c8c1SCy Schubert cfg_parser->cfg->redis_server_path = (yyvsp[0].str);
7458b7c0c8c1SCy Schubert #else
7459b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
7460b7c0c8c1SCy Schubert free((yyvsp[0].str));
7461b7c0c8c1SCy Schubert #endif
7462b7c0c8c1SCy Schubert }
7463*335c7cdaSCy Schubert #line 7464 "util/configparser.c"
7464b7c0c8c1SCy Schubert break;
7465b7c0c8c1SCy Schubert
7466*335c7cdaSCy Schubert case 728: /* redis_server_password: VAR_CACHEDB_REDISPASSWORD STRING_ARG */
7467*335c7cdaSCy Schubert #line 3884 "util/configparser.y"
7468b7c0c8c1SCy Schubert {
7469b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS)
7470b7c0c8c1SCy Schubert OUTYY(("P(redis_server_password:%s)\n", (yyvsp[0].str)));
7471b7c0c8c1SCy Schubert free(cfg_parser->cfg->redis_server_password);
7472b7c0c8c1SCy Schubert cfg_parser->cfg->redis_server_password = (yyvsp[0].str);
7473b7c0c8c1SCy Schubert #else
7474b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
7475b7c0c8c1SCy Schubert free((yyvsp[0].str));
7476b7c0c8c1SCy Schubert #endif
7477b7c0c8c1SCy Schubert }
7478*335c7cdaSCy Schubert #line 7479 "util/configparser.c"
7479b7c0c8c1SCy Schubert break;
7480b7c0c8c1SCy Schubert
7481*335c7cdaSCy Schubert case 729: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */
7482*335c7cdaSCy Schubert #line 3896 "util/configparser.y"
7483b7c0c8c1SCy Schubert {
7484b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS)
7485b7c0c8c1SCy Schubert OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str)));
7486b7c0c8c1SCy Schubert if(atoi((yyvsp[0].str)) == 0)
7487b7c0c8c1SCy Schubert yyerror("redis timeout value expected");
7488b7c0c8c1SCy Schubert else cfg_parser->cfg->redis_timeout = atoi((yyvsp[0].str));
7489b7c0c8c1SCy Schubert #else
7490b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
7491b7c0c8c1SCy Schubert #endif
7492b7c0c8c1SCy Schubert free((yyvsp[0].str));
7493b7c0c8c1SCy Schubert }
7494*335c7cdaSCy Schubert #line 7495 "util/configparser.c"
7495b7c0c8c1SCy Schubert break;
7496b7c0c8c1SCy Schubert
7497*335c7cdaSCy Schubert case 730: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */
7498*335c7cdaSCy Schubert #line 3909 "util/configparser.y"
7499b7c0c8c1SCy Schubert {
7500b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS)
7501b7c0c8c1SCy Schubert OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str)));
7502b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7503b7c0c8c1SCy Schubert yyerror("expected yes or no.");
7504b7c0c8c1SCy Schubert else cfg_parser->cfg->redis_expire_records = (strcmp((yyvsp[0].str), "yes")==0);
7505b7c0c8c1SCy Schubert #else
7506b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
7507b7c0c8c1SCy Schubert #endif
7508b7c0c8c1SCy Schubert free((yyvsp[0].str));
7509b7c0c8c1SCy Schubert }
7510*335c7cdaSCy Schubert #line 7511 "util/configparser.c"
7511b7c0c8c1SCy Schubert break;
7512b7c0c8c1SCy Schubert
7513*335c7cdaSCy Schubert case 731: /* redis_logical_db: VAR_CACHEDB_REDISLOGICALDB STRING_ARG */
7514*335c7cdaSCy Schubert #line 3922 "util/configparser.y"
7515b7c0c8c1SCy Schubert {
7516b7c0c8c1SCy Schubert #if defined(USE_CACHEDB) && defined(USE_REDIS)
7517b7c0c8c1SCy Schubert int db;
7518b7c0c8c1SCy Schubert OUTYY(("P(redis_logical_db:%s)\n", (yyvsp[0].str)));
7519b7c0c8c1SCy Schubert db = atoi((yyvsp[0].str));
7520b7c0c8c1SCy Schubert if((db == 0 && strcmp((yyvsp[0].str), "0") != 0) || db < 0)
7521b7c0c8c1SCy Schubert yyerror("valid redis logical database index expected");
7522b7c0c8c1SCy Schubert else cfg_parser->cfg->redis_logical_db = db;
7523b7c0c8c1SCy Schubert #else
7524b7c0c8c1SCy Schubert OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
7525b7c0c8c1SCy Schubert #endif
7526b7c0c8c1SCy Schubert free((yyvsp[0].str));
7527b7c0c8c1SCy Schubert }
7528*335c7cdaSCy Schubert #line 7529 "util/configparser.c"
7529b7c0c8c1SCy Schubert break;
7530b7c0c8c1SCy Schubert
7531*335c7cdaSCy Schubert case 732: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */
7532*335c7cdaSCy Schubert #line 3937 "util/configparser.y"
7533b7c0c8c1SCy Schubert {
7534b7c0c8c1SCy Schubert OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
7535b7c0c8c1SCy Schubert if (atoi((yyvsp[0].str)) < 0)
7536b7c0c8c1SCy Schubert yyerror("positive number expected");
7537b7c0c8c1SCy Schubert else {
7538b7c0c8c1SCy Schubert if(!cfg_str2list_insert(&cfg_parser->cfg->tcp_connection_limits, (yyvsp[-1].str), (yyvsp[0].str)))
7539b7c0c8c1SCy Schubert fatal_exit("out of memory adding tcp connection limit");
7540b7c0c8c1SCy Schubert }
7541b7c0c8c1SCy Schubert }
7542*335c7cdaSCy Schubert #line 7543 "util/configparser.c"
7543b7c0c8c1SCy Schubert break;
7544b7c0c8c1SCy Schubert
7545*335c7cdaSCy Schubert case 733: /* server_answer_cookie: VAR_ANSWER_COOKIE STRING_ARG */
7546*335c7cdaSCy Schubert #line 3948 "util/configparser.y"
7547b7c0c8c1SCy Schubert {
7548b7c0c8c1SCy Schubert OUTYY(("P(server_answer_cookie:%s)\n", (yyvsp[0].str)));
7549b7c0c8c1SCy Schubert if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
7550b7c0c8c1SCy Schubert yyerror("expected yes or no.");
7551b7c0c8c1SCy Schubert else cfg_parser->cfg->do_answer_cookie = (strcmp((yyvsp[0].str), "yes")==0);
7552b7c0c8c1SCy Schubert free((yyvsp[0].str));
7553b7c0c8c1SCy Schubert }
7554*335c7cdaSCy Schubert #line 7555 "util/configparser.c"
7555b7c0c8c1SCy Schubert break;
7556b7c0c8c1SCy Schubert
7557*335c7cdaSCy Schubert case 734: /* server_cookie_secret: VAR_COOKIE_SECRET STRING_ARG */
7558*335c7cdaSCy Schubert #line 3957 "util/configparser.y"
7559b7c0c8c1SCy Schubert {
7560b7c0c8c1SCy Schubert uint8_t secret[32];
7561b7c0c8c1SCy Schubert size_t secret_len = sizeof(secret);
7562b7c0c8c1SCy Schubert
7563b7c0c8c1SCy Schubert OUTYY(("P(server_cookie_secret:%s)\n", (yyvsp[0].str)));
7564b7c0c8c1SCy Schubert if(sldns_str2wire_hex_buf((yyvsp[0].str), secret, &secret_len)
7565b7c0c8c1SCy Schubert || (secret_len != 16))
7566b7c0c8c1SCy Schubert yyerror("expected 128 bit hex string");
7567b7c0c8c1SCy Schubert else {
7568b7c0c8c1SCy Schubert cfg_parser->cfg->cookie_secret_len = secret_len;
7569b7c0c8c1SCy Schubert memcpy(cfg_parser->cfg->cookie_secret, secret, sizeof(secret));
7570b7c0c8c1SCy Schubert }
7571b7c0c8c1SCy Schubert free((yyvsp[0].str));
7572b7c0c8c1SCy Schubert }
7573*335c7cdaSCy Schubert #line 7574 "util/configparser.c"
7574b7c0c8c1SCy Schubert break;
7575b7c0c8c1SCy Schubert
7576*335c7cdaSCy Schubert case 735: /* ipsetstart: VAR_IPSET */
7577*335c7cdaSCy Schubert #line 3973 "util/configparser.y"
7578b7c0c8c1SCy Schubert {
7579b7c0c8c1SCy Schubert OUTYY(("\nP(ipset:)\n"));
7580b7c0c8c1SCy Schubert cfg_parser->started_toplevel = 1;
7581b7c0c8c1SCy Schubert }
7582*335c7cdaSCy Schubert #line 7583 "util/configparser.c"
7583b7c0c8c1SCy Schubert break;
7584b7c0c8c1SCy Schubert
7585*335c7cdaSCy Schubert case 740: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */
7586*335c7cdaSCy Schubert #line 3983 "util/configparser.y"
7587b7c0c8c1SCy Schubert {
7588b7c0c8c1SCy Schubert #ifdef USE_IPSET
7589b7c0c8c1SCy Schubert OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str)));
7590b7c0c8c1SCy Schubert if(cfg_parser->cfg->ipset_name_v4)
7591b7c0c8c1SCy Schubert yyerror("ipset name v4 override, there must be one "
7592b7c0c8c1SCy Schubert "name for ip v4");
7593b7c0c8c1SCy Schubert free(cfg_parser->cfg->ipset_name_v4);
7594b7c0c8c1SCy Schubert cfg_parser->cfg->ipset_name_v4 = (yyvsp[0].str);
7595b7c0c8c1SCy Schubert #else
7596b7c0c8c1SCy Schubert OUTYY(("P(Compiled without ipset, ignoring)\n"));
7597b7c0c8c1SCy Schubert free((yyvsp[0].str));
7598b7c0c8c1SCy Schubert #endif
7599b7c0c8c1SCy Schubert }
7600*335c7cdaSCy Schubert #line 7601 "util/configparser.c"
7601b7c0c8c1SCy Schubert break;
7602b7c0c8c1SCy Schubert
7603*335c7cdaSCy Schubert case 741: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */
7604*335c7cdaSCy Schubert #line 3998 "util/configparser.y"
7605b7c0c8c1SCy Schubert {
7606b7c0c8c1SCy Schubert #ifdef USE_IPSET
7607b7c0c8c1SCy Schubert OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str)));
7608b7c0c8c1SCy Schubert if(cfg_parser->cfg->ipset_name_v6)
7609b7c0c8c1SCy Schubert yyerror("ipset name v6 override, there must be one "
7610b7c0c8c1SCy Schubert "name for ip v6");
7611b7c0c8c1SCy Schubert free(cfg_parser->cfg->ipset_name_v6);
7612b7c0c8c1SCy Schubert cfg_parser->cfg->ipset_name_v6 = (yyvsp[0].str);
7613b7c0c8c1SCy Schubert #else
7614b7c0c8c1SCy Schubert OUTYY(("P(Compiled without ipset, ignoring)\n"));
7615b7c0c8c1SCy Schubert free((yyvsp[0].str));
7616b7c0c8c1SCy Schubert #endif
7617b7c0c8c1SCy Schubert }
7618*335c7cdaSCy Schubert #line 7619 "util/configparser.c"
7619b7c0c8c1SCy Schubert break;
7620b7c0c8c1SCy Schubert
7621b7c0c8c1SCy Schubert
7622*335c7cdaSCy Schubert #line 7623 "util/configparser.c"
7623b7c0c8c1SCy Schubert
7624b7c0c8c1SCy Schubert default: break;
7625b7c0c8c1SCy Schubert }
7626b7c0c8c1SCy Schubert /* User semantic actions sometimes alter yychar, and that requires
7627b7c0c8c1SCy Schubert that yytoken be updated with the new translation. We take the
7628b7c0c8c1SCy Schubert approach of translating immediately before every use of yytoken.
7629b7c0c8c1SCy Schubert One alternative is translating here after every semantic action,
7630b7c0c8c1SCy Schubert but that translation would be missed if the semantic action invokes
7631b7c0c8c1SCy Schubert YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
7632b7c0c8c1SCy Schubert if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
7633b7c0c8c1SCy Schubert incorrect destructor might then be invoked immediately. In the
7634b7c0c8c1SCy Schubert case of YYERROR or YYBACKUP, subsequent parser actions might lead
7635b7c0c8c1SCy Schubert to an incorrect destructor call or verbose syntax error message
7636b7c0c8c1SCy Schubert before the lookahead is translated. */
7637b7c0c8c1SCy Schubert YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
7638b7c0c8c1SCy Schubert
7639b7c0c8c1SCy Schubert YYPOPSTACK (yylen);
7640b7c0c8c1SCy Schubert yylen = 0;
7641b7c0c8c1SCy Schubert
7642b7c0c8c1SCy Schubert *++yyvsp = yyval;
7643b7c0c8c1SCy Schubert
7644b7c0c8c1SCy Schubert /* Now 'shift' the result of the reduction. Determine what state
7645b7c0c8c1SCy Schubert that goes to, based on the state we popped back to and the rule
7646b7c0c8c1SCy Schubert number reduced by. */
7647b7c0c8c1SCy Schubert {
7648b7c0c8c1SCy Schubert const int yylhs = yyr1[yyn] - YYNTOKENS;
7649b7c0c8c1SCy Schubert const int yyi = yypgoto[yylhs] + *yyssp;
7650b7c0c8c1SCy Schubert yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
7651b7c0c8c1SCy Schubert ? yytable[yyi]
7652b7c0c8c1SCy Schubert : yydefgoto[yylhs]);
7653b7c0c8c1SCy Schubert }
7654b7c0c8c1SCy Schubert
7655b7c0c8c1SCy Schubert goto yynewstate;
7656b7c0c8c1SCy Schubert
7657b7c0c8c1SCy Schubert
7658b7c0c8c1SCy Schubert /*--------------------------------------.
7659b7c0c8c1SCy Schubert | yyerrlab -- here on detecting error. |
7660b7c0c8c1SCy Schubert `--------------------------------------*/
7661b7c0c8c1SCy Schubert yyerrlab:
7662b7c0c8c1SCy Schubert /* Make sure we have latest lookahead translation. See comments at
7663b7c0c8c1SCy Schubert user semantic actions for why this is necessary. */
7664b7c0c8c1SCy Schubert yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
7665b7c0c8c1SCy Schubert /* If not already recovering from an error, report this error. */
7666b7c0c8c1SCy Schubert if (!yyerrstatus)
7667b7c0c8c1SCy Schubert {
7668b7c0c8c1SCy Schubert ++yynerrs;
7669b7c0c8c1SCy Schubert yyerror (YY_("syntax error"));
7670b7c0c8c1SCy Schubert }
7671b7c0c8c1SCy Schubert
7672b7c0c8c1SCy Schubert if (yyerrstatus == 3)
7673b7c0c8c1SCy Schubert {
7674b7c0c8c1SCy Schubert /* If just tried and failed to reuse lookahead token after an
7675b7c0c8c1SCy Schubert error, discard it. */
7676b7c0c8c1SCy Schubert
7677b7c0c8c1SCy Schubert if (yychar <= YYEOF)
7678b7c0c8c1SCy Schubert {
7679b7c0c8c1SCy Schubert /* Return failure if at end of input. */
7680b7c0c8c1SCy Schubert if (yychar == YYEOF)
7681b7c0c8c1SCy Schubert YYABORT;
7682b7c0c8c1SCy Schubert }
7683b7c0c8c1SCy Schubert else
7684b7c0c8c1SCy Schubert {
7685b7c0c8c1SCy Schubert yydestruct ("Error: discarding",
7686b7c0c8c1SCy Schubert yytoken, &yylval);
7687b7c0c8c1SCy Schubert yychar = YYEMPTY;
7688b7c0c8c1SCy Schubert }
7689b7c0c8c1SCy Schubert }
7690b7c0c8c1SCy Schubert
7691b7c0c8c1SCy Schubert /* Else will try to reuse lookahead token after shifting the error
7692b7c0c8c1SCy Schubert token. */
7693b7c0c8c1SCy Schubert goto yyerrlab1;
7694b7c0c8c1SCy Schubert
7695b7c0c8c1SCy Schubert
7696b7c0c8c1SCy Schubert /*---------------------------------------------------.
7697b7c0c8c1SCy Schubert | yyerrorlab -- error raised explicitly by YYERROR. |
7698b7c0c8c1SCy Schubert `---------------------------------------------------*/
7699b7c0c8c1SCy Schubert yyerrorlab:
7700b7c0c8c1SCy Schubert /* Pacify compilers when the user code never invokes YYERROR and the
7701b7c0c8c1SCy Schubert label yyerrorlab therefore never appears in user code. */
7702b7c0c8c1SCy Schubert if (0)
7703b7c0c8c1SCy Schubert YYERROR;
7704b7c0c8c1SCy Schubert
7705b7c0c8c1SCy Schubert /* Do not reclaim the symbols of the rule whose action triggered
7706b7c0c8c1SCy Schubert this YYERROR. */
7707b7c0c8c1SCy Schubert YYPOPSTACK (yylen);
7708b7c0c8c1SCy Schubert yylen = 0;
7709b7c0c8c1SCy Schubert YY_STACK_PRINT (yyss, yyssp);
7710b7c0c8c1SCy Schubert yystate = *yyssp;
7711b7c0c8c1SCy Schubert goto yyerrlab1;
7712b7c0c8c1SCy Schubert
7713b7c0c8c1SCy Schubert
7714b7c0c8c1SCy Schubert /*-------------------------------------------------------------.
7715b7c0c8c1SCy Schubert | yyerrlab1 -- common code for both syntax error and YYERROR. |
7716b7c0c8c1SCy Schubert `-------------------------------------------------------------*/
7717b7c0c8c1SCy Schubert yyerrlab1:
7718b7c0c8c1SCy Schubert yyerrstatus = 3; /* Each real token shifted decrements this. */
7719b7c0c8c1SCy Schubert
7720b7c0c8c1SCy Schubert /* Pop stack until we find a state that shifts the error token. */
7721b7c0c8c1SCy Schubert for (;;)
7722b7c0c8c1SCy Schubert {
7723b7c0c8c1SCy Schubert yyn = yypact[yystate];
7724b7c0c8c1SCy Schubert if (!yypact_value_is_default (yyn))
7725b7c0c8c1SCy Schubert {
7726b7c0c8c1SCy Schubert yyn += YYSYMBOL_YYerror;
7727b7c0c8c1SCy Schubert if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
7728b7c0c8c1SCy Schubert {
7729b7c0c8c1SCy Schubert yyn = yytable[yyn];
7730b7c0c8c1SCy Schubert if (0 < yyn)
7731b7c0c8c1SCy Schubert break;
7732b7c0c8c1SCy Schubert }
7733b7c0c8c1SCy Schubert }
7734b7c0c8c1SCy Schubert
7735b7c0c8c1SCy Schubert /* Pop the current state because it cannot handle the error token. */
7736b7c0c8c1SCy Schubert if (yyssp == yyss)
7737b7c0c8c1SCy Schubert YYABORT;
7738b7c0c8c1SCy Schubert
7739b7c0c8c1SCy Schubert
7740b7c0c8c1SCy Schubert yydestruct ("Error: popping",
7741b7c0c8c1SCy Schubert YY_ACCESSING_SYMBOL (yystate), yyvsp);
7742b7c0c8c1SCy Schubert YYPOPSTACK (1);
7743b7c0c8c1SCy Schubert yystate = *yyssp;
7744b7c0c8c1SCy Schubert YY_STACK_PRINT (yyss, yyssp);
7745b7c0c8c1SCy Schubert }
7746b7c0c8c1SCy Schubert
7747b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7748b7c0c8c1SCy Schubert *++yyvsp = yylval;
7749b7c0c8c1SCy Schubert YY_IGNORE_MAYBE_UNINITIALIZED_END
7750b7c0c8c1SCy Schubert
7751b7c0c8c1SCy Schubert
7752b7c0c8c1SCy Schubert /* Shift the error token. */
7753b7c0c8c1SCy Schubert YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
7754b7c0c8c1SCy Schubert
7755b7c0c8c1SCy Schubert yystate = yyn;
7756b7c0c8c1SCy Schubert goto yynewstate;
7757b7c0c8c1SCy Schubert
7758b7c0c8c1SCy Schubert
7759b7c0c8c1SCy Schubert /*-------------------------------------.
7760b7c0c8c1SCy Schubert | yyacceptlab -- YYACCEPT comes here. |
7761b7c0c8c1SCy Schubert `-------------------------------------*/
7762b7c0c8c1SCy Schubert yyacceptlab:
7763b7c0c8c1SCy Schubert yyresult = 0;
7764b7c0c8c1SCy Schubert goto yyreturn;
7765b7c0c8c1SCy Schubert
7766b7c0c8c1SCy Schubert
7767b7c0c8c1SCy Schubert /*-----------------------------------.
7768b7c0c8c1SCy Schubert | yyabortlab -- YYABORT comes here. |
7769b7c0c8c1SCy Schubert `-----------------------------------*/
7770b7c0c8c1SCy Schubert yyabortlab:
7771b7c0c8c1SCy Schubert yyresult = 1;
7772b7c0c8c1SCy Schubert goto yyreturn;
7773b7c0c8c1SCy Schubert
7774b7c0c8c1SCy Schubert
7775b7c0c8c1SCy Schubert #if !defined yyoverflow
7776b7c0c8c1SCy Schubert /*-------------------------------------------------.
7777b7c0c8c1SCy Schubert | yyexhaustedlab -- memory exhaustion comes here. |
7778b7c0c8c1SCy Schubert `-------------------------------------------------*/
7779b7c0c8c1SCy Schubert yyexhaustedlab:
7780b7c0c8c1SCy Schubert yyerror (YY_("memory exhausted"));
7781b7c0c8c1SCy Schubert yyresult = 2;
7782b7c0c8c1SCy Schubert goto yyreturn;
7783b7c0c8c1SCy Schubert #endif
7784b7c0c8c1SCy Schubert
7785b7c0c8c1SCy Schubert
7786b7c0c8c1SCy Schubert /*-------------------------------------------------------.
7787b7c0c8c1SCy Schubert | yyreturn -- parsing is finished, clean up and return. |
7788b7c0c8c1SCy Schubert `-------------------------------------------------------*/
7789b7c0c8c1SCy Schubert yyreturn:
7790b7c0c8c1SCy Schubert if (yychar != YYEMPTY)
7791b7c0c8c1SCy Schubert {
7792b7c0c8c1SCy Schubert /* Make sure we have latest lookahead translation. See comments at
7793b7c0c8c1SCy Schubert user semantic actions for why this is necessary. */
7794b7c0c8c1SCy Schubert yytoken = YYTRANSLATE (yychar);
7795b7c0c8c1SCy Schubert yydestruct ("Cleanup: discarding lookahead",
7796b7c0c8c1SCy Schubert yytoken, &yylval);
7797b7c0c8c1SCy Schubert }
7798b7c0c8c1SCy Schubert /* Do not reclaim the symbols of the rule whose action triggered
7799b7c0c8c1SCy Schubert this YYABORT or YYACCEPT. */
7800b7c0c8c1SCy Schubert YYPOPSTACK (yylen);
7801b7c0c8c1SCy Schubert YY_STACK_PRINT (yyss, yyssp);
7802b7c0c8c1SCy Schubert while (yyssp != yyss)
7803b7c0c8c1SCy Schubert {
7804b7c0c8c1SCy Schubert yydestruct ("Cleanup: popping",
7805b7c0c8c1SCy Schubert YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
7806b7c0c8c1SCy Schubert YYPOPSTACK (1);
7807b7c0c8c1SCy Schubert }
7808b7c0c8c1SCy Schubert #ifndef yyoverflow
7809b7c0c8c1SCy Schubert if (yyss != yyssa)
7810b7c0c8c1SCy Schubert YYSTACK_FREE (yyss);
7811b7c0c8c1SCy Schubert #endif
7812b7c0c8c1SCy Schubert
7813b7c0c8c1SCy Schubert return yyresult;
7814b7c0c8c1SCy Schubert }
7815b7c0c8c1SCy Schubert
7816*335c7cdaSCy Schubert #line 4012 "util/configparser.y"
7817b7c0c8c1SCy Schubert
7818b7c0c8c1SCy Schubert
7819b7c0c8c1SCy Schubert /* parse helper routines could be here */
7820b7c0c8c1SCy Schubert static void
validate_respip_action(const char * action)7821b7c0c8c1SCy Schubert validate_respip_action(const char* action)
7822b7c0c8c1SCy Schubert {
7823b7c0c8c1SCy Schubert if(strcmp(action, "deny")!=0 &&
7824b7c0c8c1SCy Schubert strcmp(action, "redirect")!=0 &&
7825b7c0c8c1SCy Schubert strcmp(action, "inform")!=0 &&
7826b7c0c8c1SCy Schubert strcmp(action, "inform_deny")!=0 &&
7827b7c0c8c1SCy Schubert strcmp(action, "always_transparent")!=0 &&
7828b7c0c8c1SCy Schubert strcmp(action, "always_refuse")!=0 &&
7829b7c0c8c1SCy Schubert strcmp(action, "always_nxdomain")!=0)
7830b7c0c8c1SCy Schubert {
7831b7c0c8c1SCy Schubert yyerror("response-ip action: expected deny, redirect, "
7832b7c0c8c1SCy Schubert "inform, inform_deny, always_transparent, "
7833b7c0c8c1SCy Schubert "always_refuse or always_nxdomain");
7834b7c0c8c1SCy Schubert }
7835b7c0c8c1SCy Schubert }
7836b7c0c8c1SCy Schubert
7837b7c0c8c1SCy Schubert static void
validate_acl_action(const char * action)7838b7c0c8c1SCy Schubert validate_acl_action(const char* action)
7839b7c0c8c1SCy Schubert {
7840b7c0c8c1SCy Schubert if(strcmp(action, "deny")!=0 &&
7841b7c0c8c1SCy Schubert strcmp(action, "refuse")!=0 &&
7842b7c0c8c1SCy Schubert strcmp(action, "deny_non_local")!=0 &&
7843b7c0c8c1SCy Schubert strcmp(action, "refuse_non_local")!=0 &&
7844b7c0c8c1SCy Schubert strcmp(action, "allow_setrd")!=0 &&
7845b7c0c8c1SCy Schubert strcmp(action, "allow")!=0 &&
7846b7c0c8c1SCy Schubert strcmp(action, "allow_snoop")!=0 &&
7847b7c0c8c1SCy Schubert strcmp(action, "allow_cookie")!=0)
7848b7c0c8c1SCy Schubert {
7849b7c0c8c1SCy Schubert yyerror("expected deny, refuse, deny_non_local, "
7850b7c0c8c1SCy Schubert "refuse_non_local, allow, allow_setrd, "
7851b7c0c8c1SCy Schubert "allow_snoop or allow_cookie as access control action");
7852b7c0c8c1SCy Schubert }
7853b7c0c8c1SCy Schubert }
7854