diff options
Diffstat (limited to 'contrib/unbound/util/configparser.c')
-rw-r--r-- | contrib/unbound/util/configparser.c | 2330 |
1 files changed, 0 insertions, 2330 deletions
diff --git a/contrib/unbound/util/configparser.c b/contrib/unbound/util/configparser.c deleted file mode 100644 index 1f89d57..0000000 --- a/contrib/unbound/util/configparser.c +++ /dev/null @@ -1,2330 +0,0 @@ -#ifndef lint -static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; -#endif - -#define YYBYACC 1 -#define YYMAJOR 1 -#define YYMINOR 9 - -#define YYEMPTY (-1) -#define yyclearin (yychar = YYEMPTY) -#define yyerrok (yyerrflag = 0) -#define YYRECOVERING() (yyerrflag != 0) - -#define YYPREFIX "yy" - -#define YYPURE 0 - -#line 39 "util/configparser.y" -#include "config.h" - -#include <stdarg.h> -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <assert.h> - -#include "util/configyyrename.h" -#include "util/config_file.h" -#include "util/net_help.h" - -int ub_c_lex(void); -void ub_c_error(const char *message); - -/* these need to be global, otherwise they cannot be used inside yacc */ -extern struct config_parser_state* cfg_parser; - -#if 0 -#define OUTYY(s) printf s /* used ONLY when debugging */ -#else -#define OUTYY(s) -#endif - -#line 64 "util/configparser.y" -#ifdef YYSTYPE -#undef YYSTYPE_IS_DECLARED -#define YYSTYPE_IS_DECLARED 1 -#endif -#ifndef YYSTYPE_IS_DECLARED -#define YYSTYPE_IS_DECLARED 1 -typedef union { - char* str; -} YYSTYPE; -#endif /* !YYSTYPE_IS_DECLARED */ -#line 54 "util/configparser.c" - -/* compatibility with bison */ -#ifdef YYPARSE_PARAM -/* compatibility with FreeBSD */ -# ifdef YYPARSE_PARAM_TYPE -# define YYPARSE_DECL() yyparse(YYPARSE_PARAM_TYPE YYPARSE_PARAM) -# else -# define YYPARSE_DECL() yyparse(void *YYPARSE_PARAM) -# endif -#else -# define YYPARSE_DECL() yyparse(void) -#endif - -/* Parameters sent to lex. */ -#ifdef YYLEX_PARAM -# define YYLEX_DECL() yylex(void *YYLEX_PARAM) -# define YYLEX yylex(YYLEX_PARAM) -#else -# define YYLEX_DECL() yylex(void) -# define YYLEX yylex() -#endif - -/* Parameters sent to yyerror. */ -#ifndef YYERROR_DECL -#define YYERROR_DECL() yyerror(const char *s) -#endif -#ifndef YYERROR_CALL -#define YYERROR_CALL(msg) yyerror(msg) -#endif - -extern int YYPARSE_DECL(); - -#define SPACE 257 -#define LETTER 258 -#define NEWLINE 259 -#define COMMENT 260 -#define COLON 261 -#define ANY 262 -#define ZONESTR 263 -#define STRING_ARG 264 -#define VAR_SERVER 265 -#define VAR_VERBOSITY 266 -#define VAR_NUM_THREADS 267 -#define VAR_PORT 268 -#define VAR_OUTGOING_RANGE 269 -#define VAR_INTERFACE 270 -#define VAR_DO_IP4 271 -#define VAR_DO_IP6 272 -#define VAR_DO_UDP 273 -#define VAR_DO_TCP 274 -#define VAR_CHROOT 275 -#define VAR_USERNAME 276 -#define VAR_DIRECTORY 277 -#define VAR_LOGFILE 278 -#define VAR_PIDFILE 279 -#define VAR_MSG_CACHE_SIZE 280 -#define VAR_MSG_CACHE_SLABS 281 -#define VAR_NUM_QUERIES_PER_THREAD 282 -#define VAR_RRSET_CACHE_SIZE 283 -#define VAR_RRSET_CACHE_SLABS 284 -#define VAR_OUTGOING_NUM_TCP 285 -#define VAR_INFRA_HOST_TTL 286 -#define VAR_INFRA_LAME_TTL 287 -#define VAR_INFRA_CACHE_SLABS 288 -#define VAR_INFRA_CACHE_NUMHOSTS 289 -#define VAR_INFRA_CACHE_LAME_SIZE 290 -#define VAR_NAME 291 -#define VAR_STUB_ZONE 292 -#define VAR_STUB_HOST 293 -#define VAR_STUB_ADDR 294 -#define VAR_TARGET_FETCH_POLICY 295 -#define VAR_HARDEN_SHORT_BUFSIZE 296 -#define VAR_HARDEN_LARGE_QUERIES 297 -#define VAR_FORWARD_ZONE 298 -#define VAR_FORWARD_HOST 299 -#define VAR_FORWARD_ADDR 300 -#define VAR_DO_NOT_QUERY_ADDRESS 301 -#define VAR_HIDE_IDENTITY 302 -#define VAR_HIDE_VERSION 303 -#define VAR_IDENTITY 304 -#define VAR_VERSION 305 -#define VAR_HARDEN_GLUE 306 -#define VAR_MODULE_CONF 307 -#define VAR_TRUST_ANCHOR_FILE 308 -#define VAR_TRUST_ANCHOR 309 -#define VAR_VAL_OVERRIDE_DATE 310 -#define VAR_BOGUS_TTL 311 -#define VAR_VAL_CLEAN_ADDITIONAL 312 -#define VAR_VAL_PERMISSIVE_MODE 313 -#define VAR_INCOMING_NUM_TCP 314 -#define VAR_MSG_BUFFER_SIZE 315 -#define VAR_KEY_CACHE_SIZE 316 -#define VAR_KEY_CACHE_SLABS 317 -#define VAR_TRUSTED_KEYS_FILE 318 -#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 319 -#define VAR_USE_SYSLOG 320 -#define VAR_OUTGOING_INTERFACE 321 -#define VAR_ROOT_HINTS 322 -#define VAR_DO_NOT_QUERY_LOCALHOST 323 -#define VAR_CACHE_MAX_TTL 324 -#define VAR_HARDEN_DNSSEC_STRIPPED 325 -#define VAR_ACCESS_CONTROL 326 -#define VAR_LOCAL_ZONE 327 -#define VAR_LOCAL_DATA 328 -#define VAR_INTERFACE_AUTOMATIC 329 -#define VAR_STATISTICS_INTERVAL 330 -#define VAR_DO_DAEMONIZE 331 -#define VAR_USE_CAPS_FOR_ID 332 -#define VAR_STATISTICS_CUMULATIVE 333 -#define VAR_OUTGOING_PORT_PERMIT 334 -#define VAR_OUTGOING_PORT_AVOID 335 -#define VAR_DLV_ANCHOR_FILE 336 -#define VAR_DLV_ANCHOR 337 -#define VAR_NEG_CACHE_SIZE 338 -#define VAR_HARDEN_REFERRAL_PATH 339 -#define VAR_PRIVATE_ADDRESS 340 -#define VAR_PRIVATE_DOMAIN 341 -#define VAR_REMOTE_CONTROL 342 -#define VAR_CONTROL_ENABLE 343 -#define VAR_CONTROL_INTERFACE 344 -#define VAR_CONTROL_PORT 345 -#define VAR_SERVER_KEY_FILE 346 -#define VAR_SERVER_CERT_FILE 347 -#define VAR_CONTROL_KEY_FILE 348 -#define VAR_CONTROL_CERT_FILE 349 -#define VAR_EXTENDED_STATISTICS 350 -#define VAR_LOCAL_DATA_PTR 351 -#define VAR_JOSTLE_TIMEOUT 352 -#define VAR_STUB_PRIME 353 -#define VAR_UNWANTED_REPLY_THRESHOLD 354 -#define VAR_LOG_TIME_ASCII 355 -#define VAR_DOMAIN_INSECURE 356 -#define VAR_PYTHON 357 -#define VAR_PYTHON_SCRIPT 358 -#define VAR_VAL_SIG_SKEW_MIN 359 -#define VAR_VAL_SIG_SKEW_MAX 360 -#define VAR_CACHE_MIN_TTL 361 -#define VAR_VAL_LOG_LEVEL 362 -#define VAR_AUTO_TRUST_ANCHOR_FILE 363 -#define VAR_KEEP_MISSING 364 -#define VAR_ADD_HOLDDOWN 365 -#define VAR_DEL_HOLDDOWN 366 -#define VAR_SO_RCVBUF 367 -#define VAR_EDNS_BUFFER_SIZE 368 -#define VAR_PREFETCH 369 -#define VAR_PREFETCH_KEY 370 -#define VAR_SO_SNDBUF 371 -#define VAR_HARDEN_BELOW_NXDOMAIN 372 -#define VAR_IGNORE_CD_FLAG 373 -#define VAR_LOG_QUERIES 374 -#define VAR_TCP_UPSTREAM 375 -#define VAR_SSL_UPSTREAM 376 -#define VAR_SSL_SERVICE_KEY 377 -#define VAR_SSL_SERVICE_PEM 378 -#define VAR_SSL_PORT 379 -#define VAR_FORWARD_FIRST 380 -#define VAR_STUB_FIRST 381 -#define VAR_MINIMAL_RESPONSES 382 -#define VAR_RRSET_ROUNDROBIN 383 -#define YYERRCODE 256 -static const short yylhs[] = { -1, - 0, 0, 1, 1, 1, 1, 1, 2, 3, 3, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 4, 5, - 5, 111, 111, 111, 111, 111, 6, 7, 7, 117, - 117, 117, 117, 13, 14, 70, 73, 82, 15, 21, - 61, 16, 74, 75, 32, 54, 69, 17, 18, 19, - 20, 104, 105, 106, 107, 108, 71, 60, 86, 103, - 22, 23, 24, 25, 26, 62, 76, 77, 92, 48, - 58, 49, 87, 42, 43, 44, 45, 96, 100, 97, - 55, 27, 28, 29, 84, 30, 31, 33, 34, 36, - 37, 35, 38, 39, 40, 46, 65, 101, 79, 72, - 80, 81, 98, 99, 85, 41, 63, 66, 47, 50, - 88, 89, 64, 90, 51, 52, 53, 102, 91, 59, - 93, 94, 95, 56, 57, 78, 67, 68, 83, 109, - 110, 112, 113, 114, 116, 115, 118, 119, 120, 121, - 10, 11, 11, 122, 122, 122, 122, 122, 122, 122, - 123, 125, 124, 126, 127, 128, 129, 8, 9, 9, - 130, 131, -}; -static const short yylen[] = { 2, - 0, 2, 2, 2, 2, 2, 2, 1, 2, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 2, 0, 1, - 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, - 1, 2, -}; -static const short yydefred[] = { 1, - 0, 8, 109, 117, 231, 248, 2, 10, 111, 119, - 250, 233, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 0, 0, 0, 0, 0, 110, - 112, 113, 114, 115, 116, 0, 0, 0, 0, 118, - 120, 121, 122, 123, 0, 249, 251, 0, 0, 0, - 0, 0, 0, 0, 232, 234, 235, 236, 237, 238, - 239, 240, 125, 124, 129, 132, 130, 138, 139, 140, - 141, 151, 152, 153, 154, 155, 172, 173, 174, 176, - 177, 135, 178, 179, 182, 180, 181, 183, 184, 185, - 196, 164, 165, 166, 167, 186, 199, 160, 162, 200, - 205, 206, 207, 136, 171, 214, 215, 161, 210, 148, - 131, 156, 197, 203, 187, 0, 0, 218, 137, 126, - 147, 190, 127, 133, 134, 157, 158, 216, 189, 191, - 192, 128, 219, 175, 195, 149, 163, 201, 202, 204, - 209, 159, 213, 211, 212, 168, 170, 193, 194, 169, - 188, 208, 150, 142, 143, 144, 145, 146, 220, 221, - 222, 223, 224, 226, 225, 227, 228, 229, 230, 252, - 241, 243, 242, 244, 245, 246, 247, 198, 217, -}; -static const short yydgoto[] = { 1, - 7, 8, 13, 9, 14, 10, 15, 11, 16, 12, - 17, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 220, 221, 222, 223, 224, 225, 230, 231, 232, 233, - 234, 245, 246, 247, 248, 249, 250, 251, 252, 236, - 237, -}; -static const short yysindex[] = { 0, - -172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -260, -209, -202, -358, -216, -233, -232, -231, - -230, -226, -225, -224, -181, -178, -177, -176, -143, -140, - -139, -130, -129, -128, -127, -126, -125, -124, -123, -122, - -121, -119, -118, -117, -116, -115, -114, -113, -112, -111, - -110, -109, -108, -107, -106, -105, -104, -103, -102, -101, - -100, -99, -98, -97, -96, -95, -93, -91, -90, -89, - -88, -87, -85, -84, -83, -82, -81, -80, -78, -77, - -76, -75, -74, -73, -72, -71, -70, -69, -68, -67, - -66, -65, -64, -63, -62, -61, -60, -59, -58, -57, - -56, -55, -54, -53, -52, -51, -50, -49, -48, -47, - -46, -45, -44, -43, -42, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -41, -40, -39, -38, -37, 0, - 0, 0, 0, 0, 0, -36, -35, -34, -33, 0, - 0, 0, 0, 0, -32, 0, 0, -31, -30, -29, - -28, -27, -26, -25, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -24, -23, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; -static const short yyrindex[] = { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 3, 4, 5, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; -static const short yygindex[] = { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; -#define YYTABLESIZE 362 -static const short yytable[] = { 235, - 3, 4, 5, 6, 7, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 253, 254, 255, 256, 43, 44, 45, 257, 258, 259, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 215, 260, 216, 217, 261, 262, 263, 226, 87, - 88, 89, 2, 90, 91, 92, 227, 228, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 3, - 264, 114, 115, 265, 266, 4, 238, 239, 240, 241, - 242, 243, 244, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 218, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 5, - 302, 219, 303, 304, 305, 306, 307, 229, 308, 309, - 310, 311, 312, 313, 6, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 4, 5, 6, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 4, 5, 6, 7, 0, 3, 4, - 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 4, 5, 6, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, - 6, 7, -}; -static const short yycheck[] = { 358, - 0, 0, 0, 0, 0, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 264, 264, 264, 264, 295, 296, 297, 264, 264, 264, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, - 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, - 341, 291, 264, 293, 294, 264, 264, 264, 291, 350, - 351, 352, 265, 354, 355, 356, 299, 300, 359, 360, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 292, - 264, 382, 383, 264, 264, 298, 343, 344, 345, 346, - 347, 348, 349, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 353, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 342, - 264, 381, 264, 264, 264, 264, 264, 380, 264, 264, - 264, 264, 264, 264, 357, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 265, 265, 265, 265, 265, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 292, 292, 292, 292, 292, -1, 298, 298, - 298, 298, 298, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 342, 342, 342, 342, 342, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 357, 357, 357, - 357, 357, -}; -#define YYFINAL 1 -#ifndef YYDEBUG -#define YYDEBUG 0 -#endif -#define YYMAXTOKEN 383 -#if YYDEBUG -static const char *yyname[] = { - -"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"SPACE","LETTER","NEWLINE", -"COMMENT","COLON","ANY","ZONESTR","STRING_ARG","VAR_SERVER","VAR_VERBOSITY", -"VAR_NUM_THREADS","VAR_PORT","VAR_OUTGOING_RANGE","VAR_INTERFACE","VAR_DO_IP4", -"VAR_DO_IP6","VAR_DO_UDP","VAR_DO_TCP","VAR_CHROOT","VAR_USERNAME", -"VAR_DIRECTORY","VAR_LOGFILE","VAR_PIDFILE","VAR_MSG_CACHE_SIZE", -"VAR_MSG_CACHE_SLABS","VAR_NUM_QUERIES_PER_THREAD","VAR_RRSET_CACHE_SIZE", -"VAR_RRSET_CACHE_SLABS","VAR_OUTGOING_NUM_TCP","VAR_INFRA_HOST_TTL", -"VAR_INFRA_LAME_TTL","VAR_INFRA_CACHE_SLABS","VAR_INFRA_CACHE_NUMHOSTS", -"VAR_INFRA_CACHE_LAME_SIZE","VAR_NAME","VAR_STUB_ZONE","VAR_STUB_HOST", -"VAR_STUB_ADDR","VAR_TARGET_FETCH_POLICY","VAR_HARDEN_SHORT_BUFSIZE", -"VAR_HARDEN_LARGE_QUERIES","VAR_FORWARD_ZONE","VAR_FORWARD_HOST", -"VAR_FORWARD_ADDR","VAR_DO_NOT_QUERY_ADDRESS","VAR_HIDE_IDENTITY", -"VAR_HIDE_VERSION","VAR_IDENTITY","VAR_VERSION","VAR_HARDEN_GLUE", -"VAR_MODULE_CONF","VAR_TRUST_ANCHOR_FILE","VAR_TRUST_ANCHOR", -"VAR_VAL_OVERRIDE_DATE","VAR_BOGUS_TTL","VAR_VAL_CLEAN_ADDITIONAL", -"VAR_VAL_PERMISSIVE_MODE","VAR_INCOMING_NUM_TCP","VAR_MSG_BUFFER_SIZE", -"VAR_KEY_CACHE_SIZE","VAR_KEY_CACHE_SLABS","VAR_TRUSTED_KEYS_FILE", -"VAR_VAL_NSEC3_KEYSIZE_ITERATIONS","VAR_USE_SYSLOG","VAR_OUTGOING_INTERFACE", -"VAR_ROOT_HINTS","VAR_DO_NOT_QUERY_LOCALHOST","VAR_CACHE_MAX_TTL", -"VAR_HARDEN_DNSSEC_STRIPPED","VAR_ACCESS_CONTROL","VAR_LOCAL_ZONE", -"VAR_LOCAL_DATA","VAR_INTERFACE_AUTOMATIC","VAR_STATISTICS_INTERVAL", -"VAR_DO_DAEMONIZE","VAR_USE_CAPS_FOR_ID","VAR_STATISTICS_CUMULATIVE", -"VAR_OUTGOING_PORT_PERMIT","VAR_OUTGOING_PORT_AVOID","VAR_DLV_ANCHOR_FILE", -"VAR_DLV_ANCHOR","VAR_NEG_CACHE_SIZE","VAR_HARDEN_REFERRAL_PATH", -"VAR_PRIVATE_ADDRESS","VAR_PRIVATE_DOMAIN","VAR_REMOTE_CONTROL", -"VAR_CONTROL_ENABLE","VAR_CONTROL_INTERFACE","VAR_CONTROL_PORT", -"VAR_SERVER_KEY_FILE","VAR_SERVER_CERT_FILE","VAR_CONTROL_KEY_FILE", -"VAR_CONTROL_CERT_FILE","VAR_EXTENDED_STATISTICS","VAR_LOCAL_DATA_PTR", -"VAR_JOSTLE_TIMEOUT","VAR_STUB_PRIME","VAR_UNWANTED_REPLY_THRESHOLD", -"VAR_LOG_TIME_ASCII","VAR_DOMAIN_INSECURE","VAR_PYTHON","VAR_PYTHON_SCRIPT", -"VAR_VAL_SIG_SKEW_MIN","VAR_VAL_SIG_SKEW_MAX","VAR_CACHE_MIN_TTL", -"VAR_VAL_LOG_LEVEL","VAR_AUTO_TRUST_ANCHOR_FILE","VAR_KEEP_MISSING", -"VAR_ADD_HOLDDOWN","VAR_DEL_HOLDDOWN","VAR_SO_RCVBUF","VAR_EDNS_BUFFER_SIZE", -"VAR_PREFETCH","VAR_PREFETCH_KEY","VAR_SO_SNDBUF","VAR_HARDEN_BELOW_NXDOMAIN", -"VAR_IGNORE_CD_FLAG","VAR_LOG_QUERIES","VAR_TCP_UPSTREAM","VAR_SSL_UPSTREAM", -"VAR_SSL_SERVICE_KEY","VAR_SSL_SERVICE_PEM","VAR_SSL_PORT","VAR_FORWARD_FIRST", -"VAR_STUB_FIRST","VAR_MINIMAL_RESPONSES","VAR_RRSET_ROUNDROBIN", -}; -static const char *yyrule[] = { -"$accept : toplevelvars", -"toplevelvars :", -"toplevelvars : toplevelvars toplevelvar", -"toplevelvar : serverstart contents_server", -"toplevelvar : stubstart contents_stub", -"toplevelvar : forwardstart contents_forward", -"toplevelvar : pythonstart contents_py", -"toplevelvar : rcstart contents_rc", -"serverstart : VAR_SERVER", -"contents_server : contents_server content_server", -"contents_server :", -"content_server : server_num_threads", -"content_server : server_verbosity", -"content_server : server_port", -"content_server : server_outgoing_range", -"content_server : server_do_ip4", -"content_server : server_do_ip6", -"content_server : server_do_udp", -"content_server : server_do_tcp", -"content_server : server_interface", -"content_server : server_chroot", -"content_server : server_username", -"content_server : server_directory", -"content_server : server_logfile", -"content_server : server_pidfile", -"content_server : server_msg_cache_size", -"content_server : server_msg_cache_slabs", -"content_server : server_num_queries_per_thread", -"content_server : server_rrset_cache_size", -"content_server : server_rrset_cache_slabs", -"content_server : server_outgoing_num_tcp", -"content_server : server_infra_host_ttl", -"content_server : server_infra_lame_ttl", -"content_server : server_infra_cache_slabs", -"content_server : server_infra_cache_numhosts", -"content_server : server_infra_cache_lame_size", -"content_server : server_target_fetch_policy", -"content_server : server_harden_short_bufsize", -"content_server : server_harden_large_queries", -"content_server : server_do_not_query_address", -"content_server : server_hide_identity", -"content_server : server_hide_version", -"content_server : server_identity", -"content_server : server_version", -"content_server : server_harden_glue", -"content_server : server_module_conf", -"content_server : server_trust_anchor_file", -"content_server : server_trust_anchor", -"content_server : server_val_override_date", -"content_server : server_bogus_ttl", -"content_server : server_val_clean_additional", -"content_server : server_val_permissive_mode", -"content_server : server_incoming_num_tcp", -"content_server : server_msg_buffer_size", -"content_server : server_key_cache_size", -"content_server : server_key_cache_slabs", -"content_server : server_trusted_keys_file", -"content_server : server_val_nsec3_keysize_iterations", -"content_server : server_use_syslog", -"content_server : server_outgoing_interface", -"content_server : server_root_hints", -"content_server : server_do_not_query_localhost", -"content_server : server_cache_max_ttl", -"content_server : server_harden_dnssec_stripped", -"content_server : server_access_control", -"content_server : server_local_zone", -"content_server : server_local_data", -"content_server : server_interface_automatic", -"content_server : server_statistics_interval", -"content_server : server_do_daemonize", -"content_server : server_use_caps_for_id", -"content_server : server_statistics_cumulative", -"content_server : server_outgoing_port_permit", -"content_server : server_outgoing_port_avoid", -"content_server : server_dlv_anchor_file", -"content_server : server_dlv_anchor", -"content_server : server_neg_cache_size", -"content_server : server_harden_referral_path", -"content_server : server_private_address", -"content_server : server_private_domain", -"content_server : server_extended_statistics", -"content_server : server_local_data_ptr", -"content_server : server_jostle_timeout", -"content_server : server_unwanted_reply_threshold", -"content_server : server_log_time_ascii", -"content_server : server_domain_insecure", -"content_server : server_val_sig_skew_min", -"content_server : server_val_sig_skew_max", -"content_server : server_cache_min_ttl", -"content_server : server_val_log_level", -"content_server : server_auto_trust_anchor_file", -"content_server : server_add_holddown", -"content_server : server_del_holddown", -"content_server : server_keep_missing", -"content_server : server_so_rcvbuf", -"content_server : server_edns_buffer_size", -"content_server : server_prefetch", -"content_server : server_prefetch_key", -"content_server : server_so_sndbuf", -"content_server : server_harden_below_nxdomain", -"content_server : server_ignore_cd_flag", -"content_server : server_log_queries", -"content_server : server_tcp_upstream", -"content_server : server_ssl_upstream", -"content_server : server_ssl_service_key", -"content_server : server_ssl_service_pem", -"content_server : server_ssl_port", -"content_server : server_minimal_responses", -"content_server : server_rrset_roundrobin", -"stubstart : VAR_STUB_ZONE", -"contents_stub : contents_stub content_stub", -"contents_stub :", -"content_stub : stub_name", -"content_stub : stub_host", -"content_stub : stub_addr", -"content_stub : stub_prime", -"content_stub : stub_first", -"forwardstart : VAR_FORWARD_ZONE", -"contents_forward : contents_forward content_forward", -"contents_forward :", -"content_forward : forward_name", -"content_forward : forward_host", -"content_forward : forward_addr", -"content_forward : forward_first", -"server_num_threads : VAR_NUM_THREADS STRING_ARG", -"server_verbosity : VAR_VERBOSITY STRING_ARG", -"server_statistics_interval : VAR_STATISTICS_INTERVAL STRING_ARG", -"server_statistics_cumulative : VAR_STATISTICS_CUMULATIVE STRING_ARG", -"server_extended_statistics : VAR_EXTENDED_STATISTICS STRING_ARG", -"server_port : VAR_PORT STRING_ARG", -"server_interface : VAR_INTERFACE STRING_ARG", -"server_outgoing_interface : VAR_OUTGOING_INTERFACE STRING_ARG", -"server_outgoing_range : VAR_OUTGOING_RANGE STRING_ARG", -"server_outgoing_port_permit : VAR_OUTGOING_PORT_PERMIT STRING_ARG", -"server_outgoing_port_avoid : VAR_OUTGOING_PORT_AVOID STRING_ARG", -"server_outgoing_num_tcp : VAR_OUTGOING_NUM_TCP STRING_ARG", -"server_incoming_num_tcp : VAR_INCOMING_NUM_TCP STRING_ARG", -"server_interface_automatic : VAR_INTERFACE_AUTOMATIC STRING_ARG", -"server_do_ip4 : VAR_DO_IP4 STRING_ARG", -"server_do_ip6 : VAR_DO_IP6 STRING_ARG", -"server_do_udp : VAR_DO_UDP STRING_ARG", -"server_do_tcp : VAR_DO_TCP STRING_ARG", -"server_tcp_upstream : VAR_TCP_UPSTREAM STRING_ARG", -"server_ssl_upstream : VAR_SSL_UPSTREAM STRING_ARG", -"server_ssl_service_key : VAR_SSL_SERVICE_KEY STRING_ARG", -"server_ssl_service_pem : VAR_SSL_SERVICE_PEM STRING_ARG", -"server_ssl_port : VAR_SSL_PORT STRING_ARG", -"server_do_daemonize : VAR_DO_DAEMONIZE STRING_ARG", -"server_use_syslog : VAR_USE_SYSLOG STRING_ARG", -"server_log_time_ascii : VAR_LOG_TIME_ASCII STRING_ARG", -"server_log_queries : VAR_LOG_QUERIES STRING_ARG", -"server_chroot : VAR_CHROOT STRING_ARG", -"server_username : VAR_USERNAME STRING_ARG", -"server_directory : VAR_DIRECTORY STRING_ARG", -"server_logfile : VAR_LOGFILE STRING_ARG", -"server_pidfile : VAR_PIDFILE STRING_ARG", -"server_root_hints : VAR_ROOT_HINTS STRING_ARG", -"server_dlv_anchor_file : VAR_DLV_ANCHOR_FILE STRING_ARG", -"server_dlv_anchor : VAR_DLV_ANCHOR STRING_ARG", -"server_auto_trust_anchor_file : VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG", -"server_trust_anchor_file : VAR_TRUST_ANCHOR_FILE STRING_ARG", -"server_trusted_keys_file : VAR_TRUSTED_KEYS_FILE STRING_ARG", -"server_trust_anchor : VAR_TRUST_ANCHOR STRING_ARG", -"server_domain_insecure : VAR_DOMAIN_INSECURE STRING_ARG", -"server_hide_identity : VAR_HIDE_IDENTITY STRING_ARG", -"server_hide_version : VAR_HIDE_VERSION STRING_ARG", -"server_identity : VAR_IDENTITY STRING_ARG", -"server_version : VAR_VERSION STRING_ARG", -"server_so_rcvbuf : VAR_SO_RCVBUF STRING_ARG", -"server_so_sndbuf : VAR_SO_SNDBUF STRING_ARG", -"server_edns_buffer_size : VAR_EDNS_BUFFER_SIZE STRING_ARG", -"server_msg_buffer_size : VAR_MSG_BUFFER_SIZE STRING_ARG", -"server_msg_cache_size : VAR_MSG_CACHE_SIZE STRING_ARG", -"server_msg_cache_slabs : VAR_MSG_CACHE_SLABS STRING_ARG", -"server_num_queries_per_thread : VAR_NUM_QUERIES_PER_THREAD STRING_ARG", -"server_jostle_timeout : VAR_JOSTLE_TIMEOUT STRING_ARG", -"server_rrset_cache_size : VAR_RRSET_CACHE_SIZE STRING_ARG", -"server_rrset_cache_slabs : VAR_RRSET_CACHE_SLABS STRING_ARG", -"server_infra_host_ttl : VAR_INFRA_HOST_TTL STRING_ARG", -"server_infra_lame_ttl : VAR_INFRA_LAME_TTL STRING_ARG", -"server_infra_cache_numhosts : VAR_INFRA_CACHE_NUMHOSTS STRING_ARG", -"server_infra_cache_lame_size : VAR_INFRA_CACHE_LAME_SIZE STRING_ARG", -"server_infra_cache_slabs : VAR_INFRA_CACHE_SLABS STRING_ARG", -"server_target_fetch_policy : VAR_TARGET_FETCH_POLICY STRING_ARG", -"server_harden_short_bufsize : VAR_HARDEN_SHORT_BUFSIZE STRING_ARG", -"server_harden_large_queries : VAR_HARDEN_LARGE_QUERIES STRING_ARG", -"server_harden_glue : VAR_HARDEN_GLUE STRING_ARG", -"server_harden_dnssec_stripped : VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG", -"server_harden_below_nxdomain : VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG", -"server_harden_referral_path : VAR_HARDEN_REFERRAL_PATH STRING_ARG", -"server_use_caps_for_id : VAR_USE_CAPS_FOR_ID STRING_ARG", -"server_private_address : VAR_PRIVATE_ADDRESS STRING_ARG", -"server_private_domain : VAR_PRIVATE_DOMAIN STRING_ARG", -"server_prefetch : VAR_PREFETCH STRING_ARG", -"server_prefetch_key : VAR_PREFETCH_KEY STRING_ARG", -"server_unwanted_reply_threshold : VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG", -"server_do_not_query_address : VAR_DO_NOT_QUERY_ADDRESS STRING_ARG", -"server_do_not_query_localhost : VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG", -"server_access_control : VAR_ACCESS_CONTROL STRING_ARG STRING_ARG", -"server_module_conf : VAR_MODULE_CONF STRING_ARG", -"server_val_override_date : VAR_VAL_OVERRIDE_DATE STRING_ARG", -"server_val_sig_skew_min : VAR_VAL_SIG_SKEW_MIN STRING_ARG", -"server_val_sig_skew_max : VAR_VAL_SIG_SKEW_MAX STRING_ARG", -"server_cache_max_ttl : VAR_CACHE_MAX_TTL STRING_ARG", -"server_cache_min_ttl : VAR_CACHE_MIN_TTL STRING_ARG", -"server_bogus_ttl : VAR_BOGUS_TTL STRING_ARG", -"server_val_clean_additional : VAR_VAL_CLEAN_ADDITIONAL STRING_ARG", -"server_val_permissive_mode : VAR_VAL_PERMISSIVE_MODE STRING_ARG", -"server_ignore_cd_flag : VAR_IGNORE_CD_FLAG STRING_ARG", -"server_val_log_level : VAR_VAL_LOG_LEVEL STRING_ARG", -"server_val_nsec3_keysize_iterations : VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG", -"server_add_holddown : VAR_ADD_HOLDDOWN STRING_ARG", -"server_del_holddown : VAR_DEL_HOLDDOWN STRING_ARG", -"server_keep_missing : VAR_KEEP_MISSING STRING_ARG", -"server_key_cache_size : VAR_KEY_CACHE_SIZE STRING_ARG", -"server_key_cache_slabs : VAR_KEY_CACHE_SLABS STRING_ARG", -"server_neg_cache_size : VAR_NEG_CACHE_SIZE STRING_ARG", -"server_local_zone : VAR_LOCAL_ZONE STRING_ARG STRING_ARG", -"server_local_data : VAR_LOCAL_DATA STRING_ARG", -"server_local_data_ptr : VAR_LOCAL_DATA_PTR STRING_ARG", -"server_minimal_responses : VAR_MINIMAL_RESPONSES STRING_ARG", -"server_rrset_roundrobin : VAR_RRSET_ROUNDROBIN STRING_ARG", -"stub_name : VAR_NAME STRING_ARG", -"stub_host : VAR_STUB_HOST STRING_ARG", -"stub_addr : VAR_STUB_ADDR STRING_ARG", -"stub_first : VAR_STUB_FIRST STRING_ARG", -"stub_prime : VAR_STUB_PRIME STRING_ARG", -"forward_name : VAR_NAME STRING_ARG", -"forward_host : VAR_FORWARD_HOST STRING_ARG", -"forward_addr : VAR_FORWARD_ADDR STRING_ARG", -"forward_first : VAR_FORWARD_FIRST STRING_ARG", -"rcstart : VAR_REMOTE_CONTROL", -"contents_rc : contents_rc content_rc", -"contents_rc :", -"content_rc : rc_control_enable", -"content_rc : rc_control_interface", -"content_rc : rc_control_port", -"content_rc : rc_server_key_file", -"content_rc : rc_server_cert_file", -"content_rc : rc_control_key_file", -"content_rc : rc_control_cert_file", -"rc_control_enable : VAR_CONTROL_ENABLE STRING_ARG", -"rc_control_port : VAR_CONTROL_PORT STRING_ARG", -"rc_control_interface : VAR_CONTROL_INTERFACE STRING_ARG", -"rc_server_key_file : VAR_SERVER_KEY_FILE STRING_ARG", -"rc_server_cert_file : VAR_SERVER_CERT_FILE STRING_ARG", -"rc_control_key_file : VAR_CONTROL_KEY_FILE STRING_ARG", -"rc_control_cert_file : VAR_CONTROL_CERT_FILE STRING_ARG", -"pythonstart : VAR_PYTHON", -"contents_py : contents_py content_py", -"contents_py :", -"content_py : py_script", -"py_script : VAR_PYTHON_SCRIPT STRING_ARG", - -}; -#endif - -int yydebug; -int yynerrs; - -int yyerrflag; -int yychar; -YYSTYPE yyval; -YYSTYPE yylval; - -/* define the initial stack-sizes */ -#ifdef YYSTACKSIZE -#undef YYMAXDEPTH -#define YYMAXDEPTH YYSTACKSIZE -#else -#ifdef YYMAXDEPTH -#define YYSTACKSIZE YYMAXDEPTH -#else -#define YYSTACKSIZE 500 -#define YYMAXDEPTH 500 -#endif -#endif - -#define YYINITSTACKSIZE 500 - -typedef struct { - unsigned stacksize; - short *s_base; - short *s_mark; - short *s_last; - YYSTYPE *l_base; - YYSTYPE *l_mark; -} YYSTACKDATA; -/* variables for the parser stack */ -static YYSTACKDATA yystack; -#line 1277 "util/configparser.y" - -/* parse helper routines could be here */ -#line 845 "util/configparser.c" - -#if YYDEBUG -#include <stdio.h> /* needed for printf */ -#endif - -#include <stdlib.h> /* needed for malloc, etc */ -#include <string.h> /* needed for memset */ - -/* allocate initial stack or double stack size, up to YYMAXDEPTH */ -static int yygrowstack(YYSTACKDATA *data) -{ - int i; - unsigned newsize; - short *newss; - YYSTYPE *newvs; - - if ((newsize = data->stacksize) == 0) - newsize = YYINITSTACKSIZE; - else if (newsize >= YYMAXDEPTH) - return -1; - else if ((newsize *= 2) > YYMAXDEPTH) - newsize = YYMAXDEPTH; - - i = (int) (data->s_mark - data->s_base); - newss = (short *)realloc(data->s_base, newsize * sizeof(*newss)); - if (newss == 0) - return -1; - - data->s_base = newss; - data->s_mark = newss + i; - - newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs)); - if (newvs == 0) - return -1; - - data->l_base = newvs; - data->l_mark = newvs + i; - - data->stacksize = newsize; - data->s_last = data->s_base + newsize - 1; - return 0; -} - -#if YYPURE || defined(YY_NO_LEAKS) -static void yyfreestack(YYSTACKDATA *data) -{ - free(data->s_base); - free(data->l_base); - memset(data, 0, sizeof(*data)); -} -#else -#define yyfreestack(data) /* nothing */ -#endif - -#define YYABORT goto yyabort -#define YYREJECT goto yyabort -#define YYACCEPT goto yyaccept -#define YYERROR goto yyerrlab - -int -YYPARSE_DECL() -{ - int yym, yyn, yystate; -#if YYDEBUG - const char *yys; - - if ((yys = getenv("YYDEBUG")) != 0) - { - yyn = *yys; - if (yyn >= '0' && yyn <= '9') - yydebug = yyn - '0'; - } -#endif - - yynerrs = 0; - yyerrflag = 0; - yychar = YYEMPTY; - yystate = 0; - -#if YYPURE - memset(&yystack, 0, sizeof(yystack)); -#endif - - if (yystack.s_base == NULL && yygrowstack(&yystack)) goto yyoverflow; - yystack.s_mark = yystack.s_base; - yystack.l_mark = yystack.l_base; - yystate = 0; - *yystack.s_mark = 0; - -yyloop: - if ((yyn = yydefred[yystate]) != 0) goto yyreduce; - if (yychar < 0) - { - if ((yychar = YYLEX) < 0) yychar = 0; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, reading %d (%s)\n", - YYPREFIX, yystate, yychar, yys); - } -#endif - } - if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, shifting to state %d\n", - YYPREFIX, yystate, yytable[yyn]); -#endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack)) - { - goto yyoverflow; - } - yystate = yytable[yyn]; - *++yystack.s_mark = yytable[yyn]; - *++yystack.l_mark = yylval; - yychar = YYEMPTY; - if (yyerrflag > 0) --yyerrflag; - goto yyloop; - } - if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) - { - yyn = yytable[yyn]; - goto yyreduce; - } - if (yyerrflag) goto yyinrecovery; - - yyerror("syntax error"); - - goto yyerrlab; - -yyerrlab: - ++yynerrs; - -yyinrecovery: - if (yyerrflag < 3) - { - yyerrflag = 3; - for (;;) - { - if ((yyn = yysindex[*yystack.s_mark]) && (yyn += YYERRCODE) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, error recovery shifting\ - to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]); -#endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack)) - { - goto yyoverflow; - } - yystate = yytable[yyn]; - *++yystack.s_mark = yytable[yyn]; - *++yystack.l_mark = yylval; - goto yyloop; - } - else - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: error recovery discarding state %d\n", - YYPREFIX, *yystack.s_mark); -#endif - if (yystack.s_mark <= yystack.s_base) goto yyabort; - --yystack.s_mark; - --yystack.l_mark; - } - } - } - else - { - if (yychar == 0) goto yyabort; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, error recovery discards token %d (%s)\n", - YYPREFIX, yystate, yychar, yys); - } -#endif - yychar = YYEMPTY; - goto yyloop; - } - -yyreduce: -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, reducing by rule %d (%s)\n", - YYPREFIX, yystate, yyn, yyrule[yyn]); -#endif - yym = yylen[yyn]; - if (yym) - yyval = yystack.l_mark[1-yym]; - else - memset(&yyval, 0, sizeof yyval); - switch (yyn) - { -case 8: -#line 118 "util/configparser.y" - { - OUTYY(("\nP(server:)\n")); - } -break; -case 109: -#line 167 "util/configparser.y" - { - struct config_stub* s; - OUTYY(("\nP(stub_zone:)\n")); - s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); - if(s) { - s->next = cfg_parser->cfg->stubs; - cfg_parser->cfg->stubs = s; - } else - yyerror("out of memory"); - } -break; -case 117: -#line 183 "util/configparser.y" - { - struct config_stub* s; - OUTYY(("\nP(forward_zone:)\n")); - s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); - if(s) { - s->next = cfg_parser->cfg->forwards; - cfg_parser->cfg->forwards = s; - } else - yyerror("out of memory"); - } -break; -case 124: -#line 199 "util/configparser.y" - { - OUTYY(("P(server_num_threads:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->num_threads = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 125: -#line 208 "util/configparser.y" - { - OUTYY(("P(server_verbosity:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->verbosity = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 126: -#line 217 "util/configparser.y" - { - OUTYY(("P(server_statistics_interval:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "") == 0 || strcmp(yystack.l_mark[0].str, "0") == 0) - cfg_parser->cfg->stat_interval = 0; - else if(atoi(yystack.l_mark[0].str) == 0) - yyerror("number expected"); - else cfg_parser->cfg->stat_interval = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 127: -#line 228 "util/configparser.y" - { - OUTYY(("P(server_statistics_cumulative:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stat_cumulative = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 128: -#line 237 "util/configparser.y" - { - OUTYY(("P(server_extended_statistics:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stat_extended = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 129: -#line 246 "util/configparser.y" - { - OUTYY(("P(server_port:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0) - yyerror("port number expected"); - else cfg_parser->cfg->port = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 130: -#line 255 "util/configparser.y" - { - OUTYY(("P(server_interface:%s)\n", yystack.l_mark[0].str)); - if(cfg_parser->cfg->num_ifs == 0) - cfg_parser->cfg->ifs = calloc(1, sizeof(char*)); - else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs, - (cfg_parser->cfg->num_ifs+1)*sizeof(char*)); - if(!cfg_parser->cfg->ifs) - yyerror("out of memory"); - else - cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = yystack.l_mark[0].str; - } -break; -case 131: -#line 268 "util/configparser.y" - { - OUTYY(("P(server_outgoing_interface:%s)\n", yystack.l_mark[0].str)); - if(cfg_parser->cfg->num_out_ifs == 0) - cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*)); - else cfg_parser->cfg->out_ifs = realloc( - cfg_parser->cfg->out_ifs, - (cfg_parser->cfg->num_out_ifs+1)*sizeof(char*)); - if(!cfg_parser->cfg->out_ifs) - yyerror("out of memory"); - else - cfg_parser->cfg->out_ifs[ - cfg_parser->cfg->num_out_ifs++] = yystack.l_mark[0].str; - } -break; -case 132: -#line 283 "util/configparser.y" - { - OUTYY(("P(server_outgoing_range:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0) - yyerror("number expected"); - else cfg_parser->cfg->outgoing_num_ports = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 133: -#line 292 "util/configparser.y" - { - OUTYY(("P(server_outgoing_port_permit:%s)\n", yystack.l_mark[0].str)); - if(!cfg_mark_ports(yystack.l_mark[0].str, 1, - cfg_parser->cfg->outgoing_avail_ports, 65536)) - yyerror("port number or range (\"low-high\") expected"); - free(yystack.l_mark[0].str); - } -break; -case 134: -#line 301 "util/configparser.y" - { - OUTYY(("P(server_outgoing_port_avoid:%s)\n", yystack.l_mark[0].str)); - if(!cfg_mark_ports(yystack.l_mark[0].str, 0, - cfg_parser->cfg->outgoing_avail_ports, 65536)) - yyerror("port number or range (\"low-high\") expected"); - free(yystack.l_mark[0].str); - } -break; -case 135: -#line 310 "util/configparser.y" - { - OUTYY(("P(server_outgoing_num_tcp:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->outgoing_num_tcp = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 136: -#line 319 "util/configparser.y" - { - OUTYY(("P(server_incoming_num_tcp:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->incoming_num_tcp = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 137: -#line 328 "util/configparser.y" - { - OUTYY(("P(server_interface_automatic:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->if_automatic = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 138: -#line 337 "util/configparser.y" - { - OUTYY(("P(server_do_ip4:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->do_ip4 = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 139: -#line 346 "util/configparser.y" - { - OUTYY(("P(server_do_ip6:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->do_ip6 = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 140: -#line 355 "util/configparser.y" - { - OUTYY(("P(server_do_udp:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->do_udp = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 141: -#line 364 "util/configparser.y" - { - OUTYY(("P(server_do_tcp:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->do_tcp = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 142: -#line 373 "util/configparser.y" - { - OUTYY(("P(server_tcp_upstream:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->tcp_upstream = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 143: -#line 382 "util/configparser.y" - { - OUTYY(("P(server_ssl_upstream:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ssl_upstream = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 144: -#line 391 "util/configparser.y" - { - OUTYY(("P(server_ssl_service_key:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->ssl_service_key); - cfg_parser->cfg->ssl_service_key = yystack.l_mark[0].str; - } -break; -case 145: -#line 398 "util/configparser.y" - { - OUTYY(("P(server_ssl_service_pem:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->ssl_service_pem); - cfg_parser->cfg->ssl_service_pem = yystack.l_mark[0].str; - } -break; -case 146: -#line 405 "util/configparser.y" - { - OUTYY(("P(server_ssl_port:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0) - yyerror("port number expected"); - else cfg_parser->cfg->ssl_port = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 147: -#line 414 "util/configparser.y" - { - OUTYY(("P(server_do_daemonize:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->do_daemonize = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 148: -#line 423 "util/configparser.y" - { - OUTYY(("P(server_use_syslog:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->use_syslog = (strcmp(yystack.l_mark[0].str, "yes")==0); -#if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS) - if(strcmp(yystack.l_mark[0].str, "yes") == 0) - yyerror("no syslog services are available. " - "(reconfigure and compile to add)"); -#endif - free(yystack.l_mark[0].str); - } -break; -case 149: -#line 437 "util/configparser.y" - { - OUTYY(("P(server_log_time_ascii:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->log_time_ascii = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 150: -#line 446 "util/configparser.y" - { - OUTYY(("P(server_log_queries:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->log_queries = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 151: -#line 455 "util/configparser.y" - { - OUTYY(("P(server_chroot:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->chrootdir); - cfg_parser->cfg->chrootdir = yystack.l_mark[0].str; - } -break; -case 152: -#line 462 "util/configparser.y" - { - OUTYY(("P(server_username:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->username); - cfg_parser->cfg->username = yystack.l_mark[0].str; - } -break; -case 153: -#line 469 "util/configparser.y" - { - OUTYY(("P(server_directory:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->directory); - cfg_parser->cfg->directory = yystack.l_mark[0].str; - } -break; -case 154: -#line 476 "util/configparser.y" - { - OUTYY(("P(server_logfile:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->logfile); - cfg_parser->cfg->logfile = yystack.l_mark[0].str; - cfg_parser->cfg->use_syslog = 0; - } -break; -case 155: -#line 484 "util/configparser.y" - { - OUTYY(("P(server_pidfile:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->pidfile); - cfg_parser->cfg->pidfile = yystack.l_mark[0].str; - } -break; -case 156: -#line 491 "util/configparser.y" - { - OUTYY(("P(server_root_hints:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 157: -#line 498 "util/configparser.y" - { - OUTYY(("P(server_dlv_anchor_file:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->dlv_anchor_file); - cfg_parser->cfg->dlv_anchor_file = yystack.l_mark[0].str; - } -break; -case 158: -#line 505 "util/configparser.y" - { - OUTYY(("P(server_dlv_anchor:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 159: -#line 512 "util/configparser.y" - { - OUTYY(("P(server_auto_trust_anchor_file:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg-> - auto_trust_anchor_file_list, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 160: -#line 520 "util/configparser.y" - { - OUTYY(("P(server_trust_anchor_file:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg-> - trust_anchor_file_list, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 161: -#line 528 "util/configparser.y" - { - OUTYY(("P(server_trusted_keys_file:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg-> - trusted_keys_file_list, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 162: -#line 536 "util/configparser.y" - { - OUTYY(("P(server_trust_anchor:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 163: -#line 543 "util/configparser.y" - { - OUTYY(("P(server_domain_insecure:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 164: -#line 550 "util/configparser.y" - { - OUTYY(("P(server_hide_identity:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->hide_identity = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 165: -#line 559 "util/configparser.y" - { - OUTYY(("P(server_hide_version:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->hide_version = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 166: -#line 568 "util/configparser.y" - { - OUTYY(("P(server_identity:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->identity); - cfg_parser->cfg->identity = yystack.l_mark[0].str; - } -break; -case 167: -#line 575 "util/configparser.y" - { - OUTYY(("P(server_version:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->version); - cfg_parser->cfg->version = yystack.l_mark[0].str; - } -break; -case 168: -#line 582 "util/configparser.y" - { - OUTYY(("P(server_so_rcvbuf:%s)\n", yystack.l_mark[0].str)); - if(!cfg_parse_memsize(yystack.l_mark[0].str, &cfg_parser->cfg->so_rcvbuf)) - yyerror("buffer size expected"); - free(yystack.l_mark[0].str); - } -break; -case 169: -#line 590 "util/configparser.y" - { - OUTYY(("P(server_so_sndbuf:%s)\n", yystack.l_mark[0].str)); - if(!cfg_parse_memsize(yystack.l_mark[0].str, &cfg_parser->cfg->so_sndbuf)) - yyerror("buffer size expected"); - free(yystack.l_mark[0].str); - } -break; -case 170: -#line 598 "util/configparser.y" - { - OUTYY(("P(server_edns_buffer_size:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0) - yyerror("number expected"); - else if (atoi(yystack.l_mark[0].str) < 12) - yyerror("edns buffer size too small"); - else if (atoi(yystack.l_mark[0].str) > 65535) - cfg_parser->cfg->edns_buffer_size = 65535; - else cfg_parser->cfg->edns_buffer_size = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 171: -#line 611 "util/configparser.y" - { - OUTYY(("P(server_msg_buffer_size:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0) - yyerror("number expected"); - else if (atoi(yystack.l_mark[0].str) < 4096) - yyerror("message buffer size too small (use 4096)"); - else cfg_parser->cfg->msg_buffer_size = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 172: -#line 622 "util/configparser.y" - { - OUTYY(("P(server_msg_cache_size:%s)\n", yystack.l_mark[0].str)); - if(!cfg_parse_memsize(yystack.l_mark[0].str, &cfg_parser->cfg->msg_cache_size)) - yyerror("memory size expected"); - free(yystack.l_mark[0].str); - } -break; -case 173: -#line 630 "util/configparser.y" - { - OUTYY(("P(server_msg_cache_slabs:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->msg_cache_slabs = atoi(yystack.l_mark[0].str); - if(!is_pow2(cfg_parser->cfg->msg_cache_slabs)) - yyerror("must be a power of 2"); - } - free(yystack.l_mark[0].str); - } -break; -case 174: -#line 643 "util/configparser.y" - { - OUTYY(("P(server_num_queries_per_thread:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0) - yyerror("number expected"); - else cfg_parser->cfg->num_queries_per_thread = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 175: -#line 652 "util/configparser.y" - { - OUTYY(("P(server_jostle_timeout:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->jostle_time = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 176: -#line 661 "util/configparser.y" - { - OUTYY(("P(server_rrset_cache_size:%s)\n", yystack.l_mark[0].str)); - if(!cfg_parse_memsize(yystack.l_mark[0].str, &cfg_parser->cfg->rrset_cache_size)) - yyerror("memory size expected"); - free(yystack.l_mark[0].str); - } -break; -case 177: -#line 669 "util/configparser.y" - { - OUTYY(("P(server_rrset_cache_slabs:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->rrset_cache_slabs = atoi(yystack.l_mark[0].str); - if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs)) - yyerror("must be a power of 2"); - } - free(yystack.l_mark[0].str); - } -break; -case 178: -#line 682 "util/configparser.y" - { - OUTYY(("P(server_infra_host_ttl:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->host_ttl = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 179: -#line 691 "util/configparser.y" - { - OUTYY(("P(server_infra_lame_ttl:%s)\n", yystack.l_mark[0].str)); - verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " - "removed, use infra-host-ttl)", yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 180: -#line 699 "util/configparser.y" - { - OUTYY(("P(server_infra_cache_numhosts:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0) - yyerror("number expected"); - else cfg_parser->cfg->infra_cache_numhosts = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 181: -#line 708 "util/configparser.y" - { - OUTYY(("P(server_infra_cache_lame_size:%s)\n", yystack.l_mark[0].str)); - verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " - "(option removed, use infra-cache-numhosts)", yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 182: -#line 716 "util/configparser.y" - { - OUTYY(("P(server_infra_cache_slabs:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->infra_cache_slabs = atoi(yystack.l_mark[0].str); - if(!is_pow2(cfg_parser->cfg->infra_cache_slabs)) - yyerror("must be a power of 2"); - } - free(yystack.l_mark[0].str); - } -break; -case 183: -#line 729 "util/configparser.y" - { - OUTYY(("P(server_target_fetch_policy:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->target_fetch_policy); - cfg_parser->cfg->target_fetch_policy = yystack.l_mark[0].str; - } -break; -case 184: -#line 736 "util/configparser.y" - { - OUTYY(("P(server_harden_short_bufsize:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_short_bufsize = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 185: -#line 746 "util/configparser.y" - { - OUTYY(("P(server_harden_large_queries:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_large_queries = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 186: -#line 756 "util/configparser.y" - { - OUTYY(("P(server_harden_glue:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_glue = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 187: -#line 766 "util/configparser.y" - { - OUTYY(("P(server_harden_dnssec_stripped:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_dnssec_stripped = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 188: -#line 776 "util/configparser.y" - { - OUTYY(("P(server_harden_below_nxdomain:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_below_nxdomain = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 189: -#line 786 "util/configparser.y" - { - OUTYY(("P(server_harden_referral_path:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_referral_path = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 190: -#line 796 "util/configparser.y" - { - OUTYY(("P(server_use_caps_for_id:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->use_caps_bits_for_id = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 191: -#line 806 "util/configparser.y" - { - OUTYY(("P(server_private_address:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 192: -#line 813 "util/configparser.y" - { - OUTYY(("P(server_private_domain:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 193: -#line 820 "util/configparser.y" - { - OUTYY(("P(server_prefetch:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->prefetch = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 194: -#line 829 "util/configparser.y" - { - OUTYY(("P(server_prefetch_key:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->prefetch_key = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 195: -#line 838 "util/configparser.y" - { - OUTYY(("P(server_unwanted_reply_threshold:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->unwanted_threshold = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 196: -#line 847 "util/configparser.y" - { - OUTYY(("P(server_do_not_query_address:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 197: -#line 854 "util/configparser.y" - { - OUTYY(("P(server_do_not_query_localhost:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->donotquery_localhost = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 198: -#line 864 "util/configparser.y" - { - OUTYY(("P(server_access_control:%s %s)\n", yystack.l_mark[-1].str, yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "deny")!=0 && strcmp(yystack.l_mark[0].str, "refuse")!=0 && - strcmp(yystack.l_mark[0].str, "allow")!=0 && - strcmp(yystack.l_mark[0].str, "allow_snoop")!=0) { - yyerror("expected deny, refuse, allow or allow_snoop " - "in access control action"); - } else { - if(!cfg_str2list_insert(&cfg_parser->cfg->acls, yystack.l_mark[-1].str, yystack.l_mark[0].str)) - fatal_exit("out of memory adding acl"); - } - } -break; -case 199: -#line 878 "util/configparser.y" - { - OUTYY(("P(server_module_conf:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->module_conf); - cfg_parser->cfg->module_conf = yystack.l_mark[0].str; - } -break; -case 200: -#line 885 "util/configparser.y" - { - OUTYY(("P(server_val_override_date:%s)\n", yystack.l_mark[0].str)); - if(strlen(yystack.l_mark[0].str) == 0 || strcmp(yystack.l_mark[0].str, "0") == 0) { - cfg_parser->cfg->val_date_override = 0; - } else if(strlen(yystack.l_mark[0].str) == 14) { - cfg_parser->cfg->val_date_override = - cfg_convert_timeval(yystack.l_mark[0].str); - if(!cfg_parser->cfg->val_date_override) - yyerror("bad date/time specification"); - } else { - if(atoi(yystack.l_mark[0].str) == 0) - yyerror("number expected"); - cfg_parser->cfg->val_date_override = atoi(yystack.l_mark[0].str); - } - free(yystack.l_mark[0].str); - } -break; -case 201: -#line 903 "util/configparser.y" - { - OUTYY(("P(server_val_sig_skew_min:%s)\n", yystack.l_mark[0].str)); - if(strlen(yystack.l_mark[0].str) == 0 || strcmp(yystack.l_mark[0].str, "0") == 0) { - cfg_parser->cfg->val_sig_skew_min = 0; - } else { - cfg_parser->cfg->val_sig_skew_min = atoi(yystack.l_mark[0].str); - if(!cfg_parser->cfg->val_sig_skew_min) - yyerror("number expected"); - } - free(yystack.l_mark[0].str); - } -break; -case 202: -#line 916 "util/configparser.y" - { - OUTYY(("P(server_val_sig_skew_max:%s)\n", yystack.l_mark[0].str)); - if(strlen(yystack.l_mark[0].str) == 0 || strcmp(yystack.l_mark[0].str, "0") == 0) { - cfg_parser->cfg->val_sig_skew_max = 0; - } else { - cfg_parser->cfg->val_sig_skew_max = atoi(yystack.l_mark[0].str); - if(!cfg_parser->cfg->val_sig_skew_max) - yyerror("number expected"); - } - free(yystack.l_mark[0].str); - } -break; -case 203: -#line 929 "util/configparser.y" - { - OUTYY(("P(server_cache_max_ttl:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->max_ttl = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 204: -#line 938 "util/configparser.y" - { - OUTYY(("P(server_cache_min_ttl:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->min_ttl = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 205: -#line 947 "util/configparser.y" - { - OUTYY(("P(server_bogus_ttl:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->bogus_ttl = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 206: -#line 956 "util/configparser.y" - { - OUTYY(("P(server_val_clean_additional:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->val_clean_additional = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 207: -#line 966 "util/configparser.y" - { - OUTYY(("P(server_val_permissive_mode:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->val_permissive_mode = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 208: -#line 976 "util/configparser.y" - { - OUTYY(("P(server_ignore_cd_flag:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ignore_cd = (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 209: -#line 985 "util/configparser.y" - { - OUTYY(("P(server_val_log_level:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->val_log_level = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 210: -#line 994 "util/configparser.y" - { - OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->val_nsec3_key_iterations); - cfg_parser->cfg->val_nsec3_key_iterations = yystack.l_mark[0].str; - } -break; -case 211: -#line 1001 "util/configparser.y" - { - OUTYY(("P(server_add_holddown:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->add_holddown = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 212: -#line 1010 "util/configparser.y" - { - OUTYY(("P(server_del_holddown:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->del_holddown = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 213: -#line 1019 "util/configparser.y" - { - OUTYY(("P(server_keep_missing:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0 && strcmp(yystack.l_mark[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->keep_missing = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 214: -#line 1028 "util/configparser.y" - { - OUTYY(("P(server_key_cache_size:%s)\n", yystack.l_mark[0].str)); - if(!cfg_parse_memsize(yystack.l_mark[0].str, &cfg_parser->cfg->key_cache_size)) - yyerror("memory size expected"); - free(yystack.l_mark[0].str); - } -break; -case 215: -#line 1036 "util/configparser.y" - { - OUTYY(("P(server_key_cache_slabs:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->key_cache_slabs = atoi(yystack.l_mark[0].str); - if(!is_pow2(cfg_parser->cfg->key_cache_slabs)) - yyerror("must be a power of 2"); - } - free(yystack.l_mark[0].str); - } -break; -case 216: -#line 1049 "util/configparser.y" - { - OUTYY(("P(server_neg_cache_size:%s)\n", yystack.l_mark[0].str)); - if(!cfg_parse_memsize(yystack.l_mark[0].str, &cfg_parser->cfg->neg_cache_size)) - yyerror("memory size expected"); - free(yystack.l_mark[0].str); - } -break; -case 217: -#line 1057 "util/configparser.y" - { - OUTYY(("P(server_local_zone:%s %s)\n", yystack.l_mark[-1].str, yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "static")!=0 && strcmp(yystack.l_mark[0].str, "deny")!=0 && - strcmp(yystack.l_mark[0].str, "refuse")!=0 && strcmp(yystack.l_mark[0].str, "redirect")!=0 && - strcmp(yystack.l_mark[0].str, "transparent")!=0 && strcmp(yystack.l_mark[0].str, "nodefault")!=0 - && strcmp(yystack.l_mark[0].str, "typetransparent")!=0) - yyerror("local-zone type: expected static, deny, " - "refuse, redirect, transparent, " - "typetransparent or nodefault"); - else if(strcmp(yystack.l_mark[0].str, "nodefault")==0) { - if(!cfg_strlist_insert(&cfg_parser->cfg-> - local_zones_nodefault, yystack.l_mark[-1].str)) - fatal_exit("out of memory adding local-zone"); - free(yystack.l_mark[0].str); - } else { - if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones, - yystack.l_mark[-1].str, yystack.l_mark[0].str)) - fatal_exit("out of memory adding local-zone"); - } - } -break; -case 218: -#line 1079 "util/configparser.y" - { - OUTYY(("P(server_local_data:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, yystack.l_mark[0].str)) - fatal_exit("out of memory adding local-data"); - } -break; -case 219: -#line 1086 "util/configparser.y" - { - char* ptr; - OUTYY(("P(server_local_data_ptr:%s)\n", yystack.l_mark[0].str)); - ptr = cfg_ptr_reverse(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - if(ptr) { - if(!cfg_strlist_insert(&cfg_parser->cfg-> - local_data, ptr)) - fatal_exit("out of memory adding local-data"); - } else { - yyerror("local-data-ptr could not be reversed"); - } - } -break; -case 220: -#line 1101 "util/configparser.y" - { - OUTYY(("P(server_minimal_responses:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->minimal_responses = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 221: -#line 1111 "util/configparser.y" - { - OUTYY(("P(server_rrset_roundrobin:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->rrset_roundrobin = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 222: -#line 1121 "util/configparser.y" - { - OUTYY(("P(name:%s)\n", yystack.l_mark[0].str)); - if(cfg_parser->cfg->stubs->name) - yyerror("stub name override, there must be one name " - "for one stub-zone"); - free(cfg_parser->cfg->stubs->name); - cfg_parser->cfg->stubs->name = yystack.l_mark[0].str; - } -break; -case 223: -#line 1131 "util/configparser.y" - { - OUTYY(("P(stub-host:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 224: -#line 1138 "util/configparser.y" - { - OUTYY(("P(stub-addr:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 225: -#line 1145 "util/configparser.y" - { - OUTYY(("P(stub-first:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stubs->isfirst=(strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 226: -#line 1154 "util/configparser.y" - { - OUTYY(("P(stub-prime:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stubs->isprime = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 227: -#line 1164 "util/configparser.y" - { - OUTYY(("P(name:%s)\n", yystack.l_mark[0].str)); - if(cfg_parser->cfg->forwards->name) - yyerror("forward name override, there must be one " - "name for one forward-zone"); - free(cfg_parser->cfg->forwards->name); - cfg_parser->cfg->forwards->name = yystack.l_mark[0].str; - } -break; -case 228: -#line 1174 "util/configparser.y" - { - OUTYY(("P(forward-host:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 229: -#line 1181 "util/configparser.y" - { - OUTYY(("P(forward-addr:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 230: -#line 1188 "util/configparser.y" - { - OUTYY(("P(forward-first:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->forwards->isfirst=(strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 231: -#line 1197 "util/configparser.y" - { - OUTYY(("\nP(remote-control:)\n")); - } -break; -case 241: -#line 1208 "util/configparser.y" - { - OUTYY(("P(control_enable:%s)\n", yystack.l_mark[0].str)); - if(strcmp(yystack.l_mark[0].str, "yes") != 0 && strcmp(yystack.l_mark[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->remote_control_enable = - (strcmp(yystack.l_mark[0].str, "yes")==0); - free(yystack.l_mark[0].str); - } -break; -case 242: -#line 1218 "util/configparser.y" - { - OUTYY(("P(control_port:%s)\n", yystack.l_mark[0].str)); - if(atoi(yystack.l_mark[0].str) == 0) - yyerror("control port number expected"); - else cfg_parser->cfg->control_port = atoi(yystack.l_mark[0].str); - free(yystack.l_mark[0].str); - } -break; -case 243: -#line 1227 "util/configparser.y" - { - OUTYY(("P(control_interface:%s)\n", yystack.l_mark[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, yystack.l_mark[0].str)) - yyerror("out of memory"); - } -break; -case 244: -#line 1234 "util/configparser.y" - { - OUTYY(("P(rc_server_key_file:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->server_key_file); - cfg_parser->cfg->server_key_file = yystack.l_mark[0].str; - } -break; -case 245: -#line 1241 "util/configparser.y" - { - OUTYY(("P(rc_server_cert_file:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->server_cert_file); - cfg_parser->cfg->server_cert_file = yystack.l_mark[0].str; - } -break; -case 246: -#line 1248 "util/configparser.y" - { - OUTYY(("P(rc_control_key_file:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->control_key_file); - cfg_parser->cfg->control_key_file = yystack.l_mark[0].str; - } -break; -case 247: -#line 1255 "util/configparser.y" - { - OUTYY(("P(rc_control_cert_file:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->control_cert_file); - cfg_parser->cfg->control_cert_file = yystack.l_mark[0].str; - } -break; -case 248: -#line 1262 "util/configparser.y" - { - OUTYY(("\nP(python:)\n")); - } -break; -case 252: -#line 1271 "util/configparser.y" - { - OUTYY(("P(python-script:%s)\n", yystack.l_mark[0].str)); - free(cfg_parser->cfg->python_script); - cfg_parser->cfg->python_script = yystack.l_mark[0].str; - } -break; -#line 2269 "util/configparser.c" - } - yystack.s_mark -= yym; - yystate = *yystack.s_mark; - yystack.l_mark -= yym; - yym = yylhs[yyn]; - if (yystate == 0 && yym == 0) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: after reduction, shifting from state 0 to\ - state %d\n", YYPREFIX, YYFINAL); -#endif - yystate = YYFINAL; - *++yystack.s_mark = YYFINAL; - *++yystack.l_mark = yyval; - if (yychar < 0) - { - if ((yychar = YYLEX) < 0) yychar = 0; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, reading %d (%s)\n", - YYPREFIX, YYFINAL, yychar, yys); - } -#endif - } - if (yychar == 0) goto yyaccept; - goto yyloop; - } - if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yystate) - yystate = yytable[yyn]; - else - yystate = yydgoto[yym]; -#if YYDEBUG - if (yydebug) - printf("%sdebug: after reduction, shifting from state %d \ -to state %d\n", YYPREFIX, *yystack.s_mark, yystate); -#endif - if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack)) - { - goto yyoverflow; - } - *++yystack.s_mark = (short) yystate; - *++yystack.l_mark = yyval; - goto yyloop; - -yyoverflow: - yyerror("yacc stack overflow"); - -yyabort: - yyfreestack(&yystack); - return (1); - -yyaccept: - yyfreestack(&yystack); - return (0); -} |