summaryrefslogtreecommitdiffstats
path: root/contrib/unbound/util/configparser.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/unbound/util/configparser.c')
-rw-r--r--contrib/unbound/util/configparser.c2330
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);
-}
OpenPOWER on IntegriCloud