diff options
Diffstat (limited to 'util/configparser.c')
-rw-r--r-- | util/configparser.c | 3517 |
1 files changed, 1833 insertions, 1684 deletions
diff --git a/util/configparser.c b/util/configparser.c index fbb9b532bcd49..d9dcbf9a56b4b 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -273,156 +273,164 @@ extern int yydebug; VAR_STUB_SSL_UPSTREAM = 394, VAR_FORWARD_SSL_UPSTREAM = 395, VAR_TLS_CERT_BUNDLE = 396, - VAR_STUB_FIRST = 397, - VAR_MINIMAL_RESPONSES = 398, - VAR_RRSET_ROUNDROBIN = 399, - VAR_MAX_UDP_SIZE = 400, - VAR_DELAY_CLOSE = 401, - VAR_UNBLOCK_LAN_ZONES = 402, - VAR_INSECURE_LAN_ZONES = 403, - VAR_INFRA_CACHE_MIN_RTT = 404, - VAR_DNS64_PREFIX = 405, - VAR_DNS64_SYNTHALL = 406, - VAR_DNS64_IGNORE_AAAA = 407, - VAR_DNSTAP = 408, - VAR_DNSTAP_ENABLE = 409, - VAR_DNSTAP_SOCKET_PATH = 410, - VAR_DNSTAP_IP = 411, - VAR_DNSTAP_TLS = 412, - VAR_DNSTAP_TLS_SERVER_NAME = 413, - VAR_DNSTAP_TLS_CERT_BUNDLE = 414, - VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 415, - VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 416, - VAR_DNSTAP_SEND_IDENTITY = 417, - VAR_DNSTAP_SEND_VERSION = 418, - VAR_DNSTAP_BIDIRECTIONAL = 419, - VAR_DNSTAP_IDENTITY = 420, - VAR_DNSTAP_VERSION = 421, - VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 422, - VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 423, - VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 424, - VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 425, - VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 426, - VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 427, - VAR_RESPONSE_IP_TAG = 428, - VAR_RESPONSE_IP = 429, - VAR_RESPONSE_IP_DATA = 430, - VAR_HARDEN_ALGO_DOWNGRADE = 431, - VAR_IP_TRANSPARENT = 432, - VAR_IP_DSCP = 433, - VAR_DISABLE_DNSSEC_LAME_CHECK = 434, - VAR_IP_RATELIMIT = 435, - VAR_IP_RATELIMIT_SLABS = 436, - VAR_IP_RATELIMIT_SIZE = 437, - VAR_RATELIMIT = 438, - VAR_RATELIMIT_SLABS = 439, - VAR_RATELIMIT_SIZE = 440, - VAR_RATELIMIT_FOR_DOMAIN = 441, - VAR_RATELIMIT_BELOW_DOMAIN = 442, - VAR_IP_RATELIMIT_FACTOR = 443, - VAR_RATELIMIT_FACTOR = 444, - VAR_SEND_CLIENT_SUBNET = 445, - VAR_CLIENT_SUBNET_ZONE = 446, - VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 447, - VAR_CLIENT_SUBNET_OPCODE = 448, - VAR_MAX_CLIENT_SUBNET_IPV4 = 449, - VAR_MAX_CLIENT_SUBNET_IPV6 = 450, - VAR_MIN_CLIENT_SUBNET_IPV4 = 451, - VAR_MIN_CLIENT_SUBNET_IPV6 = 452, - VAR_MAX_ECS_TREE_SIZE_IPV4 = 453, - VAR_MAX_ECS_TREE_SIZE_IPV6 = 454, - VAR_CAPS_WHITELIST = 455, - VAR_CACHE_MAX_NEGATIVE_TTL = 456, - VAR_PERMIT_SMALL_HOLDDOWN = 457, - VAR_QNAME_MINIMISATION = 458, - VAR_QNAME_MINIMISATION_STRICT = 459, - VAR_IP_FREEBIND = 460, - VAR_DEFINE_TAG = 461, - VAR_LOCAL_ZONE_TAG = 462, - VAR_ACCESS_CONTROL_TAG = 463, - VAR_LOCAL_ZONE_OVERRIDE = 464, - VAR_ACCESS_CONTROL_TAG_ACTION = 465, - VAR_ACCESS_CONTROL_TAG_DATA = 466, - VAR_VIEW = 467, - VAR_ACCESS_CONTROL_VIEW = 468, - VAR_VIEW_FIRST = 469, - VAR_SERVE_EXPIRED = 470, - VAR_SERVE_EXPIRED_TTL = 471, - VAR_SERVE_EXPIRED_TTL_RESET = 472, - VAR_SERVE_EXPIRED_REPLY_TTL = 473, - VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 474, - VAR_FAKE_DSA = 475, - VAR_FAKE_SHA1 = 476, - VAR_LOG_IDENTITY = 477, - VAR_HIDE_TRUSTANCHOR = 478, - VAR_TRUST_ANCHOR_SIGNALING = 479, - VAR_AGGRESSIVE_NSEC = 480, - VAR_USE_SYSTEMD = 481, - VAR_SHM_ENABLE = 482, - VAR_SHM_KEY = 483, - VAR_ROOT_KEY_SENTINEL = 484, - VAR_DNSCRYPT = 485, - VAR_DNSCRYPT_ENABLE = 486, - VAR_DNSCRYPT_PORT = 487, - VAR_DNSCRYPT_PROVIDER = 488, - VAR_DNSCRYPT_SECRET_KEY = 489, - VAR_DNSCRYPT_PROVIDER_CERT = 490, - VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 491, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 492, - VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 493, - VAR_DNSCRYPT_NONCE_CACHE_SIZE = 494, - VAR_DNSCRYPT_NONCE_CACHE_SLABS = 495, - VAR_IPSECMOD_ENABLED = 496, - VAR_IPSECMOD_HOOK = 497, - VAR_IPSECMOD_IGNORE_BOGUS = 498, - VAR_IPSECMOD_MAX_TTL = 499, - VAR_IPSECMOD_WHITELIST = 500, - VAR_IPSECMOD_STRICT = 501, - VAR_CACHEDB = 502, - VAR_CACHEDB_BACKEND = 503, - VAR_CACHEDB_SECRETSEED = 504, - VAR_CACHEDB_REDISHOST = 505, - VAR_CACHEDB_REDISPORT = 506, - VAR_CACHEDB_REDISTIMEOUT = 507, - VAR_CACHEDB_REDISEXPIRERECORDS = 508, - VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 509, - VAR_FOR_UPSTREAM = 510, - VAR_AUTH_ZONE = 511, - VAR_ZONEFILE = 512, - VAR_MASTER = 513, - VAR_URL = 514, - VAR_FOR_DOWNSTREAM = 515, - VAR_FALLBACK_ENABLED = 516, - VAR_TLS_ADDITIONAL_PORT = 517, - VAR_LOW_RTT = 518, - VAR_LOW_RTT_PERMIL = 519, - VAR_FAST_SERVER_PERMIL = 520, - VAR_FAST_SERVER_NUM = 521, - VAR_ALLOW_NOTIFY = 522, - VAR_TLS_WIN_CERT = 523, - VAR_TCP_CONNECTION_LIMIT = 524, - VAR_FORWARD_NO_CACHE = 525, - VAR_STUB_NO_CACHE = 526, - VAR_LOG_SERVFAIL = 527, - VAR_DENY_ANY = 528, - VAR_UNKNOWN_SERVER_TIME_LIMIT = 529, - VAR_LOG_TAG_QUERYREPLY = 530, - VAR_STREAM_WAIT_SIZE = 531, - VAR_TLS_CIPHERS = 532, - VAR_TLS_CIPHERSUITES = 533, - VAR_TLS_USE_SNI = 534, - VAR_IPSET = 535, - VAR_IPSET_NAME_V4 = 536, - VAR_IPSET_NAME_V6 = 537, - VAR_TLS_SESSION_TICKET_KEYS = 538, - VAR_RPZ = 539, - VAR_TAGS = 540, - VAR_RPZ_ACTION_OVERRIDE = 541, - VAR_RPZ_CNAME_OVERRIDE = 542, - VAR_RPZ_LOG = 543, - VAR_RPZ_LOG_NAME = 544, - VAR_DYNLIB = 545, - VAR_DYNLIB_FILE = 546 + VAR_HTTPS_PORT = 397, + VAR_HTTP_ENDPOINT = 398, + VAR_HTTP_MAX_STREAMS = 399, + VAR_HTTP_QUERY_BUFFER_SIZE = 400, + VAR_HTTP_RESPONSE_BUFFER_SIZE = 401, + VAR_HTTP_NODELAY = 402, + VAR_STUB_FIRST = 403, + VAR_MINIMAL_RESPONSES = 404, + VAR_RRSET_ROUNDROBIN = 405, + VAR_MAX_UDP_SIZE = 406, + VAR_DELAY_CLOSE = 407, + VAR_UNBLOCK_LAN_ZONES = 408, + VAR_INSECURE_LAN_ZONES = 409, + VAR_INFRA_CACHE_MIN_RTT = 410, + VAR_DNS64_PREFIX = 411, + VAR_DNS64_SYNTHALL = 412, + VAR_DNS64_IGNORE_AAAA = 413, + VAR_DNSTAP = 414, + VAR_DNSTAP_ENABLE = 415, + VAR_DNSTAP_SOCKET_PATH = 416, + VAR_DNSTAP_IP = 417, + VAR_DNSTAP_TLS = 418, + VAR_DNSTAP_TLS_SERVER_NAME = 419, + VAR_DNSTAP_TLS_CERT_BUNDLE = 420, + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 421, + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 422, + VAR_DNSTAP_SEND_IDENTITY = 423, + VAR_DNSTAP_SEND_VERSION = 424, + VAR_DNSTAP_BIDIRECTIONAL = 425, + VAR_DNSTAP_IDENTITY = 426, + VAR_DNSTAP_VERSION = 427, + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 428, + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 429, + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 430, + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 431, + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 432, + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 433, + VAR_RESPONSE_IP_TAG = 434, + VAR_RESPONSE_IP = 435, + VAR_RESPONSE_IP_DATA = 436, + VAR_HARDEN_ALGO_DOWNGRADE = 437, + VAR_IP_TRANSPARENT = 438, + VAR_IP_DSCP = 439, + VAR_DISABLE_DNSSEC_LAME_CHECK = 440, + VAR_IP_RATELIMIT = 441, + VAR_IP_RATELIMIT_SLABS = 442, + VAR_IP_RATELIMIT_SIZE = 443, + VAR_RATELIMIT = 444, + VAR_RATELIMIT_SLABS = 445, + VAR_RATELIMIT_SIZE = 446, + VAR_RATELIMIT_FOR_DOMAIN = 447, + VAR_RATELIMIT_BELOW_DOMAIN = 448, + VAR_IP_RATELIMIT_FACTOR = 449, + VAR_RATELIMIT_FACTOR = 450, + VAR_SEND_CLIENT_SUBNET = 451, + VAR_CLIENT_SUBNET_ZONE = 452, + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 453, + VAR_CLIENT_SUBNET_OPCODE = 454, + VAR_MAX_CLIENT_SUBNET_IPV4 = 455, + VAR_MAX_CLIENT_SUBNET_IPV6 = 456, + VAR_MIN_CLIENT_SUBNET_IPV4 = 457, + VAR_MIN_CLIENT_SUBNET_IPV6 = 458, + VAR_MAX_ECS_TREE_SIZE_IPV4 = 459, + VAR_MAX_ECS_TREE_SIZE_IPV6 = 460, + VAR_CAPS_WHITELIST = 461, + VAR_CACHE_MAX_NEGATIVE_TTL = 462, + VAR_PERMIT_SMALL_HOLDDOWN = 463, + VAR_QNAME_MINIMISATION = 464, + VAR_QNAME_MINIMISATION_STRICT = 465, + VAR_IP_FREEBIND = 466, + VAR_DEFINE_TAG = 467, + VAR_LOCAL_ZONE_TAG = 468, + VAR_ACCESS_CONTROL_TAG = 469, + VAR_LOCAL_ZONE_OVERRIDE = 470, + VAR_ACCESS_CONTROL_TAG_ACTION = 471, + VAR_ACCESS_CONTROL_TAG_DATA = 472, + VAR_VIEW = 473, + VAR_ACCESS_CONTROL_VIEW = 474, + VAR_VIEW_FIRST = 475, + VAR_SERVE_EXPIRED = 476, + VAR_SERVE_EXPIRED_TTL = 477, + VAR_SERVE_EXPIRED_TTL_RESET = 478, + VAR_SERVE_EXPIRED_REPLY_TTL = 479, + VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 480, + VAR_FAKE_DSA = 481, + VAR_FAKE_SHA1 = 482, + VAR_LOG_IDENTITY = 483, + VAR_HIDE_TRUSTANCHOR = 484, + VAR_TRUST_ANCHOR_SIGNALING = 485, + VAR_AGGRESSIVE_NSEC = 486, + VAR_USE_SYSTEMD = 487, + VAR_SHM_ENABLE = 488, + VAR_SHM_KEY = 489, + VAR_ROOT_KEY_SENTINEL = 490, + VAR_DNSCRYPT = 491, + VAR_DNSCRYPT_ENABLE = 492, + VAR_DNSCRYPT_PORT = 493, + VAR_DNSCRYPT_PROVIDER = 494, + VAR_DNSCRYPT_SECRET_KEY = 495, + VAR_DNSCRYPT_PROVIDER_CERT = 496, + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 497, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 498, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 499, + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 500, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 501, + VAR_IPSECMOD_ENABLED = 502, + VAR_IPSECMOD_HOOK = 503, + VAR_IPSECMOD_IGNORE_BOGUS = 504, + VAR_IPSECMOD_MAX_TTL = 505, + VAR_IPSECMOD_WHITELIST = 506, + VAR_IPSECMOD_STRICT = 507, + VAR_CACHEDB = 508, + VAR_CACHEDB_BACKEND = 509, + VAR_CACHEDB_SECRETSEED = 510, + VAR_CACHEDB_REDISHOST = 511, + VAR_CACHEDB_REDISPORT = 512, + VAR_CACHEDB_REDISTIMEOUT = 513, + VAR_CACHEDB_REDISEXPIRERECORDS = 514, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 515, + VAR_FOR_UPSTREAM = 516, + VAR_AUTH_ZONE = 517, + VAR_ZONEFILE = 518, + VAR_MASTER = 519, + VAR_URL = 520, + VAR_FOR_DOWNSTREAM = 521, + VAR_FALLBACK_ENABLED = 522, + VAR_TLS_ADDITIONAL_PORT = 523, + VAR_LOW_RTT = 524, + VAR_LOW_RTT_PERMIL = 525, + VAR_FAST_SERVER_PERMIL = 526, + VAR_FAST_SERVER_NUM = 527, + VAR_ALLOW_NOTIFY = 528, + VAR_TLS_WIN_CERT = 529, + VAR_TCP_CONNECTION_LIMIT = 530, + VAR_FORWARD_NO_CACHE = 531, + VAR_STUB_NO_CACHE = 532, + VAR_LOG_SERVFAIL = 533, + VAR_DENY_ANY = 534, + VAR_UNKNOWN_SERVER_TIME_LIMIT = 535, + VAR_LOG_TAG_QUERYREPLY = 536, + VAR_STREAM_WAIT_SIZE = 537, + VAR_TLS_CIPHERS = 538, + VAR_TLS_CIPHERSUITES = 539, + VAR_TLS_USE_SNI = 540, + VAR_IPSET = 541, + VAR_IPSET_NAME_V4 = 542, + VAR_IPSET_NAME_V6 = 543, + VAR_TLS_SESSION_TICKET_KEYS = 544, + VAR_RPZ = 545, + VAR_TAGS = 546, + VAR_RPZ_ACTION_OVERRIDE = 547, + VAR_RPZ_CNAME_OVERRIDE = 548, + VAR_RPZ_LOG = 549, + VAR_RPZ_LOG_NAME = 550, + VAR_DYNLIB = 551, + VAR_DYNLIB_FILE = 552, + VAR_EDNS_CLIENT_TAG = 553, + VAR_EDNS_CLIENT_TAG_OPCODE = 554 }; #endif /* Tokens. */ @@ -565,156 +573,164 @@ extern int yydebug; #define VAR_STUB_SSL_UPSTREAM 394 #define VAR_FORWARD_SSL_UPSTREAM 395 #define VAR_TLS_CERT_BUNDLE 396 -#define VAR_STUB_FIRST 397 -#define VAR_MINIMAL_RESPONSES 398 -#define VAR_RRSET_ROUNDROBIN 399 -#define VAR_MAX_UDP_SIZE 400 -#define VAR_DELAY_CLOSE 401 -#define VAR_UNBLOCK_LAN_ZONES 402 -#define VAR_INSECURE_LAN_ZONES 403 -#define VAR_INFRA_CACHE_MIN_RTT 404 -#define VAR_DNS64_PREFIX 405 -#define VAR_DNS64_SYNTHALL 406 -#define VAR_DNS64_IGNORE_AAAA 407 -#define VAR_DNSTAP 408 -#define VAR_DNSTAP_ENABLE 409 -#define VAR_DNSTAP_SOCKET_PATH 410 -#define VAR_DNSTAP_IP 411 -#define VAR_DNSTAP_TLS 412 -#define VAR_DNSTAP_TLS_SERVER_NAME 413 -#define VAR_DNSTAP_TLS_CERT_BUNDLE 414 -#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 415 -#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 416 -#define VAR_DNSTAP_SEND_IDENTITY 417 -#define VAR_DNSTAP_SEND_VERSION 418 -#define VAR_DNSTAP_BIDIRECTIONAL 419 -#define VAR_DNSTAP_IDENTITY 420 -#define VAR_DNSTAP_VERSION 421 -#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 422 -#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 423 -#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 424 -#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 425 -#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 426 -#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 427 -#define VAR_RESPONSE_IP_TAG 428 -#define VAR_RESPONSE_IP 429 -#define VAR_RESPONSE_IP_DATA 430 -#define VAR_HARDEN_ALGO_DOWNGRADE 431 -#define VAR_IP_TRANSPARENT 432 -#define VAR_IP_DSCP 433 -#define VAR_DISABLE_DNSSEC_LAME_CHECK 434 -#define VAR_IP_RATELIMIT 435 -#define VAR_IP_RATELIMIT_SLABS 436 -#define VAR_IP_RATELIMIT_SIZE 437 -#define VAR_RATELIMIT 438 -#define VAR_RATELIMIT_SLABS 439 -#define VAR_RATELIMIT_SIZE 440 -#define VAR_RATELIMIT_FOR_DOMAIN 441 -#define VAR_RATELIMIT_BELOW_DOMAIN 442 -#define VAR_IP_RATELIMIT_FACTOR 443 -#define VAR_RATELIMIT_FACTOR 444 -#define VAR_SEND_CLIENT_SUBNET 445 -#define VAR_CLIENT_SUBNET_ZONE 446 -#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 447 -#define VAR_CLIENT_SUBNET_OPCODE 448 -#define VAR_MAX_CLIENT_SUBNET_IPV4 449 -#define VAR_MAX_CLIENT_SUBNET_IPV6 450 -#define VAR_MIN_CLIENT_SUBNET_IPV4 451 -#define VAR_MIN_CLIENT_SUBNET_IPV6 452 -#define VAR_MAX_ECS_TREE_SIZE_IPV4 453 -#define VAR_MAX_ECS_TREE_SIZE_IPV6 454 -#define VAR_CAPS_WHITELIST 455 -#define VAR_CACHE_MAX_NEGATIVE_TTL 456 -#define VAR_PERMIT_SMALL_HOLDDOWN 457 -#define VAR_QNAME_MINIMISATION 458 -#define VAR_QNAME_MINIMISATION_STRICT 459 -#define VAR_IP_FREEBIND 460 -#define VAR_DEFINE_TAG 461 -#define VAR_LOCAL_ZONE_TAG 462 -#define VAR_ACCESS_CONTROL_TAG 463 -#define VAR_LOCAL_ZONE_OVERRIDE 464 -#define VAR_ACCESS_CONTROL_TAG_ACTION 465 -#define VAR_ACCESS_CONTROL_TAG_DATA 466 -#define VAR_VIEW 467 -#define VAR_ACCESS_CONTROL_VIEW 468 -#define VAR_VIEW_FIRST 469 -#define VAR_SERVE_EXPIRED 470 -#define VAR_SERVE_EXPIRED_TTL 471 -#define VAR_SERVE_EXPIRED_TTL_RESET 472 -#define VAR_SERVE_EXPIRED_REPLY_TTL 473 -#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 474 -#define VAR_FAKE_DSA 475 -#define VAR_FAKE_SHA1 476 -#define VAR_LOG_IDENTITY 477 -#define VAR_HIDE_TRUSTANCHOR 478 -#define VAR_TRUST_ANCHOR_SIGNALING 479 -#define VAR_AGGRESSIVE_NSEC 480 -#define VAR_USE_SYSTEMD 481 -#define VAR_SHM_ENABLE 482 -#define VAR_SHM_KEY 483 -#define VAR_ROOT_KEY_SENTINEL 484 -#define VAR_DNSCRYPT 485 -#define VAR_DNSCRYPT_ENABLE 486 -#define VAR_DNSCRYPT_PORT 487 -#define VAR_DNSCRYPT_PROVIDER 488 -#define VAR_DNSCRYPT_SECRET_KEY 489 -#define VAR_DNSCRYPT_PROVIDER_CERT 490 -#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 491 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 492 -#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 493 -#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 494 -#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 495 -#define VAR_IPSECMOD_ENABLED 496 -#define VAR_IPSECMOD_HOOK 497 -#define VAR_IPSECMOD_IGNORE_BOGUS 498 -#define VAR_IPSECMOD_MAX_TTL 499 -#define VAR_IPSECMOD_WHITELIST 500 -#define VAR_IPSECMOD_STRICT 501 -#define VAR_CACHEDB 502 -#define VAR_CACHEDB_BACKEND 503 -#define VAR_CACHEDB_SECRETSEED 504 -#define VAR_CACHEDB_REDISHOST 505 -#define VAR_CACHEDB_REDISPORT 506 -#define VAR_CACHEDB_REDISTIMEOUT 507 -#define VAR_CACHEDB_REDISEXPIRERECORDS 508 -#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 509 -#define VAR_FOR_UPSTREAM 510 -#define VAR_AUTH_ZONE 511 -#define VAR_ZONEFILE 512 -#define VAR_MASTER 513 -#define VAR_URL 514 -#define VAR_FOR_DOWNSTREAM 515 -#define VAR_FALLBACK_ENABLED 516 -#define VAR_TLS_ADDITIONAL_PORT 517 -#define VAR_LOW_RTT 518 -#define VAR_LOW_RTT_PERMIL 519 -#define VAR_FAST_SERVER_PERMIL 520 -#define VAR_FAST_SERVER_NUM 521 -#define VAR_ALLOW_NOTIFY 522 -#define VAR_TLS_WIN_CERT 523 -#define VAR_TCP_CONNECTION_LIMIT 524 -#define VAR_FORWARD_NO_CACHE 525 -#define VAR_STUB_NO_CACHE 526 -#define VAR_LOG_SERVFAIL 527 -#define VAR_DENY_ANY 528 -#define VAR_UNKNOWN_SERVER_TIME_LIMIT 529 -#define VAR_LOG_TAG_QUERYREPLY 530 -#define VAR_STREAM_WAIT_SIZE 531 -#define VAR_TLS_CIPHERS 532 -#define VAR_TLS_CIPHERSUITES 533 -#define VAR_TLS_USE_SNI 534 -#define VAR_IPSET 535 -#define VAR_IPSET_NAME_V4 536 -#define VAR_IPSET_NAME_V6 537 -#define VAR_TLS_SESSION_TICKET_KEYS 538 -#define VAR_RPZ 539 -#define VAR_TAGS 540 -#define VAR_RPZ_ACTION_OVERRIDE 541 -#define VAR_RPZ_CNAME_OVERRIDE 542 -#define VAR_RPZ_LOG 543 -#define VAR_RPZ_LOG_NAME 544 -#define VAR_DYNLIB 545 -#define VAR_DYNLIB_FILE 546 +#define VAR_HTTPS_PORT 397 +#define VAR_HTTP_ENDPOINT 398 +#define VAR_HTTP_MAX_STREAMS 399 +#define VAR_HTTP_QUERY_BUFFER_SIZE 400 +#define VAR_HTTP_RESPONSE_BUFFER_SIZE 401 +#define VAR_HTTP_NODELAY 402 +#define VAR_STUB_FIRST 403 +#define VAR_MINIMAL_RESPONSES 404 +#define VAR_RRSET_ROUNDROBIN 405 +#define VAR_MAX_UDP_SIZE 406 +#define VAR_DELAY_CLOSE 407 +#define VAR_UNBLOCK_LAN_ZONES 408 +#define VAR_INSECURE_LAN_ZONES 409 +#define VAR_INFRA_CACHE_MIN_RTT 410 +#define VAR_DNS64_PREFIX 411 +#define VAR_DNS64_SYNTHALL 412 +#define VAR_DNS64_IGNORE_AAAA 413 +#define VAR_DNSTAP 414 +#define VAR_DNSTAP_ENABLE 415 +#define VAR_DNSTAP_SOCKET_PATH 416 +#define VAR_DNSTAP_IP 417 +#define VAR_DNSTAP_TLS 418 +#define VAR_DNSTAP_TLS_SERVER_NAME 419 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 420 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 421 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 422 +#define VAR_DNSTAP_SEND_IDENTITY 423 +#define VAR_DNSTAP_SEND_VERSION 424 +#define VAR_DNSTAP_BIDIRECTIONAL 425 +#define VAR_DNSTAP_IDENTITY 426 +#define VAR_DNSTAP_VERSION 427 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 428 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 429 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 430 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 431 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 432 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 433 +#define VAR_RESPONSE_IP_TAG 434 +#define VAR_RESPONSE_IP 435 +#define VAR_RESPONSE_IP_DATA 436 +#define VAR_HARDEN_ALGO_DOWNGRADE 437 +#define VAR_IP_TRANSPARENT 438 +#define VAR_IP_DSCP 439 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 440 +#define VAR_IP_RATELIMIT 441 +#define VAR_IP_RATELIMIT_SLABS 442 +#define VAR_IP_RATELIMIT_SIZE 443 +#define VAR_RATELIMIT 444 +#define VAR_RATELIMIT_SLABS 445 +#define VAR_RATELIMIT_SIZE 446 +#define VAR_RATELIMIT_FOR_DOMAIN 447 +#define VAR_RATELIMIT_BELOW_DOMAIN 448 +#define VAR_IP_RATELIMIT_FACTOR 449 +#define VAR_RATELIMIT_FACTOR 450 +#define VAR_SEND_CLIENT_SUBNET 451 +#define VAR_CLIENT_SUBNET_ZONE 452 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 453 +#define VAR_CLIENT_SUBNET_OPCODE 454 +#define VAR_MAX_CLIENT_SUBNET_IPV4 455 +#define VAR_MAX_CLIENT_SUBNET_IPV6 456 +#define VAR_MIN_CLIENT_SUBNET_IPV4 457 +#define VAR_MIN_CLIENT_SUBNET_IPV6 458 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 459 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 460 +#define VAR_CAPS_WHITELIST 461 +#define VAR_CACHE_MAX_NEGATIVE_TTL 462 +#define VAR_PERMIT_SMALL_HOLDDOWN 463 +#define VAR_QNAME_MINIMISATION 464 +#define VAR_QNAME_MINIMISATION_STRICT 465 +#define VAR_IP_FREEBIND 466 +#define VAR_DEFINE_TAG 467 +#define VAR_LOCAL_ZONE_TAG 468 +#define VAR_ACCESS_CONTROL_TAG 469 +#define VAR_LOCAL_ZONE_OVERRIDE 470 +#define VAR_ACCESS_CONTROL_TAG_ACTION 471 +#define VAR_ACCESS_CONTROL_TAG_DATA 472 +#define VAR_VIEW 473 +#define VAR_ACCESS_CONTROL_VIEW 474 +#define VAR_VIEW_FIRST 475 +#define VAR_SERVE_EXPIRED 476 +#define VAR_SERVE_EXPIRED_TTL 477 +#define VAR_SERVE_EXPIRED_TTL_RESET 478 +#define VAR_SERVE_EXPIRED_REPLY_TTL 479 +#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 480 +#define VAR_FAKE_DSA 481 +#define VAR_FAKE_SHA1 482 +#define VAR_LOG_IDENTITY 483 +#define VAR_HIDE_TRUSTANCHOR 484 +#define VAR_TRUST_ANCHOR_SIGNALING 485 +#define VAR_AGGRESSIVE_NSEC 486 +#define VAR_USE_SYSTEMD 487 +#define VAR_SHM_ENABLE 488 +#define VAR_SHM_KEY 489 +#define VAR_ROOT_KEY_SENTINEL 490 +#define VAR_DNSCRYPT 491 +#define VAR_DNSCRYPT_ENABLE 492 +#define VAR_DNSCRYPT_PORT 493 +#define VAR_DNSCRYPT_PROVIDER 494 +#define VAR_DNSCRYPT_SECRET_KEY 495 +#define VAR_DNSCRYPT_PROVIDER_CERT 496 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 497 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 498 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 499 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 500 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 501 +#define VAR_IPSECMOD_ENABLED 502 +#define VAR_IPSECMOD_HOOK 503 +#define VAR_IPSECMOD_IGNORE_BOGUS 504 +#define VAR_IPSECMOD_MAX_TTL 505 +#define VAR_IPSECMOD_WHITELIST 506 +#define VAR_IPSECMOD_STRICT 507 +#define VAR_CACHEDB 508 +#define VAR_CACHEDB_BACKEND 509 +#define VAR_CACHEDB_SECRETSEED 510 +#define VAR_CACHEDB_REDISHOST 511 +#define VAR_CACHEDB_REDISPORT 512 +#define VAR_CACHEDB_REDISTIMEOUT 513 +#define VAR_CACHEDB_REDISEXPIRERECORDS 514 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 515 +#define VAR_FOR_UPSTREAM 516 +#define VAR_AUTH_ZONE 517 +#define VAR_ZONEFILE 518 +#define VAR_MASTER 519 +#define VAR_URL 520 +#define VAR_FOR_DOWNSTREAM 521 +#define VAR_FALLBACK_ENABLED 522 +#define VAR_TLS_ADDITIONAL_PORT 523 +#define VAR_LOW_RTT 524 +#define VAR_LOW_RTT_PERMIL 525 +#define VAR_FAST_SERVER_PERMIL 526 +#define VAR_FAST_SERVER_NUM 527 +#define VAR_ALLOW_NOTIFY 528 +#define VAR_TLS_WIN_CERT 529 +#define VAR_TCP_CONNECTION_LIMIT 530 +#define VAR_FORWARD_NO_CACHE 531 +#define VAR_STUB_NO_CACHE 532 +#define VAR_LOG_SERVFAIL 533 +#define VAR_DENY_ANY 534 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 535 +#define VAR_LOG_TAG_QUERYREPLY 536 +#define VAR_STREAM_WAIT_SIZE 537 +#define VAR_TLS_CIPHERS 538 +#define VAR_TLS_CIPHERSUITES 539 +#define VAR_TLS_USE_SNI 540 +#define VAR_IPSET 541 +#define VAR_IPSET_NAME_V4 542 +#define VAR_IPSET_NAME_V6 543 +#define VAR_TLS_SESSION_TICKET_KEYS 544 +#define VAR_RPZ 545 +#define VAR_TAGS 546 +#define VAR_RPZ_ACTION_OVERRIDE 547 +#define VAR_RPZ_CNAME_OVERRIDE 548 +#define VAR_RPZ_LOG 549 +#define VAR_RPZ_LOG_NAME 550 +#define VAR_DYNLIB 551 +#define VAR_DYNLIB_FILE 552 +#define VAR_EDNS_CLIENT_TAG 553 +#define VAR_EDNS_CLIENT_TAG_OPCODE 554 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -724,7 +740,7 @@ union YYSTYPE char* str; -#line 728 "util/configparser.c" +#line 744 "util/configparser.c" }; typedef union YYSTYPE YYSTYPE; @@ -974,19 +990,19 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 620 +#define YYLAST 635 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 292 +#define YYNTOKENS 300 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 317 +#define YYNNTS 325 /* YYNRULES -- Number of rules. */ -#define YYNRULES 610 +#define YYNRULES 626 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 905 +#define YYNSTATES 930 #define YYUNDEFTOK 2 -#define YYMAXUTOK 546 +#define YYMAXUTOK 554 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ @@ -1051,75 +1067,77 @@ static const yytype_uint16 yytranslate[] = 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 + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 181, 181, 181, 182, 182, 183, 183, 184, 184, - 184, 185, 185, 186, 186, 187, 187, 188, 190, 196, - 201, 202, 203, 203, 203, 204, 204, 205, 205, 205, - 206, 206, 207, 207, 207, 208, 208, 209, 209, 209, - 210, 210, 210, 211, 211, 212, 212, 213, 213, 214, - 214, 215, 215, 216, 216, 217, 217, 218, 218, 219, - 219, 219, 220, 220, 220, 221, 221, 221, 222, 222, - 223, 223, 224, 224, 225, 225, 226, 226, 226, 227, - 227, 228, 228, 229, 229, 229, 230, 230, 231, 231, - 232, 232, 233, 233, 233, 234, 234, 235, 235, 236, - 236, 237, 237, 238, 238, 239, 239, 239, 240, 240, - 241, 241, 241, 242, 242, 242, 243, 243, 243, 244, - 244, 244, 244, 245, 246, 246, 246, 247, 247, 247, - 248, 248, 249, 249, 250, 250, 250, 251, 251, 252, - 252, 252, 253, 254, 254, 255, 255, 256, 257, 257, - 258, 258, 259, 259, 260, 261, 261, 262, 262, 263, - 263, 264, 264, 265, 265, 266, 266, 266, 267, 267, - 268, 268, 269, 269, 270, 270, 271, 271, 272, 272, - 273, 273, 273, 274, 274, 274, 275, 275, 275, 276, - 276, 277, 278, 278, 279, 279, 280, 280, 281, 281, - 282, 282, 282, 283, 283, 283, 284, 284, 284, 285, - 285, 286, 286, 287, 287, 288, 290, 302, 303, 304, - 304, 304, 304, 304, 305, 305, 307, 319, 320, 321, - 321, 321, 321, 322, 322, 324, 338, 339, 340, 340, - 340, 340, 341, 341, 341, 343, 360, 361, 362, 362, - 362, 362, 363, 363, 363, 364, 367, 386, 403, 411, - 421, 429, 446, 447, 448, 448, 448, 448, 448, 449, - 449, 449, 450, 450, 452, 461, 470, 481, 490, 499, - 508, 519, 528, 540, 554, 569, 580, 597, 614, 631, - 648, 663, 678, 691, 706, 715, 724, 733, 742, 751, - 760, 769, 778, 787, 796, 805, 814, 823, 832, 845, - 854, 867, 876, 885, 894, 901, 908, 917, 924, 933, - 941, 948, 955, 963, 972, 981, 990, 1004, 1013, 1022, - 1031, 1040, 1049, 1058, 1065, 1072, 1098, 1106, 1113, 1120, - 1127, 1134, 1142, 1150, 1158, 1165, 1176, 1187, 1194, 1203, - 1212, 1221, 1228, 1235, 1243, 1251, 1261, 1271, 1281, 1295, - 1303, 1316, 1327, 1335, 1348, 1357, 1366, 1375, 1385, 1395, - 1403, 1416, 1425, 1433, 1442, 1450, 1463, 1472, 1479, 1489, - 1499, 1509, 1519, 1529, 1539, 1549, 1559, 1566, 1573, 1580, - 1589, 1598, 1607, 1616, 1623, 1633, 1653, 1660, 1678, 1691, - 1704, 1713, 1722, 1731, 1740, 1750, 1760, 1771, 1780, 1789, - 1798, 1807, 1816, 1825, 1838, 1851, 1860, 1867, 1876, 1885, - 1894, 1903, 1911, 1924, 1932, 1973, 1980, 1995, 2005, 2015, - 2022, 2029, 2036, 2045, 2053, 2067, 2088, 2109, 2121, 2133, - 2145, 2154, 2175, 2185, 2194, 2202, 2210, 2223, 2236, 2251, - 2266, 2275, 2284, 2290, 2299, 2308, 2318, 2328, 2341, 2354, - 2366, 2380, 2392, 2406, 2416, 2423, 2430, 2439, 2448, 2458, - 2468, 2478, 2485, 2492, 2501, 2510, 2520, 2530, 2537, 2544, - 2551, 2559, 2569, 2579, 2589, 2599, 2638, 2648, 2656, 2664, - 2679, 2688, 2693, 2694, 2695, 2695, 2695, 2696, 2696, 2696, - 2697, 2697, 2699, 2709, 2718, 2725, 2732, 2739, 2746, 2753, - 2760, 2765, 2766, 2767, 2767, 2767, 2768, 2768, 2768, 2769, - 2770, 2770, 2771, 2771, 2772, 2772, 2773, 2774, 2775, 2776, - 2777, 2778, 2780, 2789, 2799, 2806, 2813, 2822, 2829, 2836, - 2843, 2850, 2859, 2868, 2875, 2882, 2892, 2902, 2912, 2922, - 2932, 2942, 2947, 2948, 2949, 2951, 2957, 2962, 2963, 2964, - 2966, 2972, 2982, 2989, 2998, 3006, 3011, 3012, 3014, 3014, - 3014, 3015, 3015, 3016, 3017, 3018, 3019, 3020, 3022, 3032, - 3041, 3048, 3057, 3064, 3073, 3081, 3094, 3102, 3115, 3120, - 3121, 3122, 3122, 3123, 3123, 3123, 3124, 3126, 3138, 3150, - 3162, 3177, 3190, 3203, 3214, 3219, 3220, 3221, 3221, 3223, - 3238 + 0, 184, 184, 184, 185, 185, 186, 186, 187, 187, + 187, 188, 188, 189, 189, 190, 190, 191, 193, 199, + 204, 205, 206, 206, 206, 207, 207, 208, 208, 208, + 209, 209, 210, 210, 210, 211, 211, 212, 212, 212, + 213, 213, 213, 214, 214, 215, 215, 216, 216, 217, + 217, 218, 218, 219, 219, 220, 220, 221, 221, 222, + 222, 222, 223, 223, 223, 224, 224, 224, 225, 225, + 226, 226, 227, 227, 228, 228, 229, 229, 229, 230, + 230, 231, 231, 232, 232, 232, 233, 233, 234, 234, + 235, 235, 236, 236, 236, 237, 237, 238, 238, 239, + 239, 240, 240, 241, 241, 242, 242, 242, 243, 243, + 244, 244, 244, 245, 245, 245, 246, 246, 246, 247, + 247, 247, 247, 248, 249, 249, 249, 250, 250, 250, + 251, 251, 252, 253, 253, 253, 254, 254, 255, 255, + 256, 256, 256, 257, 257, 258, 258, 258, 259, 260, + 260, 261, 261, 262, 263, 263, 264, 264, 265, 265, + 266, 267, 267, 268, 268, 269, 269, 270, 270, 271, + 271, 272, 272, 272, 273, 273, 274, 274, 275, 275, + 276, 276, 277, 277, 278, 278, 279, 279, 279, 280, + 280, 280, 281, 281, 281, 282, 282, 283, 284, 284, + 285, 285, 286, 286, 287, 287, 288, 288, 288, 289, + 289, 289, 290, 290, 290, 291, 291, 292, 292, 293, + 293, 294, 294, 295, 297, 309, 310, 311, 311, 311, + 311, 311, 312, 312, 314, 326, 327, 328, 328, 328, + 328, 329, 329, 331, 345, 346, 347, 347, 347, 347, + 348, 348, 348, 350, 367, 368, 369, 369, 369, 369, + 370, 370, 370, 371, 374, 393, 410, 418, 428, 436, + 453, 454, 455, 455, 455, 455, 455, 456, 456, 456, + 457, 457, 459, 468, 477, 488, 497, 506, 515, 526, + 535, 547, 561, 576, 587, 604, 621, 638, 655, 670, + 685, 698, 713, 722, 731, 740, 749, 758, 767, 776, + 785, 794, 803, 812, 821, 830, 839, 852, 861, 874, + 883, 892, 901, 908, 915, 924, 931, 940, 948, 955, + 962, 970, 979, 986, 1002, 1010, 1018, 1026, 1034, 1043, + 1052, 1066, 1075, 1084, 1093, 1102, 1111, 1120, 1127, 1134, + 1160, 1168, 1175, 1182, 1189, 1196, 1204, 1212, 1220, 1227, + 1238, 1249, 1256, 1265, 1274, 1283, 1290, 1297, 1305, 1313, + 1323, 1333, 1343, 1357, 1365, 1378, 1389, 1397, 1410, 1419, + 1428, 1437, 1447, 1457, 1465, 1478, 1487, 1495, 1504, 1512, + 1525, 1534, 1541, 1551, 1561, 1571, 1581, 1591, 1601, 1611, + 1621, 1628, 1635, 1642, 1651, 1660, 1669, 1678, 1685, 1695, + 1715, 1722, 1740, 1753, 1766, 1775, 1784, 1793, 1802, 1812, + 1822, 1833, 1842, 1851, 1860, 1869, 1878, 1887, 1900, 1913, + 1922, 1929, 1938, 1947, 1956, 1965, 1973, 1986, 1994, 2035, + 2042, 2057, 2067, 2077, 2084, 2091, 2098, 2107, 2115, 2129, + 2150, 2171, 2183, 2195, 2207, 2216, 2237, 2247, 2256, 2264, + 2272, 2285, 2298, 2313, 2328, 2337, 2346, 2352, 2361, 2370, + 2380, 2390, 2403, 2416, 2428, 2442, 2454, 2468, 2483, 2494, + 2504, 2511, 2518, 2527, 2536, 2546, 2556, 2566, 2573, 2580, + 2589, 2598, 2608, 2618, 2625, 2632, 2639, 2647, 2657, 2667, + 2677, 2687, 2726, 2736, 2744, 2752, 2767, 2776, 2781, 2782, + 2783, 2783, 2783, 2784, 2784, 2784, 2785, 2785, 2787, 2797, + 2806, 2813, 2820, 2827, 2834, 2841, 2848, 2853, 2854, 2855, + 2855, 2855, 2856, 2856, 2856, 2857, 2858, 2858, 2859, 2859, + 2860, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2868, 2877, + 2887, 2894, 2901, 2910, 2917, 2924, 2931, 2938, 2947, 2956, + 2963, 2970, 2980, 2990, 3000, 3010, 3020, 3030, 3035, 3036, + 3037, 3039, 3045, 3050, 3051, 3052, 3054, 3060, 3070, 3077, + 3086, 3094, 3099, 3100, 3102, 3102, 3102, 3103, 3103, 3104, + 3105, 3106, 3107, 3108, 3110, 3120, 3129, 3136, 3145, 3152, + 3161, 3169, 3182, 3190, 3203, 3208, 3209, 3210, 3210, 3211, + 3211, 3211, 3212, 3214, 3226, 3238, 3250, 3265, 3278, 3291, + 3302, 3307, 3308, 3309, 3309, 3311, 3326 }; #endif @@ -1173,9 +1191,12 @@ static const char *const yytname[] = "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_FORWARD_SSL_UPSTREAM", "VAR_TLS_CERT_BUNDLE", "VAR_HTTPS_PORT", + "VAR_HTTP_ENDPOINT", "VAR_HTTP_MAX_STREAMS", + "VAR_HTTP_QUERY_BUFFER_SIZE", "VAR_HTTP_RESPONSE_BUFFER_SIZE", + "VAR_HTTP_NODELAY", "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_IP", "VAR_DNSTAP_TLS", @@ -1235,14 +1256,15 @@ static const char *const yytname[] = "VAR_IPSET_NAME_V4", "VAR_IPSET_NAME_V6", "VAR_TLS_SESSION_TICKET_KEYS", "VAR_RPZ", "VAR_TAGS", "VAR_RPZ_ACTION_OVERRIDE", "VAR_RPZ_CNAME_OVERRIDE", "VAR_RPZ_LOG", "VAR_RPZ_LOG_NAME", - "VAR_DYNLIB", "VAR_DYNLIB_FILE", "$accept", "toplevelvars", - "toplevelvar", "force_toplevel", "serverstart", "contents_server", - "content_server", "stubstart", "contents_stub", "content_stub", - "forwardstart", "contents_forward", "content_forward", "viewstart", - "contents_view", "content_view", "authstart", "contents_auth", - "content_auth", "rpz_tag", "rpz_action_override", "rpz_cname_override", - "rpz_log", "rpz_log_name", "rpzstart", "contents_rpz", "content_rpz", - "server_num_threads", "server_verbosity", "server_statistics_interval", + "VAR_DYNLIB", "VAR_DYNLIB_FILE", "VAR_EDNS_CLIENT_TAG", + "VAR_EDNS_CLIENT_TAG_OPCODE", "$accept", "toplevelvars", "toplevelvar", + "force_toplevel", "serverstart", "contents_server", "content_server", + "stubstart", "contents_stub", "content_stub", "forwardstart", + "contents_forward", "content_forward", "viewstart", "contents_view", + "content_view", "authstart", "contents_auth", "content_auth", "rpz_tag", + "rpz_action_override", "rpz_cname_override", "rpz_log", "rpz_log_name", + "rpzstart", "contents_rpz", "content_rpz", "server_num_threads", + "server_verbosity", "server_statistics_interval", "server_statistics_cumulative", "server_extended_statistics", "server_shm_enable", "server_shm_key", "server_port", "server_send_client_subnet", "server_client_subnet_zone", @@ -1263,9 +1285,12 @@ static const char *const yytname[] = "server_tls_cert_bundle", "server_tls_win_cert", "server_tls_additional_port", "server_tls_ciphers", "server_tls_ciphersuites", "server_tls_session_ticket_keys", - "server_tls_use_sni", "server_use_systemd", "server_do_daemonize", - "server_use_syslog", "server_log_time_ascii", "server_log_queries", - "server_log_replies", "server_log_tag_queryreply", "server_log_servfail", + "server_tls_use_sni", "server_https_port", "server_http_endpoint", + "server_http_max_streams", "server_http_query_buffer_size", + "server_http_response_buffer_size", "server_http_nodelay", + "server_use_systemd", "server_do_daemonize", "server_use_syslog", + "server_log_time_ascii", "server_log_queries", "server_log_replies", + "server_log_tag_queryreply", "server_log_servfail", "server_log_local_actions", "server_chroot", "server_username", "server_directory", "server_logfile", "server_pidfile", "server_root_hints", "server_dlv_anchor_file", "server_dlv_anchor", @@ -1324,7 +1349,8 @@ static const char *const yytname[] = "server_qname_minimisation_strict", "server_ipsecmod_enabled", "server_ipsecmod_ignore_bogus", "server_ipsecmod_hook", "server_ipsecmod_max_ttl", "server_ipsecmod_whitelist", - "server_ipsecmod_strict", "stub_name", "stub_host", "stub_addr", + "server_ipsecmod_strict", "server_edns_client_tag", + "server_edns_client_tag_opcode", "stub_name", "stub_host", "stub_addr", "stub_first", "stub_no_cache", "stub_ssl_upstream", "stub_prime", "forward_name", "forward_host", "forward_addr", "forward_first", "forward_no_cache", "forward_ssl_upstream", "auth_name", "auth_zonefile", @@ -1398,14 +1424,14 @@ static const yytype_uint16 yytoknum[] = 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546 + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554 }; # endif -#define YYPACT_NINF -285 +#define YYPACT_NINF -288 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-285))) + (!!((Yystate) == (-288))) #define YYTABLE_NINF -1 @@ -1416,97 +1442,99 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -285, 0, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, 278, -42, -37, -43, -21, -44, -11, -87, - -109, -284, -206, -230, -272, 3, 4, 5, 25, 26, + -288, 0, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, 284, -42, -38, -43, -21, -44, -11, -93, + -109, -287, -212, -237, -279, 3, 4, 13, 25, 26, 27, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 54, 55, 84, 85, 88, 89, 92, 94, - 95, 96, 97, 98, 99, 100, 101, 103, 104, 105, + 51, 52, 54, 55, 84, 85, 88, 89, 91, 93, + 94, 95, 97, 98, 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 162, 163, 164, 165, 166, 167, 168, 169, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 206, 207, 208, 209, 210, 211, 212, 214, - 215, 216, 217, 218, 221, 222, 225, 238, 239, 240, - 241, 242, 243, 244, 245, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 271, 272, - 273, 275, 276, 277, 279, 313, 314, 315, 316, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, 320, 321, 322, 364, 365, 366, - 367, -285, -285, -285, -285, -285, -285, -285, -285, 368, - 369, 370, 371, 372, 376, -285, -285, -285, -285, -285, - -285, -285, 380, 381, 406, 407, 408, 410, 421, -285, - -285, -285, -285, -285, -285, -285, -285, 422, 423, 424, - 425, 426, 427, 428, 429, -285, -285, -285, -285, -285, - -285, -285, -285, -285, 430, 431, 432, 433, 434, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - 435, 436, 437, 438, 439, 440, 480, 482, -285, -285, - -285, -285, -285, -285, -285, -285, -285, 498, 499, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 515, 516, - 517, 518, 519, 520, 521, 523, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, 524, -285, -285, 525, - -285, -285, 526, 527, 528, 529, 532, 535, 538, 539, - 548, 549, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, 550, 552, 553, 554, 555, 556, -285, - -285, -285, -285, -285, -285, -285, 557, 558, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, 559, 560, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, 561, 562, - 563, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, 564, 565, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, 566, 567, 568, 569, 570, 571, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, 572, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, 573, - -285, -285, 574, 575, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, 576, 577, 578, -285, -285, -285, - -285, -285, -285, -285, -285 + 200, 201, 202, 203, 204, 205, 206, 207, 212, 213, + 214, 215, 216, 217, 218, 220, 221, 222, 223, 224, + 227, 229, 231, 244, 245, 246, 247, 248, 249, 250, + 251, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 277, 278, 279, 281, 282, 283, + 285, 319, 320, 321, 322, 326, 327, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + 328, 370, 371, 372, 373, 374, 375, -288, -288, -288, + -288, -288, -288, -288, -288, 376, 377, 378, 382, 386, + 387, -288, -288, -288, -288, -288, -288, -288, 412, 413, + 414, 422, 433, 434, 435, -288, -288, -288, -288, -288, + -288, -288, -288, 436, 437, 438, 439, 440, 441, 442, + 443, -288, -288, -288, -288, -288, -288, -288, -288, -288, + 444, 445, 446, 447, 448, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, 449, 450, 451, 452, + 492, 494, 510, 511, -288, -288, -288, -288, -288, -288, + -288, -288, -288, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 527, 528, 529, 530, 531, 532, 533, 535, + 536, 537, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, 538, -288, -288, 539, -288, -288, 540, 541, + 544, 547, 550, 551, 560, 561, 562, 564, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, 565, + 566, 567, 568, 569, 570, -288, -288, -288, -288, -288, + -288, -288, 571, 574, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, 575, 576, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + 577, 578, 579, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, 580, 581, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, 582, 583, 584, 585, 586, 587, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, 588, -288, -288, + -288, -288, -288, -288, -288, -288, -288, 589, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, 590, -288, -288, 591, 592, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, 593, 594, + 595, -288, -288, -288, -288, -288, -288, -288, -288, -288 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1514,10 +1542,10 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 2, 0, 1, 18, 19, 216, 226, 491, 551, 510, - 235, 565, 588, 245, 604, 261, 556, 3, 17, 21, - 218, 228, 237, 247, 263, 493, 512, 553, 558, 567, - 590, 606, 4, 5, 6, 10, 14, 15, 8, 9, + 2, 0, 1, 18, 19, 224, 234, 507, 567, 526, + 243, 581, 604, 253, 620, 269, 572, 3, 17, 21, + 226, 236, 245, 255, 271, 509, 528, 569, 574, 583, + 606, 622, 4, 5, 6, 10, 14, 15, 8, 9, 7, 16, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1537,148 +1565,152 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, - 22, 23, 86, 89, 98, 186, 187, 24, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 37, 77, - 25, 90, 91, 48, 70, 85, 26, 27, 30, 31, - 28, 29, 32, 33, 34, 35, 36, 121, 198, 122, - 124, 125, 126, 200, 205, 201, 212, 213, 214, 215, - 182, 87, 76, 102, 119, 120, 210, 207, 123, 38, - 39, 40, 41, 42, 78, 92, 93, 108, 64, 74, - 65, 190, 191, 103, 58, 59, 189, 60, 61, 112, - 116, 130, 139, 165, 142, 211, 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, 161, 96, 97, 114, 115, 208, 101, 57, - 79, 82, 63, 66, 104, 105, 80, 162, 106, 67, - 68, 69, 199, 118, 175, 176, 177, 178, 179, 180, - 188, 107, 75, 109, 110, 111, 163, 72, 73, 94, - 83, 84, 99, 127, 128, 209, 129, 134, 135, 136, - 166, 167, 169, 171, 172, 170, 173, 183, 140, 141, - 145, 146, 143, 144, 147, 148, 150, 149, 202, 204, - 203, 164, 174, 192, 194, 193, 195, 196, 197, 168, - 181, 184, 185, 206, 0, 0, 0, 0, 0, 0, - 0, 217, 219, 220, 221, 223, 224, 225, 222, 0, - 0, 0, 0, 0, 0, 227, 229, 230, 231, 232, - 233, 234, 0, 0, 0, 0, 0, 0, 0, 236, - 238, 239, 242, 243, 240, 244, 241, 0, 0, 0, - 0, 0, 0, 0, 0, 246, 248, 249, 250, 251, - 255, 252, 253, 254, 0, 0, 0, 0, 0, 266, - 270, 271, 272, 273, 262, 264, 265, 267, 268, 269, - 0, 0, 0, 0, 0, 0, 0, 0, 492, 494, - 496, 495, 501, 497, 498, 499, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 511, 513, 515, 514, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 0, 552, 554, 0, - 557, 559, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 566, 568, 569, 570, 572, 573, 571, 574, - 575, 576, 577, 0, 0, 0, 0, 0, 0, 589, - 591, 592, 593, 594, 595, 596, 0, 0, 605, 607, - 608, 275, 274, 281, 294, 292, 304, 300, 301, 305, - 302, 303, 306, 307, 308, 309, 310, 333, 334, 335, - 336, 337, 362, 363, 364, 369, 370, 297, 371, 372, - 375, 373, 374, 377, 378, 379, 393, 348, 349, 351, - 352, 380, 396, 342, 344, 397, 403, 404, 405, 298, - 361, 421, 422, 343, 416, 326, 293, 338, 394, 400, - 381, 0, 0, 425, 299, 276, 325, 385, 277, 295, - 296, 339, 340, 423, 383, 387, 388, 278, 426, 365, - 392, 327, 347, 398, 399, 402, 415, 341, 419, 417, - 418, 353, 360, 389, 390, 354, 355, 382, 407, 328, - 329, 332, 311, 313, 314, 315, 316, 317, 427, 428, - 430, 366, 367, 368, 376, 431, 432, 433, 0, 0, - 0, 384, 356, 358, 561, 442, 446, 444, 443, 447, - 445, 0, 0, 450, 451, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 386, 401, 420, 455, 456, - 357, 434, 0, 0, 0, 0, 0, 0, 408, 409, - 410, 411, 412, 413, 414, 562, 350, 345, 406, 324, - 279, 280, 346, 457, 459, 458, 460, 461, 462, 312, - 319, 452, 454, 453, 318, 0, 331, 391, 429, 330, - 359, 320, 321, 323, 322, 463, 464, 465, 469, 468, - 466, 467, 470, 471, 472, 473, 475, 474, 484, 0, - 488, 489, 0, 0, 490, 476, 482, 477, 478, 479, - 481, 483, 480, 256, 257, 258, 259, 260, 502, 504, - 503, 506, 507, 508, 509, 505, 532, 534, 535, 536, - 537, 538, 539, 540, 541, 542, 533, 543, 544, 545, - 546, 547, 548, 549, 550, 555, 560, 578, 579, 580, - 583, 581, 582, 584, 585, 586, 587, 597, 598, 599, - 600, 601, 602, 609, 610, 395, 424, 441, 563, 564, - 448, 449, 435, 436, 0, 0, 0, 440, 603, 485, - 486, 487, 439, 437, 438 + 0, 0, 0, 0, 0, 0, 0, 20, 22, 23, + 86, 89, 98, 192, 193, 24, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 37, 77, 25, 90, + 91, 48, 70, 85, 26, 27, 30, 31, 28, 29, + 32, 33, 34, 35, 36, 121, 204, 122, 124, 125, + 126, 206, 211, 207, 218, 219, 220, 221, 127, 128, + 129, 130, 131, 132, 188, 87, 76, 102, 119, 120, + 216, 213, 123, 38, 39, 40, 41, 42, 78, 92, + 93, 108, 64, 74, 65, 196, 197, 103, 58, 59, + 195, 60, 61, 112, 116, 136, 145, 171, 148, 217, + 113, 71, 43, 44, 45, 100, 137, 138, 139, 46, + 47, 49, 50, 52, 53, 51, 143, 54, 55, 56, + 62, 81, 117, 95, 144, 88, 167, 96, 97, 114, + 115, 214, 101, 57, 79, 82, 63, 66, 104, 105, + 80, 168, 106, 67, 68, 69, 205, 118, 181, 182, + 183, 184, 185, 186, 194, 107, 75, 109, 110, 111, + 169, 72, 73, 94, 83, 84, 99, 133, 134, 215, + 135, 140, 141, 142, 172, 173, 175, 177, 178, 176, + 179, 189, 146, 147, 151, 152, 149, 150, 153, 154, + 156, 155, 208, 210, 209, 170, 180, 198, 200, 199, + 201, 202, 203, 222, 223, 174, 187, 190, 191, 212, + 0, 0, 0, 0, 0, 0, 0, 225, 227, 228, + 229, 231, 232, 233, 230, 0, 0, 0, 0, 0, + 0, 235, 237, 238, 239, 240, 241, 242, 0, 0, + 0, 0, 0, 0, 0, 244, 246, 247, 250, 251, + 248, 252, 249, 0, 0, 0, 0, 0, 0, 0, + 0, 254, 256, 257, 258, 259, 263, 260, 261, 262, + 0, 0, 0, 0, 0, 274, 278, 279, 280, 281, + 270, 272, 273, 275, 276, 277, 0, 0, 0, 0, + 0, 0, 0, 0, 508, 510, 512, 511, 517, 513, + 514, 515, 516, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 527, 529, 531, 530, 532, 533, 534, 535, + 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 0, 568, 570, 0, 573, 575, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 582, 584, + 585, 586, 588, 589, 587, 590, 591, 592, 593, 0, + 0, 0, 0, 0, 0, 605, 607, 608, 609, 610, + 611, 612, 0, 0, 621, 623, 624, 283, 282, 289, + 302, 300, 312, 308, 309, 313, 310, 311, 314, 315, + 316, 317, 318, 347, 348, 349, 350, 351, 376, 377, + 378, 383, 384, 305, 385, 386, 389, 387, 388, 391, + 392, 393, 407, 362, 363, 365, 366, 394, 410, 356, + 358, 411, 417, 418, 419, 306, 375, 435, 436, 357, + 430, 340, 301, 352, 408, 414, 395, 0, 0, 439, + 307, 284, 339, 399, 285, 303, 304, 353, 354, 437, + 397, 401, 402, 286, 440, 379, 406, 341, 361, 412, + 413, 416, 429, 355, 433, 431, 432, 367, 374, 403, + 404, 368, 369, 396, 421, 342, 343, 346, 319, 321, + 322, 323, 324, 325, 332, 333, 334, 335, 336, 337, + 441, 442, 444, 380, 381, 382, 390, 445, 446, 447, + 0, 0, 0, 398, 370, 372, 577, 456, 460, 458, + 457, 461, 459, 0, 0, 464, 465, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 400, 415, 434, + 469, 470, 371, 448, 0, 0, 0, 0, 0, 0, + 422, 423, 424, 425, 426, 427, 428, 578, 364, 359, + 420, 338, 287, 288, 360, 471, 473, 472, 474, 475, + 476, 320, 327, 466, 468, 467, 326, 0, 345, 405, + 443, 344, 373, 328, 329, 331, 330, 0, 478, 479, + 480, 481, 485, 484, 482, 483, 486, 487, 488, 489, + 491, 490, 500, 0, 504, 505, 0, 0, 506, 492, + 498, 493, 494, 495, 497, 499, 496, 264, 265, 266, + 267, 268, 518, 520, 519, 522, 523, 524, 525, 521, + 548, 550, 551, 552, 553, 554, 555, 556, 557, 558, + 549, 559, 560, 561, 562, 563, 564, 565, 566, 571, + 576, 594, 595, 596, 599, 597, 598, 600, 601, 602, + 603, 613, 614, 615, 616, 617, 618, 625, 626, 409, + 438, 455, 579, 580, 462, 463, 449, 450, 0, 0, + 0, 454, 619, 477, 501, 502, 503, 453, 451, 452 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, 579, - 580, 581, 582, 583, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, - -285, -285, -285, -285, -285, -285, -285 + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, 572, 573, 596, + 597, 598, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, + -288, -288, -288, -288, -288 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 17, 18, 19, 32, 239, 20, 33, 441, - 21, 34, 455, 22, 35, 469, 23, 36, 485, 499, - 500, 501, 502, 503, 24, 37, 504, 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, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 442, 443, 444, 445, - 446, 447, 448, 456, 457, 458, 459, 460, 461, 486, - 487, 488, 489, 490, 491, 492, 493, 470, 471, 472, - 473, 474, 475, 476, 25, 38, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 26, 39, 546, 547, 548, - 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, - 559, 560, 561, 562, 563, 564, 565, 27, 40, 567, - 568, 28, 41, 570, 571, 429, 430, 431, 432, 29, - 42, 582, 583, 584, 585, 586, 587, 588, 589, 590, - 591, 592, 30, 43, 599, 600, 601, 602, 603, 604, - 605, 433, 31, 44, 608, 609, 610 + -1, 1, 17, 18, 19, 32, 247, 20, 33, 457, + 21, 34, 471, 22, 35, 485, 23, 36, 501, 515, + 516, 517, 518, 519, 24, 37, 520, 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, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 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, 458, 459, 460, 461, 462, 463, + 464, 472, 473, 474, 475, 476, 477, 502, 503, 504, + 505, 506, 507, 508, 509, 486, 487, 488, 489, 490, + 491, 492, 25, 38, 534, 535, 536, 537, 538, 539, + 540, 541, 542, 26, 39, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 27, 40, 583, 584, 28, + 41, 586, 587, 445, 446, 447, 448, 29, 42, 598, + 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, + 30, 43, 615, 616, 617, 618, 619, 620, 621, 449, + 31, 44, 624, 625, 626 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1686,147 +1718,149 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint16 yytable[] = { - 2, 477, 462, 434, 566, 435, 436, 569, 449, 606, - 607, 3, 4, 611, 612, 613, 450, 451, 593, 594, - 595, 596, 597, 598, 477, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 614, 615, 616, 463, 464, - 617, 618, 619, 620, 621, 622, 5, 623, 624, 625, - 626, 627, 6, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 465, 638, 639, 437, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 510, 511, 512, 513, - 514, 515, 516, 517, 640, 641, 7, 438, 642, 643, - 439, 452, 644, 453, 645, 646, 647, 648, 649, 650, - 651, 652, 8, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, - 670, 466, 467, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 9, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 468, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, - 746, 747, 10, 479, 480, 481, 748, 749, 750, 751, - 752, 753, 754, 484, 755, 756, 757, 758, 759, 440, - 11, 760, 761, 454, 478, 762, 479, 480, 481, 482, - 483, 494, 495, 496, 497, 498, 484, 12, 763, 764, - 765, 766, 767, 768, 769, 770, 13, 771, 772, 773, - 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, - 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, - 14, 794, 795, 796, 15, 797, 798, 799, 0, 800, - 16, 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, 801, 802, 803, 804, 77, 78, 79, - 805, 806, 807, 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, 808, 809, 810, 811, 812, 813, - 814, 815, 816, 121, 122, 123, 817, 124, 125, 126, - 818, 819, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 820, 821, 822, 151, - 823, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 824, 825, 826, 827, 828, 829, 830, 831, 832, - 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, - 843, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 844, 201, 845, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 846, 847, - 848, 849, 850, 851, 852, 853, 854, 855, 856, 217, - 218, 219, 220, 221, 222, 857, 858, 859, 860, 861, - 862, 863, 223, 864, 865, 866, 867, 868, 869, 870, - 224, 225, 871, 226, 227, 872, 228, 229, 873, 874, - 230, 231, 232, 233, 234, 235, 236, 237, 875, 876, - 877, 238, 878, 879, 880, 881, 882, 883, 884, 885, - 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, - 896, 897, 898, 899, 900, 901, 902, 903, 904, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 493, 478, 450, 582, 451, 452, 465, 622, 623, + 585, 3, 4, 627, 628, 466, 467, 609, 610, 611, + 612, 613, 614, 629, 493, 588, 589, 590, 591, 592, + 593, 594, 595, 596, 597, 630, 631, 632, 479, 480, + 633, 634, 635, 636, 637, 638, 5, 639, 640, 641, + 642, 643, 6, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 481, 654, 655, 453, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, + 556, 557, 558, 559, 560, 561, 526, 527, 528, 529, + 530, 531, 532, 533, 656, 657, 7, 454, 658, 659, + 468, 660, 469, 661, 662, 663, 455, 664, 665, 666, + 667, 668, 8, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 686, 687, 688, 689, 690, 691, 692, 482, 483, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 9, + 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, + 723, 724, 725, 726, 727, 728, 729, 484, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 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, 10, 495, + 496, 497, 770, 771, 772, 773, 774, 775, 776, 500, + 777, 778, 779, 780, 781, 456, 11, 782, 470, 783, + 494, 784, 495, 496, 497, 498, 499, 510, 511, 512, + 513, 514, 500, 12, 785, 786, 787, 788, 789, 790, + 791, 792, 13, 793, 794, 795, 796, 797, 798, 799, + 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, + 810, 811, 812, 813, 814, 815, 14, 816, 817, 818, + 15, 819, 820, 821, 0, 822, 16, 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, 823, + 824, 825, 826, 77, 78, 79, 827, 828, 829, 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, + 830, 831, 832, 833, 834, 835, 836, 837, 838, 121, + 122, 123, 839, 124, 125, 126, 840, 841, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 842, 843, 844, 151, 152, 153, 154, 155, + 156, 157, 845, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 846, 847, 848, 849, 850, 851, 852, + 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, + 863, 864, 865, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 866, 207, 867, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, + 878, 223, 224, 225, 226, 227, 228, 879, 880, 881, + 882, 883, 884, 885, 229, 886, 887, 888, 889, 890, + 891, 892, 230, 231, 893, 232, 233, 894, 234, 235, + 895, 896, 236, 237, 238, 239, 240, 241, 242, 243, + 897, 898, 899, 244, 900, 901, 902, 903, 904, 905, + 906, 907, 245, 246, 908, 909, 910, 911, 912, 913, + 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, + 924, 925, 926, 927, 928, 929, 0, 0, 0, 521, + 522, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 505, 506, 507, 508, - 509 + 0, 0, 0, 523, 524, 525 }; static const yytype_int16 yycheck[] = { - 0, 45, 45, 45, 113, 47, 48, 291, 45, 281, - 282, 11, 12, 10, 10, 10, 53, 54, 248, 249, - 250, 251, 252, 253, 45, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 10, 10, 10, 81, 82, + 0, 45, 45, 45, 113, 47, 48, 45, 287, 288, + 297, 11, 12, 10, 10, 53, 54, 254, 255, 256, + 257, 258, 259, 10, 45, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 10, 10, 10, 81, 82, 10, 10, 10, 10, 10, 10, 46, 10, 10, 10, 10, 10, 52, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 106, 10, 10, 108, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 97, 98, 99, 100, + 10, 10, 10, 106, 10, 10, 108, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 97, 98, 99, 100, 101, 102, 103, 104, 10, 10, 96, 139, 10, 10, - 142, 138, 10, 140, 10, 10, 10, 10, 10, 10, + 138, 10, 140, 10, 10, 10, 148, 10, 10, 10, 10, 10, 112, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 174, 175, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 180, 181, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 153, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 159, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 214, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 220, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 212, 257, 258, 259, 10, 10, 10, 10, - 10, 10, 10, 267, 10, 10, 10, 10, 10, 271, - 230, 10, 10, 270, 255, 10, 257, 258, 259, 260, - 261, 285, 286, 287, 288, 289, 267, 247, 10, 10, - 10, 10, 10, 10, 10, 10, 256, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 218, 263, + 264, 265, 10, 10, 10, 10, 10, 10, 10, 273, + 10, 10, 10, 10, 10, 277, 236, 10, 276, 10, + 261, 10, 263, 264, 265, 266, 267, 291, 292, 293, + 294, 295, 273, 253, 10, 10, 10, 10, 10, 10, + 10, 10, 262, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 286, 10, 10, 10, + 290, 10, 10, 10, -1, 10, 296, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 10, + 10, 10, 10, 49, 50, 51, 10, 10, 10, 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, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 105, + 106, 107, 10, 109, 110, 111, 10, 10, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 10, 10, 10, 141, 142, 143, 144, 145, + 146, 147, 10, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 280, 10, 10, 10, 284, 10, 10, 10, -1, 10, - 290, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 10, 10, 10, 10, 49, 50, 51, - 10, 10, 10, 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, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 105, 106, 107, 10, 109, 110, 111, - 10, 10, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 10, 10, 10, 141, - 10, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 10, 219, 10, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 10, 213, 10, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 241, - 242, 243, 244, 245, 246, 10, 10, 10, 10, 10, - 10, 10, 254, 10, 10, 10, 10, 10, 10, 10, - 262, 263, 10, 265, 266, 10, 268, 269, 10, 10, - 272, 273, 274, 275, 276, 277, 278, 279, 10, 10, - 10, 283, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 247, 248, 249, 250, 251, 252, 10, 10, 10, + 10, 10, 10, 10, 260, 10, 10, 10, 10, 10, + 10, 10, 268, 269, 10, 271, 272, 10, 274, 275, + 10, 10, 278, 279, 280, 281, 282, 283, 284, 285, + 10, 10, 10, 289, 10, 10, 10, 10, 10, 10, + 10, 10, 298, 299, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, 10, -1, + 10, 10, 10, 10, 10, 10, -1, -1, -1, 37, + 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 37, 37, 37, 37, - 37 + -1, -1, -1, 37, 37, 37 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 293, 0, 11, 12, 46, 52, 96, 112, 153, - 212, 230, 247, 256, 280, 284, 290, 294, 295, 296, - 299, 302, 305, 308, 316, 536, 547, 569, 573, 581, - 594, 604, 297, 300, 303, 306, 309, 317, 537, 548, - 570, 574, 582, 595, 605, 13, 14, 15, 16, 17, + 0, 301, 0, 11, 12, 46, 52, 96, 112, 159, + 218, 236, 253, 262, 286, 290, 296, 302, 303, 304, + 307, 310, 313, 316, 324, 552, 563, 585, 589, 597, + 610, 620, 305, 308, 311, 314, 317, 325, 553, 564, + 586, 590, 598, 611, 621, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, @@ -1837,16 +1871,16 @@ static const yytype_uint16 yystos[] = 95, 105, 106, 107, 109, 110, 111, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 141, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 173, 174, 175, 176, 177, 178, 179, 180, + 137, 141, 142, 143, 144, 145, 146, 147, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, - 211, 213, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 241, 242, 243, - 244, 245, 246, 254, 262, 263, 265, 266, 268, 269, - 272, 273, 274, 275, 276, 277, 278, 279, 283, 298, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 211, 212, 213, 214, 215, 216, 217, 219, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 247, 248, 249, 250, 251, 252, 260, + 268, 269, 271, 272, 274, 275, 278, 279, 280, 281, + 282, 283, 284, 285, 289, 298, 299, 306, 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, @@ -1864,26 +1898,28 @@ static const yytype_uint16 yystos[] = 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 504, 505, 506, 507, 577, - 578, 579, 580, 603, 45, 47, 48, 108, 139, 142, - 271, 301, 508, 509, 510, 511, 512, 513, 514, 45, - 53, 54, 138, 140, 270, 304, 515, 516, 517, 518, - 519, 520, 45, 81, 82, 106, 174, 175, 214, 307, - 529, 530, 531, 532, 533, 534, 535, 45, 255, 257, - 258, 259, 260, 261, 267, 310, 521, 522, 523, 524, - 525, 526, 527, 528, 285, 286, 287, 288, 289, 311, - 312, 313, 314, 315, 318, 521, 522, 523, 524, 525, - 97, 98, 99, 100, 101, 102, 103, 104, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 549, 550, 551, 552, - 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, - 563, 564, 565, 566, 567, 568, 113, 571, 572, 291, - 575, 576, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 583, 584, 585, 586, 587, 588, 589, 590, - 591, 592, 593, 248, 249, 250, 251, 252, 253, 596, - 597, 598, 599, 600, 601, 602, 281, 282, 606, 607, - 608, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 593, 594, 595, 596, 619, + 45, 47, 48, 108, 139, 148, 277, 309, 524, 525, + 526, 527, 528, 529, 530, 45, 53, 54, 138, 140, + 276, 312, 531, 532, 533, 534, 535, 536, 45, 81, + 82, 106, 180, 181, 220, 315, 545, 546, 547, 548, + 549, 550, 551, 45, 261, 263, 264, 265, 266, 267, + 273, 318, 537, 538, 539, 540, 541, 542, 543, 544, + 291, 292, 293, 294, 295, 319, 320, 321, 322, 323, + 326, 537, 538, 539, 540, 541, 97, 98, 99, 100, + 101, 102, 103, 104, 554, 555, 556, 557, 558, 559, + 560, 561, 562, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 113, 587, 588, 297, 591, 592, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 599, 600, + 601, 602, 603, 604, 605, 606, 607, 608, 609, 254, + 255, 256, 257, 258, 259, 612, 613, 614, 615, 616, + 617, 618, 287, 288, 622, 623, 624, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, @@ -1912,41 +1948,41 @@ static const yytype_uint16 yystos[] = 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10 + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 292, 293, 293, 294, 294, 294, 294, 294, 294, - 294, 294, 294, 294, 294, 294, 294, 294, 295, 296, - 297, 297, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 299, 300, 300, 301, - 301, 301, 301, 301, 301, 301, 302, 303, 303, 304, - 304, 304, 304, 304, 304, 305, 306, 306, 307, 307, - 307, 307, 307, 307, 307, 308, 309, 309, 310, 310, - 310, 310, 310, 310, 310, 310, 311, 312, 313, 314, - 315, 316, 317, 317, 318, 318, 318, 318, 318, 318, + 0, 300, 301, 301, 302, 302, 302, 302, 302, 302, + 302, 302, 302, 302, 302, 302, 302, 302, 303, 304, + 305, 305, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, + 306, 306, 306, 306, 307, 308, 308, 309, 309, 309, + 309, 309, 309, 309, 310, 311, 311, 312, 312, 312, + 312, 312, 312, 313, 314, 314, 315, 315, 315, 315, + 315, 315, 315, 316, 317, 317, 318, 318, 318, 318, 318, 318, 318, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 325, 325, 326, 326, 326, 326, 326, 326, 326, 326, + 326, 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, @@ -1967,19 +2003,20 @@ static const yytype_uint16 yyr1[] = 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 537, 538, 538, 538, 538, 538, 538, - 538, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 548, 549, 549, 549, 549, 549, 549, 549, - 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, - 549, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 570, 571, 572, 573, 574, 574, 575, - 576, 577, 578, 579, 580, 581, 582, 582, 583, 583, - 583, 583, 583, 583, 583, 583, 583, 583, 584, 585, - 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, - 595, 596, 596, 596, 596, 596, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 605, 606, 606, 607, - 608 + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 553, + 554, 554, 554, 554, 554, 554, 554, 554, 555, 556, + 557, 558, 559, 560, 561, 562, 563, 564, 564, 565, + 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, + 565, 565, 565, 565, 565, 565, 565, 565, 566, 567, + 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 586, + 587, 588, 589, 590, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 598, 599, 599, 599, 599, 599, 599, + 599, 599, 599, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 611, 612, 612, 612, + 612, 612, 612, 613, 614, 615, 616, 617, 618, 619, + 620, 621, 621, 622, 622, 623, 624 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2006,14 +2043,14 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 2, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 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, 1, + 2, 0, 1, 1, 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, @@ -2024,29 +2061,30 @@ static const yytype_uint8 yyr2[] = 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, 3, 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, 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, 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, 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, + 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, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 1, 2, 0, 1, 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, 1, 2, 2, 2, - 2, 2, 2, 3, 1, 2, 0, 1, 1, 2, - 2 + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, + 1, 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, 1, 2, 2, 2, 2, 2, 2, 3, + 1, 2, 0, 1, 1, 2, 2 }; @@ -2731,23 +2769,23 @@ yyreduce: switch (yyn) { case 18: -#line 191 "util/configparser.y" +#line 194 "util/configparser.y" { OUTYY(("\nP(force-toplevel)\n")); } -#line 2739 "util/configparser.c" +#line 2777 "util/configparser.c" break; case 19: -#line 197 "util/configparser.y" +#line 200 "util/configparser.y" { OUTYY(("\nP(server:)\n")); } -#line 2747 "util/configparser.c" +#line 2785 "util/configparser.c" break; - case 216: -#line 291 "util/configparser.y" + case 224: +#line 298 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2758,11 +2796,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2762 "util/configparser.c" +#line 2800 "util/configparser.c" break; - case 226: -#line 308 "util/configparser.y" + case 234: +#line 315 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2773,11 +2811,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2777 "util/configparser.c" +#line 2815 "util/configparser.c" break; - case 235: -#line 325 "util/configparser.y" + case 243: +#line 332 "util/configparser.y" { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2790,11 +2828,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2794 "util/configparser.c" +#line 2832 "util/configparser.c" break; - case 245: -#line 344 "util/configparser.y" + case 253: +#line 351 "util/configparser.y" { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -2810,11 +2848,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2814 "util/configparser.c" +#line 2852 "util/configparser.c" break; - case 256: -#line 368 "util/configparser.y" + case 264: +#line 375 "util/configparser.y" { uint8_t* bitlist; size_t len = 0; @@ -2831,11 +2869,11 @@ yyreduce: } } -#line 2835 "util/configparser.c" +#line 2873 "util/configparser.c" break; - case 257: -#line 387 "util/configparser.y" + case 265: +#line 394 "util/configparser.y" { OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && @@ -2850,21 +2888,21 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 2854 "util/configparser.c" +#line 2892 "util/configparser.c" break; - case 258: -#line 404 "util/configparser.y" + case 266: +#line 411 "util/configparser.y" { OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_cname); cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); } -#line 2864 "util/configparser.c" +#line 2902 "util/configparser.c" break; - case 259: -#line 412 "util/configparser.y" + case 267: +#line 419 "util/configparser.y" { OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -2872,21 +2910,21 @@ yyreduce: else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2876 "util/configparser.c" +#line 2914 "util/configparser.c" break; - case 260: -#line 422 "util/configparser.y" + case 268: +#line 429 "util/configparser.y" { OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_log_name); cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); } -#line 2886 "util/configparser.c" +#line 2924 "util/configparser.c" break; - case 261: -#line 430 "util/configparser.y" + case 269: +#line 437 "util/configparser.y" { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); @@ -2902,11 +2940,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2906 "util/configparser.c" +#line 2944 "util/configparser.c" break; - case 274: -#line 453 "util/configparser.y" + case 282: +#line 460 "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) @@ -2914,11 +2952,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2918 "util/configparser.c" +#line 2956 "util/configparser.c" break; - case 275: -#line 462 "util/configparser.y" + case 283: +#line 469 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2926,11 +2964,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2930 "util/configparser.c" +#line 2968 "util/configparser.c" break; - case 276: -#line 471 "util/configparser.y" + case 284: +#line 478 "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) @@ -2940,11 +2978,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2944 "util/configparser.c" +#line 2982 "util/configparser.c" break; - case 277: -#line 482 "util/configparser.y" + case 285: +#line 489 "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) @@ -2952,11 +2990,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2956 "util/configparser.c" +#line 2994 "util/configparser.c" break; - case 278: -#line 491 "util/configparser.y" + case 286: +#line 498 "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) @@ -2964,11 +3002,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2968 "util/configparser.c" +#line 3006 "util/configparser.c" break; - case 279: -#line 500 "util/configparser.y" + case 287: +#line 507 "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) @@ -2976,11 +3014,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2980 "util/configparser.c" +#line 3018 "util/configparser.c" break; - case 280: -#line 509 "util/configparser.y" + case 288: +#line 516 "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) @@ -2990,11 +3028,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2994 "util/configparser.c" +#line 3032 "util/configparser.c" break; - case 281: -#line 520 "util/configparser.y" + case 289: +#line 527 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3002,11 +3040,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3006 "util/configparser.c" +#line 3044 "util/configparser.c" break; - case 282: -#line 529 "util/configparser.y" + case 290: +#line 536 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -3017,11 +3055,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3021 "util/configparser.c" +#line 3059 "util/configparser.c" break; - case 283: -#line 541 "util/configparser.y" + case 291: +#line 548 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -3033,11 +3071,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3037 "util/configparser.c" +#line 3075 "util/configparser.c" break; - case 284: -#line 555 "util/configparser.y" + case 292: +#line 562 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -3051,11 +3089,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3055 "util/configparser.c" +#line 3093 "util/configparser.c" break; - case 285: -#line 570 "util/configparser.y" + case 293: +#line 577 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -3065,11 +3103,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3069 "util/configparser.c" +#line 3107 "util/configparser.c" break; - case 286: -#line 581 "util/configparser.y" + case 294: +#line 588 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3085,11 +3123,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3089 "util/configparser.c" +#line 3127 "util/configparser.c" break; - case 287: -#line 598 "util/configparser.y" + case 295: +#line 605 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3105,11 +3143,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3109 "util/configparser.c" +#line 3147 "util/configparser.c" break; - case 288: -#line 615 "util/configparser.y" + case 296: +#line 622 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3125,11 +3163,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3129 "util/configparser.c" +#line 3167 "util/configparser.c" break; - case 289: -#line 632 "util/configparser.y" + case 297: +#line 639 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3145,11 +3183,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3149 "util/configparser.c" +#line 3187 "util/configparser.c" break; - case 290: -#line 649 "util/configparser.y" + case 298: +#line 656 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); @@ -3163,11 +3201,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3167 "util/configparser.c" +#line 3205 "util/configparser.c" break; - case 291: -#line 664 "util/configparser.y" + case 299: +#line 671 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); @@ -3181,11 +3219,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3185 "util/configparser.c" +#line 3223 "util/configparser.c" break; - case 292: -#line 679 "util/configparser.y" + case 300: +#line 686 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -3197,11 +3235,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3201 "util/configparser.c" +#line 3239 "util/configparser.c" break; - case 293: -#line 692 "util/configparser.y" + case 301: +#line 699 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -3215,11 +3253,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3219 "util/configparser.c" +#line 3257 "util/configparser.c" break; - case 294: -#line 707 "util/configparser.y" + case 302: +#line 714 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3227,11 +3265,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3231 "util/configparser.c" +#line 3269 "util/configparser.c" break; - case 295: -#line 716 "util/configparser.y" + case 303: +#line 723 "util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -3239,11 +3277,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3243 "util/configparser.c" +#line 3281 "util/configparser.c" break; - case 296: -#line 725 "util/configparser.y" + case 304: +#line 732 "util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -3251,11 +3289,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3255 "util/configparser.c" +#line 3293 "util/configparser.c" break; - case 297: -#line 734 "util/configparser.y" + case 305: +#line 741 "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) @@ -3263,11 +3301,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3267 "util/configparser.c" +#line 3305 "util/configparser.c" break; - case 298: -#line 743 "util/configparser.y" + case 306: +#line 750 "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) @@ -3275,11 +3313,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3279 "util/configparser.c" +#line 3317 "util/configparser.c" break; - case 299: -#line 752 "util/configparser.y" + case 307: +#line 759 "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) @@ -3287,11 +3325,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3291 "util/configparser.c" +#line 3329 "util/configparser.c" break; - case 300: -#line 761 "util/configparser.y" + case 308: +#line 768 "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) @@ -3299,11 +3337,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3303 "util/configparser.c" +#line 3341 "util/configparser.c" break; - case 301: -#line 770 "util/configparser.y" + case 309: +#line 777 "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) @@ -3311,11 +3349,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3315 "util/configparser.c" +#line 3353 "util/configparser.c" break; - case 302: -#line 779 "util/configparser.y" + case 310: +#line 786 "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) @@ -3323,11 +3361,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3327 "util/configparser.c" +#line 3365 "util/configparser.c" break; - case 303: -#line 788 "util/configparser.y" + case 311: +#line 795 "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) @@ -3335,11 +3373,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3339 "util/configparser.c" +#line 3377 "util/configparser.c" break; - case 304: -#line 797 "util/configparser.y" + case 312: +#line 804 "util/configparser.y" { OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3347,11 +3385,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3351 "util/configparser.c" +#line 3389 "util/configparser.c" break; - case 305: -#line 806 "util/configparser.y" + case 313: +#line 813 "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) @@ -3359,11 +3397,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3363 "util/configparser.c" +#line 3401 "util/configparser.c" break; - case 306: -#line 815 "util/configparser.y" + case 314: +#line 822 "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) @@ -3371,11 +3409,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3375 "util/configparser.c" +#line 3413 "util/configparser.c" break; - case 307: -#line 824 "util/configparser.y" + case 315: +#line 831 "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) @@ -3383,11 +3421,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3387 "util/configparser.c" +#line 3425 "util/configparser.c" break; - case 308: -#line 833 "util/configparser.y" + case 316: +#line 840 "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) @@ -3399,11 +3437,11 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3403 "util/configparser.c" +#line 3441 "util/configparser.c" break; - case 309: -#line 846 "util/configparser.y" + case 317: +#line 853 "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) @@ -3411,11 +3449,11 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3415 "util/configparser.c" +#line 3453 "util/configparser.c" break; - case 310: -#line 855 "util/configparser.y" + case 318: +#line 862 "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) @@ -3427,11 +3465,11 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3431 "util/configparser.c" +#line 3469 "util/configparser.c" break; - case 311: -#line 868 "util/configparser.y" + case 319: +#line 875 "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) @@ -3439,11 +3477,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3443 "util/configparser.c" +#line 3481 "util/configparser.c" break; - case 312: -#line 877 "util/configparser.y" + case 320: +#line 884 "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) @@ -3451,11 +3489,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3455 "util/configparser.c" +#line 3493 "util/configparser.c" break; - case 313: -#line 886 "util/configparser.y" + case 321: +#line 893 "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) @@ -3463,31 +3501,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3467 "util/configparser.c" +#line 3505 "util/configparser.c" break; - case 314: -#line 895 "util/configparser.y" + case 322: +#line 902 "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); } -#line 3477 "util/configparser.c" +#line 3515 "util/configparser.c" break; - case 315: -#line 902 "util/configparser.y" + case 323: +#line 909 "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); } -#line 3487 "util/configparser.c" +#line 3525 "util/configparser.c" break; - case 316: -#line 909 "util/configparser.y" + case 324: +#line 916 "util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3495,21 +3533,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3499 "util/configparser.c" +#line 3537 "util/configparser.c" break; - case 317: -#line 918 "util/configparser.y" + case 325: +#line 925 "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); } -#line 3509 "util/configparser.c" +#line 3547 "util/configparser.c" break; - case 318: -#line 925 "util/configparser.y" + case 326: +#line 932 "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) @@ -3517,53 +3555,53 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3521 "util/configparser.c" +#line 3559 "util/configparser.c" break; - case 319: -#line 934 "util/configparser.y" + case 327: +#line 941 "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"); } -#line 3532 "util/configparser.c" +#line 3570 "util/configparser.c" break; - case 320: -#line 942 "util/configparser.y" + case 328: +#line 949 "util/configparser.y" { OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphers); cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); } -#line 3542 "util/configparser.c" +#line 3580 "util/configparser.c" break; - case 321: -#line 949 "util/configparser.y" + case 329: +#line 956 "util/configparser.y" { OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphersuites); cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); } -#line 3552 "util/configparser.c" +#line 3590 "util/configparser.c" break; - case 322: -#line 956 "util/configparser.y" + case 330: +#line 963 "util/configparser.y" { OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3563 "util/configparser.c" +#line 3601 "util/configparser.c" break; - case 323: -#line 964 "util/configparser.y" + case 331: +#line 971 "util/configparser.y" { OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3571,11 +3609,90 @@ yyreduce: else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3575 "util/configparser.c" +#line 3613 "util/configparser.c" break; - case 324: -#line 973 "util/configparser.y" + case 332: +#line 980 "util/configparser.y" + { + OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0) + yyerror("port number expected"); + else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); + } +#line 3624 "util/configparser.c" + break; + + case 333: +#line 987 "util/configparser.y" + { + OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); + free(cfg_parser->cfg->http_endpoint); + if((yyvsp[0].str) && (yyvsp[0].str)[0] != '/') { + cfg_parser->cfg->http_endpoint = malloc(strlen((yyvsp[0].str))+2); + if(!cfg_parser->cfg->http_endpoint) + yyerror("out of memory"); + cfg_parser->cfg->http_endpoint[0] = '/'; + memmove(cfg_parser->cfg->http_endpoint+1, (yyvsp[0].str), + strlen((yyvsp[0].str))+1); + free((yyvsp[0].str)); + } else { + cfg_parser->cfg->http_endpoint = (yyvsp[0].str); + } + } +#line 3644 "util/configparser.c" + break; + + case 334: +#line 1003 "util/configparser.y" + { + OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("number expected"); + else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); + } +#line 3656 "util/configparser.c" + break; + + case 335: +#line 1011 "util/configparser.y" + { + OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), + &cfg_parser->cfg->http_query_buffer_size)) + yyerror("memory size expected"); + free((yyvsp[0].str)); + } +#line 3668 "util/configparser.c" + break; + + case 336: +#line 1019 "util/configparser.y" + { + OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); + if(!cfg_parse_memsize((yyvsp[0].str), + &cfg_parser->cfg->http_response_buffer_size)) + yyerror("memory size expected"); + free((yyvsp[0].str)); + } +#line 3680 "util/configparser.c" + break; + + case 337: +#line 1027 "util/configparser.y" + { + OUTYY(("P(server_http_nodelay:%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->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 3692 "util/configparser.c" + break; + + case 338: +#line 1035 "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) @@ -3583,11 +3700,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3587 "util/configparser.c" +#line 3704 "util/configparser.c" break; - case 325: -#line 982 "util/configparser.y" + case 339: +#line 1044 "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) @@ -3595,11 +3712,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3599 "util/configparser.c" +#line 3716 "util/configparser.c" break; - case 326: -#line 991 "util/configparser.y" + case 340: +#line 1053 "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) @@ -3612,11 +3729,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3616 "util/configparser.c" +#line 3733 "util/configparser.c" break; - case 327: -#line 1005 "util/configparser.y" + case 341: +#line 1067 "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) @@ -3624,11 +3741,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3628 "util/configparser.c" +#line 3745 "util/configparser.c" break; - case 328: -#line 1014 "util/configparser.y" + case 342: +#line 1076 "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) @@ -3636,11 +3753,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3640 "util/configparser.c" +#line 3757 "util/configparser.c" break; - case 329: -#line 1023 "util/configparser.y" + case 343: +#line 1085 "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) @@ -3648,11 +3765,11 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3652 "util/configparser.c" +#line 3769 "util/configparser.c" break; - case 330: -#line 1032 "util/configparser.y" + case 344: +#line 1094 "util/configparser.y" { OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3660,11 +3777,11 @@ yyreduce: else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3664 "util/configparser.c" +#line 3781 "util/configparser.c" break; - case 331: -#line 1041 "util/configparser.y" + case 345: +#line 1103 "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) @@ -3672,11 +3789,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3676 "util/configparser.c" +#line 3793 "util/configparser.c" break; - case 332: -#line 1050 "util/configparser.y" + case 346: +#line 1112 "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) @@ -3684,31 +3801,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3688 "util/configparser.c" +#line 3805 "util/configparser.c" break; - case 333: -#line 1059 "util/configparser.y" + case 347: +#line 1121 "util/configparser.y" { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 3698 "util/configparser.c" +#line 3815 "util/configparser.c" break; - case 334: -#line 1066 "util/configparser.y" + case 348: +#line 1128 "util/configparser.y" { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 3708 "util/configparser.c" +#line 3825 "util/configparser.c" break; - case 335: -#line 1073 "util/configparser.y" + case 349: +#line 1135 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3733,105 +3850,105 @@ yyreduce: } } } -#line 3737 "util/configparser.c" +#line 3854 "util/configparser.c" break; - case 336: -#line 1099 "util/configparser.y" + case 350: +#line 1161 "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; } -#line 3748 "util/configparser.c" +#line 3865 "util/configparser.c" break; - case 337: -#line 1107 "util/configparser.y" + case 351: +#line 1169 "util/configparser.y" { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 3758 "util/configparser.c" +#line 3875 "util/configparser.c" break; - case 338: -#line 1114 "util/configparser.y" + case 352: +#line 1176 "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"); } -#line 3768 "util/configparser.c" +#line 3885 "util/configparser.c" break; - case 339: -#line 1121 "util/configparser.y" + case 353: +#line 1183 "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); + log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); + free((yyvsp[0].str)); } -#line 3778 "util/configparser.c" +#line 3895 "util/configparser.c" break; - case 340: -#line 1128 "util/configparser.y" + case 354: +#line 1190 "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"); + log_warn("option dlv-anchor ignored: DLV is decommissioned"); + free((yyvsp[0].str)); } -#line 3788 "util/configparser.c" +#line 3905 "util/configparser.c" break; - case 341: -#line 1135 "util/configparser.y" + case 355: +#line 1197 "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"); } -#line 3799 "util/configparser.c" +#line 3916 "util/configparser.c" break; - case 342: -#line 1143 "util/configparser.y" + case 356: +#line 1205 "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"); } -#line 3810 "util/configparser.c" +#line 3927 "util/configparser.c" break; - case 343: -#line 1151 "util/configparser.y" + case 357: +#line 1213 "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"); } -#line 3821 "util/configparser.c" +#line 3938 "util/configparser.c" break; - case 344: -#line 1159 "util/configparser.y" + case 358: +#line 1221 "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"); } -#line 3831 "util/configparser.c" +#line 3948 "util/configparser.c" break; - case 345: -#line 1166 "util/configparser.y" + case 359: +#line 1228 "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) @@ -3841,11 +3958,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3845 "util/configparser.c" +#line 3962 "util/configparser.c" break; - case 346: -#line 1177 "util/configparser.y" + case 360: +#line 1239 "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) @@ -3855,21 +3972,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3859 "util/configparser.c" +#line 3976 "util/configparser.c" break; - case 347: -#line 1188 "util/configparser.y" + case 361: +#line 1250 "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"); } -#line 3869 "util/configparser.c" +#line 3986 "util/configparser.c" break; - case 348: -#line 1195 "util/configparser.y" + case 362: +#line 1257 "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) @@ -3877,11 +3994,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3881 "util/configparser.c" +#line 3998 "util/configparser.c" break; - case 349: -#line 1204 "util/configparser.y" + case 363: +#line 1266 "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) @@ -3889,11 +4006,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3893 "util/configparser.c" +#line 4010 "util/configparser.c" break; - case 350: -#line 1213 "util/configparser.y" + case 364: +#line 1275 "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) @@ -3901,53 +4018,53 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3905 "util/configparser.c" +#line 4022 "util/configparser.c" break; - case 351: -#line 1222 "util/configparser.y" + case 365: +#line 1284 "util/configparser.y" { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 3915 "util/configparser.c" +#line 4032 "util/configparser.c" break; - case 352: -#line 1229 "util/configparser.y" + case 366: +#line 1291 "util/configparser.y" { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 3925 "util/configparser.c" +#line 4042 "util/configparser.c" break; - case 353: -#line 1236 "util/configparser.y" + case 367: +#line 1298 "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)); } -#line 3936 "util/configparser.c" +#line 4053 "util/configparser.c" break; - case 354: -#line 1244 "util/configparser.y" + case 368: +#line 1306 "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)); } -#line 3947 "util/configparser.c" +#line 4064 "util/configparser.c" break; - case 355: -#line 1252 "util/configparser.y" + case 369: +#line 1314 "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) @@ -3956,11 +4073,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3960 "util/configparser.c" +#line 4077 "util/configparser.c" break; - case 356: -#line 1262 "util/configparser.y" + case 370: +#line 1324 "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) @@ -3969,11 +4086,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3973 "util/configparser.c" +#line 4090 "util/configparser.c" break; - case 357: -#line 1272 "util/configparser.y" + case 371: +#line 1334 "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) @@ -3982,11 +4099,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3986 "util/configparser.c" +#line 4103 "util/configparser.c" break; - case 358: -#line 1282 "util/configparser.y" + case 372: +#line 1344 "util/configparser.y" { OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3999,22 +4116,22 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4003 "util/configparser.c" +#line 4120 "util/configparser.c" break; - case 359: -#line 1296 "util/configparser.y" + case 373: +#line 1358 "util/configparser.y" { OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4014 "util/configparser.c" +#line 4131 "util/configparser.c" break; - case 360: -#line 1304 "util/configparser.y" + case 374: +#line 1366 "util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4026,11 +4143,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4030 "util/configparser.c" +#line 4147 "util/configparser.c" break; - case 361: -#line 1317 "util/configparser.y" + case 375: +#line 1379 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4040,22 +4157,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4044 "util/configparser.c" +#line 4161 "util/configparser.c" break; - case 362: -#line 1328 "util/configparser.y" + case 376: +#line 1390 "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)); } -#line 4055 "util/configparser.c" +#line 4172 "util/configparser.c" break; - case 363: -#line 1336 "util/configparser.y" + case 377: +#line 1398 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4067,11 +4184,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4071 "util/configparser.c" +#line 4188 "util/configparser.c" break; - case 364: -#line 1349 "util/configparser.y" + case 378: +#line 1411 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4079,11 +4196,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4083 "util/configparser.c" +#line 4200 "util/configparser.c" break; - case 365: -#line 1358 "util/configparser.y" + case 379: +#line 1420 "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) @@ -4091,11 +4208,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4095 "util/configparser.c" +#line 4212 "util/configparser.c" break; - case 366: -#line 1367 "util/configparser.y" + case 380: +#line 1429 "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) @@ -4103,11 +4220,11 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4107 "util/configparser.c" +#line 4224 "util/configparser.c" break; - case 367: -#line 1376 "util/configparser.y" + case 381: +#line 1438 "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) @@ -4116,11 +4233,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4120 "util/configparser.c" +#line 4237 "util/configparser.c" break; - case 368: -#line 1386 "util/configparser.y" + case 382: +#line 1448 "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) @@ -4129,22 +4246,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4133 "util/configparser.c" +#line 4250 "util/configparser.c" break; - case 369: -#line 1396 "util/configparser.y" + case 383: +#line 1458 "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)); } -#line 4144 "util/configparser.c" +#line 4261 "util/configparser.c" break; - case 370: -#line 1404 "util/configparser.y" + case 384: +#line 1466 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4156,11 +4273,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4160 "util/configparser.c" +#line 4277 "util/configparser.c" break; - case 371: -#line 1417 "util/configparser.y" + case 385: +#line 1479 "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) @@ -4168,22 +4285,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4172 "util/configparser.c" +#line 4289 "util/configparser.c" break; - case 372: -#line 1426 "util/configparser.y" + case 386: +#line 1488 "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)); } -#line 4183 "util/configparser.c" +#line 4300 "util/configparser.c" break; - case 373: -#line 1434 "util/configparser.y" + case 387: +#line 1496 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4191,22 +4308,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4195 "util/configparser.c" +#line 4312 "util/configparser.c" break; - case 374: -#line 1443 "util/configparser.y" + case 388: +#line 1505 "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)); } -#line 4206 "util/configparser.c" +#line 4323 "util/configparser.c" break; - case 375: -#line 1451 "util/configparser.y" + case 389: +#line 1513 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4218,11 +4335,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4222 "util/configparser.c" +#line 4339 "util/configparser.c" break; - case 376: -#line 1464 "util/configparser.y" + case 390: +#line 1526 "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) @@ -4230,21 +4347,21 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4234 "util/configparser.c" +#line 4351 "util/configparser.c" break; - case 377: -#line 1473 "util/configparser.y" + case 391: +#line 1535 "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); } -#line 4244 "util/configparser.c" +#line 4361 "util/configparser.c" break; - case 378: -#line 1480 "util/configparser.y" + case 392: +#line 1542 "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) @@ -4253,11 +4370,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4257 "util/configparser.c" +#line 4374 "util/configparser.c" break; - case 379: -#line 1490 "util/configparser.y" + case 393: +#line 1552 "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) @@ -4266,11 +4383,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4270 "util/configparser.c" +#line 4387 "util/configparser.c" break; - case 380: -#line 1500 "util/configparser.y" + case 394: +#line 1562 "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) @@ -4279,11 +4396,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4283 "util/configparser.c" +#line 4400 "util/configparser.c" break; - case 381: -#line 1510 "util/configparser.y" + case 395: +#line 1572 "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) @@ -4292,11 +4409,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4296 "util/configparser.c" +#line 4413 "util/configparser.c" break; - case 382: -#line 1520 "util/configparser.y" + case 396: +#line 1582 "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) @@ -4305,11 +4422,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4309 "util/configparser.c" +#line 4426 "util/configparser.c" break; - case 383: -#line 1530 "util/configparser.y" + case 397: +#line 1592 "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) @@ -4318,11 +4435,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4322 "util/configparser.c" +#line 4439 "util/configparser.c" break; - case 384: -#line 1540 "util/configparser.y" + case 398: +#line 1602 "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) @@ -4331,11 +4448,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4335 "util/configparser.c" +#line 4452 "util/configparser.c" break; - case 385: -#line 1550 "util/configparser.y" + case 399: +#line 1612 "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) @@ -4344,41 +4461,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4348 "util/configparser.c" +#line 4465 "util/configparser.c" break; - case 386: -#line 1560 "util/configparser.y" + case 400: +#line 1622 "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"); } -#line 4358 "util/configparser.c" +#line 4475 "util/configparser.c" break; - case 387: -#line 1567 "util/configparser.y" + case 401: +#line 1629 "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"); } -#line 4368 "util/configparser.c" +#line 4485 "util/configparser.c" break; - case 388: -#line 1574 "util/configparser.y" + case 402: +#line 1636 "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"); } -#line 4378 "util/configparser.c" +#line 4495 "util/configparser.c" break; - case 389: -#line 1581 "util/configparser.y" + case 403: +#line 1643 "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) @@ -4386,11 +4503,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4390 "util/configparser.c" +#line 4507 "util/configparser.c" break; - case 390: -#line 1590 "util/configparser.y" + case 404: +#line 1652 "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) @@ -4398,11 +4515,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4402 "util/configparser.c" +#line 4519 "util/configparser.c" break; - case 391: -#line 1599 "util/configparser.y" + case 405: +#line 1661 "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) @@ -4410,11 +4527,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4414 "util/configparser.c" +#line 4531 "util/configparser.c" break; - case 392: -#line 1608 "util/configparser.y" + case 406: +#line 1670 "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) @@ -4422,21 +4539,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4426 "util/configparser.c" +#line 4543 "util/configparser.c" break; - case 393: -#line 1617 "util/configparser.y" + case 407: +#line 1679 "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"); } -#line 4436 "util/configparser.c" +#line 4553 "util/configparser.c" break; - case 394: -#line 1624 "util/configparser.y" + case 408: +#line 1686 "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) @@ -4445,11 +4562,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4449 "util/configparser.c" +#line 4566 "util/configparser.c" break; - case 395: -#line 1634 "util/configparser.y" + case 409: +#line 1696 "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 && @@ -4468,21 +4585,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 4472 "util/configparser.c" +#line 4589 "util/configparser.c" break; - case 396: -#line 1654 "util/configparser.y" + case 410: +#line 1716 "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); } -#line 4482 "util/configparser.c" +#line 4599 "util/configparser.c" break; - case 397: -#line 1661 "util/configparser.y" + case 411: +#line 1723 "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) { @@ -4499,11 +4616,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4503 "util/configparser.c" +#line 4620 "util/configparser.c" break; - case 398: -#line 1679 "util/configparser.y" + case 412: +#line 1741 "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) { @@ -4515,11 +4632,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4519 "util/configparser.c" +#line 4636 "util/configparser.c" break; - case 399: -#line 1692 "util/configparser.y" + case 413: +#line 1754 "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) { @@ -4531,11 +4648,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4535 "util/configparser.c" +#line 4652 "util/configparser.c" break; - case 400: -#line 1705 "util/configparser.y" + case 414: +#line 1767 "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) @@ -4543,11 +4660,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4547 "util/configparser.c" +#line 4664 "util/configparser.c" break; - case 401: -#line 1714 "util/configparser.y" + case 415: +#line 1776 "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) @@ -4555,11 +4672,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4559 "util/configparser.c" +#line 4676 "util/configparser.c" break; - case 402: -#line 1723 "util/configparser.y" + case 416: +#line 1785 "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) @@ -4567,11 +4684,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4571 "util/configparser.c" +#line 4688 "util/configparser.c" break; - case 403: -#line 1732 "util/configparser.y" + case 417: +#line 1794 "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) @@ -4579,11 +4696,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4583 "util/configparser.c" +#line 4700 "util/configparser.c" break; - case 404: -#line 1741 "util/configparser.y" + case 418: +#line 1803 "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) @@ -4592,11 +4709,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4596 "util/configparser.c" +#line 4713 "util/configparser.c" break; - case 405: -#line 1751 "util/configparser.y" + case 419: +#line 1813 "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) @@ -4605,11 +4722,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4609 "util/configparser.c" +#line 4726 "util/configparser.c" break; - case 406: -#line 1761 "util/configparser.y" + case 420: +#line 1823 "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) @@ -4619,11 +4736,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4623 "util/configparser.c" +#line 4740 "util/configparser.c" break; - case 407: -#line 1772 "util/configparser.y" + case 421: +#line 1834 "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) @@ -4631,11 +4748,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4635 "util/configparser.c" +#line 4752 "util/configparser.c" break; - case 408: -#line 1781 "util/configparser.y" + case 422: +#line 1843 "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) @@ -4643,11 +4760,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4647 "util/configparser.c" +#line 4764 "util/configparser.c" break; - case 409: -#line 1790 "util/configparser.y" + case 423: +#line 1852 "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) @@ -4655,11 +4772,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4659 "util/configparser.c" +#line 4776 "util/configparser.c" break; - case 410: -#line 1799 "util/configparser.y" + case 424: +#line 1861 "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) @@ -4667,11 +4784,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4671 "util/configparser.c" +#line 4788 "util/configparser.c" break; - case 411: -#line 1808 "util/configparser.y" + case 425: +#line 1870 "util/configparser.y" { OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4679,11 +4796,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4683 "util/configparser.c" +#line 4800 "util/configparser.c" break; - case 412: -#line 1817 "util/configparser.y" + case 426: +#line 1879 "util/configparser.y" { OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -4691,11 +4808,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4695 "util/configparser.c" +#line 4812 "util/configparser.c" break; - case 413: -#line 1826 "util/configparser.y" + case 427: +#line 1888 "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) @@ -4707,11 +4824,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4711 "util/configparser.c" +#line 4828 "util/configparser.c" break; - case 414: -#line 1839 "util/configparser.y" + case 428: +#line 1901 "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) @@ -4723,11 +4840,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4727 "util/configparser.c" +#line 4844 "util/configparser.c" break; - case 415: -#line 1852 "util/configparser.y" + case 429: +#line 1914 "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) @@ -4735,21 +4852,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4739 "util/configparser.c" +#line 4856 "util/configparser.c" break; - case 416: -#line 1861 "util/configparser.y" + case 430: +#line 1923 "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); } -#line 4749 "util/configparser.c" +#line 4866 "util/configparser.c" break; - case 417: -#line 1868 "util/configparser.y" + case 431: +#line 1930 "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) @@ -4757,11 +4874,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4761 "util/configparser.c" +#line 4878 "util/configparser.c" break; - case 418: -#line 1877 "util/configparser.y" + case 432: +#line 1939 "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) @@ -4769,11 +4886,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4773 "util/configparser.c" +#line 4890 "util/configparser.c" break; - case 419: -#line 1886 "util/configparser.y" + case 433: +#line 1948 "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) @@ -4781,11 +4898,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4785 "util/configparser.c" +#line 4902 "util/configparser.c" break; - case 420: -#line 1895 "util/configparser.y" + case 434: +#line 1957 "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) @@ -4794,22 +4911,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4798 "util/configparser.c" +#line 4915 "util/configparser.c" break; - case 421: -#line 1904 "util/configparser.y" + case 435: +#line 1966 "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)); } -#line 4809 "util/configparser.c" +#line 4926 "util/configparser.c" break; - case 422: -#line 1912 "util/configparser.y" + case 436: +#line 1974 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4821,22 +4938,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4825 "util/configparser.c" +#line 4942 "util/configparser.c" break; - case 423: -#line 1925 "util/configparser.y" + case 437: +#line 1987 "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)); } -#line 4836 "util/configparser.c" +#line 4953 "util/configparser.c" break; - case 424: -#line 1933 "util/configparser.y" + case 438: +#line 1995 "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 && @@ -4876,21 +4993,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4880 "util/configparser.c" +#line 4997 "util/configparser.c" break; - case 425: -#line 1974 "util/configparser.y" + case 439: +#line 2036 "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"); } -#line 4890 "util/configparser.c" +#line 5007 "util/configparser.c" break; - case 426: -#line 1981 "util/configparser.y" + case 440: +#line 2043 "util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -4904,11 +5021,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 4908 "util/configparser.c" +#line 5025 "util/configparser.c" break; - case 427: -#line 1996 "util/configparser.y" + case 441: +#line 2058 "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) @@ -4917,11 +5034,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4921 "util/configparser.c" +#line 5038 "util/configparser.c" break; - case 428: -#line 2006 "util/configparser.y" + case 442: +#line 2068 "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) @@ -4930,41 +5047,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4934 "util/configparser.c" +#line 5051 "util/configparser.c" break; - case 429: -#line 2016 "util/configparser.y" + case 443: +#line 2078 "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)); } -#line 4944 "util/configparser.c" +#line 5061 "util/configparser.c" break; - case 430: -#line 2023 "util/configparser.y" + case 444: +#line 2085 "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)); } -#line 4954 "util/configparser.c" +#line 5071 "util/configparser.c" break; - case 431: -#line 2030 "util/configparser.y" + case 445: +#line 2092 "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); } -#line 4964 "util/configparser.c" +#line 5081 "util/configparser.c" break; - case 432: -#line 2037 "util/configparser.y" + case 446: +#line 2099 "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) @@ -4972,22 +5089,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4976 "util/configparser.c" +#line 5093 "util/configparser.c" break; - case 433: -#line 2046 "util/configparser.y" + case 447: +#line 2108 "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"); } -#line 4987 "util/configparser.c" +#line 5104 "util/configparser.c" break; - case 434: -#line 2054 "util/configparser.y" + case 448: +#line 2116 "util/configparser.y" { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -5000,11 +5117,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5004 "util/configparser.c" +#line 5121 "util/configparser.c" break; - case 435: -#line 2068 "util/configparser.y" + case 449: +#line 2130 "util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5024,11 +5141,11 @@ yyreduce: } } } -#line 5028 "util/configparser.c" +#line 5145 "util/configparser.c" break; - case 436: -#line 2089 "util/configparser.y" + case 450: +#line 2151 "util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5048,11 +5165,11 @@ yyreduce: } } } -#line 5052 "util/configparser.c" +#line 5169 "util/configparser.c" break; - case 437: -#line 2110 "util/configparser.y" + case 451: +#line 2172 "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, @@ -5063,11 +5180,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5067 "util/configparser.c" +#line 5184 "util/configparser.c" break; - case 438: -#line 2122 "util/configparser.y" + case 452: +#line 2184 "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, @@ -5078,11 +5195,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5082 "util/configparser.c" +#line 5199 "util/configparser.c" break; - case 439: -#line 2134 "util/configparser.y" + case 453: +#line 2196 "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, @@ -5093,11 +5210,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5097 "util/configparser.c" +#line 5214 "util/configparser.c" break; - case 440: -#line 2146 "util/configparser.y" + case 454: +#line 2208 "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, @@ -5105,11 +5222,11 @@ yyreduce: yyerror("out of memory"); } } -#line 5109 "util/configparser.c" +#line 5226 "util/configparser.c" break; - case 441: -#line 2155 "util/configparser.y" + case 455: +#line 2217 "util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5129,11 +5246,11 @@ yyreduce: } } } -#line 5133 "util/configparser.c" +#line 5250 "util/configparser.c" break; - case 442: -#line 2176 "util/configparser.y" + case 456: +#line 2238 "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) @@ -5141,11 +5258,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5145 "util/configparser.c" +#line 5262 "util/configparser.c" break; - case 443: -#line 2186 "util/configparser.y" + case 457: +#line 2248 "util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5153,33 +5270,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5157 "util/configparser.c" +#line 5274 "util/configparser.c" break; - case 444: -#line 2195 "util/configparser.y" + case 458: +#line 2257 "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)); } -#line 5168 "util/configparser.c" +#line 5285 "util/configparser.c" break; - case 445: -#line 2203 "util/configparser.y" + case 459: +#line 2265 "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)); } -#line 5179 "util/configparser.c" +#line 5296 "util/configparser.c" break; - case 446: -#line 2211 "util/configparser.y" + case 460: +#line 2273 "util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5191,11 +5308,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5195 "util/configparser.c" +#line 5312 "util/configparser.c" break; - case 447: -#line 2224 "util/configparser.y" + case 461: +#line 2286 "util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5207,11 +5324,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5211 "util/configparser.c" +#line 5328 "util/configparser.c" break; - case 448: -#line 2237 "util/configparser.y" + case 462: +#line 2299 "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) { @@ -5225,11 +5342,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 5229 "util/configparser.c" +#line 5346 "util/configparser.c" break; - case 449: -#line 2252 "util/configparser.y" + case 463: +#line 2314 "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) { @@ -5243,11 +5360,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 5247 "util/configparser.c" +#line 5364 "util/configparser.c" break; - case 450: -#line 2267 "util/configparser.y" + case 464: +#line 2329 "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) @@ -5255,11 +5372,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5259 "util/configparser.c" +#line 5376 "util/configparser.c" break; - case 451: -#line 2276 "util/configparser.y" + case 465: +#line 2338 "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) @@ -5267,20 +5384,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5271 "util/configparser.c" +#line 5388 "util/configparser.c" break; - case 452: -#line 2285 "util/configparser.y" + case 466: +#line 2347 "util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 5280 "util/configparser.c" +#line 5397 "util/configparser.c" break; - case 453: -#line 2291 "util/configparser.y" + case 467: +#line 2353 "util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -5288,11 +5405,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5292 "util/configparser.c" +#line 5409 "util/configparser.c" break; - case 454: -#line 2300 "util/configparser.y" + case 468: +#line 2362 "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) @@ -5300,11 +5417,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5304 "util/configparser.c" +#line 5421 "util/configparser.c" break; - case 455: -#line 2309 "util/configparser.y" + case 469: +#line 2371 "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) @@ -5313,11 +5430,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5317 "util/configparser.c" +#line 5434 "util/configparser.c" break; - case 456: -#line 2319 "util/configparser.y" + case 470: +#line 2381 "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) @@ -5326,11 +5443,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5330 "util/configparser.c" +#line 5447 "util/configparser.c" break; - case 457: -#line 2329 "util/configparser.y" + case 471: +#line 2391 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -5342,11 +5459,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5346 "util/configparser.c" +#line 5463 "util/configparser.c" break; - case 458: -#line 2342 "util/configparser.y" + case 472: +#line 2404 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -5358,11 +5475,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5362 "util/configparser.c" +#line 5479 "util/configparser.c" break; - case 459: -#line 2355 "util/configparser.y" + case 473: +#line 2417 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -5373,11 +5490,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5377 "util/configparser.c" +#line 5494 "util/configparser.c" break; - case 460: -#line 2367 "util/configparser.y" + case 474: +#line 2429 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -5390,11 +5507,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5394 "util/configparser.c" +#line 5511 "util/configparser.c" break; - case 461: -#line 2381 "util/configparser.y" + case 475: +#line 2443 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -5405,11 +5522,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5409 "util/configparser.c" +#line 5526 "util/configparser.c" break; - case 462: -#line 2393 "util/configparser.y" + case 476: +#line 2455 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -5422,11 +5539,43 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5426 "util/configparser.c" +#line 5543 "util/configparser.c" break; - case 463: -#line 2407 "util/configparser.y" + case 477: +#line 2469 "util/configparser.y" + { + int tag_data; + OUTYY(("P(server_edns_client_tag:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); + tag_data = atoi((yyvsp[0].str)); + if(tag_data > 65535 || tag_data < 0 || + (tag_data == 0 && (strlen((yyvsp[0].str)) != 1 || (yyvsp[0].str)[0] != '0'))) + yyerror("edns-client-tag data invalid, needs to be a " + "number from 0 to 65535"); + if(!cfg_str2list_insert( + &cfg_parser->cfg->edns_client_tags, (yyvsp[-1].str), (yyvsp[0].str))) + fatal_exit("out of memory adding " + "edns-client-tag"); + } +#line 5561 "util/configparser.c" + break; + + case 478: +#line 2484 "util/configparser.y" + { + OUTYY(("P(edns_client_tag_opcode:%s)\n", (yyvsp[0].str))); + if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) + yyerror("option code expected"); + else if(atoi((yyvsp[0].str)) > 65535 || atoi((yyvsp[0].str)) < 0) + yyerror("option code must be in interval [0, 65535]"); + else cfg_parser->cfg->edns_client_tag_opcode = atoi((yyvsp[0].str)); + + } +#line 5575 "util/configparser.c" + break; + + case 479: +#line 2495 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -5435,31 +5584,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 5439 "util/configparser.c" +#line 5588 "util/configparser.c" break; - case 464: -#line 2417 "util/configparser.y" + case 480: +#line 2505 "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"); } -#line 5449 "util/configparser.c" +#line 5598 "util/configparser.c" break; - case 465: -#line 2424 "util/configparser.y" + case 481: +#line 2512 "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"); } -#line 5459 "util/configparser.c" +#line 5608 "util/configparser.c" break; - case 466: -#line 2431 "util/configparser.y" + case 482: +#line 2519 "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) @@ -5467,11 +5616,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5471 "util/configparser.c" +#line 5620 "util/configparser.c" break; - case 467: -#line 2440 "util/configparser.y" + case 483: +#line 2528 "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) @@ -5479,11 +5628,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5483 "util/configparser.c" +#line 5632 "util/configparser.c" break; - case 468: -#line 2449 "util/configparser.y" + case 484: +#line 2537 "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) @@ -5492,11 +5641,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5496 "util/configparser.c" +#line 5645 "util/configparser.c" break; - case 469: -#line 2459 "util/configparser.y" + case 485: +#line 2547 "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) @@ -5505,11 +5654,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5509 "util/configparser.c" +#line 5658 "util/configparser.c" break; - case 470: -#line 2469 "util/configparser.y" + case 486: +#line 2557 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -5518,31 +5667,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 5522 "util/configparser.c" +#line 5671 "util/configparser.c" break; - case 471: -#line 2479 "util/configparser.y" + case 487: +#line 2567 "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"); } -#line 5532 "util/configparser.c" +#line 5681 "util/configparser.c" break; - case 472: -#line 2486 "util/configparser.y" + case 488: +#line 2574 "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"); } -#line 5542 "util/configparser.c" +#line 5691 "util/configparser.c" break; - case 473: -#line 2493 "util/configparser.y" + case 489: +#line 2581 "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) @@ -5550,11 +5699,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5554 "util/configparser.c" +#line 5703 "util/configparser.c" break; - case 474: -#line 2502 "util/configparser.y" + case 490: +#line 2590 "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) @@ -5562,11 +5711,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5566 "util/configparser.c" +#line 5715 "util/configparser.c" break; - case 475: -#line 2511 "util/configparser.y" + case 491: +#line 2599 "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) @@ -5575,11 +5724,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5579 "util/configparser.c" +#line 5728 "util/configparser.c" break; - case 476: -#line 2521 "util/configparser.y" + case 492: +#line 2609 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -5588,52 +5737,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 5592 "util/configparser.c" +#line 5741 "util/configparser.c" break; - case 477: -#line 2531 "util/configparser.y" + case 493: +#line 2619 "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); } -#line 5602 "util/configparser.c" +#line 5751 "util/configparser.c" break; - case 478: -#line 2538 "util/configparser.y" + case 494: +#line 2626 "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"); } -#line 5612 "util/configparser.c" +#line 5761 "util/configparser.c" break; - case 479: -#line 2545 "util/configparser.y" + case 495: +#line 2633 "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"); } -#line 5622 "util/configparser.c" +#line 5771 "util/configparser.c" break; - case 480: -#line 2552 "util/configparser.y" + case 496: +#line 2640 "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"); } -#line 5633 "util/configparser.c" +#line 5782 "util/configparser.c" break; - case 481: -#line 2560 "util/configparser.y" + case 497: +#line 2648 "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) @@ -5642,11 +5791,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5646 "util/configparser.c" +#line 5795 "util/configparser.c" break; - case 482: -#line 2570 "util/configparser.y" + case 498: +#line 2658 "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) @@ -5655,11 +5804,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5659 "util/configparser.c" +#line 5808 "util/configparser.c" break; - case 483: -#line 2580 "util/configparser.y" + case 499: +#line 2668 "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) @@ -5668,11 +5817,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5672 "util/configparser.c" +#line 5821 "util/configparser.c" break; - case 484: -#line 2590 "util/configparser.y" + case 500: +#line 2678 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -5681,11 +5830,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 5685 "util/configparser.c" +#line 5834 "util/configparser.c" break; - case 485: -#line 2600 "util/configparser.y" + case 501: +#line 2688 "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 && @@ -5723,11 +5872,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5727 "util/configparser.c" +#line 5876 "util/configparser.c" break; - case 486: -#line 2639 "util/configparser.y" + case 502: +#line 2727 "util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -5736,33 +5885,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 5740 "util/configparser.c" +#line 5889 "util/configparser.c" break; - case 487: -#line 2649 "util/configparser.y" + case 503: +#line 2737 "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"); } -#line 5751 "util/configparser.c" +#line 5900 "util/configparser.c" break; - case 488: -#line 2657 "util/configparser.y" + case 504: +#line 2745 "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"); } } -#line 5762 "util/configparser.c" +#line 5911 "util/configparser.c" break; - case 489: -#line 2665 "util/configparser.y" + case 505: +#line 2753 "util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5776,11 +5925,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5780 "util/configparser.c" +#line 5929 "util/configparser.c" break; - case 490: -#line 2680 "util/configparser.y" + case 506: +#line 2768 "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) @@ -5788,19 +5937,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5792 "util/configparser.c" +#line 5941 "util/configparser.c" break; - case 491: -#line 2689 "util/configparser.y" + case 507: +#line 2777 "util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 5800 "util/configparser.c" +#line 5949 "util/configparser.c" break; - case 502: -#line 2700 "util/configparser.y" + case 518: +#line 2788 "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) @@ -5809,11 +5958,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5813 "util/configparser.c" +#line 5962 "util/configparser.c" break; - case 503: -#line 2710 "util/configparser.y" + case 519: +#line 2798 "util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5821,79 +5970,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5825 "util/configparser.c" +#line 5974 "util/configparser.c" break; - case 504: -#line 2719 "util/configparser.y" + case 520: +#line 2807 "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"); } -#line 5835 "util/configparser.c" +#line 5984 "util/configparser.c" break; - case 505: -#line 2726 "util/configparser.y" + case 521: +#line 2814 "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)); } -#line 5845 "util/configparser.c" +#line 5994 "util/configparser.c" break; - case 506: -#line 2733 "util/configparser.y" + case 522: +#line 2821 "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); } -#line 5855 "util/configparser.c" +#line 6004 "util/configparser.c" break; - case 507: -#line 2740 "util/configparser.y" + case 523: +#line 2828 "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); } -#line 5865 "util/configparser.c" +#line 6014 "util/configparser.c" break; - case 508: -#line 2747 "util/configparser.y" + case 524: +#line 2835 "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); } -#line 5875 "util/configparser.c" +#line 6024 "util/configparser.c" break; - case 509: -#line 2754 "util/configparser.y" + case 525: +#line 2842 "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); } -#line 5885 "util/configparser.c" +#line 6034 "util/configparser.c" break; - case 510: -#line 2761 "util/configparser.y" + case 526: +#line 2849 "util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 5893 "util/configparser.c" +#line 6042 "util/configparser.c" break; - case 532: -#line 2781 "util/configparser.y" + case 548: +#line 2869 "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) @@ -5901,11 +6050,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5905 "util/configparser.c" +#line 6054 "util/configparser.c" break; - case 533: -#line 2790 "util/configparser.y" + case 549: +#line 2878 "util/configparser.y" { OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5914,31 +6063,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5918 "util/configparser.c" +#line 6067 "util/configparser.c" break; - case 534: -#line 2800 "util/configparser.y" + case 550: +#line 2888 "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); } -#line 5928 "util/configparser.c" +#line 6077 "util/configparser.c" break; - case 535: -#line 2807 "util/configparser.y" + case 551: +#line 2895 "util/configparser.y" { OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_ip); cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); } -#line 5938 "util/configparser.c" +#line 6087 "util/configparser.c" break; - case 536: -#line 2814 "util/configparser.y" + case 552: +#line 2902 "util/configparser.y" { OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -5946,51 +6095,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5950 "util/configparser.c" +#line 6099 "util/configparser.c" break; - case 537: -#line 2823 "util/configparser.y" + case 553: +#line 2911 "util/configparser.y" { OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_server_name); cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); } -#line 5960 "util/configparser.c" +#line 6109 "util/configparser.c" break; - case 538: -#line 2830 "util/configparser.y" + case 554: +#line 2918 "util/configparser.y" { OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_cert_bundle); cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); } -#line 5970 "util/configparser.c" +#line 6119 "util/configparser.c" break; - case 539: -#line 2837 "util/configparser.y" + case 555: +#line 2925 "util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_key_file); cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); } -#line 5980 "util/configparser.c" +#line 6129 "util/configparser.c" break; - case 540: -#line 2844 "util/configparser.y" + case 556: +#line 2932 "util/configparser.y" { OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_cert_file); cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); } -#line 5990 "util/configparser.c" +#line 6139 "util/configparser.c" break; - case 541: -#line 2851 "util/configparser.y" + case 557: +#line 2939 "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) @@ -5998,11 +6147,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6002 "util/configparser.c" +#line 6151 "util/configparser.c" break; - case 542: -#line 2860 "util/configparser.y" + case 558: +#line 2948 "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) @@ -6010,31 +6159,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6014 "util/configparser.c" +#line 6163 "util/configparser.c" break; - case 543: -#line 2869 "util/configparser.y" + case 559: +#line 2957 "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); } -#line 6024 "util/configparser.c" +#line 6173 "util/configparser.c" break; - case 544: -#line 2876 "util/configparser.y" + case 560: +#line 2964 "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); } -#line 6034 "util/configparser.c" +#line 6183 "util/configparser.c" break; - case 545: -#line 2883 "util/configparser.y" + case 561: +#line 2971 "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) @@ -6043,11 +6192,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6047 "util/configparser.c" +#line 6196 "util/configparser.c" break; - case 546: -#line 2893 "util/configparser.y" + case 562: +#line 2981 "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) @@ -6056,11 +6205,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6060 "util/configparser.c" +#line 6209 "util/configparser.c" break; - case 547: -#line 2903 "util/configparser.y" + case 563: +#line 2991 "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) @@ -6069,11 +6218,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6073 "util/configparser.c" +#line 6222 "util/configparser.c" break; - case 548: -#line 2913 "util/configparser.y" + case 564: +#line 3001 "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) @@ -6082,11 +6231,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6086 "util/configparser.c" +#line 6235 "util/configparser.c" break; - case 549: -#line 2923 "util/configparser.y" + case 565: +#line 3011 "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) @@ -6095,11 +6244,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6099 "util/configparser.c" +#line 6248 "util/configparser.c" break; - case 550: -#line 2933 "util/configparser.y" + case 566: +#line 3021 "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) @@ -6108,47 +6257,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6112 "util/configparser.c" +#line 6261 "util/configparser.c" break; - case 551: -#line 2943 "util/configparser.y" + case 567: +#line 3031 "util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 6120 "util/configparser.c" +#line 6269 "util/configparser.c" break; - case 555: -#line 2952 "util/configparser.y" + case 571: +#line 3040 "util/configparser.y" { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6130 "util/configparser.c" +#line 6279 "util/configparser.c" break; - case 556: -#line 2958 "util/configparser.y" + case 572: +#line 3046 "util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 6138 "util/configparser.c" +#line 6287 "util/configparser.c" break; - case 560: -#line 2967 "util/configparser.y" + case 576: +#line 3055 "util/configparser.y" { OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) yyerror("out of memory"); } -#line 6148 "util/configparser.c" +#line 6297 "util/configparser.c" break; - case 561: -#line 2973 "util/configparser.y" + case 577: +#line 3061 "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) @@ -6157,21 +6306,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6161 "util/configparser.c" +#line 6310 "util/configparser.c" break; - case 562: -#line 2983 "util/configparser.y" + case 578: +#line 3071 "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); } -#line 6171 "util/configparser.c" +#line 6320 "util/configparser.c" break; - case 563: -#line 2990 "util/configparser.y" + case 579: +#line 3078 "util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6179,30 +6328,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 6183 "util/configparser.c" +#line 6332 "util/configparser.c" break; - case 564: -#line 2999 "util/configparser.y" + case 580: +#line 3087 "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"); } -#line 6194 "util/configparser.c" +#line 6343 "util/configparser.c" break; - case 565: -#line 3007 "util/configparser.y" + case 581: +#line 3095 "util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 6202 "util/configparser.c" +#line 6351 "util/configparser.c" break; - case 578: -#line 3023 "util/configparser.y" + case 594: +#line 3111 "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) @@ -6210,11 +6359,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6214 "util/configparser.c" +#line 6363 "util/configparser.c" break; - case 579: -#line 3033 "util/configparser.y" + case 595: +#line 3121 "util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6222,21 +6371,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6226 "util/configparser.c" +#line 6375 "util/configparser.c" break; - case 580: -#line 3042 "util/configparser.y" + case 596: +#line 3130 "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); } -#line 6236 "util/configparser.c" +#line 6385 "util/configparser.c" break; - case 581: -#line 3049 "util/configparser.y" + case 597: +#line 3137 "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))) @@ -6244,21 +6393,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 6248 "util/configparser.c" +#line 6397 "util/configparser.c" break; - case 582: -#line 3058 "util/configparser.y" + case 598: +#line 3146 "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"); } -#line 6258 "util/configparser.c" +#line 6407 "util/configparser.c" break; - case 583: -#line 3065 "util/configparser.y" + case 599: +#line 3153 "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))) @@ -6266,22 +6415,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 6270 "util/configparser.c" +#line 6419 "util/configparser.c" break; - case 584: -#line 3074 "util/configparser.y" + case 600: +#line 3162 "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)); } -#line 6281 "util/configparser.c" +#line 6430 "util/configparser.c" break; - case 585: -#line 3082 "util/configparser.y" + case 601: +#line 3170 "util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6293,22 +6442,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6297 "util/configparser.c" +#line 6446 "util/configparser.c" break; - case 586: -#line 3095 "util/configparser.y" + case 602: +#line 3183 "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)); } -#line 6308 "util/configparser.c" +#line 6457 "util/configparser.c" break; - case 587: -#line 3103 "util/configparser.y" + case 603: +#line 3191 "util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6320,19 +6469,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6324 "util/configparser.c" +#line 6473 "util/configparser.c" break; - case 588: -#line 3116 "util/configparser.y" + case 604: +#line 3204 "util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 6332 "util/configparser.c" +#line 6481 "util/configparser.c" break; - case 597: -#line 3127 "util/configparser.y" + case 613: +#line 3215 "util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -6343,11 +6492,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6347 "util/configparser.c" +#line 6496 "util/configparser.c" break; - case 598: -#line 3139 "util/configparser.y" + case 614: +#line 3227 "util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -6358,11 +6507,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6362 "util/configparser.c" +#line 6511 "util/configparser.c" break; - case 599: -#line 3151 "util/configparser.y" + case 615: +#line 3239 "util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -6373,11 +6522,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6377 "util/configparser.c" +#line 6526 "util/configparser.c" break; - case 600: -#line 3163 "util/configparser.y" + case 616: +#line 3251 "util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -6391,11 +6540,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6395 "util/configparser.c" +#line 6544 "util/configparser.c" break; - case 601: -#line 3178 "util/configparser.y" + case 617: +#line 3266 "util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -6407,11 +6556,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6411 "util/configparser.c" +#line 6560 "util/configparser.c" break; - case 602: -#line 3191 "util/configparser.y" + case 618: +#line 3279 "util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -6423,11 +6572,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6427 "util/configparser.c" +#line 6576 "util/configparser.c" break; - case 603: -#line 3204 "util/configparser.y" + case 619: +#line 3292 "util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -6437,19 +6586,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 6441 "util/configparser.c" +#line 6590 "util/configparser.c" break; - case 604: -#line 3215 "util/configparser.y" + case 620: +#line 3303 "util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 6449 "util/configparser.c" +#line 6598 "util/configparser.c" break; - case 609: -#line 3224 "util/configparser.y" + case 625: +#line 3312 "util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -6463,11 +6612,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6467 "util/configparser.c" +#line 6616 "util/configparser.c" break; - case 610: -#line 3239 "util/configparser.y" + case 626: +#line 3327 "util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -6481,11 +6630,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6485 "util/configparser.c" +#line 6634 "util/configparser.c" break; -#line 6489 "util/configparser.c" +#line 6638 "util/configparser.c" default: break; } @@ -6717,7 +6866,7 @@ yyreturn: #endif return yyresult; } -#line 3253 "util/configparser.y" +#line 3341 "util/configparser.y" /* parse helper routines could be here */ |