diff options
Diffstat (limited to 'sbin/unwind/libunbound/util/configparser.c')
-rw-r--r-- | sbin/unwind/libunbound/util/configparser.c | 4649 |
1 files changed, 0 insertions, 4649 deletions
diff --git a/sbin/unwind/libunbound/util/configparser.c b/sbin/unwind/libunbound/util/configparser.c deleted file mode 100644 index 2718a7ad839..00000000000 --- a/sbin/unwind/libunbound/util/configparser.c +++ /dev/null @@ -1,4649 +0,0 @@ -#include <stdlib.h> -#include <string.h> -#define YYBYACC 1 -#define YYMAJOR 1 -#define YYMINOR 9 -#define YYLEX yylex() -#define YYEMPTY -1 -#define yyclearin (yychar=(YYEMPTY)) -#define yyerrok (yyerrflag=0) -#define YYRECOVERING() (yyerrflag!=0) -#define YYPREFIX "yy" -#line 39 "/usr/src/usr.sbin/unbound/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); - -static void validate_respip_action(const char* action); - -/* 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 66 "/usr/src/usr.sbin/unbound/util/configparser.y" -#ifndef YYSTYPE_DEFINED -#define YYSTYPE_DEFINED -typedef union { - char* str; -} YYSTYPE; -#endif /* YYSTYPE_DEFINED */ -#line 47 "util/configparser.c" -#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_PREFER_IP6 273 -#define VAR_DO_UDP 274 -#define VAR_DO_TCP 275 -#define VAR_TCP_MSS 276 -#define VAR_OUTGOING_TCP_MSS 277 -#define VAR_TCP_IDLE_TIMEOUT 278 -#define VAR_EDNS_TCP_KEEPALIVE 279 -#define VAR_EDNS_TCP_KEEPALIVE_TIMEOUT 280 -#define VAR_CHROOT 281 -#define VAR_USERNAME 282 -#define VAR_DIRECTORY 283 -#define VAR_LOGFILE 284 -#define VAR_PIDFILE 285 -#define VAR_MSG_CACHE_SIZE 286 -#define VAR_MSG_CACHE_SLABS 287 -#define VAR_NUM_QUERIES_PER_THREAD 288 -#define VAR_RRSET_CACHE_SIZE 289 -#define VAR_RRSET_CACHE_SLABS 290 -#define VAR_OUTGOING_NUM_TCP 291 -#define VAR_INFRA_HOST_TTL 292 -#define VAR_INFRA_LAME_TTL 293 -#define VAR_INFRA_CACHE_SLABS 294 -#define VAR_INFRA_CACHE_NUMHOSTS 295 -#define VAR_INFRA_CACHE_LAME_SIZE 296 -#define VAR_NAME 297 -#define VAR_STUB_ZONE 298 -#define VAR_STUB_HOST 299 -#define VAR_STUB_ADDR 300 -#define VAR_TARGET_FETCH_POLICY 301 -#define VAR_HARDEN_SHORT_BUFSIZE 302 -#define VAR_HARDEN_LARGE_QUERIES 303 -#define VAR_FORWARD_ZONE 304 -#define VAR_FORWARD_HOST 305 -#define VAR_FORWARD_ADDR 306 -#define VAR_DO_NOT_QUERY_ADDRESS 307 -#define VAR_HIDE_IDENTITY 308 -#define VAR_HIDE_VERSION 309 -#define VAR_IDENTITY 310 -#define VAR_VERSION 311 -#define VAR_HARDEN_GLUE 312 -#define VAR_MODULE_CONF 313 -#define VAR_TRUST_ANCHOR_FILE 314 -#define VAR_TRUST_ANCHOR 315 -#define VAR_VAL_OVERRIDE_DATE 316 -#define VAR_BOGUS_TTL 317 -#define VAR_VAL_CLEAN_ADDITIONAL 318 -#define VAR_VAL_PERMISSIVE_MODE 319 -#define VAR_INCOMING_NUM_TCP 320 -#define VAR_MSG_BUFFER_SIZE 321 -#define VAR_KEY_CACHE_SIZE 322 -#define VAR_KEY_CACHE_SLABS 323 -#define VAR_TRUSTED_KEYS_FILE 324 -#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 325 -#define VAR_USE_SYSLOG 326 -#define VAR_OUTGOING_INTERFACE 327 -#define VAR_ROOT_HINTS 328 -#define VAR_DO_NOT_QUERY_LOCALHOST 329 -#define VAR_CACHE_MAX_TTL 330 -#define VAR_HARDEN_DNSSEC_STRIPPED 331 -#define VAR_ACCESS_CONTROL 332 -#define VAR_LOCAL_ZONE 333 -#define VAR_LOCAL_DATA 334 -#define VAR_INTERFACE_AUTOMATIC 335 -#define VAR_STATISTICS_INTERVAL 336 -#define VAR_DO_DAEMONIZE 337 -#define VAR_USE_CAPS_FOR_ID 338 -#define VAR_STATISTICS_CUMULATIVE 339 -#define VAR_OUTGOING_PORT_PERMIT 340 -#define VAR_OUTGOING_PORT_AVOID 341 -#define VAR_DLV_ANCHOR_FILE 342 -#define VAR_DLV_ANCHOR 343 -#define VAR_NEG_CACHE_SIZE 344 -#define VAR_HARDEN_REFERRAL_PATH 345 -#define VAR_PRIVATE_ADDRESS 346 -#define VAR_PRIVATE_DOMAIN 347 -#define VAR_REMOTE_CONTROL 348 -#define VAR_CONTROL_ENABLE 349 -#define VAR_CONTROL_INTERFACE 350 -#define VAR_CONTROL_PORT 351 -#define VAR_SERVER_KEY_FILE 352 -#define VAR_SERVER_CERT_FILE 353 -#define VAR_CONTROL_KEY_FILE 354 -#define VAR_CONTROL_CERT_FILE 355 -#define VAR_CONTROL_USE_CERT 356 -#define VAR_EXTENDED_STATISTICS 357 -#define VAR_LOCAL_DATA_PTR 358 -#define VAR_JOSTLE_TIMEOUT 359 -#define VAR_STUB_PRIME 360 -#define VAR_UNWANTED_REPLY_THRESHOLD 361 -#define VAR_LOG_TIME_ASCII 362 -#define VAR_DOMAIN_INSECURE 363 -#define VAR_PYTHON 364 -#define VAR_PYTHON_SCRIPT 365 -#define VAR_VAL_SIG_SKEW_MIN 366 -#define VAR_VAL_SIG_SKEW_MAX 367 -#define VAR_CACHE_MIN_TTL 368 -#define VAR_VAL_LOG_LEVEL 369 -#define VAR_AUTO_TRUST_ANCHOR_FILE 370 -#define VAR_KEEP_MISSING 371 -#define VAR_ADD_HOLDDOWN 372 -#define VAR_DEL_HOLDDOWN 373 -#define VAR_SO_RCVBUF 374 -#define VAR_EDNS_BUFFER_SIZE 375 -#define VAR_PREFETCH 376 -#define VAR_PREFETCH_KEY 377 -#define VAR_SO_SNDBUF 378 -#define VAR_SO_REUSEPORT 379 -#define VAR_HARDEN_BELOW_NXDOMAIN 380 -#define VAR_IGNORE_CD_FLAG 381 -#define VAR_LOG_QUERIES 382 -#define VAR_LOG_REPLIES 383 -#define VAR_LOG_LOCAL_ACTIONS 384 -#define VAR_TCP_UPSTREAM 385 -#define VAR_SSL_UPSTREAM 386 -#define VAR_SSL_SERVICE_KEY 387 -#define VAR_SSL_SERVICE_PEM 388 -#define VAR_SSL_PORT 389 -#define VAR_FORWARD_FIRST 390 -#define VAR_STUB_SSL_UPSTREAM 391 -#define VAR_FORWARD_SSL_UPSTREAM 392 -#define VAR_TLS_CERT_BUNDLE 393 -#define VAR_STUB_FIRST 394 -#define VAR_MINIMAL_RESPONSES 395 -#define VAR_RRSET_ROUNDROBIN 396 -#define VAR_MAX_UDP_SIZE 397 -#define VAR_DELAY_CLOSE 398 -#define VAR_UNBLOCK_LAN_ZONES 399 -#define VAR_INSECURE_LAN_ZONES 400 -#define VAR_INFRA_CACHE_MIN_RTT 401 -#define VAR_DNS64_PREFIX 402 -#define VAR_DNS64_SYNTHALL 403 -#define VAR_DNS64_IGNORE_AAAA 404 -#define VAR_DNSTAP 405 -#define VAR_DNSTAP_ENABLE 406 -#define VAR_DNSTAP_SOCKET_PATH 407 -#define VAR_DNSTAP_SEND_IDENTITY 408 -#define VAR_DNSTAP_SEND_VERSION 409 -#define VAR_DNSTAP_IDENTITY 410 -#define VAR_DNSTAP_VERSION 411 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 412 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 413 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 414 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 415 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 416 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 417 -#define VAR_RESPONSE_IP_TAG 418 -#define VAR_RESPONSE_IP 419 -#define VAR_RESPONSE_IP_DATA 420 -#define VAR_HARDEN_ALGO_DOWNGRADE 421 -#define VAR_IP_TRANSPARENT 422 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 423 -#define VAR_IP_RATELIMIT 424 -#define VAR_IP_RATELIMIT_SLABS 425 -#define VAR_IP_RATELIMIT_SIZE 426 -#define VAR_RATELIMIT 427 -#define VAR_RATELIMIT_SLABS 428 -#define VAR_RATELIMIT_SIZE 429 -#define VAR_RATELIMIT_FOR_DOMAIN 430 -#define VAR_RATELIMIT_BELOW_DOMAIN 431 -#define VAR_IP_RATELIMIT_FACTOR 432 -#define VAR_RATELIMIT_FACTOR 433 -#define VAR_SEND_CLIENT_SUBNET 434 -#define VAR_CLIENT_SUBNET_ZONE 435 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 436 -#define VAR_CLIENT_SUBNET_OPCODE 437 -#define VAR_MAX_CLIENT_SUBNET_IPV4 438 -#define VAR_MAX_CLIENT_SUBNET_IPV6 439 -#define VAR_MIN_CLIENT_SUBNET_IPV4 440 -#define VAR_MIN_CLIENT_SUBNET_IPV6 441 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 442 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 443 -#define VAR_CAPS_WHITELIST 444 -#define VAR_CACHE_MAX_NEGATIVE_TTL 445 -#define VAR_PERMIT_SMALL_HOLDDOWN 446 -#define VAR_QNAME_MINIMISATION 447 -#define VAR_QNAME_MINIMISATION_STRICT 448 -#define VAR_IP_FREEBIND 449 -#define VAR_DEFINE_TAG 450 -#define VAR_LOCAL_ZONE_TAG 451 -#define VAR_ACCESS_CONTROL_TAG 452 -#define VAR_LOCAL_ZONE_OVERRIDE 453 -#define VAR_ACCESS_CONTROL_TAG_ACTION 454 -#define VAR_ACCESS_CONTROL_TAG_DATA 455 -#define VAR_VIEW 456 -#define VAR_ACCESS_CONTROL_VIEW 457 -#define VAR_VIEW_FIRST 458 -#define VAR_SERVE_EXPIRED 459 -#define VAR_SERVE_EXPIRED_TTL 460 -#define VAR_SERVE_EXPIRED_TTL_RESET 461 -#define VAR_FAKE_DSA 462 -#define VAR_FAKE_SHA1 463 -#define VAR_LOG_IDENTITY 464 -#define VAR_HIDE_TRUSTANCHOR 465 -#define VAR_TRUST_ANCHOR_SIGNALING 466 -#define VAR_AGGRESSIVE_NSEC 467 -#define VAR_USE_SYSTEMD 468 -#define VAR_SHM_ENABLE 469 -#define VAR_SHM_KEY 470 -#define VAR_ROOT_KEY_SENTINEL 471 -#define VAR_DNSCRYPT 472 -#define VAR_DNSCRYPT_ENABLE 473 -#define VAR_DNSCRYPT_PORT 474 -#define VAR_DNSCRYPT_PROVIDER 475 -#define VAR_DNSCRYPT_SECRET_KEY 476 -#define VAR_DNSCRYPT_PROVIDER_CERT 477 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 478 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 479 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 480 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 481 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 482 -#define VAR_IPSECMOD_ENABLED 483 -#define VAR_IPSECMOD_HOOK 484 -#define VAR_IPSECMOD_IGNORE_BOGUS 485 -#define VAR_IPSECMOD_MAX_TTL 486 -#define VAR_IPSECMOD_WHITELIST 487 -#define VAR_IPSECMOD_STRICT 488 -#define VAR_CACHEDB 489 -#define VAR_CACHEDB_BACKEND 490 -#define VAR_CACHEDB_SECRETSEED 491 -#define VAR_CACHEDB_REDISHOST 492 -#define VAR_CACHEDB_REDISPORT 493 -#define VAR_CACHEDB_REDISTIMEOUT 494 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 495 -#define VAR_FOR_UPSTREAM 496 -#define VAR_AUTH_ZONE 497 -#define VAR_ZONEFILE 498 -#define VAR_MASTER 499 -#define VAR_URL 500 -#define VAR_FOR_DOWNSTREAM 501 -#define VAR_FALLBACK_ENABLED 502 -#define VAR_TLS_ADDITIONAL_PORT 503 -#define VAR_LOW_RTT 504 -#define VAR_LOW_RTT_PERMIL 505 -#define VAR_FAST_SERVER_PERMIL 506 -#define VAR_FAST_SERVER_NUM 507 -#define VAR_ALLOW_NOTIFY 508 -#define VAR_TLS_WIN_CERT 509 -#define VAR_TCP_CONNECTION_LIMIT 510 -#define VAR_FORWARD_NO_CACHE 511 -#define VAR_STUB_NO_CACHE 512 -#define VAR_LOG_SERVFAIL 513 -#define VAR_DENY_ANY 514 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 515 -#define YYERRCODE 256 -const short yylhs[] = - { -1, - 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 3, 3, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 4, - 5, 5, 207, 207, 207, 207, 207, 207, 207, 6, - 7, 7, 215, 215, 215, 215, 215, 215, 14, 15, - 15, 222, 222, 222, 222, 222, 222, 222, 20, 21, - 21, 230, 230, 230, 230, 230, 230, 230, 230, 23, - 24, 86, 89, 98, 183, 184, 25, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 37, 77, 26, - 90, 91, 48, 70, 85, 27, 28, 30, 31, 29, - 32, 33, 34, 35, 36, 121, 195, 122, 124, 125, - 126, 197, 202, 198, 179, 87, 76, 102, 119, 120, - 204, 123, 38, 39, 40, 41, 42, 78, 92, 93, - 108, 64, 74, 65, 187, 188, 103, 58, 59, 186, - 60, 61, 112, 116, 130, 139, 164, 113, 71, 43, - 44, 45, 100, 131, 132, 133, 46, 47, 49, 50, - 52, 53, 51, 137, 54, 55, 56, 62, 81, 117, - 95, 138, 88, 160, 96, 97, 114, 115, 205, 101, - 57, 79, 82, 63, 66, 104, 105, 80, 161, 106, - 67, 68, 69, 196, 118, 174, 175, 176, 177, 185, - 107, 75, 109, 110, 111, 162, 72, 73, 94, 83, - 84, 99, 127, 128, 206, 129, 134, 135, 136, 165, - 166, 168, 170, 171, 169, 172, 180, 140, 141, 144, - 145, 142, 143, 146, 147, 149, 148, 199, 201, 200, - 163, 173, 189, 191, 190, 192, 193, 194, 208, 209, - 210, 212, 213, 214, 211, 216, 217, 218, 219, 220, - 221, 231, 232, 233, 234, 238, 235, 236, 237, 223, - 224, 227, 228, 225, 229, 226, 10, 11, 11, 239, - 239, 239, 239, 239, 239, 239, 239, 240, 242, 241, - 247, 243, 244, 245, 246, 12, 13, 13, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 8, 9, 9, 261, 262, 167, 178, 181, - 182, 16, 17, 17, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 264, 265, 266, 268, 269, 267, - 270, 271, 272, 273, 18, 19, 19, 274, 274, 274, - 274, 274, 275, 276, 277, 278, 279, 203, -}; -const short yylen[] = - { 2, - 0, 2, 2, 2, 2, 2, 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, 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, 1, 1, - 2, 0, 1, 1, 1, 1, 1, 1, 1, 2, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 0, 1, 1, 1, 1, 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, 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, 2, 2, 2, 2, 2, 2, 2, 2, 3, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 3, 4, 4, 4, 3, 3, 2, 2, 2, - 2, 2, 2, 3, 3, 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, 3, 3, 2, 2, 2, 1, 2, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 2, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 2, 0, 1, 2, 2, 2, 3, - 3, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 2, 0, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 3, -}; -const short yydefred[] = - { 1, - 0, 13, 200, 210, 447, 493, 466, 219, 502, 525, - 229, 2, 15, 202, 212, 495, 449, 468, 221, 504, - 527, 231, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 14, 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, - 109, 110, 111, 112, 113, 114, 115, 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, 0, 0, 0, 0, 0, 0, 0, 201, 203, - 204, 205, 206, 207, 208, 209, 0, 0, 0, 0, - 0, 0, 211, 213, 214, 215, 216, 217, 218, 0, - 494, 496, 0, 0, 0, 0, 0, 0, 0, 0, - 448, 450, 451, 452, 453, 454, 455, 456, 457, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 467, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 0, 0, 0, 0, 0, 0, - 0, 220, 222, 223, 224, 225, 226, 227, 228, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 503, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 0, 0, 0, 0, 0, 526, 528, 529, 530, 531, - 532, 0, 0, 0, 0, 0, 0, 0, 0, 230, - 232, 233, 234, 235, 236, 237, 238, 239, 241, 240, - 247, 260, 258, 266, 267, 270, 268, 269, 271, 272, - 273, 274, 275, 293, 294, 295, 296, 297, 320, 321, - 322, 327, 328, 263, 329, 330, 333, 331, 332, 335, - 336, 337, 351, 308, 309, 311, 312, 338, 354, 302, - 304, 355, 361, 362, 363, 264, 319, 377, 378, 303, - 372, 287, 259, 298, 352, 358, 339, 0, 0, 381, - 265, 242, 286, 343, 243, 261, 262, 299, 300, 379, - 341, 345, 346, 244, 382, 323, 350, 288, 307, 356, - 357, 360, 371, 301, 375, 373, 374, 313, 318, 347, - 348, 314, 315, 340, 365, 289, 290, 292, 276, 278, - 279, 280, 281, 282, 383, 384, 386, 324, 325, 326, - 334, 387, 388, 389, 0, 0, 0, 342, 316, 498, - 398, 402, 400, 399, 403, 401, 0, 0, 406, 407, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 344, 359, 376, 411, 412, 317, 390, 0, 0, 0, - 0, 0, 0, 366, 367, 368, 369, 370, 499, 310, - 305, 364, 285, 245, 246, 306, 413, 415, 414, 416, - 417, 418, 277, 284, 408, 410, 409, 283, 0, 291, - 349, 385, 419, 420, 421, 425, 424, 422, 423, 426, - 427, 428, 429, 431, 430, 497, 458, 460, 459, 462, - 463, 464, 465, 461, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 440, 0, 444, 445, - 0, 0, 446, 515, 516, 517, 520, 518, 519, 521, - 522, 523, 524, 533, 534, 535, 536, 537, 432, 438, - 433, 434, 435, 437, 439, 436, 353, 380, 397, 500, - 501, 404, 405, 391, 392, 0, 0, 0, 396, 538, - 441, 442, 443, 395, 393, 394, -}; -const short yydgoto[] = - { 1, - 12, 13, 23, 14, 24, 15, 25, 16, 26, 17, - 27, 18, 28, 19, 29, 20, 30, 21, 31, 22, - 32, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 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, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 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, 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, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 401, 409, 410, 411, 412, - 413, 414, 415, 416, 423, 424, 425, 426, 427, 428, - 429, 482, 483, 484, 485, 486, 487, 488, 489, 530, - 531, 532, 533, 534, 535, 536, 537, 538, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 431, 432, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 516, 517, 518, 519, 520, 521, -}; -const short yysindex[] = - { 0, - 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -231, -117, -56, -365, -342, 128, -173, -77, - -473, -52, -242, -241, -240, -238, -237, -236, -235, -234, - -233, -232, -230, -198, -197, -196, -195, -191, -189, -147, - -146, -145, -144, -143, -142, -141, -139, -135, -131, -130, - -105, -101, -90, -89, -88, -87, -86, -85, -83, -80, - -78, -39, -37, -22, -20, -16, -13, -6, -5, -4, - -3, -2, -1, 22, 23, 24, 27, 28, 29, 30, - 31, 32, 33, 34, 47, 48, 51, 52, 53, 54, - 57, 58, 60, 61, 62, 63, 64, 66, 67, 68, - 69, 71, 73, 76, 79, 80, 81, 82, 83, 84, - 91, 92, 93, 94, 95, 96, 97, 98, 107, 110, - 112, 113, 118, 119, 120, 121, 122, 123, 124, 126, - 127, 129, 130, 148, 149, 150, 151, 152, 153, 154, - 155, 159, 160, 162, 163, 164, 165, 167, 168, 169, - 170, 171, 172, 173, 175, 176, 178, 179, 181, 187, - 188, 189, 190, 199, 200, 201, 202, 203, 204, 205, - 206, 216, 219, 220, 221, 222, 225, 232, 242, 243, - 244, 245, 246, 247, 251, 252, 253, 254, 255, 256, - 257, 259, 260, 261, 262, 263, 264, 265, 267, 268, - 283, 284, 286, 287, 288, 289, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 290, 291, 292, 293, 294, 295, 296, 0, 0, - 0, 0, 0, 0, 0, 0, 297, 298, 300, 301, - 303, 304, 0, 0, 0, 0, 0, 0, 0, 305, - 0, 0, 306, 308, 309, 311, 312, 313, 314, 315, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 328, 329, 330, 331, 332, 333, - 334, 0, 0, 0, 0, 0, 0, 0, 0, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 345, 346, 347, 348, 349, 0, 0, 0, 0, 0, - 0, 350, 351, 352, 353, 354, 355, 356, 357, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 358, 359, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 360, 361, 362, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 363, 364, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 365, 366, 367, - 368, 369, 370, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 371, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, - 373, 374, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 375, 376, 377, 0, 0, - 0, 0, 0, 0, 0, 0,}; -const short yyrindex[] = - { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 3, 4, 5, 6, 15, 16, - 25, 74, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,}; -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, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 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 641 -const short yytable[] = - { 430, - 3, 4, 5, 6, 7, 8, 433, 434, 435, 436, - 437, 438, 439, 440, 9, 10, 511, 512, 513, 514, - 515, 539, 540, 541, 11, 542, 543, 544, 545, 546, - 547, 548, 0, 549, 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, 550, 551, 552, 553, 64, - 65, 66, 554, 12, 555, 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, 556, 557, 558, 559, - 560, 561, 562, 475, 563, 108, 109, 110, 564, 111, - 112, 113, 565, 566, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 567, 476, - 477, 138, 568, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 569, 570, 571, 572, 573, 574, 402, - 575, 403, 404, 576, 478, 577, 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, 578, 187, 579, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 417, 580, 405, 581, 522, 479, 480, 582, 418, 419, - 583, 201, 202, 203, 204, 205, 206, 584, 585, 586, - 587, 588, 589, 207, 0, 3, 4, 5, 6, 7, - 8, 208, 209, 406, 210, 211, 407, 212, 213, 9, - 10, 214, 215, 216, 481, 590, 591, 592, 0, 11, - 593, 594, 595, 596, 597, 598, 599, 600, 3, 4, - 5, 6, 7, 8, 3, 4, 5, 6, 7, 8, - 601, 602, 9, 10, 603, 604, 605, 606, 9, 10, - 607, 608, 11, 609, 610, 611, 612, 613, 11, 614, - 615, 616, 617, 420, 618, 421, 619, 0, 12, 620, - 0, 2, 621, 622, 623, 624, 625, 626, 3, 4, - 5, 6, 7, 8, 627, 628, 629, 630, 631, 632, - 633, 634, 9, 10, 3, 4, 5, 6, 7, 8, - 635, 12, 11, 636, 3, 637, 638, 12, 9, 10, - 4, 639, 640, 641, 642, 643, 644, 645, 11, 646, - 647, 0, 648, 649, 408, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 3, 4, 5, 6, 7, - 8, 650, 651, 652, 653, 654, 655, 656, 657, 9, - 10, 12, 658, 659, 5, 660, 661, 662, 663, 11, - 664, 665, 666, 667, 668, 669, 670, 12, 671, 672, - 6, 673, 674, 523, 675, 524, 525, 526, 527, 528, - 676, 677, 678, 679, 422, 529, 3, 4, 5, 6, - 7, 8, 680, 681, 682, 683, 684, 685, 686, 687, - 9, 10, 3, 4, 5, 6, 7, 8, 12, 688, - 11, 7, 689, 690, 691, 692, 9, 10, 693, 3, - 4, 5, 6, 7, 8, 694, 11, 3, 4, 5, - 6, 7, 8, 9, 10, 695, 696, 697, 698, 699, - 700, 9, 10, 11, 701, 702, 703, 704, 705, 706, - 707, 11, 708, 709, 710, 711, 712, 713, 714, 12, - 715, 716, 8, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 12, 717, 718, 9, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 12, 732, 733, 10, 734, 735, 736, 737, - 12, 738, 739, 11, 740, 741, 742, 743, 744, 745, - 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, - 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, - 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, - 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, - 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, - 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, - 806, -}; -const short yycheck[] = - { 365, - 0, 0, 0, 0, 0, 0, 349, 350, 351, 352, - 353, 354, 355, 356, 0, 0, 490, 491, 492, 493, - 494, 264, 264, 264, 0, 264, 264, 264, 264, 264, - 264, 264, -1, 264, 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, 291, - 292, 293, 294, 295, 296, 264, 264, 264, 264, 301, - 302, 303, 264, 0, 264, 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, - 342, 343, 344, 345, 346, 347, 264, 264, 264, 264, - 264, 264, 264, 297, 264, 357, 358, 359, 264, 361, - 362, 363, 264, 264, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 264, 333, - 334, 393, 264, 395, 396, 397, 398, 399, 400, 401, - 402, 403, 404, 264, 264, 264, 264, 264, 264, 297, - 264, 299, 300, 264, 358, 264, 418, 419, 420, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 455, 264, 457, 264, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 297, 264, 360, 264, 297, 419, 420, 264, 305, 306, - 264, 483, 484, 485, 486, 487, 488, 264, 264, 264, - 264, 264, 264, 495, -1, 265, 265, 265, 265, 265, - 265, 503, 504, 391, 506, 507, 394, 509, 510, 265, - 265, 513, 514, 515, 458, 264, 264, 264, -1, 265, - 264, 264, 264, 264, 264, 264, 264, 264, 298, 298, - 298, 298, 298, 298, 304, 304, 304, 304, 304, 304, - 264, 264, 298, 298, 264, 264, 264, 264, 304, 304, - 264, 264, 298, 264, 264, 264, 264, 264, 304, 264, - 264, 264, 264, 390, 264, 392, 264, -1, 265, 264, - -1, 265, 264, 264, 264, 264, 264, 264, 348, 348, - 348, 348, 348, 348, 264, 264, 264, 264, 264, 264, - 264, 264, 348, 348, 364, 364, 364, 364, 364, 364, - 264, 298, 348, 264, 298, 264, 264, 304, 364, 364, - 304, 264, 264, 264, 264, 264, 264, 264, 364, 264, - 264, -1, 264, 264, 512, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 405, 405, 405, 405, 405, - 405, 264, 264, 264, 264, 264, 264, 264, 264, 405, - 405, 348, 264, 264, 348, 264, 264, 264, 264, 405, - 264, 264, 264, 264, 264, 264, 264, 364, 264, 264, - 364, 264, 264, 496, 264, 498, 499, 500, 501, 502, - 264, 264, 264, 264, 511, 508, 456, 456, 456, 456, - 456, 456, 264, 264, 264, 264, 264, 264, 264, 264, - 456, 456, 472, 472, 472, 472, 472, 472, 405, 264, - 456, 405, 264, 264, 264, 264, 472, 472, 264, 489, - 489, 489, 489, 489, 489, 264, 472, 497, 497, 497, - 497, 497, 497, 489, 489, 264, 264, 264, 264, 264, - 264, 497, 497, 489, 264, 264, 264, 264, 264, 264, - 264, 497, 264, 264, 264, 264, 264, 264, 264, 456, - 264, 264, 456, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 472, 264, 264, 472, 264, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, 264, 489, 264, 264, 489, 264, 264, 264, 264, - 497, 264, 264, 497, 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, - 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, - 264, -}; -#define YYFINAL 1 -#ifndef YYDEBUG -#define YYDEBUG 0 -#endif -#define YYMAXTOKEN 515 -#if YYDEBUG -const char * const 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_PREFER_IP6","VAR_DO_UDP","VAR_DO_TCP","VAR_TCP_MSS", -"VAR_OUTGOING_TCP_MSS","VAR_TCP_IDLE_TIMEOUT","VAR_EDNS_TCP_KEEPALIVE", -"VAR_EDNS_TCP_KEEPALIVE_TIMEOUT","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_CONTROL_USE_CERT","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_SO_REUSEPORT","VAR_HARDEN_BELOW_NXDOMAIN","VAR_IGNORE_CD_FLAG", -"VAR_LOG_QUERIES","VAR_LOG_REPLIES","VAR_LOG_LOCAL_ACTIONS","VAR_TCP_UPSTREAM", -"VAR_SSL_UPSTREAM","VAR_SSL_SERVICE_KEY","VAR_SSL_SERVICE_PEM","VAR_SSL_PORT", -"VAR_FORWARD_FIRST","VAR_STUB_SSL_UPSTREAM","VAR_FORWARD_SSL_UPSTREAM", -"VAR_TLS_CERT_BUNDLE","VAR_STUB_FIRST","VAR_MINIMAL_RESPONSES", -"VAR_RRSET_ROUNDROBIN","VAR_MAX_UDP_SIZE","VAR_DELAY_CLOSE", -"VAR_UNBLOCK_LAN_ZONES","VAR_INSECURE_LAN_ZONES","VAR_INFRA_CACHE_MIN_RTT", -"VAR_DNS64_PREFIX","VAR_DNS64_SYNTHALL","VAR_DNS64_IGNORE_AAAA","VAR_DNSTAP", -"VAR_DNSTAP_ENABLE","VAR_DNSTAP_SOCKET_PATH","VAR_DNSTAP_SEND_IDENTITY", -"VAR_DNSTAP_SEND_VERSION","VAR_DNSTAP_IDENTITY","VAR_DNSTAP_VERSION", -"VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES", -"VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES", -"VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES", -"VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES", -"VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES", -"VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES","VAR_RESPONSE_IP_TAG", -"VAR_RESPONSE_IP","VAR_RESPONSE_IP_DATA","VAR_HARDEN_ALGO_DOWNGRADE", -"VAR_IP_TRANSPARENT","VAR_DISABLE_DNSSEC_LAME_CHECK","VAR_IP_RATELIMIT", -"VAR_IP_RATELIMIT_SLABS","VAR_IP_RATELIMIT_SIZE","VAR_RATELIMIT", -"VAR_RATELIMIT_SLABS","VAR_RATELIMIT_SIZE","VAR_RATELIMIT_FOR_DOMAIN", -"VAR_RATELIMIT_BELOW_DOMAIN","VAR_IP_RATELIMIT_FACTOR","VAR_RATELIMIT_FACTOR", -"VAR_SEND_CLIENT_SUBNET","VAR_CLIENT_SUBNET_ZONE", -"VAR_CLIENT_SUBNET_ALWAYS_FORWARD","VAR_CLIENT_SUBNET_OPCODE", -"VAR_MAX_CLIENT_SUBNET_IPV4","VAR_MAX_CLIENT_SUBNET_IPV6", -"VAR_MIN_CLIENT_SUBNET_IPV4","VAR_MIN_CLIENT_SUBNET_IPV6", -"VAR_MAX_ECS_TREE_SIZE_IPV4","VAR_MAX_ECS_TREE_SIZE_IPV6","VAR_CAPS_WHITELIST", -"VAR_CACHE_MAX_NEGATIVE_TTL","VAR_PERMIT_SMALL_HOLDDOWN", -"VAR_QNAME_MINIMISATION","VAR_QNAME_MINIMISATION_STRICT","VAR_IP_FREEBIND", -"VAR_DEFINE_TAG","VAR_LOCAL_ZONE_TAG","VAR_ACCESS_CONTROL_TAG", -"VAR_LOCAL_ZONE_OVERRIDE","VAR_ACCESS_CONTROL_TAG_ACTION", -"VAR_ACCESS_CONTROL_TAG_DATA","VAR_VIEW","VAR_ACCESS_CONTROL_VIEW", -"VAR_VIEW_FIRST","VAR_SERVE_EXPIRED","VAR_SERVE_EXPIRED_TTL", -"VAR_SERVE_EXPIRED_TTL_RESET","VAR_FAKE_DSA","VAR_FAKE_SHA1","VAR_LOG_IDENTITY", -"VAR_HIDE_TRUSTANCHOR","VAR_TRUST_ANCHOR_SIGNALING","VAR_AGGRESSIVE_NSEC", -"VAR_USE_SYSTEMD","VAR_SHM_ENABLE","VAR_SHM_KEY","VAR_ROOT_KEY_SENTINEL", -"VAR_DNSCRYPT","VAR_DNSCRYPT_ENABLE","VAR_DNSCRYPT_PORT", -"VAR_DNSCRYPT_PROVIDER","VAR_DNSCRYPT_SECRET_KEY","VAR_DNSCRYPT_PROVIDER_CERT", -"VAR_DNSCRYPT_PROVIDER_CERT_ROTATED","VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE", -"VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS","VAR_DNSCRYPT_NONCE_CACHE_SIZE", -"VAR_DNSCRYPT_NONCE_CACHE_SLABS","VAR_IPSECMOD_ENABLED","VAR_IPSECMOD_HOOK", -"VAR_IPSECMOD_IGNORE_BOGUS","VAR_IPSECMOD_MAX_TTL","VAR_IPSECMOD_WHITELIST", -"VAR_IPSECMOD_STRICT","VAR_CACHEDB","VAR_CACHEDB_BACKEND", -"VAR_CACHEDB_SECRETSEED","VAR_CACHEDB_REDISHOST","VAR_CACHEDB_REDISPORT", -"VAR_CACHEDB_REDISTIMEOUT","VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM", -"VAR_FOR_UPSTREAM","VAR_AUTH_ZONE","VAR_ZONEFILE","VAR_MASTER","VAR_URL", -"VAR_FOR_DOWNSTREAM","VAR_FALLBACK_ENABLED","VAR_TLS_ADDITIONAL_PORT", -"VAR_LOW_RTT","VAR_LOW_RTT_PERMIL","VAR_FAST_SERVER_PERMIL", -"VAR_FAST_SERVER_NUM","VAR_ALLOW_NOTIFY","VAR_TLS_WIN_CERT", -"VAR_TCP_CONNECTION_LIMIT","VAR_FORWARD_NO_CACHE","VAR_STUB_NO_CACHE", -"VAR_LOG_SERVFAIL","VAR_DENY_ANY","VAR_UNKNOWN_SERVER_TIME_LIMIT", -}; -const char * const 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", -"toplevelvar : dtstart contents_dt", -"toplevelvar : viewstart contents_view", -"toplevelvar : dnscstart contents_dnsc", -"toplevelvar : cachedbstart contents_cachedb", -"toplevelvar : authstart contents_auth", -"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_prefer_ip6", -"content_server : server_do_udp", -"content_server : server_do_tcp", -"content_server : server_tcp_mss", -"content_server : server_outgoing_tcp_mss", -"content_server : server_tcp_idle_timeout", -"content_server : server_tcp_keepalive", -"content_server : server_tcp_keepalive_timeout", -"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_log_replies", -"content_server : server_tcp_upstream", -"content_server : server_ssl_upstream", -"content_server : server_log_local_actions", -"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", -"content_server : server_max_udp_size", -"content_server : server_so_reuseport", -"content_server : server_delay_close", -"content_server : server_unblock_lan_zones", -"content_server : server_insecure_lan_zones", -"content_server : server_dns64_prefix", -"content_server : server_dns64_synthall", -"content_server : server_dns64_ignore_aaaa", -"content_server : server_infra_cache_min_rtt", -"content_server : server_harden_algo_downgrade", -"content_server : server_ip_transparent", -"content_server : server_ip_ratelimit", -"content_server : server_ratelimit", -"content_server : server_ip_ratelimit_slabs", -"content_server : server_ratelimit_slabs", -"content_server : server_ip_ratelimit_size", -"content_server : server_ratelimit_size", -"content_server : server_ratelimit_for_domain", -"content_server : server_ratelimit_below_domain", -"content_server : server_ratelimit_factor", -"content_server : server_ip_ratelimit_factor", -"content_server : server_send_client_subnet", -"content_server : server_client_subnet_zone", -"content_server : server_client_subnet_always_forward", -"content_server : server_client_subnet_opcode", -"content_server : server_max_client_subnet_ipv4", -"content_server : server_max_client_subnet_ipv6", -"content_server : server_min_client_subnet_ipv4", -"content_server : server_min_client_subnet_ipv6", -"content_server : server_max_ecs_tree_size_ipv4", -"content_server : server_max_ecs_tree_size_ipv6", -"content_server : server_caps_whitelist", -"content_server : server_cache_max_negative_ttl", -"content_server : server_permit_small_holddown", -"content_server : server_qname_minimisation", -"content_server : server_ip_freebind", -"content_server : server_define_tag", -"content_server : server_local_zone_tag", -"content_server : server_disable_dnssec_lame_check", -"content_server : server_access_control_tag", -"content_server : server_local_zone_override", -"content_server : server_access_control_tag_action", -"content_server : server_access_control_tag_data", -"content_server : server_access_control_view", -"content_server : server_qname_minimisation_strict", -"content_server : server_serve_expired", -"content_server : server_serve_expired_ttl", -"content_server : server_serve_expired_ttl_reset", -"content_server : server_fake_dsa", -"content_server : server_log_identity", -"content_server : server_use_systemd", -"content_server : server_response_ip_tag", -"content_server : server_response_ip", -"content_server : server_response_ip_data", -"content_server : server_shm_enable", -"content_server : server_shm_key", -"content_server : server_fake_sha1", -"content_server : server_hide_trustanchor", -"content_server : server_trust_anchor_signaling", -"content_server : server_root_key_sentinel", -"content_server : server_ipsecmod_enabled", -"content_server : server_ipsecmod_hook", -"content_server : server_ipsecmod_ignore_bogus", -"content_server : server_ipsecmod_max_ttl", -"content_server : server_ipsecmod_whitelist", -"content_server : server_ipsecmod_strict", -"content_server : server_udp_upstream_without_downstream", -"content_server : server_aggressive_nsec", -"content_server : server_tls_cert_bundle", -"content_server : server_tls_additional_port", -"content_server : server_low_rtt", -"content_server : server_fast_server_permil", -"content_server : server_fast_server_num", -"content_server : server_tls_win_cert", -"content_server : server_tcp_connection_limit", -"content_server : server_log_servfail", -"content_server : server_deny_any", -"content_server : server_unknown_server_time_limit", -"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", -"content_stub : stub_no_cache", -"content_stub : stub_ssl_upstream", -"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", -"content_forward : forward_no_cache", -"content_forward : forward_ssl_upstream", -"viewstart : VAR_VIEW", -"contents_view : contents_view content_view", -"contents_view :", -"content_view : view_name", -"content_view : view_local_zone", -"content_view : view_local_data", -"content_view : view_first", -"content_view : view_response_ip", -"content_view : view_response_ip_data", -"content_view : view_local_data_ptr", -"authstart : VAR_AUTH_ZONE", -"contents_auth : contents_auth content_auth", -"contents_auth :", -"content_auth : auth_name", -"content_auth : auth_zonefile", -"content_auth : auth_master", -"content_auth : auth_url", -"content_auth : auth_for_downstream", -"content_auth : auth_for_upstream", -"content_auth : auth_fallback_enabled", -"content_auth : auth_allow_notify", -"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_shm_enable : VAR_SHM_ENABLE STRING_ARG", -"server_shm_key : VAR_SHM_KEY STRING_ARG", -"server_port : VAR_PORT STRING_ARG", -"server_send_client_subnet : VAR_SEND_CLIENT_SUBNET STRING_ARG", -"server_client_subnet_zone : VAR_CLIENT_SUBNET_ZONE STRING_ARG", -"server_client_subnet_always_forward : VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG", -"server_client_subnet_opcode : VAR_CLIENT_SUBNET_OPCODE STRING_ARG", -"server_max_client_subnet_ipv4 : VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG", -"server_max_client_subnet_ipv6 : VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG", -"server_min_client_subnet_ipv4 : VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG", -"server_min_client_subnet_ipv6 : VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG", -"server_max_ecs_tree_size_ipv4 : VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG", -"server_max_ecs_tree_size_ipv6 : VAR_MAX_ECS_TREE_SIZE_IPV6 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_prefer_ip6 : VAR_PREFER_IP6 STRING_ARG", -"server_tcp_mss : VAR_TCP_MSS STRING_ARG", -"server_outgoing_tcp_mss : VAR_OUTGOING_TCP_MSS STRING_ARG", -"server_tcp_idle_timeout : VAR_TCP_IDLE_TIMEOUT STRING_ARG", -"server_tcp_keepalive : VAR_EDNS_TCP_KEEPALIVE STRING_ARG", -"server_tcp_keepalive_timeout : VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG", -"server_tcp_upstream : VAR_TCP_UPSTREAM STRING_ARG", -"server_udp_upstream_without_downstream : VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 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_tls_cert_bundle : VAR_TLS_CERT_BUNDLE STRING_ARG", -"server_tls_win_cert : VAR_TLS_WIN_CERT STRING_ARG", -"server_tls_additional_port : VAR_TLS_ADDITIONAL_PORT STRING_ARG", -"server_use_systemd : VAR_USE_SYSTEMD 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_log_replies : VAR_LOG_REPLIES STRING_ARG", -"server_log_servfail : VAR_LOG_SERVFAIL STRING_ARG", -"server_log_local_actions : VAR_LOG_LOCAL_ACTIONS 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_trust_anchor_signaling : VAR_TRUST_ANCHOR_SIGNALING STRING_ARG", -"server_root_key_sentinel : VAR_ROOT_KEY_SENTINEL 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_hide_trustanchor : VAR_HIDE_TRUSTANCHOR 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_so_reuseport : VAR_SO_REUSEPORT STRING_ARG", -"server_ip_transparent : VAR_IP_TRANSPARENT STRING_ARG", -"server_ip_freebind : VAR_IP_FREEBIND 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_delay_close : VAR_DELAY_CLOSE STRING_ARG", -"server_unblock_lan_zones : VAR_UNBLOCK_LAN_ZONES STRING_ARG", -"server_insecure_lan_zones : VAR_INSECURE_LAN_ZONES 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_infra_cache_min_rtt : VAR_INFRA_CACHE_MIN_RTT 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_harden_algo_downgrade : VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG", -"server_use_caps_for_id : VAR_USE_CAPS_FOR_ID STRING_ARG", -"server_caps_whitelist : VAR_CAPS_WHITELIST 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_deny_any : VAR_DENY_ANY 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_max_negative_ttl : VAR_CACHE_MAX_NEGATIVE_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_aggressive_nsec : VAR_AGGRESSIVE_NSEC STRING_ARG", -"server_ignore_cd_flag : VAR_IGNORE_CD_FLAG STRING_ARG", -"server_serve_expired : VAR_SERVE_EXPIRED STRING_ARG", -"server_serve_expired_ttl : VAR_SERVE_EXPIRED_TTL STRING_ARG", -"server_serve_expired_ttl_reset : VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG", -"server_fake_dsa : VAR_FAKE_DSA STRING_ARG", -"server_fake_sha1 : VAR_FAKE_SHA1 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_permit_small_holddown : VAR_PERMIT_SMALL_HOLDDOWN 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", -"server_unknown_server_time_limit : VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG", -"server_max_udp_size : VAR_MAX_UDP_SIZE STRING_ARG", -"server_dns64_prefix : VAR_DNS64_PREFIX STRING_ARG", -"server_dns64_synthall : VAR_DNS64_SYNTHALL STRING_ARG", -"server_dns64_ignore_aaaa : VAR_DNS64_IGNORE_AAAA STRING_ARG", -"server_define_tag : VAR_DEFINE_TAG STRING_ARG", -"server_local_zone_tag : VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG", -"server_access_control_tag : VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG", -"server_access_control_tag_action : VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG", -"server_access_control_tag_data : VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG", -"server_local_zone_override : VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG", -"server_access_control_view : VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG", -"server_response_ip_tag : VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG", -"server_ip_ratelimit : VAR_IP_RATELIMIT STRING_ARG", -"server_ratelimit : VAR_RATELIMIT STRING_ARG", -"server_ip_ratelimit_size : VAR_IP_RATELIMIT_SIZE STRING_ARG", -"server_ratelimit_size : VAR_RATELIMIT_SIZE STRING_ARG", -"server_ip_ratelimit_slabs : VAR_IP_RATELIMIT_SLABS STRING_ARG", -"server_ratelimit_slabs : VAR_RATELIMIT_SLABS STRING_ARG", -"server_ratelimit_for_domain : VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG", -"server_ratelimit_below_domain : VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG", -"server_ip_ratelimit_factor : VAR_IP_RATELIMIT_FACTOR STRING_ARG", -"server_ratelimit_factor : VAR_RATELIMIT_FACTOR STRING_ARG", -"server_low_rtt : VAR_LOW_RTT STRING_ARG", -"server_fast_server_num : VAR_FAST_SERVER_NUM STRING_ARG", -"server_fast_server_permil : VAR_FAST_SERVER_PERMIL STRING_ARG", -"server_qname_minimisation : VAR_QNAME_MINIMISATION STRING_ARG", -"server_qname_minimisation_strict : VAR_QNAME_MINIMISATION_STRICT STRING_ARG", -"server_ipsecmod_enabled : VAR_IPSECMOD_ENABLED STRING_ARG", -"server_ipsecmod_ignore_bogus : VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG", -"server_ipsecmod_hook : VAR_IPSECMOD_HOOK STRING_ARG", -"server_ipsecmod_max_ttl : VAR_IPSECMOD_MAX_TTL STRING_ARG", -"server_ipsecmod_whitelist : VAR_IPSECMOD_WHITELIST STRING_ARG", -"server_ipsecmod_strict : VAR_IPSECMOD_STRICT 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_no_cache : VAR_STUB_NO_CACHE STRING_ARG", -"stub_ssl_upstream : VAR_STUB_SSL_UPSTREAM 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", -"forward_no_cache : VAR_FORWARD_NO_CACHE STRING_ARG", -"forward_ssl_upstream : VAR_FORWARD_SSL_UPSTREAM STRING_ARG", -"auth_name : VAR_NAME STRING_ARG", -"auth_zonefile : VAR_ZONEFILE STRING_ARG", -"auth_master : VAR_MASTER STRING_ARG", -"auth_url : VAR_URL STRING_ARG", -"auth_allow_notify : VAR_ALLOW_NOTIFY STRING_ARG", -"auth_for_downstream : VAR_FOR_DOWNSTREAM STRING_ARG", -"auth_for_upstream : VAR_FOR_UPSTREAM STRING_ARG", -"auth_fallback_enabled : VAR_FALLBACK_ENABLED STRING_ARG", -"view_name : VAR_NAME STRING_ARG", -"view_local_zone : VAR_LOCAL_ZONE STRING_ARG STRING_ARG", -"view_response_ip : VAR_RESPONSE_IP STRING_ARG STRING_ARG", -"view_response_ip_data : VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG", -"view_local_data : VAR_LOCAL_DATA STRING_ARG", -"view_local_data_ptr : VAR_LOCAL_DATA_PTR STRING_ARG", -"view_first : VAR_VIEW_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", -"content_rc : rc_control_use_cert", -"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_control_use_cert : VAR_CONTROL_USE_CERT 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", -"dtstart : VAR_DNSTAP", -"contents_dt : contents_dt content_dt", -"contents_dt :", -"content_dt : dt_dnstap_enable", -"content_dt : dt_dnstap_socket_path", -"content_dt : dt_dnstap_send_identity", -"content_dt : dt_dnstap_send_version", -"content_dt : dt_dnstap_identity", -"content_dt : dt_dnstap_version", -"content_dt : dt_dnstap_log_resolver_query_messages", -"content_dt : dt_dnstap_log_resolver_response_messages", -"content_dt : dt_dnstap_log_client_query_messages", -"content_dt : dt_dnstap_log_client_response_messages", -"content_dt : dt_dnstap_log_forwarder_query_messages", -"content_dt : dt_dnstap_log_forwarder_response_messages", -"dt_dnstap_enable : VAR_DNSTAP_ENABLE STRING_ARG", -"dt_dnstap_socket_path : VAR_DNSTAP_SOCKET_PATH STRING_ARG", -"dt_dnstap_send_identity : VAR_DNSTAP_SEND_IDENTITY STRING_ARG", -"dt_dnstap_send_version : VAR_DNSTAP_SEND_VERSION STRING_ARG", -"dt_dnstap_identity : VAR_DNSTAP_IDENTITY STRING_ARG", -"dt_dnstap_version : VAR_DNSTAP_VERSION STRING_ARG", -"dt_dnstap_log_resolver_query_messages : VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG", -"dt_dnstap_log_resolver_response_messages : VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG", -"dt_dnstap_log_client_query_messages : VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG", -"dt_dnstap_log_client_response_messages : VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG", -"dt_dnstap_log_forwarder_query_messages : VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG", -"dt_dnstap_log_forwarder_response_messages : VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG", -"pythonstart : VAR_PYTHON", -"contents_py : contents_py content_py", -"contents_py :", -"content_py : py_script", -"py_script : VAR_PYTHON_SCRIPT STRING_ARG", -"server_disable_dnssec_lame_check : VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG", -"server_log_identity : VAR_LOG_IDENTITY STRING_ARG", -"server_response_ip : VAR_RESPONSE_IP STRING_ARG STRING_ARG", -"server_response_ip_data : VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG", -"dnscstart : VAR_DNSCRYPT", -"contents_dnsc : contents_dnsc content_dnsc", -"contents_dnsc :", -"content_dnsc : dnsc_dnscrypt_enable", -"content_dnsc : dnsc_dnscrypt_port", -"content_dnsc : dnsc_dnscrypt_provider", -"content_dnsc : dnsc_dnscrypt_secret_key", -"content_dnsc : dnsc_dnscrypt_provider_cert", -"content_dnsc : dnsc_dnscrypt_provider_cert_rotated", -"content_dnsc : dnsc_dnscrypt_shared_secret_cache_size", -"content_dnsc : dnsc_dnscrypt_shared_secret_cache_slabs", -"content_dnsc : dnsc_dnscrypt_nonce_cache_size", -"content_dnsc : dnsc_dnscrypt_nonce_cache_slabs", -"dnsc_dnscrypt_enable : VAR_DNSCRYPT_ENABLE STRING_ARG", -"dnsc_dnscrypt_port : VAR_DNSCRYPT_PORT STRING_ARG", -"dnsc_dnscrypt_provider : VAR_DNSCRYPT_PROVIDER STRING_ARG", -"dnsc_dnscrypt_provider_cert : VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG", -"dnsc_dnscrypt_provider_cert_rotated : VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG", -"dnsc_dnscrypt_secret_key : VAR_DNSCRYPT_SECRET_KEY STRING_ARG", -"dnsc_dnscrypt_shared_secret_cache_size : VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG", -"dnsc_dnscrypt_shared_secret_cache_slabs : VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG", -"dnsc_dnscrypt_nonce_cache_size : VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG", -"dnsc_dnscrypt_nonce_cache_slabs : VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG", -"cachedbstart : VAR_CACHEDB", -"contents_cachedb : contents_cachedb content_cachedb", -"contents_cachedb :", -"content_cachedb : cachedb_backend_name", -"content_cachedb : cachedb_secret_seed", -"content_cachedb : redis_server_host", -"content_cachedb : redis_server_port", -"content_cachedb : redis_timeout", -"cachedb_backend_name : VAR_CACHEDB_BACKEND STRING_ARG", -"cachedb_secret_seed : VAR_CACHEDB_SECRETSEED STRING_ARG", -"redis_server_host : VAR_CACHEDB_REDISHOST STRING_ARG", -"redis_server_port : VAR_CACHEDB_REDISPORT STRING_ARG", -"redis_timeout : VAR_CACHEDB_REDISTIMEOUT STRING_ARG", -"server_tcp_connection_limit : VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG", -}; -#endif -#ifdef YYSTACKSIZE -#undef YYMAXDEPTH -#define YYMAXDEPTH YYSTACKSIZE -#else -#ifdef YYMAXDEPTH -#define YYSTACKSIZE YYMAXDEPTH -#else -#define YYSTACKSIZE 10000 -#define YYMAXDEPTH 10000 -#endif -#endif -#define YYINITSTACKSIZE 200 -/* LINTUSED */ -int yydebug; -int yynerrs; -int yyerrflag; -int yychar; -short *yyssp; -YYSTYPE *yyvsp; -YYSTYPE yyval; -YYSTYPE yylval; -short *yyss; -short *yysslim; -YYSTYPE *yyvs; -unsigned int yystacksize; -int yyparse(void); -#line 2893 "/usr/src/usr.sbin/unbound/util/configparser.y" - -/* parse helper routines could be here */ -static void -validate_respip_action(const char* action) -{ - if(strcmp(action, "deny")!=0 && - strcmp(action, "redirect")!=0 && - strcmp(action, "inform")!=0 && - strcmp(action, "inform_deny")!=0 && - strcmp(action, "always_transparent")!=0 && - strcmp(action, "always_refuse")!=0 && - strcmp(action, "always_nxdomain")!=0) - { - yyerror("response-ip action: expected deny, redirect, " - "inform, inform_deny, always_transparent, " - "always_refuse or always_nxdomain"); - } -} -#line 1551 "util/configparser.c" -/* allocate initial stack or double stack size, up to YYMAXDEPTH */ -static int yygrowstack(void) -{ - unsigned int newsize; - long sslen; - short *newss; - YYSTYPE *newvs; - - if ((newsize = yystacksize) == 0) - newsize = YYINITSTACKSIZE; - else if (newsize >= YYMAXDEPTH) - return -1; - else if ((newsize *= 2) > YYMAXDEPTH) - newsize = YYMAXDEPTH; - sslen = yyssp - yyss; -#ifdef SIZE_MAX -#define YY_SIZE_MAX SIZE_MAX -#else -#define YY_SIZE_MAX 0xffffffffU -#endif - if (newsize && YY_SIZE_MAX / newsize < sizeof *newss) - goto bail; - newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) : - (short *)malloc(newsize * sizeof *newss); /* overflow check above */ - if (newss == NULL) - goto bail; - yyss = newss; - yyssp = newss + sslen; - if (newsize && YY_SIZE_MAX / newsize < sizeof *newvs) - goto bail; - newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) : - (YYSTYPE *)malloc(newsize * sizeof *newvs); /* overflow check above */ - if (newvs == NULL) - goto bail; - yyvs = newvs; - yyvsp = newvs + sslen; - yystacksize = newsize; - yysslim = yyss + newsize - 1; - return 0; -bail: - if (yyss) - free(yyss); - if (yyvs) - free(yyvs); - yyss = yyssp = NULL; - yyvs = yyvsp = NULL; - yystacksize = 0; - return -1; -} - -#define YYABORT goto yyabort -#define YYREJECT goto yyabort -#define YYACCEPT goto yyaccept -#define YYERROR goto yyerrlab -int -yyparse(void) -{ - int yym, yyn, yystate; -#if YYDEBUG - const char *yys; - - if ((yys = getenv("YYDEBUG"))) - { - yyn = *yys; - if (yyn >= '0' && yyn <= '9') - yydebug = yyn - '0'; - } -#endif /* YYDEBUG */ - - yynerrs = 0; - yyerrflag = 0; - yychar = (-1); - - if (yyss == NULL && yygrowstack()) goto yyoverflow; - yyssp = yyss; - yyvsp = yyvs; - *yyssp = yystate = 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 (yyssp >= yysslim && yygrowstack()) - { - goto yyoverflow; - } - *++yyssp = yystate = yytable[yyn]; - *++yyvsp = yylval; - yychar = (-1); - 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; -#if defined(__GNUC__) - goto yynewerror; -#endif -yynewerror: - yyerror("syntax error"); -#if defined(__GNUC__) - goto yyerrlab; -#endif -yyerrlab: - ++yynerrs; -yyinrecovery: - if (yyerrflag < 3) - { - yyerrflag = 3; - for (;;) - { - if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, error recovery shifting\ - to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); -#endif - if (yyssp >= yysslim && yygrowstack()) - { - goto yyoverflow; - } - *++yyssp = yystate = yytable[yyn]; - *++yyvsp = yylval; - goto yyloop; - } - else - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: error recovery discarding state %d\n", - YYPREFIX, *yyssp); -#endif - if (yyssp <= yyss) goto yyabort; - --yyssp; - --yyvsp; - } - } - } - 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 = (-1); - 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 = yyvsp[1-yym]; - else - memset(&yyval, 0, sizeof yyval); - switch (yyn) - { -case 13: -#line 180 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("\nP(server:)\n")); - } -break; -case 200: -#line 269 "/usr/src/usr.sbin/unbound/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 210: -#line 286 "/usr/src/usr.sbin/unbound/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 219: -#line 303 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - struct config_view* s; - OUTYY(("\nP(view:)\n")); - s = (struct config_view*)calloc(1, sizeof(struct config_view)); - if(s) { - s->next = cfg_parser->cfg->views; - if(s->next && !s->next->name) - yyerror("view without name"); - cfg_parser->cfg->views = s; - } else - yyerror("out of memory"); - } -break; -case 229: -#line 322 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - struct config_auth* s; - OUTYY(("\nP(auth_zone:)\n")); - s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); - if(s) { - s->next = cfg_parser->cfg->auths; - cfg_parser->cfg->auths = s; - /* defaults for auth zone */ - s->for_downstream = 1; - s->for_upstream = 1; - s->fallback_enabled = 0; - } else - yyerror("out of memory"); - } -break; -case 240: -#line 344 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_num_threads:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->num_threads = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 241: -#line 353 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_verbosity:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->verbosity = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 242: -#line 362 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_statistics_interval:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "") == 0 || strcmp(yyvsp[0].str, "0") == 0) - cfg_parser->cfg->stat_interval = 0; - else if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else cfg_parser->cfg->stat_interval = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 243: -#line 373 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_statistics_cumulative:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stat_cumulative = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 244: -#line 382 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_extended_statistics:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stat_extended = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 245: -#line 391 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_shm_enable:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->shm_enable = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 246: -#line 400 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_shm_key:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "") == 0 || strcmp(yyvsp[0].str, "0") == 0) - cfg_parser->cfg->shm_key = 0; - else if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else cfg_parser->cfg->shm_key = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 247: -#line 411 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_port:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("port number expected"); - else cfg_parser->cfg->port = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 248: -#line 420 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef CLIENT_SUBNET - OUTYY(("P(server_send_client_subnet:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, yyvsp[0].str)) - fatal_exit("out of memory adding client-subnet"); - #else - OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - #endif - } -break; -case 249: -#line 431 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef CLIENT_SUBNET - OUTYY(("P(server_client_subnet_zone:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone, - yyvsp[0].str)) - fatal_exit("out of memory adding client-subnet-zone"); - #else - OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - #endif - } -break; -case 250: -#line 444 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef CLIENT_SUBNET - OUTYY(("P(server_client_subnet_always_forward:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else - cfg_parser->cfg->client_subnet_always_forward = - (strcmp(yyvsp[0].str, "yes")==0); - #else - OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - #endif - free(yyvsp[0].str); - } -break; -case 251: -#line 459 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef CLIENT_SUBNET - OUTYY(("P(client_subnet_opcode:%s)\n", yyvsp[0].str)); - OUTYY(("P(Deprecated option, ignoring)\n")); - #else - OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - #endif - free(yyvsp[0].str); - } -break; -case 252: -#line 470 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef CLIENT_SUBNET - OUTYY(("P(max_client_subnet_ipv4:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("IPv4 subnet length expected"); - else if (atoi(yyvsp[0].str) > 32) - cfg_parser->cfg->max_client_subnet_ipv4 = 32; - else if (atoi(yyvsp[0].str) < 0) - cfg_parser->cfg->max_client_subnet_ipv4 = 0; - else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi(yyvsp[0].str); - #else - OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - #endif - free(yyvsp[0].str); - } -break; -case 253: -#line 487 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef CLIENT_SUBNET - OUTYY(("P(max_client_subnet_ipv6:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("Ipv6 subnet length expected"); - else if (atoi(yyvsp[0].str) > 128) - cfg_parser->cfg->max_client_subnet_ipv6 = 128; - else if (atoi(yyvsp[0].str) < 0) - cfg_parser->cfg->max_client_subnet_ipv6 = 0; - else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi(yyvsp[0].str); - #else - OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - #endif - free(yyvsp[0].str); - } -break; -case 254: -#line 504 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef CLIENT_SUBNET - OUTYY(("P(min_client_subnet_ipv4:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("IPv4 subnet length expected"); - else if (atoi(yyvsp[0].str) > 32) - cfg_parser->cfg->min_client_subnet_ipv4 = 32; - else if (atoi(yyvsp[0].str) < 0) - cfg_parser->cfg->min_client_subnet_ipv4 = 0; - else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi(yyvsp[0].str); - #else - OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - #endif - free(yyvsp[0].str); - } -break; -case 255: -#line 521 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef CLIENT_SUBNET - OUTYY(("P(min_client_subnet_ipv6:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("Ipv6 subnet length expected"); - else if (atoi(yyvsp[0].str) > 128) - cfg_parser->cfg->min_client_subnet_ipv6 = 128; - else if (atoi(yyvsp[0].str) < 0) - cfg_parser->cfg->min_client_subnet_ipv6 = 0; - else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi(yyvsp[0].str); - #else - OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - #endif - free(yyvsp[0].str); - } -break; -case 256: -#line 538 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef CLIENT_SUBNET - OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("IPv4 ECS tree size expected"); - else if (atoi(yyvsp[0].str) < 0) - cfg_parser->cfg->max_ecs_tree_size_ipv4 = 0; - else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi(yyvsp[0].str); - #else - OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - #endif - free(yyvsp[0].str); - } -break; -case 257: -#line 553 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef CLIENT_SUBNET - OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("IPv6 ECS tree size expected"); - else if (atoi(yyvsp[0].str) < 0) - cfg_parser->cfg->max_ecs_tree_size_ipv6 = 0; - else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi(yyvsp[0].str); - #else - OUTYY(("P(Compiled without edns subnet option, ignoring)\n")); - #endif - free(yyvsp[0].str); - } -break; -case 258: -#line 568 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_interface:%s)\n", yyvsp[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++] = yyvsp[0].str; - } -break; -case 259: -#line 581 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_outgoing_interface:%s)\n", yyvsp[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++] = yyvsp[0].str; - } -break; -case 260: -#line 596 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_outgoing_range:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else cfg_parser->cfg->outgoing_num_ports = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 261: -#line 605 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_outgoing_port_permit:%s)\n", yyvsp[0].str)); - if(!cfg_mark_ports(yyvsp[0].str, 1, - cfg_parser->cfg->outgoing_avail_ports, 65536)) - yyerror("port number or range (\"low-high\") expected"); - free(yyvsp[0].str); - } -break; -case 262: -#line 614 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_outgoing_port_avoid:%s)\n", yyvsp[0].str)); - if(!cfg_mark_ports(yyvsp[0].str, 0, - cfg_parser->cfg->outgoing_avail_ports, 65536)) - yyerror("port number or range (\"low-high\") expected"); - free(yyvsp[0].str); - } -break; -case 263: -#line 623 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_outgoing_num_tcp:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->outgoing_num_tcp = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 264: -#line 632 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_incoming_num_tcp:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->incoming_num_tcp = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 265: -#line 641 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_interface_automatic:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->if_automatic = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 266: -#line 650 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_do_ip4:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->do_ip4 = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 267: -#line 659 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_do_ip6:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->do_ip6 = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 268: -#line 668 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_do_udp:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->do_udp = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 269: -#line 677 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_do_tcp:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->do_tcp = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 270: -#line 686 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_prefer_ip6:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->prefer_ip6 = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 271: -#line 695 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_tcp_mss:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->tcp_mss = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 272: -#line 704 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_outgoing_tcp_mss:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->outgoing_tcp_mss = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 273: -#line 713 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_tcp_idle_timeout:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else if (atoi(yyvsp[0].str) > 120000) - cfg_parser->cfg->tcp_idle_timeout = 120000; - else if (atoi(yyvsp[0].str) < 1) - cfg_parser->cfg->tcp_idle_timeout = 1; - else cfg_parser->cfg->tcp_idle_timeout = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 274: -#line 726 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_tcp_keepalive:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->do_tcp_keepalive = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 275: -#line 735 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else if (atoi(yyvsp[0].str) > 6553500) - cfg_parser->cfg->tcp_keepalive_timeout = 6553500; - else if (atoi(yyvsp[0].str) < 1) - cfg_parser->cfg->tcp_keepalive_timeout = 0; - else cfg_parser->cfg->tcp_keepalive_timeout = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 276: -#line 748 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_tcp_upstream:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->tcp_upstream = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 277: -#line 757 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 278: -#line 766 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ssl_upstream:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ssl_upstream = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 279: -#line 775 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ssl_service_key:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->ssl_service_key); - cfg_parser->cfg->ssl_service_key = yyvsp[0].str; - } -break; -case 280: -#line 782 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ssl_service_pem:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->ssl_service_pem); - cfg_parser->cfg->ssl_service_pem = yyvsp[0].str; - } -break; -case 281: -#line 789 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ssl_port:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("port number expected"); - else cfg_parser->cfg->ssl_port = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 282: -#line 798 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_tls_cert_bundle:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->tls_cert_bundle); - cfg_parser->cfg->tls_cert_bundle = yyvsp[0].str; - } -break; -case 283: -#line 805 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_tls_win_cert:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->tls_win_cert = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 284: -#line 814 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_tls_additional_port:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, - yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 285: -#line 822 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_use_systemd:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->use_systemd = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 286: -#line 831 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_do_daemonize:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->do_daemonize = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 287: -#line 840 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_use_syslog:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->use_syslog = (strcmp(yyvsp[0].str, "yes")==0); -#if !defined(HAVE_SYSLOG_H) && !defined(UB_ON_WINDOWS) - if(strcmp(yyvsp[0].str, "yes") == 0) - yyerror("no syslog services are available. " - "(reconfigure and compile to add)"); -#endif - free(yyvsp[0].str); - } -break; -case 288: -#line 854 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_log_time_ascii:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->log_time_ascii = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 289: -#line 863 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_log_queries:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->log_queries = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 290: -#line 872 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_log_replies:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->log_replies = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 291: -#line 881 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_log_servfail:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->log_servfail = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 292: -#line 890 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_log_local_actions:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->log_local_actions = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 293: -#line 899 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_chroot:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->chrootdir); - cfg_parser->cfg->chrootdir = yyvsp[0].str; - } -break; -case 294: -#line 906 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_username:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->username); - cfg_parser->cfg->username = yyvsp[0].str; - } -break; -case 295: -#line 913 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_directory:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->directory); - cfg_parser->cfg->directory = yyvsp[0].str; - /* change there right away for includes relative to this */ - if(yyvsp[0].str[0]) { - char* d; -#ifdef UB_ON_WINDOWS - w_config_adjust_directory(cfg_parser->cfg); -#endif - d = cfg_parser->cfg->directory; - /* adjust directory if we have already chroot, - * like, we reread after sighup */ - if(cfg_parser->chroot && cfg_parser->chroot[0] && - strncmp(d, cfg_parser->chroot, strlen( - cfg_parser->chroot)) == 0) - d += strlen(cfg_parser->chroot); - if(d[0]) { - if(chdir(d)) - log_err("cannot chdir to directory: %s (%s)", - d, strerror(errno)); - } - } - } -break; -case 296: -#line 939 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_logfile:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->logfile); - cfg_parser->cfg->logfile = yyvsp[0].str; - cfg_parser->cfg->use_syslog = 0; - } -break; -case 297: -#line 947 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_pidfile:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->pidfile); - cfg_parser->cfg->pidfile = yyvsp[0].str; - } -break; -case 298: -#line 954 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_root_hints:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 299: -#line 961 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_dlv_anchor_file:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->dlv_anchor_file); - cfg_parser->cfg->dlv_anchor_file = yyvsp[0].str; - } -break; -case 300: -#line 968 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_dlv_anchor:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 301: -#line 975 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_auto_trust_anchor_file:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg-> - auto_trust_anchor_file_list, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 302: -#line 983 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_trust_anchor_file:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg-> - trust_anchor_file_list, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 303: -#line 991 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_trusted_keys_file:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg-> - trusted_keys_file_list, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 304: -#line 999 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_trust_anchor:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 305: -#line 1006 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_trust_anchor_signaling:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else - cfg_parser->cfg->trust_anchor_signaling = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 306: -#line 1017 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_root_key_sentinel:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else - cfg_parser->cfg->root_key_sentinel = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 307: -#line 1028 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_domain_insecure:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 308: -#line 1035 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_hide_identity:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->hide_identity = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 309: -#line 1044 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_hide_version:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->hide_version = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 310: -#line 1053 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_hide_trustanchor:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->hide_trustanchor = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 311: -#line 1062 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_identity:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->identity); - cfg_parser->cfg->identity = yyvsp[0].str; - } -break; -case 312: -#line 1069 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_version:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->version); - cfg_parser->cfg->version = yyvsp[0].str; - } -break; -case 313: -#line 1076 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_so_rcvbuf:%s)\n", yyvsp[0].str)); - if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->so_rcvbuf)) - yyerror("buffer size expected"); - free(yyvsp[0].str); - } -break; -case 314: -#line 1084 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_so_sndbuf:%s)\n", yyvsp[0].str)); - if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->so_sndbuf)) - yyerror("buffer size expected"); - free(yyvsp[0].str); - } -break; -case 315: -#line 1092 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_so_reuseport:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->so_reuseport = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 316: -#line 1102 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ip_transparent:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ip_transparent = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 317: -#line 1112 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ip_freebind:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ip_freebind = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 318: -#line 1122 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_edns_buffer_size:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else if (atoi(yyvsp[0].str) < 12) - yyerror("edns buffer size too small"); - else if (atoi(yyvsp[0].str) > 65535) - cfg_parser->cfg->edns_buffer_size = 65535; - else cfg_parser->cfg->edns_buffer_size = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 319: -#line 1135 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_msg_buffer_size:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else if (atoi(yyvsp[0].str) < 4096) - yyerror("message buffer size too small (use 4096)"); - else cfg_parser->cfg->msg_buffer_size = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 320: -#line 1146 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_msg_cache_size:%s)\n", yyvsp[0].str)); - if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->msg_cache_size)) - yyerror("memory size expected"); - free(yyvsp[0].str); - } -break; -case 321: -#line 1154 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_msg_cache_slabs:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->msg_cache_slabs = atoi(yyvsp[0].str); - if(!is_pow2(cfg_parser->cfg->msg_cache_slabs)) - yyerror("must be a power of 2"); - } - free(yyvsp[0].str); - } -break; -case 322: -#line 1167 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_num_queries_per_thread:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else cfg_parser->cfg->num_queries_per_thread = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 323: -#line 1176 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_jostle_timeout:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->jostle_time = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 324: -#line 1185 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_delay_close:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->delay_close = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 325: -#line 1194 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_unblock_lan_zones:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->unblock_lan_zones = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 326: -#line 1204 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_insecure_lan_zones:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->insecure_lan_zones = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 327: -#line 1214 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_rrset_cache_size:%s)\n", yyvsp[0].str)); - if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->rrset_cache_size)) - yyerror("memory size expected"); - free(yyvsp[0].str); - } -break; -case 328: -#line 1222 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_rrset_cache_slabs:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->rrset_cache_slabs = atoi(yyvsp[0].str); - if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs)) - yyerror("must be a power of 2"); - } - free(yyvsp[0].str); - } -break; -case 329: -#line 1235 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_infra_host_ttl:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->host_ttl = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 330: -#line 1244 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_infra_lame_ttl:%s)\n", yyvsp[0].str)); - verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " - "removed, use infra-host-ttl)", yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 331: -#line 1252 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_infra_cache_numhosts:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else cfg_parser->cfg->infra_cache_numhosts = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 332: -#line 1261 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_infra_cache_lame_size:%s)\n", yyvsp[0].str)); - verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " - "(option removed, use infra-cache-numhosts)", yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 333: -#line 1269 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_infra_cache_slabs:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->infra_cache_slabs = atoi(yyvsp[0].str); - if(!is_pow2(cfg_parser->cfg->infra_cache_slabs)) - yyerror("must be a power of 2"); - } - free(yyvsp[0].str); - } -break; -case 334: -#line 1282 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_infra_cache_min_rtt:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->infra_cache_min_rtt = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 335: -#line 1291 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_target_fetch_policy:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->target_fetch_policy); - cfg_parser->cfg->target_fetch_policy = yyvsp[0].str; - } -break; -case 336: -#line 1298 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_harden_short_bufsize:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_short_bufsize = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 337: -#line 1308 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_harden_large_queries:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_large_queries = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 338: -#line 1318 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_harden_glue:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_glue = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 339: -#line 1328 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_harden_dnssec_stripped:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_dnssec_stripped = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 340: -#line 1338 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_harden_below_nxdomain:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_below_nxdomain = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 341: -#line 1348 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_harden_referral_path:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_referral_path = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 342: -#line 1358 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_harden_algo_downgrade:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->harden_algo_downgrade = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 343: -#line 1368 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_use_caps_for_id:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->use_caps_bits_for_id = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 344: -#line 1378 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_caps_whitelist:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 345: -#line 1385 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_private_address:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 346: -#line 1392 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_private_domain:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 347: -#line 1399 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_prefetch:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->prefetch = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 348: -#line 1408 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_prefetch_key:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->prefetch_key = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 349: -#line 1417 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_deny_any:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->deny_any = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 350: -#line 1426 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_unwanted_reply_threshold:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->unwanted_threshold = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 351: -#line 1435 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_do_not_query_address:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 352: -#line 1442 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_do_not_query_localhost:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->donotquery_localhost = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 353: -#line 1452 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_access_control:%s %s)\n", yyvsp[-1].str, yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "deny")!=0 && strcmp(yyvsp[0].str, "refuse")!=0 && - strcmp(yyvsp[0].str, "deny_non_local")!=0 && - strcmp(yyvsp[0].str, "refuse_non_local")!=0 && - strcmp(yyvsp[0].str, "allow_setrd")!=0 && - strcmp(yyvsp[0].str, "allow")!=0 && - strcmp(yyvsp[0].str, "allow_snoop")!=0) { - yyerror("expected deny, refuse, deny_non_local, " - "refuse_non_local, allow, allow_setrd or " - "allow_snoop in access control action"); - } else { - if(!cfg_str2list_insert(&cfg_parser->cfg->acls, yyvsp[-1].str, yyvsp[0].str)) - fatal_exit("out of memory adding acl"); - } - } -break; -case 354: -#line 1470 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_module_conf:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->module_conf); - cfg_parser->cfg->module_conf = yyvsp[0].str; - } -break; -case 355: -#line 1477 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_val_override_date:%s)\n", yyvsp[0].str)); - if(*yyvsp[0].str == '\0' || strcmp(yyvsp[0].str, "0") == 0) { - cfg_parser->cfg->val_date_override = 0; - } else if(strlen(yyvsp[0].str) == 14) { - cfg_parser->cfg->val_date_override = - cfg_convert_timeval(yyvsp[0].str); - if(!cfg_parser->cfg->val_date_override) - yyerror("bad date/time specification"); - } else { - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - cfg_parser->cfg->val_date_override = atoi(yyvsp[0].str); - } - free(yyvsp[0].str); - } -break; -case 356: -#line 1495 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_val_sig_skew_min:%s)\n", yyvsp[0].str)); - if(*yyvsp[0].str == '\0' || strcmp(yyvsp[0].str, "0") == 0) { - cfg_parser->cfg->val_sig_skew_min = 0; - } else { - cfg_parser->cfg->val_sig_skew_min = atoi(yyvsp[0].str); - if(!cfg_parser->cfg->val_sig_skew_min) - yyerror("number expected"); - } - free(yyvsp[0].str); - } -break; -case 357: -#line 1508 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_val_sig_skew_max:%s)\n", yyvsp[0].str)); - if(*yyvsp[0].str == '\0' || strcmp(yyvsp[0].str, "0") == 0) { - cfg_parser->cfg->val_sig_skew_max = 0; - } else { - cfg_parser->cfg->val_sig_skew_max = atoi(yyvsp[0].str); - if(!cfg_parser->cfg->val_sig_skew_max) - yyerror("number expected"); - } - free(yyvsp[0].str); - } -break; -case 358: -#line 1521 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_cache_max_ttl:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->max_ttl = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 359: -#line 1530 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_cache_max_negative_ttl:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->max_negative_ttl = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 360: -#line 1539 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_cache_min_ttl:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->min_ttl = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 361: -#line 1548 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_bogus_ttl:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->bogus_ttl = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 362: -#line 1557 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_val_clean_additional:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->val_clean_additional = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 363: -#line 1567 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_val_permissive_mode:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->val_permissive_mode = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 364: -#line 1577 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_aggressive_nsec:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else - cfg_parser->cfg->aggressive_nsec = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 365: -#line 1588 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ignore_cd_flag:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ignore_cd = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 366: -#line 1597 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_serve_expired:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->serve_expired = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 367: -#line 1606 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_serve_expired_ttl:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->serve_expired_ttl = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 368: -#line 1615 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 369: -#line 1624 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_fake_dsa:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); -#ifdef HAVE_SSL - else fake_dsa = (strcmp(yyvsp[0].str, "yes")==0); - if(fake_dsa) - log_warn("test option fake_dsa is enabled"); -#endif - free(yyvsp[0].str); - } -break; -case 370: -#line 1637 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_fake_sha1:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); -#ifdef HAVE_SSL - else fake_sha1 = (strcmp(yyvsp[0].str, "yes")==0); - if(fake_sha1) - log_warn("test option fake_sha1 is enabled"); -#endif - free(yyvsp[0].str); - } -break; -case 371: -#line 1650 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_val_log_level:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->val_log_level = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 372: -#line 1659 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->val_nsec3_key_iterations); - cfg_parser->cfg->val_nsec3_key_iterations = yyvsp[0].str; - } -break; -case 373: -#line 1666 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_add_holddown:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->add_holddown = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 374: -#line 1675 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_del_holddown:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->del_holddown = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 375: -#line 1684 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_keep_missing:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->keep_missing = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 376: -#line 1693 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_permit_small_holddown:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->permit_small_holddown = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 377: -#line 1702 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_key_cache_size:%s)\n", yyvsp[0].str)); - if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->key_cache_size)) - yyerror("memory size expected"); - free(yyvsp[0].str); - } -break; -case 378: -#line 1710 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_key_cache_slabs:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->key_cache_slabs = atoi(yyvsp[0].str); - if(!is_pow2(cfg_parser->cfg->key_cache_slabs)) - yyerror("must be a power of 2"); - } - free(yyvsp[0].str); - } -break; -case 379: -#line 1723 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_neg_cache_size:%s)\n", yyvsp[0].str)); - if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->neg_cache_size)) - yyerror("memory size expected"); - free(yyvsp[0].str); - } -break; -case 380: -#line 1731 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_local_zone:%s %s)\n", yyvsp[-1].str, yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "static")!=0 && strcmp(yyvsp[0].str, "deny")!=0 && - strcmp(yyvsp[0].str, "refuse")!=0 && strcmp(yyvsp[0].str, "redirect")!=0 && - strcmp(yyvsp[0].str, "transparent")!=0 && strcmp(yyvsp[0].str, "nodefault")!=0 - && strcmp(yyvsp[0].str, "typetransparent")!=0 - && strcmp(yyvsp[0].str, "always_transparent")!=0 - && strcmp(yyvsp[0].str, "always_refuse")!=0 - && strcmp(yyvsp[0].str, "always_nxdomain")!=0 - && strcmp(yyvsp[0].str, "noview")!=0 - && strcmp(yyvsp[0].str, "inform")!=0 && strcmp(yyvsp[0].str, "inform_deny")!=0) - yyerror("local-zone type: expected static, deny, " - "refuse, redirect, transparent, " - "typetransparent, inform, inform_deny, " - "always_transparent, always_refuse, " - "always_nxdomain, noview or nodefault"); - else if(strcmp(yyvsp[0].str, "nodefault")==0) { - if(!cfg_strlist_insert(&cfg_parser->cfg-> - local_zones_nodefault, yyvsp[-1].str)) - fatal_exit("out of memory adding local-zone"); - free(yyvsp[0].str); - } else { - if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones, - yyvsp[-1].str, yyvsp[0].str)) - fatal_exit("out of memory adding local-zone"); - } - } -break; -case 381: -#line 1760 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_local_data:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, yyvsp[0].str)) - fatal_exit("out of memory adding local-data"); - } -break; -case 382: -#line 1767 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - char* ptr; - OUTYY(("P(server_local_data_ptr:%s)\n", yyvsp[0].str)); - ptr = cfg_ptr_reverse(yyvsp[0].str); - free(yyvsp[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 383: -#line 1782 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_minimal_responses:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->minimal_responses = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 384: -#line 1792 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_rrset_roundrobin:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->rrset_roundrobin = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 385: -#line 1802 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_unknown_server_time_limit:%s)\n", yyvsp[0].str)); - cfg_parser->cfg->unknown_server_time_limit = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 386: -#line 1809 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_max_udp_size:%s)\n", yyvsp[0].str)); - cfg_parser->cfg->max_udp_size = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 387: -#line 1816 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dns64_prefix:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->dns64_prefix); - cfg_parser->cfg->dns64_prefix = yyvsp[0].str; - } -break; -case 388: -#line 1823 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_dns64_synthall:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dns64_synthall = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 389: -#line 1832 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dns64_ignore_aaaa:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, - yyvsp[0].str)) - fatal_exit("out of memory adding dns64-ignore-aaaa"); - } -break; -case 390: -#line 1840 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - char* p, *s = yyvsp[0].str; - OUTYY(("P(server_define_tag:%s)\n", yyvsp[0].str)); - while((p=strsep(&s, " \t\n")) != NULL) { - if(*p) { - if(!config_add_tag(cfg_parser->cfg, p)) - yyerror("could not define-tag, " - "out of memory"); - } - } - free(yyvsp[0].str); - } -break; -case 391: -#line 1854 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - size_t len = 0; - uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, yyvsp[0].str, - &len); - free(yyvsp[0].str); - OUTYY(("P(server_local_zone_tag:%s)\n", yyvsp[-1].str)); - if(!bitlist) - yyerror("could not parse tags, (define-tag them first)"); - if(bitlist) { - if(!cfg_strbytelist_insert( - &cfg_parser->cfg->local_zone_tags, - yyvsp[-1].str, bitlist, len)) { - yyerror("out of memory"); - free(yyvsp[-1].str); - } - } - } -break; -case 392: -#line 1873 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - size_t len = 0; - uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, yyvsp[0].str, - &len); - free(yyvsp[0].str); - OUTYY(("P(server_access_control_tag:%s)\n", yyvsp[-1].str)); - if(!bitlist) - yyerror("could not parse tags, (define-tag them first)"); - if(bitlist) { - if(!cfg_strbytelist_insert( - &cfg_parser->cfg->acl_tags, - yyvsp[-1].str, bitlist, len)) { - yyerror("out of memory"); - free(yyvsp[-1].str); - } - } - } -break; -case 393: -#line 1892 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str)); - if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, - yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str)) { - yyerror("out of memory"); - free(yyvsp[-2].str); - free(yyvsp[-1].str); - free(yyvsp[0].str); - } - } -break; -case 394: -#line 1904 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str)); - if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, - yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str)) { - yyerror("out of memory"); - free(yyvsp[-2].str); - free(yyvsp[-1].str); - free(yyvsp[0].str); - } - } -break; -case 395: -#line 1916 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_local_zone_override:%s %s %s)\n", yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str)); - if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, - yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str)) { - yyerror("out of memory"); - free(yyvsp[-2].str); - free(yyvsp[-1].str); - free(yyvsp[0].str); - } - } -break; -case 396: -#line 1928 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_access_control_view:%s %s)\n", yyvsp[-1].str, yyvsp[0].str)); - if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, - yyvsp[-1].str, yyvsp[0].str)) { - yyerror("out of memory"); - free(yyvsp[-1].str); - free(yyvsp[0].str); - } - } -break; -case 397: -#line 1939 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - size_t len = 0; - uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, yyvsp[0].str, - &len); - free(yyvsp[0].str); - OUTYY(("P(response_ip_tag:%s)\n", yyvsp[-1].str)); - if(!bitlist) - yyerror("could not parse tags, (define-tag them first)"); - if(bitlist) { - if(!cfg_strbytelist_insert( - &cfg_parser->cfg->respip_tags, - yyvsp[-1].str, bitlist, len)) { - yyerror("out of memory"); - free(yyvsp[-1].str); - } - } - } -break; -case 398: -#line 1958 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ip_ratelimit:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->ip_ratelimit = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 399: -#line 1968 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ratelimit:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->ratelimit = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 400: -#line 1977 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ip_ratelimit_size:%s)\n", yyvsp[0].str)); - if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->ip_ratelimit_size)) - yyerror("memory size expected"); - free(yyvsp[0].str); - } -break; -case 401: -#line 1985 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ratelimit_size:%s)\n", yyvsp[0].str)); - if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->ratelimit_size)) - yyerror("memory size expected"); - free(yyvsp[0].str); - } -break; -case 402: -#line 1993 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->ip_ratelimit_slabs = atoi(yyvsp[0].str); - if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs)) - yyerror("must be a power of 2"); - } - free(yyvsp[0].str); - } -break; -case 403: -#line 2006 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ratelimit_slabs:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->ratelimit_slabs = atoi(yyvsp[0].str); - if(!is_pow2(cfg_parser->cfg->ratelimit_slabs)) - yyerror("must be a power of 2"); - } - free(yyvsp[0].str); - } -break; -case 404: -#line 2019 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", yyvsp[-1].str, yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) { - yyerror("number expected"); - } else { - if(!cfg_str2list_insert(&cfg_parser->cfg-> - ratelimit_for_domain, yyvsp[-1].str, yyvsp[0].str)) - fatal_exit("out of memory adding " - "ratelimit-for-domain"); - } - } -break; -case 405: -#line 2032 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", yyvsp[-1].str, yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) { - yyerror("number expected"); - } else { - if(!cfg_str2list_insert(&cfg_parser->cfg-> - ratelimit_below_domain, yyvsp[-1].str, yyvsp[0].str)) - fatal_exit("out of memory adding " - "ratelimit-below-domain"); - } - } -break; -case 406: -#line 2045 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ip_ratelimit_factor:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->ip_ratelimit_factor = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 407: -#line 2054 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_ratelimit_factor:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->ratelimit_factor = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 408: -#line 2063 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); - free(yyvsp[0].str); - } -break; -case 409: -#line 2069 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_fast_server_num:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) <= 0) - yyerror("number expected"); - else cfg_parser->cfg->fast_server_num = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 410: -#line 2078 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_fast_server_permil:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->fast_server_permil = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 411: -#line 2087 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_qname_minimisation:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->qname_minimisation = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 412: -#line 2097 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_qname_minimisation_strict:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->qname_minimisation_strict = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 413: -#line 2107 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_enabled:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ipsecmod_enabled = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - #else - OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - #endif - } -break; -case 414: -#line 2120 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - #else - OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - #endif - } -break; -case 415: -#line 2133 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_hook:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->ipsecmod_hook); - cfg_parser->cfg->ipsecmod_hook = yyvsp[0].str; - #else - OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - #endif - } -break; -case 416: -#line 2144 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0 && strcmp(yyvsp[0].str, "0") != 0) - yyerror("number expected"); - else cfg_parser->cfg->ipsecmod_max_ttl = atoi(yyvsp[0].str); - free(yyvsp[0].str); - #else - OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - #endif - } -break; -case 417: -#line 2157 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_whitelist:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, yyvsp[0].str)) - yyerror("out of memory"); - #else - OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - #endif - } -break; -case 418: -#line 2168 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef USE_IPSECMOD - OUTYY(("P(server_ipsecmod_strict:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->ipsecmod_strict = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - #else - OUTYY(("P(Compiled without IPsec module, ignoring)\n")); - #endif - } -break; -case 419: -#line 2181 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(name:%s)\n", yyvsp[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 = yyvsp[0].str; - } -break; -case 420: -#line 2191 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(stub-host:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 421: -#line 2198 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(stub-addr:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 422: -#line 2205 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(stub-first:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stubs->isfirst=(strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 423: -#line 2214 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(stub-no-cache:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stubs->no_cache=(strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 424: -#line 2223 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(stub-ssl-upstream:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stubs->ssl_upstream = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 425: -#line 2233 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(stub-prime:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->stubs->isprime = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 426: -#line 2243 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(name:%s)\n", yyvsp[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 = yyvsp[0].str; - } -break; -case 427: -#line 2253 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(forward-host:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 428: -#line 2260 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(forward-addr:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 429: -#line 2267 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(forward-first:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->forwards->isfirst=(strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 430: -#line 2276 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(forward-no-cache:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->forwards->no_cache=(strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 431: -#line 2285 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(forward-ssl-upstream:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->forwards->ssl_upstream = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 432: -#line 2295 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(name:%s)\n", yyvsp[0].str)); - if(cfg_parser->cfg->auths->name) - yyerror("auth name override, there must be one name " - "for one auth-zone"); - free(cfg_parser->cfg->auths->name); - cfg_parser->cfg->auths->name = yyvsp[0].str; - } -break; -case 433: -#line 2305 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(zonefile:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->auths->zonefile); - cfg_parser->cfg->auths->zonefile = yyvsp[0].str; - } -break; -case 434: -#line 2312 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(master:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 435: -#line 2319 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(url:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 436: -#line 2326 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(allow-notify:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, - yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 437: -#line 2334 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(for-downstream:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->auths->for_downstream = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 438: -#line 2344 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(for-upstream:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->auths->for_upstream = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 439: -#line 2354 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(fallback-enabled:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->auths->fallback_enabled = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 440: -#line 2364 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(name:%s)\n", yyvsp[0].str)); - if(cfg_parser->cfg->views->name) - yyerror("view name override, there must be one " - "name for one view"); - free(cfg_parser->cfg->views->name); - cfg_parser->cfg->views->name = yyvsp[0].str; - } -break; -case 441: -#line 2374 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(view_local_zone:%s %s)\n", yyvsp[-1].str, yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "static")!=0 && strcmp(yyvsp[0].str, "deny")!=0 && - strcmp(yyvsp[0].str, "refuse")!=0 && strcmp(yyvsp[0].str, "redirect")!=0 && - strcmp(yyvsp[0].str, "transparent")!=0 && strcmp(yyvsp[0].str, "nodefault")!=0 - && strcmp(yyvsp[0].str, "typetransparent")!=0 - && strcmp(yyvsp[0].str, "always_transparent")!=0 - && strcmp(yyvsp[0].str, "always_refuse")!=0 - && strcmp(yyvsp[0].str, "always_nxdomain")!=0 - && strcmp(yyvsp[0].str, "noview")!=0 - && strcmp(yyvsp[0].str, "inform")!=0 && strcmp(yyvsp[0].str, "inform_deny")!=0) - yyerror("local-zone type: expected static, deny, " - "refuse, redirect, transparent, " - "typetransparent, inform, inform_deny, " - "always_transparent, always_refuse, " - "always_nxdomain, noview or nodefault"); - else if(strcmp(yyvsp[0].str, "nodefault")==0) { - if(!cfg_strlist_insert(&cfg_parser->cfg->views-> - local_zones_nodefault, yyvsp[-1].str)) - fatal_exit("out of memory adding local-zone"); - free(yyvsp[0].str); - } else { - if(!cfg_str2list_insert( - &cfg_parser->cfg->views->local_zones, - yyvsp[-1].str, yyvsp[0].str)) - fatal_exit("out of memory adding local-zone"); - } - } -break; -case 442: -#line 2404 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(view_response_ip:%s %s)\n", yyvsp[-1].str, yyvsp[0].str)); - validate_respip_action(yyvsp[0].str); - if(!cfg_str2list_insert( - &cfg_parser->cfg->views->respip_actions, yyvsp[-1].str, yyvsp[0].str)) - fatal_exit("out of memory adding per-view " - "response-ip action"); - } -break; -case 443: -#line 2414 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(view_response_ip_data:%s)\n", yyvsp[-1].str)); - if(!cfg_str2list_insert( - &cfg_parser->cfg->views->respip_data, yyvsp[-1].str, yyvsp[0].str)) - fatal_exit("out of memory adding response-ip-data"); - } -break; -case 444: -#line 2422 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(view_local_data:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, yyvsp[0].str)) { - fatal_exit("out of memory adding local-data"); - free(yyvsp[0].str); - } - } -break; -case 445: -#line 2431 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - char* ptr; - OUTYY(("P(view_local_data_ptr:%s)\n", yyvsp[0].str)); - ptr = cfg_ptr_reverse(yyvsp[0].str); - free(yyvsp[0].str); - if(ptr) { - if(!cfg_strlist_insert(&cfg_parser->cfg->views-> - local_data, ptr)) - fatal_exit("out of memory adding local-data"); - } else { - yyerror("local-data-ptr could not be reversed"); - } - } -break; -case 446: -#line 2446 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(view-first:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->views->isfirst=(strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 447: -#line 2455 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("\nP(remote-control:)\n")); - } -break; -case 458: -#line 2466 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(control_enable:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->remote_control_enable = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 459: -#line 2476 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(control_port:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("control port number expected"); - else cfg_parser->cfg->control_port = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 460: -#line 2485 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(control_interface:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, yyvsp[0].str)) - yyerror("out of memory"); - } -break; -case 461: -#line 2492 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(control_use_cert:%s)\n", yyvsp[0].str)); - cfg_parser->cfg->control_use_cert = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 462: -#line 2499 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(rc_server_key_file:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->server_key_file); - cfg_parser->cfg->server_key_file = yyvsp[0].str; - } -break; -case 463: -#line 2506 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(rc_server_cert_file:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->server_cert_file); - cfg_parser->cfg->server_cert_file = yyvsp[0].str; - } -break; -case 464: -#line 2513 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(rc_control_key_file:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->control_key_file); - cfg_parser->cfg->control_key_file = yyvsp[0].str; - } -break; -case 465: -#line 2520 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(rc_control_cert_file:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->control_cert_file); - cfg_parser->cfg->control_cert_file = yyvsp[0].str; - } -break; -case 466: -#line 2527 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("\nP(dnstap:)\n")); - } -break; -case 481: -#line 2544 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dt_dnstap_enable:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap = (strcmp(yyvsp[0].str, "yes")==0); - } -break; -case 482: -#line 2552 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dt_dnstap_socket_path:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->dnstap_socket_path); - cfg_parser->cfg->dnstap_socket_path = yyvsp[0].str; - } -break; -case 483: -#line 2559 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dt_dnstap_send_identity:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_send_identity = (strcmp(yyvsp[0].str, "yes")==0); - } -break; -case 484: -#line 2567 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dt_dnstap_send_version:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_send_version = (strcmp(yyvsp[0].str, "yes")==0); - } -break; -case 485: -#line 2575 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dt_dnstap_identity:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->dnstap_identity); - cfg_parser->cfg->dnstap_identity = yyvsp[0].str; - } -break; -case 486: -#line 2582 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dt_dnstap_version:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->dnstap_version); - cfg_parser->cfg->dnstap_version = yyvsp[0].str; - } -break; -case 487: -#line 2589 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_resolver_query_messages = - (strcmp(yyvsp[0].str, "yes")==0); - } -break; -case 488: -#line 2598 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_resolver_response_messages = - (strcmp(yyvsp[0].str, "yes")==0); - } -break; -case 489: -#line 2607 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_client_query_messages = - (strcmp(yyvsp[0].str, "yes")==0); - } -break; -case 490: -#line 2616 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_client_response_messages = - (strcmp(yyvsp[0].str, "yes")==0); - } -break; -case 491: -#line 2625 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_forwarder_query_messages = - (strcmp(yyvsp[0].str, "yes")==0); - } -break; -case 492: -#line 2634 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnstap_log_forwarder_response_messages = - (strcmp(yyvsp[0].str, "yes")==0); - } -break; -case 493: -#line 2643 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("\nP(python:)\n")); - } -break; -case 497: -#line 2652 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(python-script:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->python_script); - cfg_parser->cfg->python_script = yyvsp[0].str; - } -break; -case 498: -#line 2658 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(disable_dnssec_lame_check:%s)\n", yyvsp[0].str)); - if (strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->disable_dnssec_lame_check = - (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 499: -#line 2668 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_log_identity:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->log_identity); - cfg_parser->cfg->log_identity = yyvsp[0].str; - } -break; -case 500: -#line 2675 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_response_ip:%s %s)\n", yyvsp[-1].str, yyvsp[0].str)); - validate_respip_action(yyvsp[0].str); - if(!cfg_str2list_insert(&cfg_parser->cfg->respip_actions, - yyvsp[-1].str, yyvsp[0].str)) - fatal_exit("out of memory adding response-ip"); - } -break; -case 501: -#line 2684 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_response_ip_data:%s)\n", yyvsp[-1].str)); - if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, - yyvsp[-1].str, yyvsp[0].str)) - fatal_exit("out of memory adding response-ip-data"); - } -break; -case 502: -#line 2692 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("\nP(dnscrypt:)\n")); - OUTYY(("\nP(dnscrypt:)\n")); - } -break; -case 515: -#line 2709 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", yyvsp[0].str)); - if(strcmp(yyvsp[0].str, "yes") != 0 && strcmp(yyvsp[0].str, "no") != 0) - yyerror("expected yes or no."); - else cfg_parser->cfg->dnscrypt = (strcmp(yyvsp[0].str, "yes")==0); - free(yyvsp[0].str); - } -break; -case 516: -#line 2719 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dnsc_dnscrypt_port:%s)\n", yyvsp[0].str)); - - if(atoi(yyvsp[0].str) == 0) - yyerror("port number expected"); - else cfg_parser->cfg->dnscrypt_port = atoi(yyvsp[0].str); - free(yyvsp[0].str); - } -break; -case 517: -#line 2729 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->dnscrypt_provider); - cfg_parser->cfg->dnscrypt_provider = yyvsp[0].str; - } -break; -case 518: -#line 2736 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", yyvsp[0].str)); - if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, yyvsp[0].str)) - log_warn("dnscrypt-provider-cert %s is a duplicate", yyvsp[0].str); - if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, yyvsp[0].str)) - fatal_exit("out of memory adding dnscrypt-provider-cert"); - } -break; -case 519: -#line 2745 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", yyvsp[0].str)); - if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, yyvsp[0].str)) - fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); - } -break; -case 520: -#line 2752 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", yyvsp[0].str)); - if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, yyvsp[0].str)) - log_warn("dnscrypt-secret-key: %s is a duplicate", yyvsp[0].str); - if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, yyvsp[0].str)) - fatal_exit("out of memory adding dnscrypt-secret-key"); - } -break; -case 521: -#line 2761 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", yyvsp[0].str)); - if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) - yyerror("memory size expected"); - free(yyvsp[0].str); - } -break; -case 522: -#line 2769 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi(yyvsp[0].str); - if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs)) - yyerror("must be a power of 2"); - } - free(yyvsp[0].str); - } -break; -case 523: -#line 2782 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", yyvsp[0].str)); - if(!cfg_parse_memsize(yyvsp[0].str, &cfg_parser->cfg->dnscrypt_nonce_cache_size)) - yyerror("memory size expected"); - free(yyvsp[0].str); - } -break; -case 524: -#line 2790 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("number expected"); - else { - cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi(yyvsp[0].str); - if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs)) - yyerror("must be a power of 2"); - } - free(yyvsp[0].str); - } -break; -case 525: -#line 2803 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("\nP(cachedb:)\n")); - } -break; -case 533: -#line 2813 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef USE_CACHEDB - OUTYY(("P(backend:%s)\n", yyvsp[0].str)); - if(cfg_parser->cfg->cachedb_backend) - yyerror("cachedb backend override, there must be one " - "backend"); - free(cfg_parser->cfg->cachedb_backend); - cfg_parser->cfg->cachedb_backend = yyvsp[0].str; - #else - OUTYY(("P(Compiled without cachedb, ignoring)\n")); - #endif - } -break; -case 534: -#line 2827 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #ifdef USE_CACHEDB - OUTYY(("P(secret-seed:%s)\n", yyvsp[0].str)); - if(cfg_parser->cfg->cachedb_secret) - yyerror("cachedb secret-seed override, there must be " - "only one secret"); - free(cfg_parser->cfg->cachedb_secret); - cfg_parser->cfg->cachedb_secret = yyvsp[0].str; - #else - OUTYY(("P(Compiled without cachedb, ignoring)\n")); - free(yyvsp[0].str); - #endif - } -break; -case 535: -#line 2842 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #if defined(USE_CACHEDB) && defined(USE_REDIS) - OUTYY(("P(redis_server_host:%s)\n", yyvsp[0].str)); - free(cfg_parser->cfg->redis_server_host); - cfg_parser->cfg->redis_server_host = yyvsp[0].str; - #else - OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); - free(yyvsp[0].str); - #endif - } -break; -case 536: -#line 2854 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #if defined(USE_CACHEDB) && defined(USE_REDIS) - int port; - OUTYY(("P(redis_server_port:%s)\n", yyvsp[0].str)); - port = atoi(yyvsp[0].str); - if(port == 0 || port < 0 || port > 65535) - yyerror("valid redis server port number expected"); - else cfg_parser->cfg->redis_server_port = port; - #else - OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); - #endif - free(yyvsp[0].str); - } -break; -case 537: -#line 2869 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - #if defined(USE_CACHEDB) && defined(USE_REDIS) - OUTYY(("P(redis_timeout:%s)\n", yyvsp[0].str)); - if(atoi(yyvsp[0].str) == 0) - yyerror("redis timeout value expected"); - else cfg_parser->cfg->redis_timeout = atoi(yyvsp[0].str); - #else - OUTYY(("P(Compiled without cachedb or redis, ignoring)\n")); - #endif - free(yyvsp[0].str); - } -break; -case 538: -#line 2882 "/usr/src/usr.sbin/unbound/util/configparser.y" -{ - OUTYY(("P(server_tcp_connection_limit:%s %s)\n", yyvsp[-1].str, yyvsp[0].str)); - if (atoi(yyvsp[0].str) < 0) - yyerror("positive number expected"); - else { - if(!cfg_str2list_insert(&cfg_parser->cfg->tcp_connection_limits, yyvsp[-1].str, yyvsp[0].str)) - fatal_exit("out of memory adding tcp connection limit"); - } - } -break; -#line 4572 "util/configparser.c" - } - yyssp -= yym; - yystate = *yyssp; - yyvsp -= 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; - *++yyssp = YYFINAL; - *++yyvsp = 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, *yyssp, yystate); -#endif - if (yyssp >= yysslim && yygrowstack()) - { - goto yyoverflow; - } - *++yyssp = yystate; - *++yyvsp = yyval; - goto yyloop; -yyoverflow: - yyerror("yacc stack overflow"); -yyabort: - if (yyss) - free(yyss); - if (yyvs) - free(yyvs); - yyss = yyssp = NULL; - yyvs = yyvsp = NULL; - yystacksize = 0; - return (1); -yyaccept: - if (yyss) - free(yyss); - if (yyvs) - free(yyvs); - yyss = yyssp = NULL; - yyvs = yyvsp = NULL; - yystacksize = 0; - return (0); -} |