1 /* A Bison parser, made by GNU Bison 2.3. */
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6 Free Software Foundation, Inc.
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2, or (at your option)
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
23 /* As a special exception, you may create a larger work that contains
24 part or all of the Bison parser skeleton and distribute that work
25 under terms of your choice, so long as that work isn't itself a
26 parser generator using the skeleton or a modified version thereof
27 as a parser skeleton. Alternatively, if you modify or redistribute
28 the parser skeleton itself, you may (at your option) remove this
29 special exception, which will cause the skeleton and the resulting
30 Bison output files to be licensed under the GNU General Public
31 License without this special exception.
33 This special exception was added by the Free Software Foundation in
34 version 2.2 of Bison. */
36 /* C LALR(1) parser skeleton written by Richard Stallman, by
37 simplifying the original so-called "semantic" parser. */
39 /* All symbols defined below should begin with yy or YY, to avoid
40 infringing on user name space. This should be done even for local
41 variables, as they might otherwise be expanded by user macros.
42 There are some unavoidable exceptions within include files to
43 define necessary library symbols; they are noted "INFRINGES ON
44 USER NAME SPACE" below. */
46 /* Identify Bison output. */
50 #define YYBISON_VERSION "2.3"
53 #define YYSKELETON_NAME "yacc.c"
58 /* Using locations. */
59 #define YYLSP_NEEDED 0
66 /* Put the tokens into the symbol table, so that GDB and other debuggers
79 VAR_NUM_THREADS
= 268,
81 VAR_OUTGOING_RANGE
= 270,
92 VAR_MSG_CACHE_SIZE
= 281,
93 VAR_MSG_CACHE_SLABS
= 282,
94 VAR_NUM_QUERIES_PER_THREAD
= 283,
95 VAR_RRSET_CACHE_SIZE
= 284,
96 VAR_RRSET_CACHE_SLABS
= 285,
97 VAR_OUTGOING_NUM_TCP
= 286,
98 VAR_INFRA_HOST_TTL
= 287,
99 VAR_INFRA_LAME_TTL
= 288,
100 VAR_INFRA_CACHE_SLABS
= 289,
101 VAR_INFRA_CACHE_NUMHOSTS
= 290,
102 VAR_INFRA_CACHE_LAME_SIZE
= 291,
107 VAR_TARGET_FETCH_POLICY
= 296,
108 VAR_HARDEN_SHORT_BUFSIZE
= 297,
109 VAR_HARDEN_LARGE_QUERIES
= 298,
110 VAR_FORWARD_ZONE
= 299,
111 VAR_FORWARD_HOST
= 300,
112 VAR_FORWARD_ADDR
= 301,
113 VAR_DO_NOT_QUERY_ADDRESS
= 302,
114 VAR_HIDE_IDENTITY
= 303,
115 VAR_HIDE_VERSION
= 304,
118 VAR_HARDEN_GLUE
= 307,
119 VAR_MODULE_CONF
= 308,
120 VAR_TRUST_ANCHOR_FILE
= 309,
121 VAR_TRUST_ANCHOR
= 310,
122 VAR_VAL_OVERRIDE_DATE
= 311,
124 VAR_VAL_CLEAN_ADDITIONAL
= 313,
125 VAR_VAL_PERMISSIVE_MODE
= 314,
126 VAR_INCOMING_NUM_TCP
= 315,
127 VAR_MSG_BUFFER_SIZE
= 316,
128 VAR_KEY_CACHE_SIZE
= 317,
129 VAR_KEY_CACHE_SLABS
= 318,
130 VAR_TRUSTED_KEYS_FILE
= 319,
131 VAR_VAL_NSEC3_KEYSIZE_ITERATIONS
= 320,
132 VAR_USE_SYSLOG
= 321,
133 VAR_OUTGOING_INTERFACE
= 322,
134 VAR_ROOT_HINTS
= 323,
135 VAR_DO_NOT_QUERY_LOCALHOST
= 324,
136 VAR_CACHE_MAX_TTL
= 325,
137 VAR_HARDEN_DNSSEC_STRIPPED
= 326,
138 VAR_ACCESS_CONTROL
= 327,
139 VAR_LOCAL_ZONE
= 328,
140 VAR_LOCAL_DATA
= 329,
141 VAR_INTERFACE_AUTOMATIC
= 330,
142 VAR_STATISTICS_INTERVAL
= 331,
143 VAR_DO_DAEMONIZE
= 332,
144 VAR_USE_CAPS_FOR_ID
= 333,
145 VAR_STATISTICS_CUMULATIVE
= 334,
146 VAR_OUTGOING_PORT_PERMIT
= 335,
147 VAR_OUTGOING_PORT_AVOID
= 336,
148 VAR_DLV_ANCHOR_FILE
= 337,
149 VAR_DLV_ANCHOR
= 338,
150 VAR_NEG_CACHE_SIZE
= 339,
151 VAR_HARDEN_REFERRAL_PATH
= 340,
152 VAR_PRIVATE_ADDRESS
= 341,
153 VAR_PRIVATE_DOMAIN
= 342,
154 VAR_REMOTE_CONTROL
= 343,
155 VAR_CONTROL_ENABLE
= 344,
156 VAR_CONTROL_INTERFACE
= 345,
157 VAR_CONTROL_PORT
= 346,
158 VAR_SERVER_KEY_FILE
= 347,
159 VAR_SERVER_CERT_FILE
= 348,
160 VAR_CONTROL_KEY_FILE
= 349,
161 VAR_CONTROL_CERT_FILE
= 350,
162 VAR_EXTENDED_STATISTICS
= 351,
163 VAR_LOCAL_DATA_PTR
= 352,
164 VAR_JOSTLE_TIMEOUT
= 353,
165 VAR_STUB_PRIME
= 354,
166 VAR_UNWANTED_REPLY_THRESHOLD
= 355,
167 VAR_LOG_TIME_ASCII
= 356,
168 VAR_DOMAIN_INSECURE
= 357,
170 VAR_PYTHON_SCRIPT
= 359,
171 VAR_VAL_SIG_SKEW_MIN
= 360,
172 VAR_VAL_SIG_SKEW_MAX
= 361,
173 VAR_CACHE_MIN_TTL
= 362,
174 VAR_VAL_LOG_LEVEL
= 363,
175 VAR_AUTO_TRUST_ANCHOR_FILE
= 364,
176 VAR_KEEP_MISSING
= 365,
177 VAR_ADD_HOLDDOWN
= 366,
178 VAR_DEL_HOLDDOWN
= 367,
180 VAR_EDNS_BUFFER_SIZE
= 369,
182 VAR_PREFETCH_KEY
= 371,
184 VAR_SO_REUSEPORT
= 373,
185 VAR_HARDEN_BELOW_NXDOMAIN
= 374,
186 VAR_IGNORE_CD_FLAG
= 375,
187 VAR_LOG_QUERIES
= 376,
188 VAR_TCP_UPSTREAM
= 377,
189 VAR_SSL_UPSTREAM
= 378,
190 VAR_SSL_SERVICE_KEY
= 379,
191 VAR_SSL_SERVICE_PEM
= 380,
193 VAR_FORWARD_FIRST
= 382,
194 VAR_STUB_FIRST
= 383,
195 VAR_MINIMAL_RESPONSES
= 384,
196 VAR_RRSET_ROUNDROBIN
= 385,
197 VAR_MAX_UDP_SIZE
= 386,
198 VAR_DELAY_CLOSE
= 387,
199 VAR_UNBLOCK_LAN_ZONES
= 388,
200 VAR_DNS64_PREFIX
= 389,
201 VAR_DNS64_SYNTHALL
= 390,
203 VAR_DNSTAP_ENABLE
= 392,
204 VAR_DNSTAP_SOCKET_PATH
= 393,
205 VAR_DNSTAP_SEND_IDENTITY
= 394,
206 VAR_DNSTAP_SEND_VERSION
= 395,
207 VAR_DNSTAP_IDENTITY
= 396,
208 VAR_DNSTAP_VERSION
= 397,
209 VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES
= 398,
210 VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES
= 399,
211 VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES
= 400,
212 VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES
= 401,
213 VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES
= 402,
214 VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES
= 403
225 #define STRING_ARG 265
226 #define VAR_SERVER 266
227 #define VAR_VERBOSITY 267
228 #define VAR_NUM_THREADS 268
230 #define VAR_OUTGOING_RANGE 270
231 #define VAR_INTERFACE 271
232 #define VAR_DO_IP4 272
233 #define VAR_DO_IP6 273
234 #define VAR_DO_UDP 274
235 #define VAR_DO_TCP 275
236 #define VAR_CHROOT 276
237 #define VAR_USERNAME 277
238 #define VAR_DIRECTORY 278
239 #define VAR_LOGFILE 279
240 #define VAR_PIDFILE 280
241 #define VAR_MSG_CACHE_SIZE 281
242 #define VAR_MSG_CACHE_SLABS 282
243 #define VAR_NUM_QUERIES_PER_THREAD 283
244 #define VAR_RRSET_CACHE_SIZE 284
245 #define VAR_RRSET_CACHE_SLABS 285
246 #define VAR_OUTGOING_NUM_TCP 286
247 #define VAR_INFRA_HOST_TTL 287
248 #define VAR_INFRA_LAME_TTL 288
249 #define VAR_INFRA_CACHE_SLABS 289
250 #define VAR_INFRA_CACHE_NUMHOSTS 290
251 #define VAR_INFRA_CACHE_LAME_SIZE 291
253 #define VAR_STUB_ZONE 293
254 #define VAR_STUB_HOST 294
255 #define VAR_STUB_ADDR 295
256 #define VAR_TARGET_FETCH_POLICY 296
257 #define VAR_HARDEN_SHORT_BUFSIZE 297
258 #define VAR_HARDEN_LARGE_QUERIES 298
259 #define VAR_FORWARD_ZONE 299
260 #define VAR_FORWARD_HOST 300
261 #define VAR_FORWARD_ADDR 301
262 #define VAR_DO_NOT_QUERY_ADDRESS 302
263 #define VAR_HIDE_IDENTITY 303
264 #define VAR_HIDE_VERSION 304
265 #define VAR_IDENTITY 305
266 #define VAR_VERSION 306
267 #define VAR_HARDEN_GLUE 307
268 #define VAR_MODULE_CONF 308
269 #define VAR_TRUST_ANCHOR_FILE 309
270 #define VAR_TRUST_ANCHOR 310
271 #define VAR_VAL_OVERRIDE_DATE 311
272 #define VAR_BOGUS_TTL 312
273 #define VAR_VAL_CLEAN_ADDITIONAL 313
274 #define VAR_VAL_PERMISSIVE_MODE 314
275 #define VAR_INCOMING_NUM_TCP 315
276 #define VAR_MSG_BUFFER_SIZE 316
277 #define VAR_KEY_CACHE_SIZE 317
278 #define VAR_KEY_CACHE_SLABS 318
279 #define VAR_TRUSTED_KEYS_FILE 319
280 #define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 320
281 #define VAR_USE_SYSLOG 321
282 #define VAR_OUTGOING_INTERFACE 322
283 #define VAR_ROOT_HINTS 323
284 #define VAR_DO_NOT_QUERY_LOCALHOST 324
285 #define VAR_CACHE_MAX_TTL 325
286 #define VAR_HARDEN_DNSSEC_STRIPPED 326
287 #define VAR_ACCESS_CONTROL 327
288 #define VAR_LOCAL_ZONE 328
289 #define VAR_LOCAL_DATA 329
290 #define VAR_INTERFACE_AUTOMATIC 330
291 #define VAR_STATISTICS_INTERVAL 331
292 #define VAR_DO_DAEMONIZE 332
293 #define VAR_USE_CAPS_FOR_ID 333
294 #define VAR_STATISTICS_CUMULATIVE 334
295 #define VAR_OUTGOING_PORT_PERMIT 335
296 #define VAR_OUTGOING_PORT_AVOID 336
297 #define VAR_DLV_ANCHOR_FILE 337
298 #define VAR_DLV_ANCHOR 338
299 #define VAR_NEG_CACHE_SIZE 339
300 #define VAR_HARDEN_REFERRAL_PATH 340
301 #define VAR_PRIVATE_ADDRESS 341
302 #define VAR_PRIVATE_DOMAIN 342
303 #define VAR_REMOTE_CONTROL 343
304 #define VAR_CONTROL_ENABLE 344
305 #define VAR_CONTROL_INTERFACE 345
306 #define VAR_CONTROL_PORT 346
307 #define VAR_SERVER_KEY_FILE 347
308 #define VAR_SERVER_CERT_FILE 348
309 #define VAR_CONTROL_KEY_FILE 349
310 #define VAR_CONTROL_CERT_FILE 350
311 #define VAR_EXTENDED_STATISTICS 351
312 #define VAR_LOCAL_DATA_PTR 352
313 #define VAR_JOSTLE_TIMEOUT 353
314 #define VAR_STUB_PRIME 354
315 #define VAR_UNWANTED_REPLY_THRESHOLD 355
316 #define VAR_LOG_TIME_ASCII 356
317 #define VAR_DOMAIN_INSECURE 357
318 #define VAR_PYTHON 358
319 #define VAR_PYTHON_SCRIPT 359
320 #define VAR_VAL_SIG_SKEW_MIN 360
321 #define VAR_VAL_SIG_SKEW_MAX 361
322 #define VAR_CACHE_MIN_TTL 362
323 #define VAR_VAL_LOG_LEVEL 363
324 #define VAR_AUTO_TRUST_ANCHOR_FILE 364
325 #define VAR_KEEP_MISSING 365
326 #define VAR_ADD_HOLDDOWN 366
327 #define VAR_DEL_HOLDDOWN 367
328 #define VAR_SO_RCVBUF 368
329 #define VAR_EDNS_BUFFER_SIZE 369
330 #define VAR_PREFETCH 370
331 #define VAR_PREFETCH_KEY 371
332 #define VAR_SO_SNDBUF 372
333 #define VAR_SO_REUSEPORT 373
334 #define VAR_HARDEN_BELOW_NXDOMAIN 374
335 #define VAR_IGNORE_CD_FLAG 375
336 #define VAR_LOG_QUERIES 376
337 #define VAR_TCP_UPSTREAM 377
338 #define VAR_SSL_UPSTREAM 378
339 #define VAR_SSL_SERVICE_KEY 379
340 #define VAR_SSL_SERVICE_PEM 380
341 #define VAR_SSL_PORT 381
342 #define VAR_FORWARD_FIRST 382
343 #define VAR_STUB_FIRST 383
344 #define VAR_MINIMAL_RESPONSES 384
345 #define VAR_RRSET_ROUNDROBIN 385
346 #define VAR_MAX_UDP_SIZE 386
347 #define VAR_DELAY_CLOSE 387
348 #define VAR_UNBLOCK_LAN_ZONES 388
349 #define VAR_DNS64_PREFIX 389
350 #define VAR_DNS64_SYNTHALL 390
351 #define VAR_DNSTAP 391
352 #define VAR_DNSTAP_ENABLE 392
353 #define VAR_DNSTAP_SOCKET_PATH 393
354 #define VAR_DNSTAP_SEND_IDENTITY 394
355 #define VAR_DNSTAP_SEND_VERSION 395
356 #define VAR_DNSTAP_IDENTITY 396
357 #define VAR_DNSTAP_VERSION 397
358 #define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 398
359 #define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 399
360 #define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 400
361 #define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 401
362 #define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 402
363 #define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 403
368 /* Copy the first part of user declarations. */
369 #line 38 "./util/configparser.y"
379 #include "util/configyyrename.h"
380 #include "util/config_file.h"
381 #include "util/net_help.h"
384 void ub_c_error(const char *message
);
386 /* these need to be global, otherwise they cannot be used inside yacc */
387 extern struct config_parser_state
* cfg_parser
;
390 #define OUTYY(s) printf s /* used ONLY when debugging */
397 /* Enabling traces. */
402 /* Enabling verbose error messages. */
403 #ifdef YYERROR_VERBOSE
404 # undef YYERROR_VERBOSE
405 # define YYERROR_VERBOSE 1
407 # define YYERROR_VERBOSE 0
410 /* Enabling the token table. */
411 #ifndef YYTOKEN_TABLE
412 # define YYTOKEN_TABLE 0
415 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
416 typedef union YYSTYPE
417 #line 64 "./util/configparser.y"
421 /* Line 193 of yacc.c. */
422 #line 423 "util/configparser.c"
424 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
425 # define YYSTYPE_IS_DECLARED 1
426 # define YYSTYPE_IS_TRIVIAL 1
431 /* Copy the second part of user declarations. */
434 /* Line 216 of yacc.c. */
435 #line 436 "util/configparser.c"
442 typedef YYTYPE_UINT8 yytype_uint8
;
444 typedef unsigned char yytype_uint8
;
448 typedef YYTYPE_INT8 yytype_int8
;
449 #elif (defined __STDC__ || defined __C99__FUNC__ \
450 || defined __cplusplus || defined _MSC_VER)
451 typedef signed char yytype_int8
;
453 typedef short int yytype_int8
;
457 typedef YYTYPE_UINT16 yytype_uint16
;
459 typedef unsigned short int yytype_uint16
;
463 typedef YYTYPE_INT16 yytype_int16
;
465 typedef short int yytype_int16
;
469 # ifdef __SIZE_TYPE__
470 # define YYSIZE_T __SIZE_TYPE__
471 # elif defined size_t
472 # define YYSIZE_T size_t
473 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
474 || defined __cplusplus || defined _MSC_VER)
475 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
476 # define YYSIZE_T size_t
478 # define YYSIZE_T unsigned int
482 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
485 # if defined YYENABLE_NLS && YYENABLE_NLS
487 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
488 # define YY_(msgid) dgettext ("bison-runtime", msgid)
492 # define YY_(msgid) msgid
496 /* Suppress unused-variable warnings by "using" E. */
497 #if ! defined lint || defined __GNUC__
498 # define YYUSE(e) ((void) (e))
500 # define YYUSE(e) /* empty */
503 /* Identity function, used to suppress warnings about constant conditions. */
507 #if (defined __STDC__ || defined __C99__FUNC__ \
508 || defined __cplusplus || defined _MSC_VER)
521 #if ! defined yyoverflow || YYERROR_VERBOSE
523 /* The parser invokes alloca or malloc; define the necessary symbols. */
525 # ifdef YYSTACK_USE_ALLOCA
526 # if YYSTACK_USE_ALLOCA
528 # define YYSTACK_ALLOC __builtin_alloca
529 # elif defined __BUILTIN_VA_ARG_INCR
530 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
532 # define YYSTACK_ALLOC __alloca
533 # elif defined _MSC_VER
534 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
535 # define alloca _alloca
537 # define YYSTACK_ALLOC alloca
538 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
539 || defined __cplusplus || defined _MSC_VER)
540 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
549 # ifdef YYSTACK_ALLOC
550 /* Pacify GCC's `empty if-body' warning. */
551 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
552 # ifndef YYSTACK_ALLOC_MAXIMUM
553 /* The OS might guarantee only one guard page at the bottom of the stack,
554 and a page size can be as small as 4096 bytes. So we cannot safely
555 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
556 to allow for a few compiler-allocated temporary stack slots. */
557 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
560 # define YYSTACK_ALLOC YYMALLOC
561 # define YYSTACK_FREE YYFREE
562 # ifndef YYSTACK_ALLOC_MAXIMUM
563 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
565 # if (defined __cplusplus && ! defined _STDLIB_H \
566 && ! ((defined YYMALLOC || defined malloc) \
567 && (defined YYFREE || defined free)))
568 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
574 # define YYMALLOC malloc
575 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
576 || defined __cplusplus || defined _MSC_VER)
577 void *malloc (YYSIZE_T
); /* INFRINGES ON USER NAME SPACE */
582 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
583 || defined __cplusplus || defined _MSC_VER)
584 void free (void *); /* INFRINGES ON USER NAME SPACE */
588 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
591 #if (! defined yyoverflow \
592 && (! defined __cplusplus \
593 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
595 /* A type that is properly aligned for any stack member. */
602 /* The size of the maximum gap between one aligned stack and the next. */
603 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
605 /* The size of an array large to enough to hold all stacks, each with
607 # define YYSTACK_BYTES(N) \
608 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
609 + YYSTACK_GAP_MAXIMUM)
611 /* Copy COUNT objects from FROM to TO. The source and destination do
614 # if defined __GNUC__ && 1 < __GNUC__
615 # define YYCOPY(To, From, Count) \
616 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
618 # define YYCOPY(To, From, Count) \
622 for (yyi = 0; yyi < (Count); yyi++) \
623 (To)[yyi] = (From)[yyi]; \
629 /* Relocate STACK from its old location to the new one. The
630 local variables YYSIZE and YYSTACKSIZE give the old and new number of
631 elements in the stack, and YYPTR gives the new location of the
632 stack. Advance YYPTR to a properly aligned location for the next
634 # define YYSTACK_RELOCATE(Stack) \
637 YYSIZE_T yynewbytes; \
638 YYCOPY (&yyptr->Stack, Stack, yysize); \
639 Stack = &yyptr->Stack; \
640 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
641 yyptr += yynewbytes / sizeof (*yyptr); \
647 /* YYFINAL -- State number of the termination state. */
649 /* YYLAST -- Last index in YYTABLE. */
652 /* YYNTOKENS -- Number of terminals. */
653 #define YYNTOKENS 149
654 /* YYNNTS -- Number of nonterminals. */
656 /* YYNRULES -- Number of rules. */
658 /* YYNRULES -- Number of states. */
659 #define YYNSTATES 429
661 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
663 #define YYMAXUTOK 403
665 #define YYTRANSLATE(YYX) \
666 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
668 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
669 static const yytype_uint8 yytranslate
[] =
671 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
672 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
673 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
674 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
675 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
676 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
677 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
678 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
679 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
680 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
681 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
682 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
683 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
684 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
685 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
686 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
687 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
688 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
689 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
690 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
691 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
692 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
693 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
694 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
695 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
696 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
697 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
698 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
699 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
700 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
701 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
702 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
703 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
704 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
705 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
706 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
707 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
708 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
709 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
710 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
715 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
717 static const yytype_uint16 yyprhs
[] =
719 0, 0, 3, 4, 7, 10, 13, 16, 19, 22,
720 25, 27, 30, 31, 33, 35, 37, 39, 41, 43,
721 45, 47, 49, 51, 53, 55, 57, 59, 61, 63,
722 65, 67, 69, 71, 73, 75, 77, 79, 81, 83,
723 85, 87, 89, 91, 93, 95, 97, 99, 101, 103,
724 105, 107, 109, 111, 113, 115, 117, 119, 121, 123,
725 125, 127, 129, 131, 133, 135, 137, 139, 141, 143,
726 145, 147, 149, 151, 153, 155, 157, 159, 161, 163,
727 165, 167, 169, 171, 173, 175, 177, 179, 181, 183,
728 185, 187, 189, 191, 193, 195, 197, 199, 201, 203,
729 205, 207, 209, 211, 213, 215, 217, 219, 221, 223,
730 225, 227, 229, 231, 233, 235, 237, 239, 241, 244,
731 245, 247, 249, 251, 253, 255, 257, 260, 261, 263,
732 265, 267, 269, 272, 275, 278, 281, 284, 287, 290,
733 293, 296, 299, 302, 305, 308, 311, 314, 317, 320,
734 323, 326, 329, 332, 335, 338, 341, 344, 347, 350,
735 353, 356, 359, 362, 365, 368, 371, 374, 377, 380,
736 383, 386, 389, 392, 395, 398, 401, 404, 407, 410,
737 413, 416, 419, 422, 425, 428, 431, 434, 437, 440,
738 443, 446, 449, 452, 455, 458, 461, 464, 467, 470,
739 473, 476, 479, 482, 485, 488, 491, 494, 497, 500,
740 504, 507, 510, 513, 516, 519, 522, 525, 528, 531,
741 534, 537, 540, 543, 546, 549, 552, 555, 558, 562,
742 565, 568, 571, 574, 577, 580, 583, 586, 589, 592,
743 595, 598, 601, 604, 607, 610, 612, 615, 616, 618,
744 620, 622, 624, 626, 628, 630, 633, 636, 639, 642,
745 645, 648, 651, 653, 656, 657, 659, 661, 663, 665,
746 667, 669, 671, 673, 675, 677, 679, 681, 684, 687,
747 690, 693, 696, 699, 702, 705, 708, 711, 714, 717,
751 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
752 static const yytype_int16 yyrhs
[] =
754 150, 0, -1, -1, 150, 151, -1, 152, 153, -1,
755 155, 156, -1, 158, 159, -1, 299, 300, -1, 274,
756 275, -1, 284, 285, -1, 11, -1, 153, 154, -1,
757 -1, 161, -1, 162, -1, 166, -1, 169, -1, 175,
758 -1, 176, -1, 177, -1, 178, -1, 167, -1, 188,
759 -1, 189, -1, 190, -1, 191, -1, 192, -1, 210,
760 -1, 211, -1, 212, -1, 216, -1, 217, -1, 172,
761 -1, 218, -1, 219, -1, 222, -1, 220, -1, 221,
762 -1, 223, -1, 224, -1, 225, -1, 236, -1, 201,
763 -1, 202, -1, 203, -1, 204, -1, 226, -1, 239,
764 -1, 197, -1, 199, -1, 240, -1, 245, -1, 246,
765 -1, 247, -1, 173, -1, 209, -1, 254, -1, 255,
766 -1, 198, -1, 250, -1, 185, -1, 168, -1, 193,
767 -1, 237, -1, 243, -1, 227, -1, 238, -1, 257,
768 -1, 258, -1, 174, -1, 163, -1, 184, -1, 230,
769 -1, 164, -1, 170, -1, 171, -1, 194, -1, 195,
770 -1, 256, -1, 229, -1, 231, -1, 232, -1, 165,
771 -1, 259, -1, 213, -1, 235, -1, 186, -1, 200,
772 -1, 241, -1, 242, -1, 244, -1, 249, -1, 196,
773 -1, 251, -1, 252, -1, 253, -1, 205, -1, 208,
774 -1, 233, -1, 234, -1, 206, -1, 228, -1, 248,
775 -1, 187, -1, 179, -1, 180, -1, 181, -1, 182,
776 -1, 183, -1, 260, -1, 261, -1, 262, -1, 207,
777 -1, 214, -1, 215, -1, 263, -1, 264, -1, 38,
778 -1, 156, 157, -1, -1, 265, -1, 266, -1, 267,
779 -1, 269, -1, 268, -1, 44, -1, 159, 160, -1,
780 -1, 270, -1, 271, -1, 272, -1, 273, -1, 13,
781 10, -1, 12, 10, -1, 76, 10, -1, 79, 10,
782 -1, 96, 10, -1, 14, 10, -1, 16, 10, -1,
783 67, 10, -1, 15, 10, -1, 80, 10, -1, 81,
784 10, -1, 31, 10, -1, 60, 10, -1, 75, 10,
785 -1, 17, 10, -1, 18, 10, -1, 19, 10, -1,
786 20, 10, -1, 122, 10, -1, 123, 10, -1, 124,
787 10, -1, 125, 10, -1, 126, 10, -1, 77, 10,
788 -1, 66, 10, -1, 101, 10, -1, 121, 10, -1,
789 21, 10, -1, 22, 10, -1, 23, 10, -1, 24,
790 10, -1, 25, 10, -1, 68, 10, -1, 82, 10,
791 -1, 83, 10, -1, 109, 10, -1, 54, 10, -1,
792 64, 10, -1, 55, 10, -1, 102, 10, -1, 48,
793 10, -1, 49, 10, -1, 50, 10, -1, 51, 10,
794 -1, 113, 10, -1, 117, 10, -1, 118, 10, -1,
795 114, 10, -1, 61, 10, -1, 26, 10, -1, 27,
796 10, -1, 28, 10, -1, 98, 10, -1, 132, 10,
797 -1, 133, 10, -1, 29, 10, -1, 30, 10, -1,
798 32, 10, -1, 33, 10, -1, 35, 10, -1, 36,
799 10, -1, 34, 10, -1, 41, 10, -1, 42, 10,
800 -1, 43, 10, -1, 52, 10, -1, 71, 10, -1,
801 119, 10, -1, 85, 10, -1, 78, 10, -1, 86,
802 10, -1, 87, 10, -1, 115, 10, -1, 116, 10,
803 -1, 100, 10, -1, 47, 10, -1, 69, 10, -1,
804 72, 10, 10, -1, 53, 10, -1, 56, 10, -1,
805 105, 10, -1, 106, 10, -1, 70, 10, -1, 107,
806 10, -1, 57, 10, -1, 58, 10, -1, 59, 10,
807 -1, 120, 10, -1, 108, 10, -1, 65, 10, -1,
808 111, 10, -1, 112, 10, -1, 110, 10, -1, 62,
809 10, -1, 63, 10, -1, 84, 10, -1, 73, 10,
810 10, -1, 74, 10, -1, 97, 10, -1, 129, 10,
811 -1, 130, 10, -1, 131, 10, -1, 134, 10, -1,
812 135, 10, -1, 37, 10, -1, 39, 10, -1, 40,
813 10, -1, 128, 10, -1, 99, 10, -1, 37, 10,
814 -1, 45, 10, -1, 46, 10, -1, 127, 10, -1,
815 88, -1, 275, 276, -1, -1, 277, -1, 279, -1,
816 278, -1, 280, -1, 281, -1, 282, -1, 283, -1,
817 89, 10, -1, 91, 10, -1, 90, 10, -1, 92,
818 10, -1, 93, 10, -1, 94, 10, -1, 95, 10,
819 -1, 136, -1, 285, 286, -1, -1, 287, -1, 288,
820 -1, 289, -1, 290, -1, 291, -1, 292, -1, 293,
821 -1, 294, -1, 295, -1, 296, -1, 297, -1, 298,
822 -1, 137, 10, -1, 138, 10, -1, 139, 10, -1,
823 140, 10, -1, 141, 10, -1, 142, 10, -1, 143,
824 10, -1, 144, 10, -1, 145, 10, -1, 146, 10,
825 -1, 147, 10, -1, 148, 10, -1, 103, -1, 300,
826 301, -1, -1, 302, -1, 104, 10, -1
829 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
830 static const yytype_uint16 yyrline
[] =
832 0, 121, 121, 121, 122, 122, 123, 123, 124, 124,
833 128, 133, 134, 135, 135, 135, 136, 136, 137, 137,
834 137, 138, 138, 138, 139, 139, 139, 140, 140, 141,
835 141, 142, 142, 143, 143, 144, 144, 145, 145, 146,
836 146, 147, 147, 148, 148, 148, 149, 149, 149, 150,
837 150, 150, 151, 151, 152, 152, 153, 153, 154, 154,
838 155, 155, 155, 156, 156, 157, 157, 158, 158, 158,
839 159, 159, 160, 160, 161, 161, 162, 162, 162, 163,
840 163, 164, 164, 165, 165, 166, 166, 167, 167, 168,
841 168, 168, 169, 169, 170, 170, 170, 171, 171, 171,
842 172, 172, 172, 173, 173, 173, 174, 174, 174, 175,
843 175, 175, 176, 176, 176, 177, 177, 179, 191, 192,
844 193, 193, 193, 193, 193, 195, 207, 208, 209, 209,
845 209, 209, 211, 220, 229, 240, 249, 258, 267, 280,
846 295, 304, 313, 322, 331, 340, 349, 358, 367, 376,
847 385, 394, 403, 410, 417, 426, 435, 449, 458, 467,
848 474, 481, 488, 496, 503, 510, 517, 524, 532, 540,
849 548, 555, 562, 571, 580, 587, 594, 602, 610, 620,
850 633, 644, 652, 665, 674, 683, 692, 702, 710, 723,
851 732, 740, 749, 757, 770, 777, 787, 797, 807, 817,
852 827, 837, 847, 854, 861, 870, 879, 888, 895, 905,
853 922, 929, 947, 960, 973, 982, 991, 1000, 1010, 1020,
854 1029, 1038, 1045, 1054, 1063, 1072, 1080, 1093, 1101, 1123,
855 1130, 1145, 1155, 1165, 1172, 1179, 1188, 1198, 1205, 1212,
856 1221, 1231, 1241, 1248, 1255, 1264, 1269, 1270, 1271, 1271,
857 1271, 1272, 1272, 1272, 1273, 1275, 1285, 1294, 1301, 1308,
858 1315, 1322, 1329, 1334, 1335, 1336, 1336, 1337, 1337, 1338,
859 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1346, 1354, 1361,
860 1369, 1377, 1384, 1391, 1400, 1409, 1418, 1427, 1436, 1445,
861 1450, 1451, 1452, 1454
865 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
866 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
867 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
868 static const char *const yytname
[] =
870 "$end", "error", "$undefined", "SPACE", "LETTER", "NEWLINE", "COMMENT",
871 "COLON", "ANY", "ZONESTR", "STRING_ARG", "VAR_SERVER", "VAR_VERBOSITY",
872 "VAR_NUM_THREADS", "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE",
873 "VAR_DO_IP4", "VAR_DO_IP6", "VAR_DO_UDP", "VAR_DO_TCP", "VAR_CHROOT",
874 "VAR_USERNAME", "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE",
875 "VAR_MSG_CACHE_SIZE", "VAR_MSG_CACHE_SLABS",
876 "VAR_NUM_QUERIES_PER_THREAD", "VAR_RRSET_CACHE_SIZE",
877 "VAR_RRSET_CACHE_SLABS", "VAR_OUTGOING_NUM_TCP", "VAR_INFRA_HOST_TTL",
878 "VAR_INFRA_LAME_TTL", "VAR_INFRA_CACHE_SLABS",
879 "VAR_INFRA_CACHE_NUMHOSTS", "VAR_INFRA_CACHE_LAME_SIZE", "VAR_NAME",
880 "VAR_STUB_ZONE", "VAR_STUB_HOST", "VAR_STUB_ADDR",
881 "VAR_TARGET_FETCH_POLICY", "VAR_HARDEN_SHORT_BUFSIZE",
882 "VAR_HARDEN_LARGE_QUERIES", "VAR_FORWARD_ZONE", "VAR_FORWARD_HOST",
883 "VAR_FORWARD_ADDR", "VAR_DO_NOT_QUERY_ADDRESS", "VAR_HIDE_IDENTITY",
884 "VAR_HIDE_VERSION", "VAR_IDENTITY", "VAR_VERSION", "VAR_HARDEN_GLUE",
885 "VAR_MODULE_CONF", "VAR_TRUST_ANCHOR_FILE", "VAR_TRUST_ANCHOR",
886 "VAR_VAL_OVERRIDE_DATE", "VAR_BOGUS_TTL", "VAR_VAL_CLEAN_ADDITIONAL",
887 "VAR_VAL_PERMISSIVE_MODE", "VAR_INCOMING_NUM_TCP", "VAR_MSG_BUFFER_SIZE",
888 "VAR_KEY_CACHE_SIZE", "VAR_KEY_CACHE_SLABS", "VAR_TRUSTED_KEYS_FILE",
889 "VAR_VAL_NSEC3_KEYSIZE_ITERATIONS", "VAR_USE_SYSLOG",
890 "VAR_OUTGOING_INTERFACE", "VAR_ROOT_HINTS", "VAR_DO_NOT_QUERY_LOCALHOST",
891 "VAR_CACHE_MAX_TTL", "VAR_HARDEN_DNSSEC_STRIPPED", "VAR_ACCESS_CONTROL",
892 "VAR_LOCAL_ZONE", "VAR_LOCAL_DATA", "VAR_INTERFACE_AUTOMATIC",
893 "VAR_STATISTICS_INTERVAL", "VAR_DO_DAEMONIZE", "VAR_USE_CAPS_FOR_ID",
894 "VAR_STATISTICS_CUMULATIVE", "VAR_OUTGOING_PORT_PERMIT",
895 "VAR_OUTGOING_PORT_AVOID", "VAR_DLV_ANCHOR_FILE", "VAR_DLV_ANCHOR",
896 "VAR_NEG_CACHE_SIZE", "VAR_HARDEN_REFERRAL_PATH", "VAR_PRIVATE_ADDRESS",
897 "VAR_PRIVATE_DOMAIN", "VAR_REMOTE_CONTROL", "VAR_CONTROL_ENABLE",
898 "VAR_CONTROL_INTERFACE", "VAR_CONTROL_PORT", "VAR_SERVER_KEY_FILE",
899 "VAR_SERVER_CERT_FILE", "VAR_CONTROL_KEY_FILE", "VAR_CONTROL_CERT_FILE",
900 "VAR_EXTENDED_STATISTICS", "VAR_LOCAL_DATA_PTR", "VAR_JOSTLE_TIMEOUT",
901 "VAR_STUB_PRIME", "VAR_UNWANTED_REPLY_THRESHOLD", "VAR_LOG_TIME_ASCII",
902 "VAR_DOMAIN_INSECURE", "VAR_PYTHON", "VAR_PYTHON_SCRIPT",
903 "VAR_VAL_SIG_SKEW_MIN", "VAR_VAL_SIG_SKEW_MAX", "VAR_CACHE_MIN_TTL",
904 "VAR_VAL_LOG_LEVEL", "VAR_AUTO_TRUST_ANCHOR_FILE", "VAR_KEEP_MISSING",
905 "VAR_ADD_HOLDDOWN", "VAR_DEL_HOLDDOWN", "VAR_SO_RCVBUF",
906 "VAR_EDNS_BUFFER_SIZE", "VAR_PREFETCH", "VAR_PREFETCH_KEY",
907 "VAR_SO_SNDBUF", "VAR_SO_REUSEPORT", "VAR_HARDEN_BELOW_NXDOMAIN",
908 "VAR_IGNORE_CD_FLAG", "VAR_LOG_QUERIES", "VAR_TCP_UPSTREAM",
909 "VAR_SSL_UPSTREAM", "VAR_SSL_SERVICE_KEY", "VAR_SSL_SERVICE_PEM",
910 "VAR_SSL_PORT", "VAR_FORWARD_FIRST", "VAR_STUB_FIRST",
911 "VAR_MINIMAL_RESPONSES", "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE",
912 "VAR_DELAY_CLOSE", "VAR_UNBLOCK_LAN_ZONES", "VAR_DNS64_PREFIX",
913 "VAR_DNS64_SYNTHALL", "VAR_DNSTAP", "VAR_DNSTAP_ENABLE",
914 "VAR_DNSTAP_SOCKET_PATH", "VAR_DNSTAP_SEND_IDENTITY",
915 "VAR_DNSTAP_SEND_VERSION", "VAR_DNSTAP_IDENTITY", "VAR_DNSTAP_VERSION",
916 "VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES",
917 "VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES",
918 "VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES",
919 "VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES",
920 "VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES",
921 "VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES", "$accept", "toplevelvars",
922 "toplevelvar", "serverstart", "contents_server", "content_server",
923 "stubstart", "contents_stub", "content_stub", "forwardstart",
924 "contents_forward", "content_forward", "server_num_threads",
925 "server_verbosity", "server_statistics_interval",
926 "server_statistics_cumulative", "server_extended_statistics",
927 "server_port", "server_interface", "server_outgoing_interface",
928 "server_outgoing_range", "server_outgoing_port_permit",
929 "server_outgoing_port_avoid", "server_outgoing_num_tcp",
930 "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4",
931 "server_do_ip6", "server_do_udp", "server_do_tcp", "server_tcp_upstream",
932 "server_ssl_upstream", "server_ssl_service_key",
933 "server_ssl_service_pem", "server_ssl_port", "server_do_daemonize",
934 "server_use_syslog", "server_log_time_ascii", "server_log_queries",
935 "server_chroot", "server_username", "server_directory", "server_logfile",
936 "server_pidfile", "server_root_hints", "server_dlv_anchor_file",
937 "server_dlv_anchor", "server_auto_trust_anchor_file",
938 "server_trust_anchor_file", "server_trusted_keys_file",
939 "server_trust_anchor", "server_domain_insecure", "server_hide_identity",
940 "server_hide_version", "server_identity", "server_version",
941 "server_so_rcvbuf", "server_so_sndbuf", "server_so_reuseport",
942 "server_edns_buffer_size", "server_msg_buffer_size",
943 "server_msg_cache_size", "server_msg_cache_slabs",
944 "server_num_queries_per_thread", "server_jostle_timeout",
945 "server_delay_close", "server_unblock_lan_zones",
946 "server_rrset_cache_size", "server_rrset_cache_slabs",
947 "server_infra_host_ttl", "server_infra_lame_ttl",
948 "server_infra_cache_numhosts", "server_infra_cache_lame_size",
949 "server_infra_cache_slabs", "server_target_fetch_policy",
950 "server_harden_short_bufsize", "server_harden_large_queries",
951 "server_harden_glue", "server_harden_dnssec_stripped",
952 "server_harden_below_nxdomain", "server_harden_referral_path",
953 "server_use_caps_for_id", "server_private_address",
954 "server_private_domain", "server_prefetch", "server_prefetch_key",
955 "server_unwanted_reply_threshold", "server_do_not_query_address",
956 "server_do_not_query_localhost", "server_access_control",
957 "server_module_conf", "server_val_override_date",
958 "server_val_sig_skew_min", "server_val_sig_skew_max",
959 "server_cache_max_ttl", "server_cache_min_ttl", "server_bogus_ttl",
960 "server_val_clean_additional", "server_val_permissive_mode",
961 "server_ignore_cd_flag", "server_val_log_level",
962 "server_val_nsec3_keysize_iterations", "server_add_holddown",
963 "server_del_holddown", "server_keep_missing", "server_key_cache_size",
964 "server_key_cache_slabs", "server_neg_cache_size", "server_local_zone",
965 "server_local_data", "server_local_data_ptr", "server_minimal_responses",
966 "server_rrset_roundrobin", "server_max_udp_size", "server_dns64_prefix",
967 "server_dns64_synthall", "stub_name", "stub_host", "stub_addr",
968 "stub_first", "stub_prime", "forward_name", "forward_host",
969 "forward_addr", "forward_first", "rcstart", "contents_rc", "content_rc",
970 "rc_control_enable", "rc_control_port", "rc_control_interface",
971 "rc_server_key_file", "rc_server_cert_file", "rc_control_key_file",
972 "rc_control_cert_file", "dtstart", "contents_dt", "content_dt",
973 "dt_dnstap_enable", "dt_dnstap_socket_path", "dt_dnstap_send_identity",
974 "dt_dnstap_send_version", "dt_dnstap_identity", "dt_dnstap_version",
975 "dt_dnstap_log_resolver_query_messages",
976 "dt_dnstap_log_resolver_response_messages",
977 "dt_dnstap_log_client_query_messages",
978 "dt_dnstap_log_client_response_messages",
979 "dt_dnstap_log_forwarder_query_messages",
980 "dt_dnstap_log_forwarder_response_messages", "pythonstart",
981 "contents_py", "content_py", "py_script", 0
986 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
988 static const yytype_uint16 yytoknum
[] =
990 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
991 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
992 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
993 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
994 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
995 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
996 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
997 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
998 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
999 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1000 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1001 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1002 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1003 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1004 395, 396, 397, 398, 399, 400, 401, 402, 403
1008 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1009 static const yytype_uint16 yyr1
[] =
1011 0, 149, 150, 150, 151, 151, 151, 151, 151, 151,
1012 152, 153, 153, 154, 154, 154, 154, 154, 154, 154,
1013 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1014 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1015 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1016 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1017 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1018 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1019 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1020 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1021 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
1022 154, 154, 154, 154, 154, 154, 154, 155, 156, 156,
1023 157, 157, 157, 157, 157, 158, 159, 159, 160, 160,
1024 160, 160, 161, 162, 163, 164, 165, 166, 167, 168,
1025 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
1026 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
1027 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
1028 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
1029 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
1030 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
1031 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
1032 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
1033 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
1034 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
1035 269, 270, 271, 272, 273, 274, 275, 275, 276, 276,
1036 276, 276, 276, 276, 276, 277, 278, 279, 280, 281,
1037 282, 283, 284, 285, 285, 286, 286, 286, 286, 286,
1038 286, 286, 286, 286, 286, 286, 286, 287, 288, 289,
1039 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
1043 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1044 static const yytype_uint8 yyr2
[] =
1046 0, 2, 0, 2, 2, 2, 2, 2, 2, 2,
1047 1, 2, 0, 1, 1, 1, 1, 1, 1, 1,
1048 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1049 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1050 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1051 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1052 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1053 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1054 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1055 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1056 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1057 1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
1058 1, 1, 1, 1, 1, 1, 2, 0, 1, 1,
1059 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
1060 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1061 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1062 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1063 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1064 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1065 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1066 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
1067 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1068 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
1069 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1070 2, 2, 2, 2, 2, 1, 2, 0, 1, 1,
1071 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
1072 2, 2, 1, 2, 0, 1, 1, 1, 1, 1,
1073 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
1074 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
1078 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1079 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1080 means the default is an error. */
1081 static const yytype_uint16 yydefact
[] =
1083 2, 0, 1, 10, 117, 125, 245, 289, 262, 3,
1084 12, 119, 127, 247, 264, 291, 4, 5, 6, 8,
1085 9, 7, 0, 0, 0, 0, 0, 0, 0, 0,
1086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1087 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1088 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1089 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1091 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1094 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1095 0, 0, 0, 0, 0, 0, 11, 13, 14, 70,
1096 73, 82, 15, 21, 61, 16, 74, 75, 32, 54,
1097 69, 17, 18, 19, 20, 104, 105, 106, 107, 108,
1098 71, 60, 86, 103, 22, 23, 24, 25, 26, 62,
1099 76, 77, 92, 48, 58, 49, 87, 42, 43, 44,
1100 45, 96, 100, 112, 97, 55, 27, 28, 29, 84,
1101 113, 114, 30, 31, 33, 34, 36, 37, 35, 38,
1102 39, 40, 46, 65, 101, 79, 72, 80, 81, 98,
1103 99, 85, 41, 63, 66, 47, 50, 88, 89, 64,
1104 90, 51, 52, 53, 102, 91, 59, 93, 94, 95,
1105 56, 57, 78, 67, 68, 83, 109, 110, 111, 115,
1106 116, 0, 0, 0, 0, 0, 118, 120, 121, 122,
1107 124, 123, 0, 0, 0, 0, 126, 128, 129, 130,
1108 131, 0, 0, 0, 0, 0, 0, 0, 246, 248,
1109 250, 249, 251, 252, 253, 254, 0, 0, 0, 0,
1110 0, 0, 0, 0, 0, 0, 0, 0, 263, 265,
1111 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
1112 276, 0, 290, 292, 133, 132, 137, 140, 138, 146,
1113 147, 148, 149, 159, 160, 161, 162, 163, 181, 182,
1114 183, 187, 188, 143, 189, 190, 193, 191, 192, 194,
1115 195, 196, 207, 172, 173, 174, 175, 197, 210, 168,
1116 170, 211, 216, 217, 218, 144, 180, 225, 226, 169,
1117 221, 156, 139, 164, 208, 214, 198, 0, 0, 229,
1118 145, 134, 155, 201, 135, 141, 142, 165, 166, 227,
1119 200, 202, 203, 136, 230, 184, 206, 157, 171, 212,
1120 213, 215, 220, 167, 224, 222, 223, 176, 179, 204,
1121 205, 177, 178, 199, 219, 158, 150, 151, 152, 153,
1122 154, 231, 232, 233, 185, 186, 234, 235, 236, 237,
1123 238, 240, 239, 241, 242, 243, 244, 255, 257, 256,
1124 258, 259, 260, 261, 277, 278, 279, 280, 281, 282,
1125 283, 284, 285, 286, 287, 288, 293, 209, 228
1128 /* YYDEFGOTO[NTERM-NUM]. */
1129 static const yytype_int16 yydefgoto
[] =
1131 -1, 1, 9, 10, 16, 126, 11, 17, 236, 12,
1132 18, 246, 127, 128, 129, 130, 131, 132, 133, 134,
1133 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1134 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1135 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1136 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1137 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1138 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1139 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1140 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1141 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1142 225, 226, 227, 228, 229, 230, 237, 238, 239, 240,
1143 241, 247, 248, 249, 250, 13, 19, 258, 259, 260,
1144 261, 262, 263, 264, 265, 14, 20, 278, 279, 280,
1145 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
1149 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1151 #define YYPACT_NINF -123
1152 static const yytype_int16 yypact
[] =
1154 -123, 0, -123, -123, -123, -123, -123, -123, -123, -123,
1155 -123, -123, -123, -123, -123, -123, 92, -36, -32, -62,
1156 -122, -102, -4, -3, -2, -1, 2, 24, 25, 26,
1157 27, 29, 30, 31, 32, 33, 35, 36, 37, 38,
1158 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
1159 49, 50, 51, 52, 54, 55, 56, 57, 58, 59,
1160 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
1161 70, 71, 72, 73, 74, 75, 76, 77, 79, 80,
1162 81, 83, 84, 86, 87, 88, 89, 90, 91, 119,
1163 120, 121, 122, 127, 128, 170, 171, 172, 173, 174,
1164 175, 176, 177, 181, 185, 186, 209, 210, 218, 219,
1165 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
1166 230, 231, 232, 233, 234, 235, -123, -123, -123, -123,
1167 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1168 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1169 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1170 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1171 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1172 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1173 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1174 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1175 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1176 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1177 -123, 236, 237, 238, 239, 240, -123, -123, -123, -123,
1178 -123, -123, 241, 242, 243, 244, -123, -123, -123, -123,
1179 -123, 245, 246, 247, 248, 249, 250, 251, -123, -123,
1180 -123, -123, -123, -123, -123, -123, 252, 253, 254, 255,
1181 256, 257, 258, 259, 260, 261, 262, 263, -123, -123,
1182 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1183 -123, 264, -123, -123, -123, -123, -123, -123, -123, -123,
1184 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1185 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1186 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1187 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1188 -123, -123, -123, -123, -123, -123, -123, 265, 266, -123,
1189 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1190 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1191 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1192 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1193 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1194 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1195 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1196 -123, -123, -123, -123, -123, -123, -123, -123, -123
1199 /* YYPGOTO[NTERM-NUM]. */
1200 static const yytype_int8 yypgoto
[] =
1202 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1203 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1204 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1205 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1206 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1207 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1208 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1209 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1210 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1211 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1212 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1213 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1214 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1215 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1216 -123, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1217 -123, -123, -123, -123
1220 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1221 positive, shift that token. If negative, reduce the rule which
1222 number is the opposite. If zero, do what YYDEFACT says.
1223 If YYTABLE_NINF, syntax error. */
1224 #define YYTABLE_NINF -1
1225 static const yytype_uint16 yytable
[] =
1227 2, 231, 291, 232, 233, 242, 294, 295, 296, 297,
1228 0, 3, 298, 243, 244, 266, 267, 268, 269, 270,
1229 271, 272, 273, 274, 275, 276, 277, 251, 252, 253,
1230 254, 255, 256, 257, 299, 300, 301, 302, 4, 303,
1231 304, 305, 306, 307, 5, 308, 309, 310, 311, 312,
1232 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
1233 323, 324, 325, 234, 326, 327, 328, 329, 330, 331,
1234 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
1235 342, 343, 344, 345, 346, 347, 348, 349, 6, 350,
1236 351, 352, 235, 353, 354, 245, 355, 356, 357, 358,
1237 359, 360, 0, 7, 22, 23, 24, 25, 26, 27,
1238 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1239 38, 39, 40, 41, 42, 43, 44, 45, 46, 361,
1240 362, 363, 364, 47, 48, 49, 8, 365, 366, 50,
1241 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
1242 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
1243 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1244 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1245 367, 368, 369, 370, 371, 372, 373, 374, 91, 92,
1246 93, 375, 94, 95, 96, 376, 377, 97, 98, 99,
1247 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1248 110, 111, 112, 113, 114, 115, 116, 117, 118, 378,
1249 379, 119, 120, 121, 122, 123, 124, 125, 380, 381,
1250 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
1251 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
1252 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
1253 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
1254 422, 423, 424, 425, 426, 427, 428
1257 static const yytype_int16 yycheck
[] =
1259 0, 37, 104, 39, 40, 37, 10, 10, 10, 10,
1260 -1, 11, 10, 45, 46, 137, 138, 139, 140, 141,
1261 142, 143, 144, 145, 146, 147, 148, 89, 90, 91,
1262 92, 93, 94, 95, 10, 10, 10, 10, 38, 10,
1263 10, 10, 10, 10, 44, 10, 10, 10, 10, 10,
1264 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1265 10, 10, 10, 99, 10, 10, 10, 10, 10, 10,
1266 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1267 10, 10, 10, 10, 10, 10, 10, 10, 88, 10,
1268 10, 10, 128, 10, 10, 127, 10, 10, 10, 10,
1269 10, 10, -1, 103, 12, 13, 14, 15, 16, 17,
1270 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1271 28, 29, 30, 31, 32, 33, 34, 35, 36, 10,
1272 10, 10, 10, 41, 42, 43, 136, 10, 10, 47,
1273 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
1274 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
1275 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1276 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1277 10, 10, 10, 10, 10, 10, 10, 10, 96, 97,
1278 98, 10, 100, 101, 102, 10, 10, 105, 106, 107,
1279 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1280 118, 119, 120, 121, 122, 123, 124, 125, 126, 10,
1281 10, 129, 130, 131, 132, 133, 134, 135, 10, 10,
1282 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1283 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1284 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1285 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1286 10, 10, 10, 10, 10, 10, 10
1289 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1290 symbol of state STATE-NUM. */
1291 static const yytype_uint16 yystos
[] =
1293 0, 150, 0, 11, 38, 44, 88, 103, 136, 151,
1294 152, 155, 158, 274, 284, 299, 153, 156, 159, 275,
1295 285, 300, 12, 13, 14, 15, 16, 17, 18, 19,
1296 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1297 30, 31, 32, 33, 34, 35, 36, 41, 42, 43,
1298 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
1299 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
1300 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1301 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1302 87, 96, 97, 98, 100, 101, 102, 105, 106, 107,
1303 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
1304 118, 119, 120, 121, 122, 123, 124, 125, 126, 129,
1305 130, 131, 132, 133, 134, 135, 154, 161, 162, 163,
1306 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
1307 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
1308 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
1309 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
1310 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
1311 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
1312 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
1313 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
1314 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
1315 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
1316 264, 37, 39, 40, 99, 128, 157, 265, 266, 267,
1317 268, 269, 37, 45, 46, 127, 160, 270, 271, 272,
1318 273, 89, 90, 91, 92, 93, 94, 95, 276, 277,
1319 278, 279, 280, 281, 282, 283, 137, 138, 139, 140,
1320 141, 142, 143, 144, 145, 146, 147, 148, 286, 287,
1321 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
1322 298, 104, 301, 302, 10, 10, 10, 10, 10, 10,
1323 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1324 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1325 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1326 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1327 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1328 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1329 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1330 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1331 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1332 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1333 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1334 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1335 10, 10, 10, 10, 10, 10, 10, 10, 10
1338 #define yyerrok (yyerrstatus = 0)
1339 #define yyclearin (yychar = YYEMPTY)
1340 #define YYEMPTY (-2)
1343 #define YYACCEPT goto yyacceptlab
1344 #define YYABORT goto yyabortlab
1345 #define YYERROR goto yyerrorlab
1348 /* Like YYERROR except do call yyerror. This remains here temporarily
1349 to ease the transition to the new meaning of YYERROR, for GCC.
1350 Once GCC version 2 has supplanted version 1, this can go. */
1352 #define YYFAIL goto yyerrlab
1354 #define YYRECOVERING() (!!yyerrstatus)
1356 #define YYBACKUP(Token, Value) \
1358 if (yychar == YYEMPTY && yylen == 1) \
1362 yytoken = YYTRANSLATE (yychar); \
1368 yyerror (YY_("syntax error: cannot back up")); \
1375 #define YYERRCODE 256
1378 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1379 If N is 0, then set CURRENT to the empty location which ends
1380 the previous symbol: RHS[0] (always defined). */
1382 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1383 #ifndef YYLLOC_DEFAULT
1384 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1388 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1389 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1390 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1391 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1395 (Current).first_line = (Current).last_line = \
1396 YYRHSLOC (Rhs, 0).last_line; \
1397 (Current).first_column = (Current).last_column = \
1398 YYRHSLOC (Rhs, 0).last_column; \
1404 /* YY_LOCATION_PRINT -- Print the location on the stream.
1405 This macro was not mandated originally: define only if we know
1406 we won't break user code: when these are the locations we know. */
1408 #ifndef YY_LOCATION_PRINT
1409 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1410 # define YY_LOCATION_PRINT(File, Loc) \
1411 fprintf (File, "%d.%d-%d.%d", \
1412 (Loc).first_line, (Loc).first_column, \
1413 (Loc).last_line, (Loc).last_column)
1415 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1420 /* YYLEX -- calling `yylex' with the right arguments. */
1423 # define YYLEX yylex (YYLEX_PARAM)
1425 # define YYLEX yylex ()
1428 /* Enable debugging if requested. */
1432 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1433 # define YYFPRINTF fprintf
1436 # define YYDPRINTF(Args) \
1442 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1446 YYFPRINTF (stderr, "%s ", Title); \
1447 yy_symbol_print (stderr, \
1449 YYFPRINTF (stderr, "\n"); \
1454 /*--------------------------------.
1455 | Print this symbol on YYOUTPUT. |
1456 `--------------------------------*/
1459 #if (defined __STDC__ || defined __C99__FUNC__ \
1460 || defined __cplusplus || defined _MSC_VER)
1462 yy_symbol_value_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
)
1465 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
)
1468 YYSTYPE
const * const yyvaluep
;
1474 if (yytype
< YYNTOKENS
)
1475 YYPRINT (yyoutput
, yytoknum
[yytype
], *yyvaluep
);
1487 /*--------------------------------.
1488 | Print this symbol on YYOUTPUT. |
1489 `--------------------------------*/
1491 #if (defined __STDC__ || defined __C99__FUNC__ \
1492 || defined __cplusplus || defined _MSC_VER)
1494 yy_symbol_print (FILE *yyoutput
, int yytype
, YYSTYPE
const * const yyvaluep
)
1497 yy_symbol_print (yyoutput
, yytype
, yyvaluep
)
1500 YYSTYPE
const * const yyvaluep
;
1503 if (yytype
< YYNTOKENS
)
1504 YYFPRINTF (yyoutput
, "token %s (", yytname
[yytype
]);
1506 YYFPRINTF (yyoutput
, "nterm %s (", yytname
[yytype
]);
1508 yy_symbol_value_print (yyoutput
, yytype
, yyvaluep
);
1509 YYFPRINTF (yyoutput
, ")");
1512 /*------------------------------------------------------------------.
1513 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1515 `------------------------------------------------------------------*/
1517 #if (defined __STDC__ || defined __C99__FUNC__ \
1518 || defined __cplusplus || defined _MSC_VER)
1520 yy_stack_print (yytype_int16
*bottom
, yytype_int16
*top
)
1523 yy_stack_print (bottom
, top
)
1524 yytype_int16
*bottom
;
1528 YYFPRINTF (stderr
, "Stack now");
1529 for (; bottom
<= top
; ++bottom
)
1530 YYFPRINTF (stderr
, " %d", *bottom
);
1531 YYFPRINTF (stderr
, "\n");
1534 # define YY_STACK_PRINT(Bottom, Top) \
1537 yy_stack_print ((Bottom), (Top)); \
1541 /*------------------------------------------------.
1542 | Report that the YYRULE is going to be reduced. |
1543 `------------------------------------------------*/
1545 #if (defined __STDC__ || defined __C99__FUNC__ \
1546 || defined __cplusplus || defined _MSC_VER)
1548 yy_reduce_print (YYSTYPE
*yyvsp
, int yyrule
)
1551 yy_reduce_print (yyvsp
, yyrule
)
1556 int yynrhs
= yyr2
[yyrule
];
1558 unsigned long int yylno
= yyrline
[yyrule
];
1559 YYFPRINTF (stderr
, "Reducing stack by rule %d (line %lu):\n",
1561 /* The symbols being reduced. */
1562 for (yyi
= 0; yyi
< yynrhs
; yyi
++)
1564 fprintf (stderr
, " $%d = ", yyi
+ 1);
1565 yy_symbol_print (stderr
, yyrhs
[yyprhs
[yyrule
] + yyi
],
1566 &(yyvsp
[(yyi
+ 1) - (yynrhs
)])
1568 fprintf (stderr
, "\n");
1572 # define YY_REDUCE_PRINT(Rule) \
1575 yy_reduce_print (yyvsp, Rule); \
1578 /* Nonzero means print parse trace. It is left uninitialized so that
1579 multiple parsers can coexist. */
1581 #else /* !YYDEBUG */
1582 # define YYDPRINTF(Args)
1583 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1584 # define YY_STACK_PRINT(Bottom, Top)
1585 # define YY_REDUCE_PRINT(Rule)
1586 #endif /* !YYDEBUG */
1589 /* YYINITDEPTH -- initial size of the parser's stacks. */
1591 # define YYINITDEPTH 200
1594 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1595 if the built-in stack extension method is used).
1597 Do not make this value too large; the results are undefined if
1598 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1599 evaluated with infinite-precision integer arithmetic. */
1602 # define YYMAXDEPTH 10000
1610 # if defined __GLIBC__ && defined _STRING_H
1611 # define yystrlen strlen
1613 /* Return the length of YYSTR. */
1614 #if (defined __STDC__ || defined __C99__FUNC__ \
1615 || defined __cplusplus || defined _MSC_VER)
1617 yystrlen (const char *yystr
)
1625 for (yylen
= 0; yystr
[yylen
]; yylen
++)
1633 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1634 # define yystpcpy stpcpy
1636 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1638 #if (defined __STDC__ || defined __C99__FUNC__ \
1639 || defined __cplusplus || defined _MSC_VER)
1641 yystpcpy (char *yydest
, const char *yysrc
)
1644 yystpcpy (yydest
, yysrc
)
1650 const char *yys
= yysrc
;
1652 while ((*yyd
++ = *yys
++) != '\0')
1661 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1662 quotes and backslashes, so that it's suitable for yyerror. The
1663 heuristic is that double-quoting is unnecessary unless the string
1664 contains an apostrophe, a comma, or backslash (other than
1665 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1666 null, do not copy; instead, return the length of what the result
1669 yytnamerr (char *yyres
, const char *yystr
)
1674 char const *yyp
= yystr
;
1681 goto do_not_strip_quotes
;
1685 goto do_not_strip_quotes
;
1698 do_not_strip_quotes
: ;
1702 return yystrlen (yystr
);
1704 return yystpcpy (yyres
, yystr
) - yyres
;
1708 /* Copy into YYRESULT an error message about the unexpected token
1709 YYCHAR while in state YYSTATE. Return the number of bytes copied,
1710 including the terminating null byte. If YYRESULT is null, do not
1711 copy anything; just return the number of bytes that would be
1712 copied. As a special case, return 0 if an ordinary "syntax error"
1713 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
1714 size calculation. */
1716 yysyntax_error (char *yyresult
, int yystate
, int yychar
)
1718 int yyn
= yypact
[yystate
];
1720 if (! (YYPACT_NINF
< yyn
&& yyn
<= YYLAST
))
1724 int yytype
= YYTRANSLATE (yychar
);
1725 YYSIZE_T yysize0
= yytnamerr (0, yytname
[yytype
]);
1726 YYSIZE_T yysize
= yysize0
;
1728 int yysize_overflow
= 0;
1729 enum { YYERROR_VERBOSE_ARGS_MAXIMUM
= 5 };
1730 char const *yyarg
[YYERROR_VERBOSE_ARGS_MAXIMUM
];
1734 /* This is so xgettext sees the translatable formats that are
1735 constructed on the fly. */
1736 YY_("syntax error, unexpected %s");
1737 YY_("syntax error, unexpected %s, expecting %s");
1738 YY_("syntax error, unexpected %s, expecting %s or %s");
1739 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1740 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1744 static char const yyunexpected
[] = "syntax error, unexpected %s";
1745 static char const yyexpecting
[] = ", expecting %s";
1746 static char const yyor
[] = " or %s";
1747 char yyformat
[sizeof yyunexpected
1748 + sizeof yyexpecting
- 1
1749 + ((YYERROR_VERBOSE_ARGS_MAXIMUM
- 2)
1750 * (sizeof yyor
- 1))];
1751 char const *yyprefix
= yyexpecting
;
1753 /* Start YYX at -YYN if negative to avoid negative indexes in
1755 int yyxbegin
= yyn
< 0 ? -yyn
: 0;
1757 /* Stay within bounds of both yycheck and yytname. */
1758 int yychecklim
= YYLAST
- yyn
+ 1;
1759 int yyxend
= yychecklim
< YYNTOKENS
? yychecklim
: YYNTOKENS
;
1762 yyarg
[0] = yytname
[yytype
];
1763 yyfmt
= yystpcpy (yyformat
, yyunexpected
);
1765 for (yyx
= yyxbegin
; yyx
< yyxend
; ++yyx
)
1766 if (yycheck
[yyx
+ yyn
] == yyx
&& yyx
!= YYTERROR
)
1768 if (yycount
== YYERROR_VERBOSE_ARGS_MAXIMUM
)
1772 yyformat
[sizeof yyunexpected
- 1] = '\0';
1775 yyarg
[yycount
++] = yytname
[yyx
];
1776 yysize1
= yysize
+ yytnamerr (0, yytname
[yyx
]);
1777 yysize_overflow
|= (yysize1
< yysize
);
1779 yyfmt
= yystpcpy (yyfmt
, yyprefix
);
1783 yyf
= YY_(yyformat
);
1784 yysize1
= yysize
+ yystrlen (yyf
);
1785 yysize_overflow
|= (yysize1
< yysize
);
1788 if (yysize_overflow
)
1789 return YYSIZE_MAXIMUM
;
1793 /* Avoid sprintf, as that infringes on the user's name space.
1794 Don't have undefined behavior even if the translation
1795 produced a string with the wrong number of "%s"s. */
1796 char *yyp
= yyresult
;
1798 while ((*yyp
= *yyf
) != '\0')
1800 if (*yyp
== '%' && yyf
[1] == 's' && yyi
< yycount
)
1802 yyp
+= yytnamerr (yyp
, yyarg
[yyi
++]);
1815 #endif /* YYERROR_VERBOSE */
1818 /*-----------------------------------------------.
1819 | Release the memory associated to this symbol. |
1820 `-----------------------------------------------*/
1823 #if (defined __STDC__ || defined __C99__FUNC__ \
1824 || defined __cplusplus || defined _MSC_VER)
1826 yydestruct (const char *yymsg
, int yytype
, YYSTYPE
*yyvaluep
)
1829 yydestruct (yymsg
, yytype
, yyvaluep
)
1839 YY_SYMBOL_PRINT (yymsg
, yytype
, yyvaluep
, yylocationp
);
1850 /* Prevent warnings from -Wmissing-prototypes. */
1852 #ifdef YYPARSE_PARAM
1853 #if defined __STDC__ || defined __cplusplus
1854 int yyparse (void *YYPARSE_PARAM
);
1858 #else /* ! YYPARSE_PARAM */
1859 #if defined __STDC__ || defined __cplusplus
1864 #endif /* ! YYPARSE_PARAM */
1868 /* The look-ahead symbol. */
1871 /* The semantic value of the look-ahead symbol. */
1874 /* Number of syntax errors so far. */
1883 #ifdef YYPARSE_PARAM
1884 #if (defined __STDC__ || defined __C99__FUNC__ \
1885 || defined __cplusplus || defined _MSC_VER)
1887 yyparse (void *YYPARSE_PARAM
)
1890 yyparse (YYPARSE_PARAM
)
1891 void *YYPARSE_PARAM
;
1893 #else /* ! YYPARSE_PARAM */
1894 #if (defined __STDC__ || defined __C99__FUNC__ \
1895 || defined __cplusplus || defined _MSC_VER)
1909 /* Number of tokens to shift before error messages enabled. */
1911 /* Look-ahead token as an internal (translated) token number. */
1914 /* Buffer for error messages, and its allocated size. */
1916 char *yymsg
= yymsgbuf
;
1917 YYSIZE_T yymsg_alloc
= sizeof yymsgbuf
;
1920 /* Three stacks and their tools:
1921 `yyss': related to states,
1922 `yyvs': related to semantic values,
1923 `yyls': related to locations.
1925 Refer to the stacks thru separate pointers, to allow yyoverflow
1926 to reallocate them elsewhere. */
1928 /* The state stack. */
1929 yytype_int16 yyssa
[YYINITDEPTH
];
1930 yytype_int16
*yyss
= yyssa
;
1931 yytype_int16
*yyssp
;
1933 /* The semantic value stack. */
1934 YYSTYPE yyvsa
[YYINITDEPTH
];
1935 YYSTYPE
*yyvs
= yyvsa
;
1940 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1942 YYSIZE_T yystacksize
= YYINITDEPTH
;
1944 /* The variables used to return semantic value and location from the
1949 /* The number of symbols on the RHS of the reduced rule.
1950 Keep to zero when no symbol should be popped. */
1953 YYDPRINTF ((stderr
, "Starting parse\n"));
1958 yychar
= YYEMPTY
; /* Cause a token to be read. */
1960 /* Initialize stack pointers.
1961 Waste one element of value and location stack
1962 so that they stay on the same level as the state stack.
1963 The wasted elements are never initialized. */
1970 /*------------------------------------------------------------.
1971 | yynewstate -- Push a new state, which is found in yystate. |
1972 `------------------------------------------------------------*/
1974 /* In all cases, when you get here, the value and location stacks
1975 have just been pushed. So pushing a state here evens the stacks. */
1981 if (yyss
+ yystacksize
- 1 <= yyssp
)
1983 /* Get the current used size of the three stacks, in elements. */
1984 YYSIZE_T yysize
= yyssp
- yyss
+ 1;
1988 /* Give user a chance to reallocate the stack. Use copies of
1989 these so that the &'s don't force the real ones into
1991 YYSTYPE
*yyvs1
= yyvs
;
1992 yytype_int16
*yyss1
= yyss
;
1995 /* Each stack pointer address is followed by the size of the
1996 data in use in that stack, in bytes. This used to be a
1997 conditional around just the two extra args, but that might
1998 be undefined if yyoverflow is a macro. */
1999 yyoverflow (YY_("memory exhausted"),
2000 &yyss1
, yysize
* sizeof (*yyssp
),
2001 &yyvs1
, yysize
* sizeof (*yyvsp
),
2008 #else /* no yyoverflow */
2009 # ifndef YYSTACK_RELOCATE
2010 goto yyexhaustedlab
;
2012 /* Extend the stack our own way. */
2013 if (YYMAXDEPTH
<= yystacksize
)
2014 goto yyexhaustedlab
;
2016 if (YYMAXDEPTH
< yystacksize
)
2017 yystacksize
= YYMAXDEPTH
;
2020 yytype_int16
*yyss1
= yyss
;
2021 union yyalloc
*yyptr
=
2022 (union yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
));
2024 goto yyexhaustedlab
;
2025 YYSTACK_RELOCATE (yyss
);
2026 YYSTACK_RELOCATE (yyvs
);
2028 # undef YYSTACK_RELOCATE
2030 YYSTACK_FREE (yyss1
);
2033 #endif /* no yyoverflow */
2035 yyssp
= yyss
+ yysize
- 1;
2036 yyvsp
= yyvs
+ yysize
- 1;
2039 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
2040 (unsigned long int) yystacksize
));
2042 if (yyss
+ yystacksize
- 1 <= yyssp
)
2046 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
2055 /* Do appropriate processing given the current state. Read a
2056 look-ahead token if we need one and don't already have one. */
2058 /* First try to decide what to do without reference to look-ahead token. */
2059 yyn
= yypact
[yystate
];
2060 if (yyn
== YYPACT_NINF
)
2063 /* Not known => get a look-ahead token if don't already have one. */
2065 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
2066 if (yychar
== YYEMPTY
)
2068 YYDPRINTF ((stderr
, "Reading a token: "));
2072 if (yychar
<= YYEOF
)
2074 yychar
= yytoken
= YYEOF
;
2075 YYDPRINTF ((stderr
, "Now at end of input.\n"));
2079 yytoken
= YYTRANSLATE (yychar
);
2080 YY_SYMBOL_PRINT ("Next token is", yytoken
, &yylval
, &yylloc
);
2083 /* If the proper action on seeing token YYTOKEN is to reduce or to
2084 detect an error, take that action. */
2086 if (yyn
< 0 || YYLAST
< yyn
|| yycheck
[yyn
] != yytoken
)
2091 if (yyn
== 0 || yyn
== YYTABLE_NINF
)
2100 /* Count tokens shifted since error; after three, turn off error
2105 /* Shift the look-ahead token. */
2106 YY_SYMBOL_PRINT ("Shifting", yytoken
, &yylval
, &yylloc
);
2108 /* Discard the shifted token unless it is eof. */
2109 if (yychar
!= YYEOF
)
2118 /*-----------------------------------------------------------.
2119 | yydefault -- do the default action for the current state. |
2120 `-----------------------------------------------------------*/
2122 yyn
= yydefact
[yystate
];
2128 /*-----------------------------.
2129 | yyreduce -- Do a reduction. |
2130 `-----------------------------*/
2132 /* yyn is the number of a rule to reduce with. */
2135 /* If YYLEN is nonzero, implement the default value of the action:
2138 Otherwise, the following line sets YYVAL to garbage.
2139 This behavior is undocumented and Bison
2140 users should not rely upon it. Assigning to YYVAL
2141 unconditionally makes the parser a bit smaller, and it avoids a
2142 GCC warning that YYVAL may be used uninitialized. */
2143 yyval
= yyvsp
[1-yylen
];
2146 YY_REDUCE_PRINT (yyn
);
2150 #line 129 "./util/configparser.y"
2152 OUTYY(("\nP(server:)\n"));
2157 #line 180 "./util/configparser.y"
2159 struct config_stub
* s
;
2160 OUTYY(("\nP(stub_zone:)\n"));
2161 s
= (struct config_stub
*)calloc(1, sizeof(struct config_stub
));
2163 s
->next
= cfg_parser
->cfg
->stubs
;
2164 cfg_parser
->cfg
->stubs
= s
;
2166 yyerror("out of memory");
2171 #line 196 "./util/configparser.y"
2173 struct config_stub
* s
;
2174 OUTYY(("\nP(forward_zone:)\n"));
2175 s
= (struct config_stub
*)calloc(1, sizeof(struct config_stub
));
2177 s
->next
= cfg_parser
->cfg
->forwards
;
2178 cfg_parser
->cfg
->forwards
= s
;
2180 yyerror("out of memory");
2185 #line 212 "./util/configparser.y"
2187 OUTYY(("P(server_num_threads:%s)\n", (yyvsp
[(2) - (2)].str
)));
2188 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
2189 yyerror("number expected");
2190 else cfg_parser
->cfg
->num_threads
= atoi((yyvsp
[(2) - (2)].str
));
2191 free((yyvsp
[(2) - (2)].str
));
2196 #line 221 "./util/configparser.y"
2198 OUTYY(("P(server_verbosity:%s)\n", (yyvsp
[(2) - (2)].str
)));
2199 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
2200 yyerror("number expected");
2201 else cfg_parser
->cfg
->verbosity
= atoi((yyvsp
[(2) - (2)].str
));
2202 free((yyvsp
[(2) - (2)].str
));
2207 #line 230 "./util/configparser.y"
2209 OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp
[(2) - (2)].str
)));
2210 if(strcmp((yyvsp
[(2) - (2)].str
), "") == 0 || strcmp((yyvsp
[(2) - (2)].str
), "0") == 0)
2211 cfg_parser
->cfg
->stat_interval
= 0;
2212 else if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
2213 yyerror("number expected");
2214 else cfg_parser
->cfg
->stat_interval
= atoi((yyvsp
[(2) - (2)].str
));
2215 free((yyvsp
[(2) - (2)].str
));
2220 #line 241 "./util/configparser.y"
2222 OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp
[(2) - (2)].str
)));
2223 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2224 yyerror("expected yes or no.");
2225 else cfg_parser
->cfg
->stat_cumulative
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2226 free((yyvsp
[(2) - (2)].str
));
2231 #line 250 "./util/configparser.y"
2233 OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp
[(2) - (2)].str
)));
2234 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2235 yyerror("expected yes or no.");
2236 else cfg_parser
->cfg
->stat_extended
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2237 free((yyvsp
[(2) - (2)].str
));
2242 #line 259 "./util/configparser.y"
2244 OUTYY(("P(server_port:%s)\n", (yyvsp
[(2) - (2)].str
)));
2245 if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
2246 yyerror("port number expected");
2247 else cfg_parser
->cfg
->port
= atoi((yyvsp
[(2) - (2)].str
));
2248 free((yyvsp
[(2) - (2)].str
));
2253 #line 268 "./util/configparser.y"
2255 OUTYY(("P(server_interface:%s)\n", (yyvsp
[(2) - (2)].str
)));
2256 if(cfg_parser
->cfg
->num_ifs
== 0)
2257 cfg_parser
->cfg
->ifs
= calloc(1, sizeof(char*));
2258 else cfg_parser
->cfg
->ifs
= realloc(cfg_parser
->cfg
->ifs
,
2259 (cfg_parser
->cfg
->num_ifs
+1)*sizeof(char*));
2260 if(!cfg_parser
->cfg
->ifs
)
2261 yyerror("out of memory");
2263 cfg_parser
->cfg
->ifs
[cfg_parser
->cfg
->num_ifs
++] = (yyvsp
[(2) - (2)].str
);
2268 #line 281 "./util/configparser.y"
2270 OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp
[(2) - (2)].str
)));
2271 if(cfg_parser
->cfg
->num_out_ifs
== 0)
2272 cfg_parser
->cfg
->out_ifs
= calloc(1, sizeof(char*));
2273 else cfg_parser
->cfg
->out_ifs
= realloc(
2274 cfg_parser
->cfg
->out_ifs
,
2275 (cfg_parser
->cfg
->num_out_ifs
+1)*sizeof(char*));
2276 if(!cfg_parser
->cfg
->out_ifs
)
2277 yyerror("out of memory");
2279 cfg_parser
->cfg
->out_ifs
[
2280 cfg_parser
->cfg
->num_out_ifs
++] = (yyvsp
[(2) - (2)].str
);
2285 #line 296 "./util/configparser.y"
2287 OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp
[(2) - (2)].str
)));
2288 if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
2289 yyerror("number expected");
2290 else cfg_parser
->cfg
->outgoing_num_ports
= atoi((yyvsp
[(2) - (2)].str
));
2291 free((yyvsp
[(2) - (2)].str
));
2296 #line 305 "./util/configparser.y"
2298 OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp
[(2) - (2)].str
)));
2299 if(!cfg_mark_ports((yyvsp
[(2) - (2)].str
), 1,
2300 cfg_parser
->cfg
->outgoing_avail_ports
, 65536))
2301 yyerror("port number or range (\"low-high\") expected");
2302 free((yyvsp
[(2) - (2)].str
));
2307 #line 314 "./util/configparser.y"
2309 OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp
[(2) - (2)].str
)));
2310 if(!cfg_mark_ports((yyvsp
[(2) - (2)].str
), 0,
2311 cfg_parser
->cfg
->outgoing_avail_ports
, 65536))
2312 yyerror("port number or range (\"low-high\") expected");
2313 free((yyvsp
[(2) - (2)].str
));
2318 #line 323 "./util/configparser.y"
2320 OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp
[(2) - (2)].str
)));
2321 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
2322 yyerror("number expected");
2323 else cfg_parser
->cfg
->outgoing_num_tcp
= atoi((yyvsp
[(2) - (2)].str
));
2324 free((yyvsp
[(2) - (2)].str
));
2329 #line 332 "./util/configparser.y"
2331 OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp
[(2) - (2)].str
)));
2332 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
2333 yyerror("number expected");
2334 else cfg_parser
->cfg
->incoming_num_tcp
= atoi((yyvsp
[(2) - (2)].str
));
2335 free((yyvsp
[(2) - (2)].str
));
2340 #line 341 "./util/configparser.y"
2342 OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp
[(2) - (2)].str
)));
2343 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2344 yyerror("expected yes or no.");
2345 else cfg_parser
->cfg
->if_automatic
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2346 free((yyvsp
[(2) - (2)].str
));
2351 #line 350 "./util/configparser.y"
2353 OUTYY(("P(server_do_ip4:%s)\n", (yyvsp
[(2) - (2)].str
)));
2354 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2355 yyerror("expected yes or no.");
2356 else cfg_parser
->cfg
->do_ip4
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2357 free((yyvsp
[(2) - (2)].str
));
2362 #line 359 "./util/configparser.y"
2364 OUTYY(("P(server_do_ip6:%s)\n", (yyvsp
[(2) - (2)].str
)));
2365 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2366 yyerror("expected yes or no.");
2367 else cfg_parser
->cfg
->do_ip6
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2368 free((yyvsp
[(2) - (2)].str
));
2373 #line 368 "./util/configparser.y"
2375 OUTYY(("P(server_do_udp:%s)\n", (yyvsp
[(2) - (2)].str
)));
2376 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2377 yyerror("expected yes or no.");
2378 else cfg_parser
->cfg
->do_udp
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2379 free((yyvsp
[(2) - (2)].str
));
2384 #line 377 "./util/configparser.y"
2386 OUTYY(("P(server_do_tcp:%s)\n", (yyvsp
[(2) - (2)].str
)));
2387 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2388 yyerror("expected yes or no.");
2389 else cfg_parser
->cfg
->do_tcp
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2390 free((yyvsp
[(2) - (2)].str
));
2395 #line 386 "./util/configparser.y"
2397 OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp
[(2) - (2)].str
)));
2398 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2399 yyerror("expected yes or no.");
2400 else cfg_parser
->cfg
->tcp_upstream
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2401 free((yyvsp
[(2) - (2)].str
));
2406 #line 395 "./util/configparser.y"
2408 OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp
[(2) - (2)].str
)));
2409 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2410 yyerror("expected yes or no.");
2411 else cfg_parser
->cfg
->ssl_upstream
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2412 free((yyvsp
[(2) - (2)].str
));
2417 #line 404 "./util/configparser.y"
2419 OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp
[(2) - (2)].str
)));
2420 free(cfg_parser
->cfg
->ssl_service_key
);
2421 cfg_parser
->cfg
->ssl_service_key
= (yyvsp
[(2) - (2)].str
);
2426 #line 411 "./util/configparser.y"
2428 OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp
[(2) - (2)].str
)));
2429 free(cfg_parser
->cfg
->ssl_service_pem
);
2430 cfg_parser
->cfg
->ssl_service_pem
= (yyvsp
[(2) - (2)].str
);
2435 #line 418 "./util/configparser.y"
2437 OUTYY(("P(server_ssl_port:%s)\n", (yyvsp
[(2) - (2)].str
)));
2438 if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
2439 yyerror("port number expected");
2440 else cfg_parser
->cfg
->ssl_port
= atoi((yyvsp
[(2) - (2)].str
));
2441 free((yyvsp
[(2) - (2)].str
));
2446 #line 427 "./util/configparser.y"
2448 OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp
[(2) - (2)].str
)));
2449 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2450 yyerror("expected yes or no.");
2451 else cfg_parser
->cfg
->do_daemonize
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2452 free((yyvsp
[(2) - (2)].str
));
2457 #line 436 "./util/configparser.y"
2459 OUTYY(("P(server_use_syslog:%s)\n", (yyvsp
[(2) - (2)].str
)));
2460 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2461 yyerror("expected yes or no.");
2462 else cfg_parser
->cfg
->use_syslog
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2463 #if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS)
2464 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") == 0)
2465 yyerror("no syslog services are available. "
2466 "(reconfigure and compile to add)");
2468 free((yyvsp
[(2) - (2)].str
));
2473 #line 450 "./util/configparser.y"
2475 OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp
[(2) - (2)].str
)));
2476 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2477 yyerror("expected yes or no.");
2478 else cfg_parser
->cfg
->log_time_ascii
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2479 free((yyvsp
[(2) - (2)].str
));
2484 #line 459 "./util/configparser.y"
2486 OUTYY(("P(server_log_queries:%s)\n", (yyvsp
[(2) - (2)].str
)));
2487 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2488 yyerror("expected yes or no.");
2489 else cfg_parser
->cfg
->log_queries
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2490 free((yyvsp
[(2) - (2)].str
));
2495 #line 468 "./util/configparser.y"
2497 OUTYY(("P(server_chroot:%s)\n", (yyvsp
[(2) - (2)].str
)));
2498 free(cfg_parser
->cfg
->chrootdir
);
2499 cfg_parser
->cfg
->chrootdir
= (yyvsp
[(2) - (2)].str
);
2504 #line 475 "./util/configparser.y"
2506 OUTYY(("P(server_username:%s)\n", (yyvsp
[(2) - (2)].str
)));
2507 free(cfg_parser
->cfg
->username
);
2508 cfg_parser
->cfg
->username
= (yyvsp
[(2) - (2)].str
);
2513 #line 482 "./util/configparser.y"
2515 OUTYY(("P(server_directory:%s)\n", (yyvsp
[(2) - (2)].str
)));
2516 free(cfg_parser
->cfg
->directory
);
2517 cfg_parser
->cfg
->directory
= (yyvsp
[(2) - (2)].str
);
2522 #line 489 "./util/configparser.y"
2524 OUTYY(("P(server_logfile:%s)\n", (yyvsp
[(2) - (2)].str
)));
2525 free(cfg_parser
->cfg
->logfile
);
2526 cfg_parser
->cfg
->logfile
= (yyvsp
[(2) - (2)].str
);
2527 cfg_parser
->cfg
->use_syslog
= 0;
2532 #line 497 "./util/configparser.y"
2534 OUTYY(("P(server_pidfile:%s)\n", (yyvsp
[(2) - (2)].str
)));
2535 free(cfg_parser
->cfg
->pidfile
);
2536 cfg_parser
->cfg
->pidfile
= (yyvsp
[(2) - (2)].str
);
2541 #line 504 "./util/configparser.y"
2543 OUTYY(("P(server_root_hints:%s)\n", (yyvsp
[(2) - (2)].str
)));
2544 if(!cfg_strlist_insert(&cfg_parser
->cfg
->root_hints
, (yyvsp
[(2) - (2)].str
)))
2545 yyerror("out of memory");
2550 #line 511 "./util/configparser.y"
2552 OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp
[(2) - (2)].str
)));
2553 free(cfg_parser
->cfg
->dlv_anchor_file
);
2554 cfg_parser
->cfg
->dlv_anchor_file
= (yyvsp
[(2) - (2)].str
);
2559 #line 518 "./util/configparser.y"
2561 OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp
[(2) - (2)].str
)));
2562 if(!cfg_strlist_insert(&cfg_parser
->cfg
->dlv_anchor_list
, (yyvsp
[(2) - (2)].str
)))
2563 yyerror("out of memory");
2568 #line 525 "./util/configparser.y"
2570 OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp
[(2) - (2)].str
)));
2571 if(!cfg_strlist_insert(&cfg_parser
->cfg
->
2572 auto_trust_anchor_file_list
, (yyvsp
[(2) - (2)].str
)))
2573 yyerror("out of memory");
2578 #line 533 "./util/configparser.y"
2580 OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp
[(2) - (2)].str
)));
2581 if(!cfg_strlist_insert(&cfg_parser
->cfg
->
2582 trust_anchor_file_list
, (yyvsp
[(2) - (2)].str
)))
2583 yyerror("out of memory");
2588 #line 541 "./util/configparser.y"
2590 OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp
[(2) - (2)].str
)));
2591 if(!cfg_strlist_insert(&cfg_parser
->cfg
->
2592 trusted_keys_file_list
, (yyvsp
[(2) - (2)].str
)))
2593 yyerror("out of memory");
2598 #line 549 "./util/configparser.y"
2600 OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp
[(2) - (2)].str
)));
2601 if(!cfg_strlist_insert(&cfg_parser
->cfg
->trust_anchor_list
, (yyvsp
[(2) - (2)].str
)))
2602 yyerror("out of memory");
2607 #line 556 "./util/configparser.y"
2609 OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp
[(2) - (2)].str
)));
2610 if(!cfg_strlist_insert(&cfg_parser
->cfg
->domain_insecure
, (yyvsp
[(2) - (2)].str
)))
2611 yyerror("out of memory");
2616 #line 563 "./util/configparser.y"
2618 OUTYY(("P(server_hide_identity:%s)\n", (yyvsp
[(2) - (2)].str
)));
2619 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2620 yyerror("expected yes or no.");
2621 else cfg_parser
->cfg
->hide_identity
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2622 free((yyvsp
[(2) - (2)].str
));
2627 #line 572 "./util/configparser.y"
2629 OUTYY(("P(server_hide_version:%s)\n", (yyvsp
[(2) - (2)].str
)));
2630 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2631 yyerror("expected yes or no.");
2632 else cfg_parser
->cfg
->hide_version
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2633 free((yyvsp
[(2) - (2)].str
));
2638 #line 581 "./util/configparser.y"
2640 OUTYY(("P(server_identity:%s)\n", (yyvsp
[(2) - (2)].str
)));
2641 free(cfg_parser
->cfg
->identity
);
2642 cfg_parser
->cfg
->identity
= (yyvsp
[(2) - (2)].str
);
2647 #line 588 "./util/configparser.y"
2649 OUTYY(("P(server_version:%s)\n", (yyvsp
[(2) - (2)].str
)));
2650 free(cfg_parser
->cfg
->version
);
2651 cfg_parser
->cfg
->version
= (yyvsp
[(2) - (2)].str
);
2656 #line 595 "./util/configparser.y"
2658 OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp
[(2) - (2)].str
)));
2659 if(!cfg_parse_memsize((yyvsp
[(2) - (2)].str
), &cfg_parser
->cfg
->so_rcvbuf
))
2660 yyerror("buffer size expected");
2661 free((yyvsp
[(2) - (2)].str
));
2666 #line 603 "./util/configparser.y"
2668 OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp
[(2) - (2)].str
)));
2669 if(!cfg_parse_memsize((yyvsp
[(2) - (2)].str
), &cfg_parser
->cfg
->so_sndbuf
))
2670 yyerror("buffer size expected");
2671 free((yyvsp
[(2) - (2)].str
));
2676 #line 611 "./util/configparser.y"
2678 OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp
[(2) - (2)].str
)));
2679 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2680 yyerror("expected yes or no.");
2681 else cfg_parser
->cfg
->so_reuseport
=
2682 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2683 free((yyvsp
[(2) - (2)].str
));
2688 #line 621 "./util/configparser.y"
2690 OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp
[(2) - (2)].str
)));
2691 if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
2692 yyerror("number expected");
2693 else if (atoi((yyvsp
[(2) - (2)].str
)) < 12)
2694 yyerror("edns buffer size too small");
2695 else if (atoi((yyvsp
[(2) - (2)].str
)) > 65535)
2696 cfg_parser
->cfg
->edns_buffer_size
= 65535;
2697 else cfg_parser
->cfg
->edns_buffer_size
= atoi((yyvsp
[(2) - (2)].str
));
2698 free((yyvsp
[(2) - (2)].str
));
2703 #line 634 "./util/configparser.y"
2705 OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp
[(2) - (2)].str
)));
2706 if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
2707 yyerror("number expected");
2708 else if (atoi((yyvsp
[(2) - (2)].str
)) < 4096)
2709 yyerror("message buffer size too small (use 4096)");
2710 else cfg_parser
->cfg
->msg_buffer_size
= atoi((yyvsp
[(2) - (2)].str
));
2711 free((yyvsp
[(2) - (2)].str
));
2716 #line 645 "./util/configparser.y"
2718 OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp
[(2) - (2)].str
)));
2719 if(!cfg_parse_memsize((yyvsp
[(2) - (2)].str
), &cfg_parser
->cfg
->msg_cache_size
))
2720 yyerror("memory size expected");
2721 free((yyvsp
[(2) - (2)].str
));
2726 #line 653 "./util/configparser.y"
2728 OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp
[(2) - (2)].str
)));
2729 if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
2730 yyerror("number expected");
2732 cfg_parser
->cfg
->msg_cache_slabs
= atoi((yyvsp
[(2) - (2)].str
));
2733 if(!is_pow2(cfg_parser
->cfg
->msg_cache_slabs
))
2734 yyerror("must be a power of 2");
2736 free((yyvsp
[(2) - (2)].str
));
2741 #line 666 "./util/configparser.y"
2743 OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp
[(2) - (2)].str
)));
2744 if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
2745 yyerror("number expected");
2746 else cfg_parser
->cfg
->num_queries_per_thread
= atoi((yyvsp
[(2) - (2)].str
));
2747 free((yyvsp
[(2) - (2)].str
));
2752 #line 675 "./util/configparser.y"
2754 OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp
[(2) - (2)].str
)));
2755 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
2756 yyerror("number expected");
2757 else cfg_parser
->cfg
->jostle_time
= atoi((yyvsp
[(2) - (2)].str
));
2758 free((yyvsp
[(2) - (2)].str
));
2763 #line 684 "./util/configparser.y"
2765 OUTYY(("P(server_delay_close:%s)\n", (yyvsp
[(2) - (2)].str
)));
2766 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
2767 yyerror("number expected");
2768 else cfg_parser
->cfg
->delay_close
= atoi((yyvsp
[(2) - (2)].str
));
2769 free((yyvsp
[(2) - (2)].str
));
2774 #line 693 "./util/configparser.y"
2776 OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp
[(2) - (2)].str
)));
2777 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2778 yyerror("expected yes or no.");
2779 else cfg_parser
->cfg
->unblock_lan_zones
=
2780 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2781 free((yyvsp
[(2) - (2)].str
));
2786 #line 703 "./util/configparser.y"
2788 OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp
[(2) - (2)].str
)));
2789 if(!cfg_parse_memsize((yyvsp
[(2) - (2)].str
), &cfg_parser
->cfg
->rrset_cache_size
))
2790 yyerror("memory size expected");
2791 free((yyvsp
[(2) - (2)].str
));
2796 #line 711 "./util/configparser.y"
2798 OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp
[(2) - (2)].str
)));
2799 if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
2800 yyerror("number expected");
2802 cfg_parser
->cfg
->rrset_cache_slabs
= atoi((yyvsp
[(2) - (2)].str
));
2803 if(!is_pow2(cfg_parser
->cfg
->rrset_cache_slabs
))
2804 yyerror("must be a power of 2");
2806 free((yyvsp
[(2) - (2)].str
));
2811 #line 724 "./util/configparser.y"
2813 OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp
[(2) - (2)].str
)));
2814 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
2815 yyerror("number expected");
2816 else cfg_parser
->cfg
->host_ttl
= atoi((yyvsp
[(2) - (2)].str
));
2817 free((yyvsp
[(2) - (2)].str
));
2822 #line 733 "./util/configparser.y"
2824 OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp
[(2) - (2)].str
)));
2825 verbose(VERB_DETAIL
, "ignored infra-lame-ttl: %s (option "
2826 "removed, use infra-host-ttl)", (yyvsp
[(2) - (2)].str
));
2827 free((yyvsp
[(2) - (2)].str
));
2832 #line 741 "./util/configparser.y"
2834 OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp
[(2) - (2)].str
)));
2835 if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
2836 yyerror("number expected");
2837 else cfg_parser
->cfg
->infra_cache_numhosts
= atoi((yyvsp
[(2) - (2)].str
));
2838 free((yyvsp
[(2) - (2)].str
));
2843 #line 750 "./util/configparser.y"
2845 OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp
[(2) - (2)].str
)));
2846 verbose(VERB_DETAIL
, "ignored infra-cache-lame-size: %s "
2847 "(option removed, use infra-cache-numhosts)", (yyvsp
[(2) - (2)].str
));
2848 free((yyvsp
[(2) - (2)].str
));
2853 #line 758 "./util/configparser.y"
2855 OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp
[(2) - (2)].str
)));
2856 if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
2857 yyerror("number expected");
2859 cfg_parser
->cfg
->infra_cache_slabs
= atoi((yyvsp
[(2) - (2)].str
));
2860 if(!is_pow2(cfg_parser
->cfg
->infra_cache_slabs
))
2861 yyerror("must be a power of 2");
2863 free((yyvsp
[(2) - (2)].str
));
2868 #line 771 "./util/configparser.y"
2870 OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp
[(2) - (2)].str
)));
2871 free(cfg_parser
->cfg
->target_fetch_policy
);
2872 cfg_parser
->cfg
->target_fetch_policy
= (yyvsp
[(2) - (2)].str
);
2877 #line 778 "./util/configparser.y"
2879 OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp
[(2) - (2)].str
)));
2880 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2881 yyerror("expected yes or no.");
2882 else cfg_parser
->cfg
->harden_short_bufsize
=
2883 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2884 free((yyvsp
[(2) - (2)].str
));
2889 #line 788 "./util/configparser.y"
2891 OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp
[(2) - (2)].str
)));
2892 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2893 yyerror("expected yes or no.");
2894 else cfg_parser
->cfg
->harden_large_queries
=
2895 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2896 free((yyvsp
[(2) - (2)].str
));
2901 #line 798 "./util/configparser.y"
2903 OUTYY(("P(server_harden_glue:%s)\n", (yyvsp
[(2) - (2)].str
)));
2904 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2905 yyerror("expected yes or no.");
2906 else cfg_parser
->cfg
->harden_glue
=
2907 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2908 free((yyvsp
[(2) - (2)].str
));
2913 #line 808 "./util/configparser.y"
2915 OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp
[(2) - (2)].str
)));
2916 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2917 yyerror("expected yes or no.");
2918 else cfg_parser
->cfg
->harden_dnssec_stripped
=
2919 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2920 free((yyvsp
[(2) - (2)].str
));
2925 #line 818 "./util/configparser.y"
2927 OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp
[(2) - (2)].str
)));
2928 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2929 yyerror("expected yes or no.");
2930 else cfg_parser
->cfg
->harden_below_nxdomain
=
2931 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2932 free((yyvsp
[(2) - (2)].str
));
2937 #line 828 "./util/configparser.y"
2939 OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp
[(2) - (2)].str
)));
2940 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2941 yyerror("expected yes or no.");
2942 else cfg_parser
->cfg
->harden_referral_path
=
2943 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2944 free((yyvsp
[(2) - (2)].str
));
2949 #line 838 "./util/configparser.y"
2951 OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp
[(2) - (2)].str
)));
2952 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2953 yyerror("expected yes or no.");
2954 else cfg_parser
->cfg
->use_caps_bits_for_id
=
2955 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2956 free((yyvsp
[(2) - (2)].str
));
2961 #line 848 "./util/configparser.y"
2963 OUTYY(("P(server_private_address:%s)\n", (yyvsp
[(2) - (2)].str
)));
2964 if(!cfg_strlist_insert(&cfg_parser
->cfg
->private_address
, (yyvsp
[(2) - (2)].str
)))
2965 yyerror("out of memory");
2970 #line 855 "./util/configparser.y"
2972 OUTYY(("P(server_private_domain:%s)\n", (yyvsp
[(2) - (2)].str
)));
2973 if(!cfg_strlist_insert(&cfg_parser
->cfg
->private_domain
, (yyvsp
[(2) - (2)].str
)))
2974 yyerror("out of memory");
2979 #line 862 "./util/configparser.y"
2981 OUTYY(("P(server_prefetch:%s)\n", (yyvsp
[(2) - (2)].str
)));
2982 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2983 yyerror("expected yes or no.");
2984 else cfg_parser
->cfg
->prefetch
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2985 free((yyvsp
[(2) - (2)].str
));
2990 #line 871 "./util/configparser.y"
2992 OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp
[(2) - (2)].str
)));
2993 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
2994 yyerror("expected yes or no.");
2995 else cfg_parser
->cfg
->prefetch_key
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
2996 free((yyvsp
[(2) - (2)].str
));
3001 #line 880 "./util/configparser.y"
3003 OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp
[(2) - (2)].str
)));
3004 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
3005 yyerror("number expected");
3006 else cfg_parser
->cfg
->unwanted_threshold
= atoi((yyvsp
[(2) - (2)].str
));
3007 free((yyvsp
[(2) - (2)].str
));
3012 #line 889 "./util/configparser.y"
3014 OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp
[(2) - (2)].str
)));
3015 if(!cfg_strlist_insert(&cfg_parser
->cfg
->donotqueryaddrs
, (yyvsp
[(2) - (2)].str
)))
3016 yyerror("out of memory");
3021 #line 896 "./util/configparser.y"
3023 OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp
[(2) - (2)].str
)));
3024 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3025 yyerror("expected yes or no.");
3026 else cfg_parser
->cfg
->donotquery_localhost
=
3027 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3028 free((yyvsp
[(2) - (2)].str
));
3033 #line 906 "./util/configparser.y"
3035 OUTYY(("P(server_access_control:%s %s)\n", (yyvsp
[(2) - (3)].str
), (yyvsp
[(3) - (3)].str
)));
3036 if(strcmp((yyvsp
[(3) - (3)].str
), "deny")!=0 && strcmp((yyvsp
[(3) - (3)].str
), "refuse")!=0 &&
3037 strcmp((yyvsp
[(3) - (3)].str
), "deny_non_local")!=0 &&
3038 strcmp((yyvsp
[(3) - (3)].str
), "refuse_non_local")!=0 &&
3039 strcmp((yyvsp
[(3) - (3)].str
), "allow")!=0 &&
3040 strcmp((yyvsp
[(3) - (3)].str
), "allow_snoop")!=0) {
3041 yyerror("expected deny, refuse, deny_non_local, "
3042 "refuse_non_local, allow or allow_snoop "
3043 "in access control action");
3045 if(!cfg_str2list_insert(&cfg_parser
->cfg
->acls
, (yyvsp
[(2) - (3)].str
), (yyvsp
[(3) - (3)].str
)))
3046 fatal_exit("out of memory adding acl");
3052 #line 923 "./util/configparser.y"
3054 OUTYY(("P(server_module_conf:%s)\n", (yyvsp
[(2) - (2)].str
)));
3055 free(cfg_parser
->cfg
->module_conf
);
3056 cfg_parser
->cfg
->module_conf
= (yyvsp
[(2) - (2)].str
);
3061 #line 930 "./util/configparser.y"
3063 OUTYY(("P(server_val_override_date:%s)\n", (yyvsp
[(2) - (2)].str
)));
3064 if(strlen((yyvsp
[(2) - (2)].str
)) == 0 || strcmp((yyvsp
[(2) - (2)].str
), "0") == 0) {
3065 cfg_parser
->cfg
->val_date_override
= 0;
3066 } else if(strlen((yyvsp
[(2) - (2)].str
)) == 14) {
3067 cfg_parser
->cfg
->val_date_override
=
3068 cfg_convert_timeval((yyvsp
[(2) - (2)].str
));
3069 if(!cfg_parser
->cfg
->val_date_override
)
3070 yyerror("bad date/time specification");
3072 if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
3073 yyerror("number expected");
3074 cfg_parser
->cfg
->val_date_override
= atoi((yyvsp
[(2) - (2)].str
));
3076 free((yyvsp
[(2) - (2)].str
));
3081 #line 948 "./util/configparser.y"
3083 OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp
[(2) - (2)].str
)));
3084 if(strlen((yyvsp
[(2) - (2)].str
)) == 0 || strcmp((yyvsp
[(2) - (2)].str
), "0") == 0) {
3085 cfg_parser
->cfg
->val_sig_skew_min
= 0;
3087 cfg_parser
->cfg
->val_sig_skew_min
= atoi((yyvsp
[(2) - (2)].str
));
3088 if(!cfg_parser
->cfg
->val_sig_skew_min
)
3089 yyerror("number expected");
3091 free((yyvsp
[(2) - (2)].str
));
3096 #line 961 "./util/configparser.y"
3098 OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp
[(2) - (2)].str
)));
3099 if(strlen((yyvsp
[(2) - (2)].str
)) == 0 || strcmp((yyvsp
[(2) - (2)].str
), "0") == 0) {
3100 cfg_parser
->cfg
->val_sig_skew_max
= 0;
3102 cfg_parser
->cfg
->val_sig_skew_max
= atoi((yyvsp
[(2) - (2)].str
));
3103 if(!cfg_parser
->cfg
->val_sig_skew_max
)
3104 yyerror("number expected");
3106 free((yyvsp
[(2) - (2)].str
));
3111 #line 974 "./util/configparser.y"
3113 OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp
[(2) - (2)].str
)));
3114 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
3115 yyerror("number expected");
3116 else cfg_parser
->cfg
->max_ttl
= atoi((yyvsp
[(2) - (2)].str
));
3117 free((yyvsp
[(2) - (2)].str
));
3122 #line 983 "./util/configparser.y"
3124 OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp
[(2) - (2)].str
)));
3125 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
3126 yyerror("number expected");
3127 else cfg_parser
->cfg
->min_ttl
= atoi((yyvsp
[(2) - (2)].str
));
3128 free((yyvsp
[(2) - (2)].str
));
3133 #line 992 "./util/configparser.y"
3135 OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp
[(2) - (2)].str
)));
3136 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
3137 yyerror("number expected");
3138 else cfg_parser
->cfg
->bogus_ttl
= atoi((yyvsp
[(2) - (2)].str
));
3139 free((yyvsp
[(2) - (2)].str
));
3144 #line 1001 "./util/configparser.y"
3146 OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp
[(2) - (2)].str
)));
3147 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3148 yyerror("expected yes or no.");
3149 else cfg_parser
->cfg
->val_clean_additional
=
3150 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3151 free((yyvsp
[(2) - (2)].str
));
3156 #line 1011 "./util/configparser.y"
3158 OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp
[(2) - (2)].str
)));
3159 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3160 yyerror("expected yes or no.");
3161 else cfg_parser
->cfg
->val_permissive_mode
=
3162 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3163 free((yyvsp
[(2) - (2)].str
));
3168 #line 1021 "./util/configparser.y"
3170 OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp
[(2) - (2)].str
)));
3171 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3172 yyerror("expected yes or no.");
3173 else cfg_parser
->cfg
->ignore_cd
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3174 free((yyvsp
[(2) - (2)].str
));
3179 #line 1030 "./util/configparser.y"
3181 OUTYY(("P(server_val_log_level:%s)\n", (yyvsp
[(2) - (2)].str
)));
3182 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
3183 yyerror("number expected");
3184 else cfg_parser
->cfg
->val_log_level
= atoi((yyvsp
[(2) - (2)].str
));
3185 free((yyvsp
[(2) - (2)].str
));
3190 #line 1039 "./util/configparser.y"
3192 OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp
[(2) - (2)].str
)));
3193 free(cfg_parser
->cfg
->val_nsec3_key_iterations
);
3194 cfg_parser
->cfg
->val_nsec3_key_iterations
= (yyvsp
[(2) - (2)].str
);
3199 #line 1046 "./util/configparser.y"
3201 OUTYY(("P(server_add_holddown:%s)\n", (yyvsp
[(2) - (2)].str
)));
3202 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
3203 yyerror("number expected");
3204 else cfg_parser
->cfg
->add_holddown
= atoi((yyvsp
[(2) - (2)].str
));
3205 free((yyvsp
[(2) - (2)].str
));
3210 #line 1055 "./util/configparser.y"
3212 OUTYY(("P(server_del_holddown:%s)\n", (yyvsp
[(2) - (2)].str
)));
3213 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
3214 yyerror("number expected");
3215 else cfg_parser
->cfg
->del_holddown
= atoi((yyvsp
[(2) - (2)].str
));
3216 free((yyvsp
[(2) - (2)].str
));
3221 #line 1064 "./util/configparser.y"
3223 OUTYY(("P(server_keep_missing:%s)\n", (yyvsp
[(2) - (2)].str
)));
3224 if(atoi((yyvsp
[(2) - (2)].str
)) == 0 && strcmp((yyvsp
[(2) - (2)].str
), "0") != 0)
3225 yyerror("number expected");
3226 else cfg_parser
->cfg
->keep_missing
= atoi((yyvsp
[(2) - (2)].str
));
3227 free((yyvsp
[(2) - (2)].str
));
3232 #line 1073 "./util/configparser.y"
3234 OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp
[(2) - (2)].str
)));
3235 if(!cfg_parse_memsize((yyvsp
[(2) - (2)].str
), &cfg_parser
->cfg
->key_cache_size
))
3236 yyerror("memory size expected");
3237 free((yyvsp
[(2) - (2)].str
));
3242 #line 1081 "./util/configparser.y"
3244 OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp
[(2) - (2)].str
)));
3245 if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
3246 yyerror("number expected");
3248 cfg_parser
->cfg
->key_cache_slabs
= atoi((yyvsp
[(2) - (2)].str
));
3249 if(!is_pow2(cfg_parser
->cfg
->key_cache_slabs
))
3250 yyerror("must be a power of 2");
3252 free((yyvsp
[(2) - (2)].str
));
3257 #line 1094 "./util/configparser.y"
3259 OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp
[(2) - (2)].str
)));
3260 if(!cfg_parse_memsize((yyvsp
[(2) - (2)].str
), &cfg_parser
->cfg
->neg_cache_size
))
3261 yyerror("memory size expected");
3262 free((yyvsp
[(2) - (2)].str
));
3267 #line 1102 "./util/configparser.y"
3269 OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp
[(2) - (3)].str
), (yyvsp
[(3) - (3)].str
)));
3270 if(strcmp((yyvsp
[(3) - (3)].str
), "static")!=0 && strcmp((yyvsp
[(3) - (3)].str
), "deny")!=0 &&
3271 strcmp((yyvsp
[(3) - (3)].str
), "refuse")!=0 && strcmp((yyvsp
[(3) - (3)].str
), "redirect")!=0 &&
3272 strcmp((yyvsp
[(3) - (3)].str
), "transparent")!=0 && strcmp((yyvsp
[(3) - (3)].str
), "nodefault")!=0
3273 && strcmp((yyvsp
[(3) - (3)].str
), "typetransparent")!=0)
3274 yyerror("local-zone type: expected static, deny, "
3275 "refuse, redirect, transparent, "
3276 "typetransparent or nodefault");
3277 else if(strcmp((yyvsp
[(3) - (3)].str
), "nodefault")==0) {
3278 if(!cfg_strlist_insert(&cfg_parser
->cfg
->
3279 local_zones_nodefault
, (yyvsp
[(2) - (3)].str
)))
3280 fatal_exit("out of memory adding local-zone");
3281 free((yyvsp
[(3) - (3)].str
));
3283 if(!cfg_str2list_insert(&cfg_parser
->cfg
->local_zones
,
3284 (yyvsp
[(2) - (3)].str
), (yyvsp
[(3) - (3)].str
)))
3285 fatal_exit("out of memory adding local-zone");
3291 #line 1124 "./util/configparser.y"
3293 OUTYY(("P(server_local_data:%s)\n", (yyvsp
[(2) - (2)].str
)));
3294 if(!cfg_strlist_insert(&cfg_parser
->cfg
->local_data
, (yyvsp
[(2) - (2)].str
)))
3295 fatal_exit("out of memory adding local-data");
3300 #line 1131 "./util/configparser.y"
3303 OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp
[(2) - (2)].str
)));
3304 ptr
= cfg_ptr_reverse((yyvsp
[(2) - (2)].str
));
3305 free((yyvsp
[(2) - (2)].str
));
3307 if(!cfg_strlist_insert(&cfg_parser
->cfg
->
3309 fatal_exit("out of memory adding local-data");
3311 yyerror("local-data-ptr could not be reversed");
3317 #line 1146 "./util/configparser.y"
3319 OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp
[(2) - (2)].str
)));
3320 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3321 yyerror("expected yes or no.");
3322 else cfg_parser
->cfg
->minimal_responses
=
3323 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3324 free((yyvsp
[(2) - (2)].str
));
3329 #line 1156 "./util/configparser.y"
3331 OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp
[(2) - (2)].str
)));
3332 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3333 yyerror("expected yes or no.");
3334 else cfg_parser
->cfg
->rrset_roundrobin
=
3335 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3336 free((yyvsp
[(2) - (2)].str
));
3341 #line 1166 "./util/configparser.y"
3343 OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp
[(2) - (2)].str
)));
3344 cfg_parser
->cfg
->max_udp_size
= atoi((yyvsp
[(2) - (2)].str
));
3345 free((yyvsp
[(2) - (2)].str
));
3350 #line 1173 "./util/configparser.y"
3352 OUTYY(("P(dns64_prefix:%s)\n", (yyvsp
[(2) - (2)].str
)));
3353 free(cfg_parser
->cfg
->dns64_prefix
);
3354 cfg_parser
->cfg
->dns64_prefix
= (yyvsp
[(2) - (2)].str
);
3359 #line 1180 "./util/configparser.y"
3361 OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp
[(2) - (2)].str
)));
3362 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3363 yyerror("expected yes or no.");
3364 else cfg_parser
->cfg
->dns64_synthall
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3365 free((yyvsp
[(2) - (2)].str
));
3370 #line 1189 "./util/configparser.y"
3372 OUTYY(("P(name:%s)\n", (yyvsp
[(2) - (2)].str
)));
3373 if(cfg_parser
->cfg
->stubs
->name
)
3374 yyerror("stub name override, there must be one name "
3375 "for one stub-zone");
3376 free(cfg_parser
->cfg
->stubs
->name
);
3377 cfg_parser
->cfg
->stubs
->name
= (yyvsp
[(2) - (2)].str
);
3382 #line 1199 "./util/configparser.y"
3384 OUTYY(("P(stub-host:%s)\n", (yyvsp
[(2) - (2)].str
)));
3385 if(!cfg_strlist_insert(&cfg_parser
->cfg
->stubs
->hosts
, (yyvsp
[(2) - (2)].str
)))
3386 yyerror("out of memory");
3391 #line 1206 "./util/configparser.y"
3393 OUTYY(("P(stub-addr:%s)\n", (yyvsp
[(2) - (2)].str
)));
3394 if(!cfg_strlist_insert(&cfg_parser
->cfg
->stubs
->addrs
, (yyvsp
[(2) - (2)].str
)))
3395 yyerror("out of memory");
3400 #line 1213 "./util/configparser.y"
3402 OUTYY(("P(stub-first:%s)\n", (yyvsp
[(2) - (2)].str
)));
3403 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3404 yyerror("expected yes or no.");
3405 else cfg_parser
->cfg
->stubs
->isfirst
=(strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3406 free((yyvsp
[(2) - (2)].str
));
3411 #line 1222 "./util/configparser.y"
3413 OUTYY(("P(stub-prime:%s)\n", (yyvsp
[(2) - (2)].str
)));
3414 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3415 yyerror("expected yes or no.");
3416 else cfg_parser
->cfg
->stubs
->isprime
=
3417 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3418 free((yyvsp
[(2) - (2)].str
));
3423 #line 1232 "./util/configparser.y"
3425 OUTYY(("P(name:%s)\n", (yyvsp
[(2) - (2)].str
)));
3426 if(cfg_parser
->cfg
->forwards
->name
)
3427 yyerror("forward name override, there must be one "
3428 "name for one forward-zone");
3429 free(cfg_parser
->cfg
->forwards
->name
);
3430 cfg_parser
->cfg
->forwards
->name
= (yyvsp
[(2) - (2)].str
);
3435 #line 1242 "./util/configparser.y"
3437 OUTYY(("P(forward-host:%s)\n", (yyvsp
[(2) - (2)].str
)));
3438 if(!cfg_strlist_insert(&cfg_parser
->cfg
->forwards
->hosts
, (yyvsp
[(2) - (2)].str
)))
3439 yyerror("out of memory");
3444 #line 1249 "./util/configparser.y"
3446 OUTYY(("P(forward-addr:%s)\n", (yyvsp
[(2) - (2)].str
)));
3447 if(!cfg_strlist_insert(&cfg_parser
->cfg
->forwards
->addrs
, (yyvsp
[(2) - (2)].str
)))
3448 yyerror("out of memory");
3453 #line 1256 "./util/configparser.y"
3455 OUTYY(("P(forward-first:%s)\n", (yyvsp
[(2) - (2)].str
)));
3456 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3457 yyerror("expected yes or no.");
3458 else cfg_parser
->cfg
->forwards
->isfirst
=(strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3459 free((yyvsp
[(2) - (2)].str
));
3464 #line 1265 "./util/configparser.y"
3466 OUTYY(("\nP(remote-control:)\n"));
3471 #line 1276 "./util/configparser.y"
3473 OUTYY(("P(control_enable:%s)\n", (yyvsp
[(2) - (2)].str
)));
3474 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3475 yyerror("expected yes or no.");
3476 else cfg_parser
->cfg
->remote_control_enable
=
3477 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3478 free((yyvsp
[(2) - (2)].str
));
3483 #line 1286 "./util/configparser.y"
3485 OUTYY(("P(control_port:%s)\n", (yyvsp
[(2) - (2)].str
)));
3486 if(atoi((yyvsp
[(2) - (2)].str
)) == 0)
3487 yyerror("control port number expected");
3488 else cfg_parser
->cfg
->control_port
= atoi((yyvsp
[(2) - (2)].str
));
3489 free((yyvsp
[(2) - (2)].str
));
3494 #line 1295 "./util/configparser.y"
3496 OUTYY(("P(control_interface:%s)\n", (yyvsp
[(2) - (2)].str
)));
3497 if(!cfg_strlist_insert(&cfg_parser
->cfg
->control_ifs
, (yyvsp
[(2) - (2)].str
)))
3498 yyerror("out of memory");
3503 #line 1302 "./util/configparser.y"
3505 OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp
[(2) - (2)].str
)));
3506 free(cfg_parser
->cfg
->server_key_file
);
3507 cfg_parser
->cfg
->server_key_file
= (yyvsp
[(2) - (2)].str
);
3512 #line 1309 "./util/configparser.y"
3514 OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp
[(2) - (2)].str
)));
3515 free(cfg_parser
->cfg
->server_cert_file
);
3516 cfg_parser
->cfg
->server_cert_file
= (yyvsp
[(2) - (2)].str
);
3521 #line 1316 "./util/configparser.y"
3523 OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp
[(2) - (2)].str
)));
3524 free(cfg_parser
->cfg
->control_key_file
);
3525 cfg_parser
->cfg
->control_key_file
= (yyvsp
[(2) - (2)].str
);
3530 #line 1323 "./util/configparser.y"
3532 OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp
[(2) - (2)].str
)));
3533 free(cfg_parser
->cfg
->control_cert_file
);
3534 cfg_parser
->cfg
->control_cert_file
= (yyvsp
[(2) - (2)].str
);
3539 #line 1330 "./util/configparser.y"
3541 OUTYY(("\nP(dnstap:)\n"));
3546 #line 1347 "./util/configparser.y"
3548 OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp
[(2) - (2)].str
)));
3549 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3550 yyerror("expected yes or no.");
3551 else cfg_parser
->cfg
->dnstap
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3556 #line 1355 "./util/configparser.y"
3558 OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp
[(2) - (2)].str
)));
3559 free(cfg_parser
->cfg
->dnstap_socket_path
);
3560 cfg_parser
->cfg
->dnstap_socket_path
= (yyvsp
[(2) - (2)].str
);
3565 #line 1362 "./util/configparser.y"
3567 OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp
[(2) - (2)].str
)));
3568 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3569 yyerror("expected yes or no.");
3570 else cfg_parser
->cfg
->dnstap_send_identity
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3575 #line 1370 "./util/configparser.y"
3577 OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp
[(2) - (2)].str
)));
3578 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3579 yyerror("expected yes or no.");
3580 else cfg_parser
->cfg
->dnstap_send_version
= (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3585 #line 1378 "./util/configparser.y"
3587 OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp
[(2) - (2)].str
)));
3588 free(cfg_parser
->cfg
->dnstap_identity
);
3589 cfg_parser
->cfg
->dnstap_identity
= (yyvsp
[(2) - (2)].str
);
3594 #line 1385 "./util/configparser.y"
3596 OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp
[(2) - (2)].str
)));
3597 free(cfg_parser
->cfg
->dnstap_version
);
3598 cfg_parser
->cfg
->dnstap_version
= (yyvsp
[(2) - (2)].str
);
3603 #line 1392 "./util/configparser.y"
3605 OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp
[(2) - (2)].str
)));
3606 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3607 yyerror("expected yes or no.");
3608 else cfg_parser
->cfg
->dnstap_log_resolver_query_messages
=
3609 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3614 #line 1401 "./util/configparser.y"
3616 OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp
[(2) - (2)].str
)));
3617 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3618 yyerror("expected yes or no.");
3619 else cfg_parser
->cfg
->dnstap_log_resolver_response_messages
=
3620 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3625 #line 1410 "./util/configparser.y"
3627 OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp
[(2) - (2)].str
)));
3628 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3629 yyerror("expected yes or no.");
3630 else cfg_parser
->cfg
->dnstap_log_client_query_messages
=
3631 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3636 #line 1419 "./util/configparser.y"
3638 OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp
[(2) - (2)].str
)));
3639 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3640 yyerror("expected yes or no.");
3641 else cfg_parser
->cfg
->dnstap_log_client_response_messages
=
3642 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3647 #line 1428 "./util/configparser.y"
3649 OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp
[(2) - (2)].str
)));
3650 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3651 yyerror("expected yes or no.");
3652 else cfg_parser
->cfg
->dnstap_log_forwarder_query_messages
=
3653 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3658 #line 1437 "./util/configparser.y"
3660 OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp
[(2) - (2)].str
)));
3661 if(strcmp((yyvsp
[(2) - (2)].str
), "yes") != 0 && strcmp((yyvsp
[(2) - (2)].str
), "no") != 0)
3662 yyerror("expected yes or no.");
3663 else cfg_parser
->cfg
->dnstap_log_forwarder_response_messages
=
3664 (strcmp((yyvsp
[(2) - (2)].str
), "yes")==0);
3669 #line 1446 "./util/configparser.y"
3671 OUTYY(("\nP(python:)\n"));
3676 #line 1455 "./util/configparser.y"
3678 OUTYY(("P(python-script:%s)\n", (yyvsp
[(2) - (2)].str
)));
3679 free(cfg_parser
->cfg
->python_script
);
3680 cfg_parser
->cfg
->python_script
= (yyvsp
[(2) - (2)].str
);
3685 /* Line 1267 of yacc.c. */
3686 #line 3687 "util/configparser.c"
3689 YY_SYMBOL_PRINT ("-> $$ =", yyr1
[yyn
], &yyval
, &yyloc
);
3693 YY_STACK_PRINT (yyss
, yyssp
);
3698 /* Now `shift' the result of the reduction. Determine what state
3699 that goes to, based on the state we popped back to and the rule
3700 number reduced by. */
3704 yystate
= yypgoto
[yyn
- YYNTOKENS
] + *yyssp
;
3705 if (0 <= yystate
&& yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
3706 yystate
= yytable
[yystate
];
3708 yystate
= yydefgoto
[yyn
- YYNTOKENS
];
3713 /*------------------------------------.
3714 | yyerrlab -- here on detecting error |
3715 `------------------------------------*/
3717 /* If not already recovering from an error, report this error. */
3721 #if ! YYERROR_VERBOSE
3722 yyerror (YY_("syntax error"));
3725 YYSIZE_T yysize
= yysyntax_error (0, yystate
, yychar
);
3726 if (yymsg_alloc
< yysize
&& yymsg_alloc
< YYSTACK_ALLOC_MAXIMUM
)
3728 YYSIZE_T yyalloc
= 2 * yysize
;
3729 if (! (yysize
<= yyalloc
&& yyalloc
<= YYSTACK_ALLOC_MAXIMUM
))
3730 yyalloc
= YYSTACK_ALLOC_MAXIMUM
;
3731 if (yymsg
!= yymsgbuf
)
3732 YYSTACK_FREE (yymsg
);
3733 yymsg
= (char *) YYSTACK_ALLOC (yyalloc
);
3735 yymsg_alloc
= yyalloc
;
3739 yymsg_alloc
= sizeof yymsgbuf
;
3743 if (0 < yysize
&& yysize
<= yymsg_alloc
)
3745 (void) yysyntax_error (yymsg
, yystate
, yychar
);
3750 yyerror (YY_("syntax error"));
3752 goto yyexhaustedlab
;
3760 if (yyerrstatus
== 3)
3762 /* If just tried and failed to reuse look-ahead token after an
3763 error, discard it. */
3765 if (yychar
<= YYEOF
)
3767 /* Return failure if at end of input. */
3768 if (yychar
== YYEOF
)
3773 yydestruct ("Error: discarding",
3779 /* Else will try to reuse look-ahead token after shifting the error
3784 /*---------------------------------------------------.
3785 | yyerrorlab -- error raised explicitly by YYERROR. |
3786 `---------------------------------------------------*/
3789 /* Pacify compilers like GCC when the user code never invokes
3790 YYERROR and the label yyerrorlab therefore never appears in user
3792 if (/*CONSTCOND*/ 0)
3795 /* Do not reclaim the symbols of the rule which action triggered
3799 YY_STACK_PRINT (yyss
, yyssp
);
3804 /*-------------------------------------------------------------.
3805 | yyerrlab1 -- common code for both syntax error and YYERROR. |
3806 `-------------------------------------------------------------*/
3808 yyerrstatus
= 3; /* Each real token shifted decrements this. */
3812 yyn
= yypact
[yystate
];
3813 if (yyn
!= YYPACT_NINF
)
3816 if (0 <= yyn
&& yyn
<= YYLAST
&& yycheck
[yyn
] == YYTERROR
)
3824 /* Pop the current state because it cannot handle the error token. */
3829 yydestruct ("Error: popping",
3830 yystos
[yystate
], yyvsp
);
3833 YY_STACK_PRINT (yyss
, yyssp
);
3842 /* Shift the error token. */
3843 YY_SYMBOL_PRINT ("Shifting", yystos
[yyn
], yyvsp
, yylsp
);
3849 /*-------------------------------------.
3850 | yyacceptlab -- YYACCEPT comes here. |
3851 `-------------------------------------*/
3856 /*-----------------------------------.
3857 | yyabortlab -- YYABORT comes here. |
3858 `-----------------------------------*/
3864 /*-------------------------------------------------.
3865 | yyexhaustedlab -- memory exhaustion comes here. |
3866 `-------------------------------------------------*/
3868 yyerror (YY_("memory exhausted"));
3874 if (yychar
!= YYEOF
&& yychar
!= YYEMPTY
)
3875 yydestruct ("Cleanup: discarding lookahead",
3877 /* Do not reclaim the symbols of the rule which action triggered
3878 this YYABORT or YYACCEPT. */
3880 YY_STACK_PRINT (yyss
, yyssp
);
3881 while (yyssp
!= yyss
)
3883 yydestruct ("Cleanup: popping",
3884 yystos
[*yyssp
], yyvsp
);
3889 YYSTACK_FREE (yyss
);
3892 if (yymsg
!= yymsgbuf
)
3893 YYSTACK_FREE (yymsg
);
3895 /* Make sure YYID is used. */
3896 return YYID (yyresult
);
3900 #line 1460 "./util/configparser.y"
3903 /* parse helper routines could be here */