diff options
Diffstat (limited to 'util/configparser.c')
-rw-r--r-- | util/configparser.c | 3579 |
1 files changed, 1815 insertions, 1764 deletions
diff --git a/util/configparser.c b/util/configparser.c index d9dcbf9a56b4..45f9db0dcc42 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -279,158 +279,161 @@ extern int yydebug; 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 + VAR_HTTP_NOTLS_DOWNSTREAM = 403, + VAR_STUB_FIRST = 404, + VAR_MINIMAL_RESPONSES = 405, + VAR_RRSET_ROUNDROBIN = 406, + VAR_MAX_UDP_SIZE = 407, + VAR_DELAY_CLOSE = 408, + VAR_UDP_CONNECT = 409, + VAR_UNBLOCK_LAN_ZONES = 410, + VAR_INSECURE_LAN_ZONES = 411, + VAR_INFRA_CACHE_MIN_RTT = 412, + VAR_INFRA_KEEP_PROBING = 413, + VAR_DNS64_PREFIX = 414, + VAR_DNS64_SYNTHALL = 415, + VAR_DNS64_IGNORE_AAAA = 416, + VAR_DNSTAP = 417, + VAR_DNSTAP_ENABLE = 418, + VAR_DNSTAP_SOCKET_PATH = 419, + VAR_DNSTAP_IP = 420, + VAR_DNSTAP_TLS = 421, + VAR_DNSTAP_TLS_SERVER_NAME = 422, + VAR_DNSTAP_TLS_CERT_BUNDLE = 423, + VAR_DNSTAP_TLS_CLIENT_KEY_FILE = 424, + VAR_DNSTAP_TLS_CLIENT_CERT_FILE = 425, + VAR_DNSTAP_SEND_IDENTITY = 426, + VAR_DNSTAP_SEND_VERSION = 427, + VAR_DNSTAP_BIDIRECTIONAL = 428, + VAR_DNSTAP_IDENTITY = 429, + VAR_DNSTAP_VERSION = 430, + VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 431, + VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 432, + VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 433, + VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 434, + VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 435, + VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 436, + VAR_RESPONSE_IP_TAG = 437, + VAR_RESPONSE_IP = 438, + VAR_RESPONSE_IP_DATA = 439, + VAR_HARDEN_ALGO_DOWNGRADE = 440, + VAR_IP_TRANSPARENT = 441, + VAR_IP_DSCP = 442, + VAR_DISABLE_DNSSEC_LAME_CHECK = 443, + VAR_IP_RATELIMIT = 444, + VAR_IP_RATELIMIT_SLABS = 445, + VAR_IP_RATELIMIT_SIZE = 446, + VAR_RATELIMIT = 447, + VAR_RATELIMIT_SLABS = 448, + VAR_RATELIMIT_SIZE = 449, + VAR_RATELIMIT_FOR_DOMAIN = 450, + VAR_RATELIMIT_BELOW_DOMAIN = 451, + VAR_IP_RATELIMIT_FACTOR = 452, + VAR_RATELIMIT_FACTOR = 453, + VAR_SEND_CLIENT_SUBNET = 454, + VAR_CLIENT_SUBNET_ZONE = 455, + VAR_CLIENT_SUBNET_ALWAYS_FORWARD = 456, + VAR_CLIENT_SUBNET_OPCODE = 457, + VAR_MAX_CLIENT_SUBNET_IPV4 = 458, + VAR_MAX_CLIENT_SUBNET_IPV6 = 459, + VAR_MIN_CLIENT_SUBNET_IPV4 = 460, + VAR_MIN_CLIENT_SUBNET_IPV6 = 461, + VAR_MAX_ECS_TREE_SIZE_IPV4 = 462, + VAR_MAX_ECS_TREE_SIZE_IPV6 = 463, + VAR_CAPS_WHITELIST = 464, + VAR_CACHE_MAX_NEGATIVE_TTL = 465, + VAR_PERMIT_SMALL_HOLDDOWN = 466, + VAR_QNAME_MINIMISATION = 467, + VAR_QNAME_MINIMISATION_STRICT = 468, + VAR_IP_FREEBIND = 469, + VAR_DEFINE_TAG = 470, + VAR_LOCAL_ZONE_TAG = 471, + VAR_ACCESS_CONTROL_TAG = 472, + VAR_LOCAL_ZONE_OVERRIDE = 473, + VAR_ACCESS_CONTROL_TAG_ACTION = 474, + VAR_ACCESS_CONTROL_TAG_DATA = 475, + VAR_VIEW = 476, + VAR_ACCESS_CONTROL_VIEW = 477, + VAR_VIEW_FIRST = 478, + VAR_SERVE_EXPIRED = 479, + VAR_SERVE_EXPIRED_TTL = 480, + VAR_SERVE_EXPIRED_TTL_RESET = 481, + VAR_SERVE_EXPIRED_REPLY_TTL = 482, + VAR_SERVE_EXPIRED_CLIENT_TIMEOUT = 483, + VAR_FAKE_DSA = 484, + VAR_FAKE_SHA1 = 485, + VAR_LOG_IDENTITY = 486, + VAR_HIDE_TRUSTANCHOR = 487, + VAR_TRUST_ANCHOR_SIGNALING = 488, + VAR_AGGRESSIVE_NSEC = 489, + VAR_USE_SYSTEMD = 490, + VAR_SHM_ENABLE = 491, + VAR_SHM_KEY = 492, + VAR_ROOT_KEY_SENTINEL = 493, + VAR_DNSCRYPT = 494, + VAR_DNSCRYPT_ENABLE = 495, + VAR_DNSCRYPT_PORT = 496, + VAR_DNSCRYPT_PROVIDER = 497, + VAR_DNSCRYPT_SECRET_KEY = 498, + VAR_DNSCRYPT_PROVIDER_CERT = 499, + VAR_DNSCRYPT_PROVIDER_CERT_ROTATED = 500, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE = 501, + VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS = 502, + VAR_DNSCRYPT_NONCE_CACHE_SIZE = 503, + VAR_DNSCRYPT_NONCE_CACHE_SLABS = 504, + VAR_IPSECMOD_ENABLED = 505, + VAR_IPSECMOD_HOOK = 506, + VAR_IPSECMOD_IGNORE_BOGUS = 507, + VAR_IPSECMOD_MAX_TTL = 508, + VAR_IPSECMOD_WHITELIST = 509, + VAR_IPSECMOD_STRICT = 510, + VAR_CACHEDB = 511, + VAR_CACHEDB_BACKEND = 512, + VAR_CACHEDB_SECRETSEED = 513, + VAR_CACHEDB_REDISHOST = 514, + VAR_CACHEDB_REDISPORT = 515, + VAR_CACHEDB_REDISTIMEOUT = 516, + VAR_CACHEDB_REDISEXPIRERECORDS = 517, + VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM = 518, + VAR_FOR_UPSTREAM = 519, + VAR_AUTH_ZONE = 520, + VAR_ZONEFILE = 521, + VAR_MASTER = 522, + VAR_URL = 523, + VAR_FOR_DOWNSTREAM = 524, + VAR_FALLBACK_ENABLED = 525, + VAR_TLS_ADDITIONAL_PORT = 526, + VAR_LOW_RTT = 527, + VAR_LOW_RTT_PERMIL = 528, + VAR_FAST_SERVER_PERMIL = 529, + VAR_FAST_SERVER_NUM = 530, + VAR_ALLOW_NOTIFY = 531, + VAR_TLS_WIN_CERT = 532, + VAR_TCP_CONNECTION_LIMIT = 533, + VAR_FORWARD_NO_CACHE = 534, + VAR_STUB_NO_CACHE = 535, + VAR_LOG_SERVFAIL = 536, + VAR_DENY_ANY = 537, + VAR_UNKNOWN_SERVER_TIME_LIMIT = 538, + VAR_LOG_TAG_QUERYREPLY = 539, + VAR_STREAM_WAIT_SIZE = 540, + VAR_TLS_CIPHERS = 541, + VAR_TLS_CIPHERSUITES = 542, + VAR_TLS_USE_SNI = 543, + VAR_IPSET = 544, + VAR_IPSET_NAME_V4 = 545, + VAR_IPSET_NAME_V6 = 546, + VAR_TLS_SESSION_TICKET_KEYS = 547, + VAR_RPZ = 548, + VAR_TAGS = 549, + VAR_RPZ_ACTION_OVERRIDE = 550, + VAR_RPZ_CNAME_OVERRIDE = 551, + VAR_RPZ_LOG = 552, + VAR_RPZ_LOG_NAME = 553, + VAR_DYNLIB = 554, + VAR_DYNLIB_FILE = 555, + VAR_EDNS_CLIENT_STRING = 556, + VAR_EDNS_CLIENT_STRING_OPCODE = 557 }; #endif /* Tokens. */ @@ -579,158 +582,161 @@ extern int yydebug; #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 +#define VAR_HTTP_NOTLS_DOWNSTREAM 403 +#define VAR_STUB_FIRST 404 +#define VAR_MINIMAL_RESPONSES 405 +#define VAR_RRSET_ROUNDROBIN 406 +#define VAR_MAX_UDP_SIZE 407 +#define VAR_DELAY_CLOSE 408 +#define VAR_UDP_CONNECT 409 +#define VAR_UNBLOCK_LAN_ZONES 410 +#define VAR_INSECURE_LAN_ZONES 411 +#define VAR_INFRA_CACHE_MIN_RTT 412 +#define VAR_INFRA_KEEP_PROBING 413 +#define VAR_DNS64_PREFIX 414 +#define VAR_DNS64_SYNTHALL 415 +#define VAR_DNS64_IGNORE_AAAA 416 +#define VAR_DNSTAP 417 +#define VAR_DNSTAP_ENABLE 418 +#define VAR_DNSTAP_SOCKET_PATH 419 +#define VAR_DNSTAP_IP 420 +#define VAR_DNSTAP_TLS 421 +#define VAR_DNSTAP_TLS_SERVER_NAME 422 +#define VAR_DNSTAP_TLS_CERT_BUNDLE 423 +#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE 424 +#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE 425 +#define VAR_DNSTAP_SEND_IDENTITY 426 +#define VAR_DNSTAP_SEND_VERSION 427 +#define VAR_DNSTAP_BIDIRECTIONAL 428 +#define VAR_DNSTAP_IDENTITY 429 +#define VAR_DNSTAP_VERSION 430 +#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 431 +#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 432 +#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 433 +#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 434 +#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 435 +#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 436 +#define VAR_RESPONSE_IP_TAG 437 +#define VAR_RESPONSE_IP 438 +#define VAR_RESPONSE_IP_DATA 439 +#define VAR_HARDEN_ALGO_DOWNGRADE 440 +#define VAR_IP_TRANSPARENT 441 +#define VAR_IP_DSCP 442 +#define VAR_DISABLE_DNSSEC_LAME_CHECK 443 +#define VAR_IP_RATELIMIT 444 +#define VAR_IP_RATELIMIT_SLABS 445 +#define VAR_IP_RATELIMIT_SIZE 446 +#define VAR_RATELIMIT 447 +#define VAR_RATELIMIT_SLABS 448 +#define VAR_RATELIMIT_SIZE 449 +#define VAR_RATELIMIT_FOR_DOMAIN 450 +#define VAR_RATELIMIT_BELOW_DOMAIN 451 +#define VAR_IP_RATELIMIT_FACTOR 452 +#define VAR_RATELIMIT_FACTOR 453 +#define VAR_SEND_CLIENT_SUBNET 454 +#define VAR_CLIENT_SUBNET_ZONE 455 +#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD 456 +#define VAR_CLIENT_SUBNET_OPCODE 457 +#define VAR_MAX_CLIENT_SUBNET_IPV4 458 +#define VAR_MAX_CLIENT_SUBNET_IPV6 459 +#define VAR_MIN_CLIENT_SUBNET_IPV4 460 +#define VAR_MIN_CLIENT_SUBNET_IPV6 461 +#define VAR_MAX_ECS_TREE_SIZE_IPV4 462 +#define VAR_MAX_ECS_TREE_SIZE_IPV6 463 +#define VAR_CAPS_WHITELIST 464 +#define VAR_CACHE_MAX_NEGATIVE_TTL 465 +#define VAR_PERMIT_SMALL_HOLDDOWN 466 +#define VAR_QNAME_MINIMISATION 467 +#define VAR_QNAME_MINIMISATION_STRICT 468 +#define VAR_IP_FREEBIND 469 +#define VAR_DEFINE_TAG 470 +#define VAR_LOCAL_ZONE_TAG 471 +#define VAR_ACCESS_CONTROL_TAG 472 +#define VAR_LOCAL_ZONE_OVERRIDE 473 +#define VAR_ACCESS_CONTROL_TAG_ACTION 474 +#define VAR_ACCESS_CONTROL_TAG_DATA 475 +#define VAR_VIEW 476 +#define VAR_ACCESS_CONTROL_VIEW 477 +#define VAR_VIEW_FIRST 478 +#define VAR_SERVE_EXPIRED 479 +#define VAR_SERVE_EXPIRED_TTL 480 +#define VAR_SERVE_EXPIRED_TTL_RESET 481 +#define VAR_SERVE_EXPIRED_REPLY_TTL 482 +#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT 483 +#define VAR_FAKE_DSA 484 +#define VAR_FAKE_SHA1 485 +#define VAR_LOG_IDENTITY 486 +#define VAR_HIDE_TRUSTANCHOR 487 +#define VAR_TRUST_ANCHOR_SIGNALING 488 +#define VAR_AGGRESSIVE_NSEC 489 +#define VAR_USE_SYSTEMD 490 +#define VAR_SHM_ENABLE 491 +#define VAR_SHM_KEY 492 +#define VAR_ROOT_KEY_SENTINEL 493 +#define VAR_DNSCRYPT 494 +#define VAR_DNSCRYPT_ENABLE 495 +#define VAR_DNSCRYPT_PORT 496 +#define VAR_DNSCRYPT_PROVIDER 497 +#define VAR_DNSCRYPT_SECRET_KEY 498 +#define VAR_DNSCRYPT_PROVIDER_CERT 499 +#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED 500 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE 501 +#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS 502 +#define VAR_DNSCRYPT_NONCE_CACHE_SIZE 503 +#define VAR_DNSCRYPT_NONCE_CACHE_SLABS 504 +#define VAR_IPSECMOD_ENABLED 505 +#define VAR_IPSECMOD_HOOK 506 +#define VAR_IPSECMOD_IGNORE_BOGUS 507 +#define VAR_IPSECMOD_MAX_TTL 508 +#define VAR_IPSECMOD_WHITELIST 509 +#define VAR_IPSECMOD_STRICT 510 +#define VAR_CACHEDB 511 +#define VAR_CACHEDB_BACKEND 512 +#define VAR_CACHEDB_SECRETSEED 513 +#define VAR_CACHEDB_REDISHOST 514 +#define VAR_CACHEDB_REDISPORT 515 +#define VAR_CACHEDB_REDISTIMEOUT 516 +#define VAR_CACHEDB_REDISEXPIRERECORDS 517 +#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM 518 +#define VAR_FOR_UPSTREAM 519 +#define VAR_AUTH_ZONE 520 +#define VAR_ZONEFILE 521 +#define VAR_MASTER 522 +#define VAR_URL 523 +#define VAR_FOR_DOWNSTREAM 524 +#define VAR_FALLBACK_ENABLED 525 +#define VAR_TLS_ADDITIONAL_PORT 526 +#define VAR_LOW_RTT 527 +#define VAR_LOW_RTT_PERMIL 528 +#define VAR_FAST_SERVER_PERMIL 529 +#define VAR_FAST_SERVER_NUM 530 +#define VAR_ALLOW_NOTIFY 531 +#define VAR_TLS_WIN_CERT 532 +#define VAR_TCP_CONNECTION_LIMIT 533 +#define VAR_FORWARD_NO_CACHE 534 +#define VAR_STUB_NO_CACHE 535 +#define VAR_LOG_SERVFAIL 536 +#define VAR_DENY_ANY 537 +#define VAR_UNKNOWN_SERVER_TIME_LIMIT 538 +#define VAR_LOG_TAG_QUERYREPLY 539 +#define VAR_STREAM_WAIT_SIZE 540 +#define VAR_TLS_CIPHERS 541 +#define VAR_TLS_CIPHERSUITES 542 +#define VAR_TLS_USE_SNI 543 +#define VAR_IPSET 544 +#define VAR_IPSET_NAME_V4 545 +#define VAR_IPSET_NAME_V6 546 +#define VAR_TLS_SESSION_TICKET_KEYS 547 +#define VAR_RPZ 548 +#define VAR_TAGS 549 +#define VAR_RPZ_ACTION_OVERRIDE 550 +#define VAR_RPZ_CNAME_OVERRIDE 551 +#define VAR_RPZ_LOG 552 +#define VAR_RPZ_LOG_NAME 553 +#define VAR_DYNLIB 554 +#define VAR_DYNLIB_FILE 555 +#define VAR_EDNS_CLIENT_STRING 556 +#define VAR_EDNS_CLIENT_STRING_OPCODE 557 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -740,7 +746,7 @@ union YYSTYPE char* str; -#line 744 "util/configparser.c" +#line 750 "util/configparser.c" }; typedef union YYSTYPE YYSTYPE; @@ -990,19 +996,19 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 635 +#define YYLAST 641 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 300 +#define YYNTOKENS 303 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 325 +#define YYNNTS 328 /* YYNRULES -- Number of rules. */ -#define YYNRULES 626 +#define YYNRULES 632 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 930 +#define YYNSTATES 939 #define YYUNDEFTOK 2 -#define YYMAXUTOK 554 +#define YYMAXUTOK 557 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ @@ -1068,76 +1074,77 @@ static const yytype_uint16 yytranslate[] = 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 + 295, 296, 297, 298, 299, 300, 301, 302 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 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 + 0, 185, 185, 185, 186, 186, 187, 187, 188, 188, + 188, 189, 189, 190, 190, 191, 191, 192, 194, 200, + 205, 206, 207, 207, 207, 208, 208, 209, 209, 209, + 210, 210, 211, 211, 211, 212, 212, 213, 213, 213, + 214, 214, 214, 215, 215, 216, 216, 217, 217, 218, + 218, 219, 219, 220, 220, 221, 221, 222, 222, 223, + 223, 223, 224, 224, 224, 225, 225, 225, 226, 226, + 227, 227, 228, 228, 229, 229, 230, 230, 230, 231, + 231, 232, 232, 233, 233, 233, 234, 234, 235, 235, + 236, 236, 237, 237, 237, 238, 238, 239, 239, 240, + 240, 241, 241, 242, 242, 243, 243, 243, 244, 244, + 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, + 248, 248, 248, 249, 250, 250, 250, 251, 251, 251, + 252, 252, 253, 253, 254, 254, 254, 255, 255, 255, + 256, 256, 257, 257, 257, 258, 258, 259, 259, 259, + 260, 260, 261, 261, 262, 262, 263, 264, 264, 265, + 265, 266, 266, 267, 268, 268, 269, 269, 270, 270, + 271, 271, 272, 272, 273, 273, 273, 274, 274, 275, + 275, 276, 276, 277, 277, 278, 278, 279, 279, 280, + 280, 280, 281, 281, 281, 282, 282, 282, 283, 283, + 284, 285, 285, 286, 286, 287, 287, 288, 288, 289, + 289, 289, 290, 290, 290, 291, 291, 291, 292, 292, + 293, 293, 294, 294, 295, 295, 296, 298, 310, 311, + 312, 312, 312, 312, 312, 313, 313, 315, 327, 328, + 329, 329, 329, 329, 330, 330, 332, 346, 347, 348, + 348, 348, 348, 349, 349, 349, 351, 368, 369, 370, + 370, 370, 370, 371, 371, 371, 372, 375, 394, 411, + 419, 429, 437, 454, 455, 456, 456, 456, 456, 456, + 457, 457, 457, 458, 458, 460, 469, 478, 489, 498, + 507, 516, 527, 536, 548, 562, 577, 588, 605, 622, + 639, 656, 671, 686, 699, 714, 723, 732, 741, 750, + 759, 768, 777, 786, 795, 804, 813, 822, 831, 840, + 853, 862, 875, 884, 893, 902, 909, 916, 925, 932, + 941, 949, 956, 963, 971, 980, 988, 1004, 1012, 1020, + 1028, 1036, 1044, 1053, 1062, 1076, 1085, 1094, 1103, 1112, + 1121, 1130, 1137, 1144, 1170, 1178, 1185, 1192, 1199, 1206, + 1214, 1222, 1230, 1237, 1248, 1259, 1266, 1275, 1284, 1293, + 1300, 1307, 1315, 1323, 1333, 1343, 1353, 1367, 1375, 1388, + 1399, 1407, 1420, 1429, 1438, 1447, 1456, 1466, 1476, 1484, + 1497, 1506, 1514, 1523, 1531, 1544, 1553, 1563, 1570, 1580, + 1590, 1600, 1610, 1620, 1630, 1640, 1650, 1657, 1664, 1671, + 1680, 1689, 1698, 1707, 1714, 1724, 1744, 1751, 1769, 1782, + 1795, 1804, 1813, 1822, 1831, 1841, 1851, 1862, 1871, 1880, + 1889, 1898, 1907, 1916, 1929, 1942, 1951, 1958, 1967, 1976, + 1985, 1994, 2002, 2015, 2023, 2064, 2071, 2086, 2096, 2106, + 2113, 2120, 2127, 2136, 2144, 2158, 2179, 2200, 2212, 2224, + 2236, 2245, 2266, 2276, 2285, 2293, 2301, 2314, 2327, 2342, + 2357, 2366, 2375, 2381, 2390, 2399, 2409, 2419, 2432, 2445, + 2457, 2471, 2483, 2497, 2506, 2518, 2528, 2535, 2542, 2551, + 2560, 2570, 2580, 2590, 2597, 2604, 2613, 2622, 2632, 2642, + 2649, 2656, 2663, 2671, 2681, 2691, 2701, 2711, 2750, 2760, + 2768, 2776, 2791, 2800, 2805, 2806, 2807, 2807, 2807, 2808, + 2808, 2808, 2809, 2809, 2811, 2821, 2830, 2837, 2844, 2851, + 2858, 2865, 2872, 2877, 2878, 2879, 2879, 2879, 2880, 2880, + 2880, 2881, 2882, 2882, 2883, 2883, 2884, 2884, 2885, 2886, + 2887, 2888, 2889, 2890, 2892, 2901, 2911, 2918, 2925, 2934, + 2941, 2948, 2955, 2962, 2971, 2980, 2987, 2994, 3004, 3014, + 3024, 3034, 3044, 3054, 3059, 3060, 3061, 3063, 3069, 3074, + 3075, 3076, 3078, 3084, 3094, 3101, 3110, 3118, 3123, 3124, + 3126, 3126, 3126, 3127, 3127, 3128, 3129, 3130, 3131, 3132, + 3134, 3144, 3153, 3160, 3169, 3176, 3185, 3193, 3206, 3214, + 3227, 3232, 3233, 3234, 3234, 3235, 3235, 3235, 3236, 3238, + 3250, 3262, 3274, 3289, 3302, 3315, 3326, 3331, 3332, 3333, + 3333, 3335, 3350 }; #endif @@ -1194,10 +1201,11 @@ static const char *const yytname[] = "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_HTTP_NODELAY", "VAR_HTTP_NOTLS_DOWNSTREAM", "VAR_STUB_FIRST", + "VAR_MINIMAL_RESPONSES", "VAR_RRSET_ROUNDROBIN", "VAR_MAX_UDP_SIZE", + "VAR_DELAY_CLOSE", "VAR_UDP_CONNECT", "VAR_UNBLOCK_LAN_ZONES", + "VAR_INSECURE_LAN_ZONES", "VAR_INFRA_CACHE_MIN_RTT", + "VAR_INFRA_KEEP_PROBING", "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", "VAR_DNSTAP_TLS_SERVER_NAME", "VAR_DNSTAP_TLS_CERT_BUNDLE", @@ -1256,15 +1264,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", "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", + "VAR_DYNLIB", "VAR_DYNLIB_FILE", "VAR_EDNS_CLIENT_STRING", + "VAR_EDNS_CLIENT_STRING_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", @@ -1288,28 +1296,29 @@ static const char *const yytname[] = "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", - "server_auto_trust_anchor_file", "server_trust_anchor_file", - "server_trusted_keys_file", "server_trust_anchor", - "server_trust_anchor_signaling", "server_root_key_sentinel", - "server_domain_insecure", "server_hide_identity", "server_hide_version", - "server_hide_trustanchor", "server_identity", "server_version", - "server_so_rcvbuf", "server_so_sndbuf", "server_so_reuseport", - "server_ip_transparent", "server_ip_freebind", "server_ip_dscp", - "server_stream_wait_size", "server_edns_buffer_size", - "server_msg_buffer_size", "server_msg_cache_size", - "server_msg_cache_slabs", "server_num_queries_per_thread", - "server_jostle_timeout", "server_delay_close", - "server_unblock_lan_zones", "server_insecure_lan_zones", - "server_rrset_cache_size", "server_rrset_cache_slabs", - "server_infra_host_ttl", "server_infra_lame_ttl", - "server_infra_cache_numhosts", "server_infra_cache_lame_size", - "server_infra_cache_slabs", "server_infra_cache_min_rtt", + "server_http_notls_downstream", "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", "server_auto_trust_anchor_file", + "server_trust_anchor_file", "server_trusted_keys_file", + "server_trust_anchor", "server_trust_anchor_signaling", + "server_root_key_sentinel", "server_domain_insecure", + "server_hide_identity", "server_hide_version", "server_hide_trustanchor", + "server_identity", "server_version", "server_so_rcvbuf", + "server_so_sndbuf", "server_so_reuseport", "server_ip_transparent", + "server_ip_freebind", "server_ip_dscp", "server_stream_wait_size", + "server_edns_buffer_size", "server_msg_buffer_size", + "server_msg_cache_size", "server_msg_cache_slabs", + "server_num_queries_per_thread", "server_jostle_timeout", + "server_delay_close", "server_udp_connect", "server_unblock_lan_zones", + "server_insecure_lan_zones", "server_rrset_cache_size", + "server_rrset_cache_slabs", "server_infra_host_ttl", + "server_infra_lame_ttl", "server_infra_cache_numhosts", + "server_infra_cache_lame_size", "server_infra_cache_slabs", + "server_infra_cache_min_rtt", "server_infra_keep_probing", "server_target_fetch_policy", "server_harden_short_bufsize", "server_harden_large_queries", "server_harden_glue", "server_harden_dnssec_stripped", "server_harden_below_nxdomain", @@ -1349,24 +1358,25 @@ 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", "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", - "auth_master", "auth_url", "auth_allow_notify", "auth_for_downstream", - "auth_for_upstream", "auth_fallback_enabled", "view_name", - "view_local_zone", "view_response_ip", "view_response_ip_data", - "view_local_data", "view_local_data_ptr", "view_first", "rcstart", - "contents_rc", "content_rc", "rc_control_enable", "rc_control_port", - "rc_control_interface", "rc_control_use_cert", "rc_server_key_file", - "rc_server_cert_file", "rc_control_key_file", "rc_control_cert_file", - "dtstart", "contents_dt", "content_dt", "dt_dnstap_enable", - "dt_dnstap_bidirectional", "dt_dnstap_socket_path", "dt_dnstap_ip", - "dt_dnstap_tls", "dt_dnstap_tls_server_name", - "dt_dnstap_tls_cert_bundle", "dt_dnstap_tls_client_key_file", - "dt_dnstap_tls_client_cert_file", "dt_dnstap_send_identity", - "dt_dnstap_send_version", "dt_dnstap_identity", "dt_dnstap_version", + "server_ipsecmod_strict", "server_edns_client_string", + "server_edns_client_string_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", "auth_master", "auth_url", "auth_allow_notify", + "auth_for_downstream", "auth_for_upstream", "auth_fallback_enabled", + "view_name", "view_local_zone", "view_response_ip", + "view_response_ip_data", "view_local_data", "view_local_data_ptr", + "view_first", "rcstart", "contents_rc", "content_rc", + "rc_control_enable", "rc_control_port", "rc_control_interface", + "rc_control_use_cert", "rc_server_key_file", "rc_server_cert_file", + "rc_control_key_file", "rc_control_cert_file", "dtstart", "contents_dt", + "content_dt", "dt_dnstap_enable", "dt_dnstap_bidirectional", + "dt_dnstap_socket_path", "dt_dnstap_ip", "dt_dnstap_tls", + "dt_dnstap_tls_server_name", "dt_dnstap_tls_cert_bundle", + "dt_dnstap_tls_client_key_file", "dt_dnstap_tls_client_cert_file", + "dt_dnstap_send_identity", "dt_dnstap_send_version", + "dt_dnstap_identity", "dt_dnstap_version", "dt_dnstap_log_resolver_query_messages", "dt_dnstap_log_resolver_response_messages", "dt_dnstap_log_client_query_messages", @@ -1424,14 +1434,15 @@ 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, 547, 548, 549, 550, 551, 552, 553, 554 + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557 }; # endif -#define YYPACT_NINF -288 +#define YYPACT_NINF -291 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-288))) + (!!((Yystate) == (-291))) #define YYTABLE_NINF -1 @@ -1442,99 +1453,100 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -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, + -291, 0, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, 287, -42, -38, -43, -21, -44, -11, -96, + -109, -290, -215, -240, -282, 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, 91, 93, - 94, 95, 97, 98, 99, 100, 101, 103, 104, 105, + 94, 95, 96, 98, 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 126, 127, 128, 129, 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, + 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 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, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 215, 216, 217, 218, 219, 220, 221, 223, 224, + 225, 226, 227, 230, 232, 234, 247, 248, 249, 250, + 251, 252, 253, 254, 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 + 272, 273, 274, 275, 276, 277, 278, 280, 281, 282, + 284, 285, 286, 288, 322, 323, 324, 325, 329, 330, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, 331, 373, 374, 375, + 376, 377, 378, -291, -291, -291, -291, -291, -291, -291, + -291, 379, 380, 381, 385, 389, 390, -291, -291, -291, + -291, -291, -291, -291, 415, 416, 417, 426, 439, 440, + 441, -291, -291, -291, -291, -291, -291, -291, -291, 442, + 443, 444, 445, 446, 447, 448, 449, -291, -291, -291, + -291, -291, -291, -291, -291, -291, 450, 451, 452, 453, + 454, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, 455, 456, 457, 458, 498, 500, 516, 517, + -291, -291, -291, -291, -291, -291, -291, -291, -291, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 533, 534, + 535, 536, 537, 538, 539, 541, 542, 543, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, 544, -291, + -291, 545, -291, -291, 546, 547, 550, 553, 556, 557, + 566, 567, 568, 570, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, 571, 572, 573, 574, 575, + 576, -291, -291, -291, -291, -291, -291, -291, 577, 580, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, 581, 582, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, 583, + 584, 585, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, 586, 587, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, 588, 589, 590, 591, 592, 593, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, 594, -291, -291, -291, + -291, -291, -291, -291, -291, -291, 595, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, 596, -291, -291, 597, 598, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, 599, 600, 601, + -291, -291, -291, -291, -291, -291, -291, -291, -291 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1542,10 +1554,10 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 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, + 2, 0, 1, 18, 19, 227, 237, 513, 573, 532, + 246, 587, 610, 256, 626, 272, 578, 3, 17, 21, + 229, 239, 248, 258, 274, 515, 534, 575, 580, 589, + 612, 628, 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, @@ -1566,151 +1578,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, 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 + 20, 22, 23, 86, 89, 98, 195, 196, 24, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 37, + 77, 25, 90, 91, 48, 70, 85, 26, 27, 30, + 31, 28, 29, 32, 33, 34, 35, 36, 121, 207, + 122, 124, 125, 126, 209, 214, 210, 221, 222, 223, + 224, 127, 128, 129, 130, 131, 132, 133, 191, 87, + 76, 102, 119, 120, 219, 216, 123, 38, 39, 40, + 41, 42, 78, 92, 93, 108, 64, 74, 65, 199, + 200, 103, 58, 59, 198, 60, 61, 112, 116, 137, + 147, 174, 150, 220, 113, 71, 43, 44, 45, 100, + 138, 139, 140, 141, 46, 47, 49, 50, 52, 53, + 51, 145, 151, 54, 55, 56, 62, 81, 117, 95, + 146, 88, 170, 96, 97, 114, 115, 217, 101, 57, + 79, 82, 63, 66, 104, 105, 80, 171, 106, 67, + 68, 69, 208, 118, 184, 185, 186, 187, 188, 189, + 197, 107, 75, 109, 110, 111, 172, 72, 73, 94, + 83, 84, 99, 134, 135, 218, 136, 142, 143, 144, + 175, 176, 178, 180, 181, 179, 182, 192, 148, 149, + 154, 155, 152, 153, 156, 157, 159, 158, 211, 213, + 212, 173, 183, 201, 203, 202, 204, 205, 206, 225, + 226, 177, 190, 193, 194, 215, 0, 0, 0, 0, + 0, 0, 0, 228, 230, 231, 232, 234, 235, 236, + 233, 0, 0, 0, 0, 0, 0, 238, 240, 241, + 242, 243, 244, 245, 0, 0, 0, 0, 0, 0, + 0, 247, 249, 250, 253, 254, 251, 255, 252, 0, + 0, 0, 0, 0, 0, 0, 0, 257, 259, 260, + 261, 262, 266, 263, 264, 265, 0, 0, 0, 0, + 0, 277, 281, 282, 283, 284, 273, 275, 276, 278, + 279, 280, 0, 0, 0, 0, 0, 0, 0, 0, + 514, 516, 518, 517, 523, 519, 520, 521, 522, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 533, 535, + 537, 536, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, 0, 574, + 576, 0, 579, 581, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 588, 590, 591, 592, 594, 595, + 593, 596, 597, 598, 599, 0, 0, 0, 0, 0, + 0, 611, 613, 614, 615, 616, 617, 618, 0, 0, + 627, 629, 630, 286, 285, 292, 305, 303, 315, 311, + 312, 316, 313, 314, 317, 318, 319, 320, 321, 351, + 352, 353, 354, 355, 380, 381, 382, 388, 389, 308, + 390, 391, 394, 392, 393, 397, 398, 399, 413, 366, + 367, 369, 370, 400, 416, 360, 362, 417, 423, 424, + 425, 309, 379, 441, 442, 361, 436, 344, 304, 356, + 414, 420, 401, 0, 0, 445, 310, 287, 343, 405, + 288, 306, 307, 357, 358, 443, 403, 407, 408, 289, + 446, 383, 412, 345, 365, 418, 419, 422, 435, 359, + 439, 437, 438, 371, 378, 409, 410, 372, 373, 402, + 427, 346, 347, 350, 322, 324, 325, 326, 327, 328, + 335, 336, 337, 338, 339, 340, 341, 447, 448, 450, + 384, 385, 386, 387, 395, 396, 451, 452, 453, 0, + 0, 0, 404, 374, 376, 583, 462, 466, 464, 463, + 467, 465, 0, 0, 470, 471, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 406, 421, 440, 475, + 476, 375, 454, 0, 0, 0, 0, 0, 0, 428, + 429, 430, 431, 432, 433, 434, 584, 368, 363, 426, + 342, 290, 291, 364, 477, 479, 478, 480, 481, 482, + 323, 330, 472, 474, 473, 329, 0, 349, 411, 449, + 348, 377, 331, 332, 334, 333, 0, 484, 485, 486, + 487, 491, 490, 488, 489, 492, 493, 494, 495, 497, + 496, 506, 0, 510, 511, 0, 0, 512, 498, 504, + 499, 500, 501, 503, 505, 502, 267, 268, 269, 270, + 271, 524, 526, 525, 528, 529, 530, 531, 527, 554, + 556, 557, 558, 559, 560, 561, 562, 563, 564, 555, + 565, 566, 567, 568, 569, 570, 571, 572, 577, 582, + 600, 601, 602, 605, 603, 604, 606, 607, 608, 609, + 619, 620, 621, 622, 623, 624, 631, 632, 415, 444, + 461, 585, 586, 468, 469, 455, 456, 0, 0, 0, + 460, 625, 483, 507, 508, 509, 459, 457, 458 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, - -288, -288, -288, -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 + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + 578, 579, 602, 603, 604, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, + -291, -291, -291, -291, -291, -291, -291, -291 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -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 + -1, 1, 17, 18, 19, 32, 250, 20, 33, 463, + 21, 34, 477, 22, 35, 491, 23, 36, 507, 521, + 522, 523, 524, 525, 24, 37, 526, 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, 445, 446, 447, 448, 449, 450, 464, 465, 466, + 467, 468, 469, 470, 478, 479, 480, 481, 482, 483, + 508, 509, 510, 511, 512, 513, 514, 515, 492, 493, + 494, 495, 496, 497, 498, 25, 38, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 26, 39, 568, 569, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, + 580, 581, 582, 583, 584, 585, 586, 587, 27, 40, + 589, 590, 28, 41, 592, 593, 451, 452, 453, 454, + 29, 42, 604, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 30, 43, 621, 622, 623, 624, 625, + 626, 627, 455, 31, 44, 630, 631, 632 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1718,149 +1731,151 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint16 yytable[] = { - 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, + 2, 499, 484, 456, 588, 457, 458, 471, 628, 629, + 591, 3, 4, 633, 634, 472, 473, 615, 616, 617, + 618, 619, 620, 635, 499, 594, 595, 596, 597, 598, + 599, 600, 601, 602, 603, 636, 637, 638, 485, 486, + 639, 640, 641, 642, 643, 644, 5, 645, 646, 647, + 648, 649, 6, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 487, 660, 661, 459, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, + 562, 563, 564, 565, 566, 567, 532, 533, 534, 535, + 536, 537, 538, 539, 662, 663, 7, 460, 664, 665, + 474, 666, 475, 667, 668, 669, 670, 461, 671, 672, + 673, 674, 8, 675, 676, 677, 678, 679, 680, 681, + 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, + 488, 489, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 720, 721, 9, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, + 490, 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, 770, 771, 772, 773, 774, 775, 776, 777, + 778, 10, 501, 502, 503, 779, 780, 781, 782, 783, + 784, 785, 506, 786, 787, 788, 789, 790, 462, 11, + 791, 476, 792, 500, 793, 501, 502, 503, 504, 505, + 516, 517, 518, 519, 520, 506, 12, 794, 795, 796, + 797, 798, 799, 800, 801, 13, 802, 803, 804, 805, + 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, + 816, 817, 818, 819, 820, 821, 822, 823, 824, 14, + 825, 826, 827, 15, 828, 829, 830, 0, 831, 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, 832, 833, 834, 835, 77, 78, 79, 836, + 837, 838, 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, 839, 840, 841, 842, 843, 844, 845, + 846, 847, 121, 122, 123, 848, 124, 125, 126, 849, + 850, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 851, 852, 853, 151, 152, + 153, 154, 155, 156, 157, 158, 854, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 855, + 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, + 866, 867, 868, 869, 870, 871, 872, 873, 874, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 875, 210, + 876, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 877, 878, 879, 880, + 881, 882, 883, 884, 885, 886, 887, 226, 227, 228, + 229, 230, 231, 888, 889, 890, 891, 892, 893, 894, + 232, 895, 896, 897, 898, 899, 900, 901, 233, 234, + 902, 235, 236, 903, 237, 238, 904, 905, 239, 240, + 241, 242, 243, 244, 245, 246, 906, 907, 908, 247, + 909, 910, 911, 912, 913, 914, 915, 916, 248, 249, + 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, + 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, + 937, 938, 0, 0, 0, 527, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 523, 524, 525 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, + 530, 531 }; static const yytype_int16 yycheck[] = { - 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, + 0, 45, 45, 45, 113, 47, 48, 45, 290, 291, + 300, 11, 12, 10, 10, 53, 54, 257, 258, 259, + 260, 261, 262, 10, 45, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 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, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 97, 98, 99, 100, + 10, 10, 10, 106, 10, 10, 108, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 97, 98, 99, 100, 101, 102, 103, 104, 10, 10, 96, 139, 10, 10, - 138, 10, 140, 10, 10, 10, 148, 10, 10, 10, + 138, 10, 140, 10, 10, 10, 10, 149, 10, 10, 10, 10, 112, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 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, 10, 10, 10, 10, 10, 10, 159, + 183, 184, 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, 220, 10, 10, + 10, 10, 162, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 223, 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, 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, 221, 266, 267, 268, 10, 10, 10, 10, 10, + 10, 10, 276, 10, 10, 10, 10, 10, 280, 239, + 10, 279, 10, 264, 10, 266, 267, 268, 269, 270, + 294, 295, 296, 297, 298, 276, 256, 10, 10, 10, + 10, 10, 10, 10, 10, 265, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 289, + 10, 10, 10, 293, 10, 10, 10, -1, 10, 299, + 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, 148, 10, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 10, 10, 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, 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, 218, 219, 220, 10, 222, + 10, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 250, 251, 252, + 253, 254, 255, 10, 10, 10, 10, 10, 10, 10, + 263, 10, 10, 10, 10, 10, 10, 10, 271, 272, + 10, 274, 275, 10, 277, 278, 10, 10, 281, 282, + 283, 284, 285, 286, 287, 288, 10, 10, 10, 292, + 10, 10, 10, 10, 10, 10, 10, 10, 301, 302, 10, 10, 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, -1, -1, -1, 37, - 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 10, 10, -1, -1, -1, 37, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 37, 37, 37 + -1, -1, -1, -1, -1, -1, -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, 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, + 0, 304, 0, 11, 12, 46, 52, 96, 112, 162, + 221, 239, 256, 265, 289, 293, 299, 305, 306, 307, + 310, 313, 316, 319, 327, 558, 569, 591, 595, 603, + 616, 626, 308, 311, 314, 317, 320, 328, 559, 570, + 592, 596, 604, 617, 627, 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, @@ -1871,17 +1886,17 @@ 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, 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, + 137, 141, 142, 143, 144, 145, 146, 147, 148, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 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, 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, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 222, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 250, 251, 252, 253, + 254, 255, 263, 271, 272, 274, 275, 277, 278, 281, + 282, 283, 284, 285, 286, 287, 288, 292, 301, 302, + 309, 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, @@ -1900,25 +1915,26 @@ static const yytype_uint16 yystos[] = 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 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, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 599, 600, 601, 602, 625, 45, 47, 48, 108, + 139, 149, 280, 312, 530, 531, 532, 533, 534, 535, + 536, 45, 53, 54, 138, 140, 279, 315, 537, 538, + 539, 540, 541, 542, 45, 81, 82, 106, 183, 184, + 223, 318, 551, 552, 553, 554, 555, 556, 557, 45, + 264, 266, 267, 268, 269, 270, 276, 321, 543, 544, + 545, 546, 547, 548, 549, 550, 294, 295, 296, 297, + 298, 322, 323, 324, 325, 326, 329, 543, 544, 545, + 546, 547, 97, 98, 99, 100, 101, 102, 103, 104, + 560, 561, 562, 563, 564, 565, 566, 567, 568, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 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, + 583, 584, 585, 586, 587, 588, 589, 590, 113, 593, + 594, 300, 597, 598, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 615, 257, 258, 259, 260, 261, + 262, 618, 619, 620, 621, 622, 623, 624, 290, 291, + 628, 629, 630, 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, @@ -1948,41 +1964,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, 10, 10, 10, 10 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 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, 325, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 0, 303, 304, 304, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 305, 305, 305, 305, 305, 306, 307, + 308, 308, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, + 309, 309, 309, 309, 309, 309, 309, 310, 311, 311, + 312, 312, 312, 312, 312, 312, 312, 313, 314, 314, + 315, 315, 315, 315, 315, 315, 316, 317, 317, 318, + 318, 318, 318, 318, 318, 318, 319, 320, 320, 321, + 321, 321, 321, 321, 321, 321, 321, 322, 323, 324, + 325, 326, 327, 328, 328, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 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, @@ -2004,19 +2020,20 @@ static const yytype_uint16 yyr1[] = 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, 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 + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 559, 560, 560, 560, 560, + 560, 560, 560, 560, 561, 562, 563, 564, 565, 566, + 567, 568, 569, 570, 570, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 572, 573, 574, 575, 576, 577, + 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, + 588, 589, 590, 591, 592, 592, 593, 594, 595, 596, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 604, + 605, 605, 605, 605, 605, 605, 605, 605, 605, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 617, 618, 618, 618, 618, 618, 618, 619, + 620, 621, 622, 623, 624, 625, 626, 627, 627, 628, + 628, 629, 630 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -2044,13 +2061,13 @@ 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, 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, + 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, @@ -2062,29 +2079,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, 2, 2, 2, 2, 3, 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, 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, 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, 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, 1, 1, 1, 1, 1, 1, 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, 1, 2, 0, - 1, 2, 1, 2, 0, 1, 2, 2, 2, 3, - 3, 1, 2, 0, 1, 1, 1, 1, 1, 1, + 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, 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, 1, 2, 0, 1, 1, 1, 1, 1, + 1, 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 }; @@ -2769,23 +2787,23 @@ yyreduce: switch (yyn) { case 18: -#line 194 "util/configparser.y" +#line 195 "util/configparser.y" { OUTYY(("\nP(force-toplevel)\n")); } -#line 2777 "util/configparser.c" +#line 2795 "util/configparser.c" break; case 19: -#line 200 "util/configparser.y" +#line 201 "util/configparser.y" { OUTYY(("\nP(server:)\n")); } -#line 2785 "util/configparser.c" +#line 2803 "util/configparser.c" break; - case 224: -#line 298 "util/configparser.y" + case 227: +#line 299 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); @@ -2796,11 +2814,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2800 "util/configparser.c" +#line 2818 "util/configparser.c" break; - case 234: -#line 315 "util/configparser.y" + case 237: +#line 316 "util/configparser.y" { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); @@ -2811,11 +2829,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2815 "util/configparser.c" +#line 2833 "util/configparser.c" break; - case 243: -#line 332 "util/configparser.y" + case 246: +#line 333 "util/configparser.y" { struct config_view* s; OUTYY(("\nP(view:)\n")); @@ -2828,11 +2846,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2832 "util/configparser.c" +#line 2850 "util/configparser.c" break; - case 253: -#line 351 "util/configparser.y" + case 256: +#line 352 "util/configparser.y" { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); @@ -2848,11 +2866,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2852 "util/configparser.c" +#line 2870 "util/configparser.c" break; - case 264: -#line 375 "util/configparser.y" + case 267: +#line 376 "util/configparser.y" { uint8_t* bitlist; size_t len = 0; @@ -2869,11 +2887,11 @@ yyreduce: } } -#line 2873 "util/configparser.c" +#line 2891 "util/configparser.c" break; - case 265: -#line 394 "util/configparser.y" + case 268: +#line 395 "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 && @@ -2888,21 +2906,21 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 2892 "util/configparser.c" +#line 2910 "util/configparser.c" break; - case 266: -#line 411 "util/configparser.y" + case 269: +#line 412 "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 2902 "util/configparser.c" +#line 2920 "util/configparser.c" break; - case 267: -#line 419 "util/configparser.y" + case 270: +#line 420 "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) @@ -2910,21 +2928,21 @@ yyreduce: else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2914 "util/configparser.c" +#line 2932 "util/configparser.c" break; - case 268: -#line 429 "util/configparser.y" + case 271: +#line 430 "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 2924 "util/configparser.c" +#line 2942 "util/configparser.c" break; - case 269: -#line 437 "util/configparser.y" + case 272: +#line 438 "util/configparser.y" { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); @@ -2940,11 +2958,11 @@ yyreduce: } else yyerror("out of memory"); } -#line 2944 "util/configparser.c" +#line 2962 "util/configparser.c" break; - case 282: -#line 460 "util/configparser.y" + case 285: +#line 461 "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) @@ -2952,11 +2970,11 @@ yyreduce: else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2956 "util/configparser.c" +#line 2974 "util/configparser.c" break; - case 283: -#line 469 "util/configparser.y" + case 286: +#line 470 "util/configparser.y" { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -2964,11 +2982,11 @@ yyreduce: else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2968 "util/configparser.c" +#line 2986 "util/configparser.c" break; - case 284: -#line 478 "util/configparser.y" + case 287: +#line 479 "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) @@ -2978,11 +2996,11 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 2982 "util/configparser.c" +#line 3000 "util/configparser.c" break; - case 285: -#line 489 "util/configparser.y" + case 288: +#line 490 "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) @@ -2990,11 +3008,11 @@ yyreduce: else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 2994 "util/configparser.c" +#line 3012 "util/configparser.c" break; - case 286: -#line 498 "util/configparser.y" + case 289: +#line 499 "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) @@ -3002,11 +3020,11 @@ yyreduce: else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3006 "util/configparser.c" +#line 3024 "util/configparser.c" break; - case 287: -#line 507 "util/configparser.y" + case 290: +#line 508 "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) @@ -3014,11 +3032,11 @@ yyreduce: else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3018 "util/configparser.c" +#line 3036 "util/configparser.c" break; - case 288: -#line 516 "util/configparser.y" + case 291: +#line 517 "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) @@ -3028,11 +3046,11 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3032 "util/configparser.c" +#line 3050 "util/configparser.c" break; - case 289: -#line 527 "util/configparser.y" + case 292: +#line 528 "util/configparser.y" { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3040,11 +3058,11 @@ yyreduce: else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3044 "util/configparser.c" +#line 3062 "util/configparser.c" break; - case 290: -#line 536 "util/configparser.y" + case 293: +#line 537 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); @@ -3055,11 +3073,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3059 "util/configparser.c" +#line 3077 "util/configparser.c" break; - case 291: -#line 548 "util/configparser.y" + case 294: +#line 549 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); @@ -3071,11 +3089,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3075 "util/configparser.c" +#line 3093 "util/configparser.c" break; - case 292: -#line 562 "util/configparser.y" + case 295: +#line 563 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); @@ -3089,11 +3107,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3093 "util/configparser.c" +#line 3111 "util/configparser.c" break; - case 293: -#line 577 "util/configparser.y" + case 296: +#line 578 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); @@ -3103,11 +3121,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3107 "util/configparser.c" +#line 3125 "util/configparser.c" break; - case 294: -#line 588 "util/configparser.y" + case 297: +#line 589 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3123,11 +3141,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3127 "util/configparser.c" +#line 3145 "util/configparser.c" break; - case 295: -#line 605 "util/configparser.y" + case 298: +#line 606 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3143,11 +3161,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3147 "util/configparser.c" +#line 3165 "util/configparser.c" break; - case 296: -#line 622 "util/configparser.y" + case 299: +#line 623 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); @@ -3163,11 +3181,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3167 "util/configparser.c" +#line 3185 "util/configparser.c" break; - case 297: -#line 639 "util/configparser.y" + case 300: +#line 640 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); @@ -3183,11 +3201,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3187 "util/configparser.c" +#line 3205 "util/configparser.c" break; - case 298: -#line 656 "util/configparser.y" + case 301: +#line 657 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); @@ -3201,11 +3219,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3205 "util/configparser.c" +#line 3223 "util/configparser.c" break; - case 299: -#line 671 "util/configparser.y" + case 302: +#line 672 "util/configparser.y" { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); @@ -3219,11 +3237,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3223 "util/configparser.c" +#line 3241 "util/configparser.c" break; - case 300: -#line 686 "util/configparser.y" + case 303: +#line 687 "util/configparser.y" { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) @@ -3235,11 +3253,11 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3239 "util/configparser.c" +#line 3257 "util/configparser.c" break; - case 301: -#line 699 "util/configparser.y" + case 304: +#line 700 "util/configparser.y" { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) @@ -3253,11 +3271,11 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3257 "util/configparser.c" +#line 3275 "util/configparser.c" break; - case 302: -#line 714 "util/configparser.y" + case 305: +#line 715 "util/configparser.y" { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3265,11 +3283,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3269 "util/configparser.c" +#line 3287 "util/configparser.c" break; - case 303: -#line 723 "util/configparser.y" + case 306: +#line 724 "util/configparser.y" { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, @@ -3277,11 +3295,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3281 "util/configparser.c" +#line 3299 "util/configparser.c" break; - case 304: -#line 732 "util/configparser.y" + case 307: +#line 733 "util/configparser.y" { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, @@ -3289,11 +3307,11 @@ yyreduce: yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3293 "util/configparser.c" +#line 3311 "util/configparser.c" break; - case 305: -#line 741 "util/configparser.y" + case 308: +#line 742 "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) @@ -3301,11 +3319,11 @@ yyreduce: else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3305 "util/configparser.c" +#line 3323 "util/configparser.c" break; - case 306: -#line 750 "util/configparser.y" + case 309: +#line 751 "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) @@ -3313,11 +3331,11 @@ yyreduce: else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3317 "util/configparser.c" +#line 3335 "util/configparser.c" break; - case 307: -#line 759 "util/configparser.y" + case 310: +#line 760 "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) @@ -3325,11 +3343,11 @@ yyreduce: else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3329 "util/configparser.c" +#line 3347 "util/configparser.c" break; - case 308: -#line 768 "util/configparser.y" + case 311: +#line 769 "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) @@ -3337,11 +3355,11 @@ yyreduce: else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3341 "util/configparser.c" +#line 3359 "util/configparser.c" break; - case 309: -#line 777 "util/configparser.y" + case 312: +#line 778 "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) @@ -3349,11 +3367,11 @@ yyreduce: else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3353 "util/configparser.c" +#line 3371 "util/configparser.c" break; - case 310: -#line 786 "util/configparser.y" + case 313: +#line 787 "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) @@ -3361,11 +3379,11 @@ yyreduce: else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3365 "util/configparser.c" +#line 3383 "util/configparser.c" break; - case 311: -#line 795 "util/configparser.y" + case 314: +#line 796 "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) @@ -3373,11 +3391,11 @@ yyreduce: else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3377 "util/configparser.c" +#line 3395 "util/configparser.c" break; - case 312: -#line 804 "util/configparser.y" + case 315: +#line 805 "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) @@ -3385,11 +3403,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3389 "util/configparser.c" +#line 3407 "util/configparser.c" break; - case 313: -#line 813 "util/configparser.y" + case 316: +#line 814 "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) @@ -3397,11 +3415,11 @@ yyreduce: else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3401 "util/configparser.c" +#line 3419 "util/configparser.c" break; - case 314: -#line 822 "util/configparser.y" + case 317: +#line 823 "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) @@ -3409,11 +3427,11 @@ yyreduce: else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3413 "util/configparser.c" +#line 3431 "util/configparser.c" break; - case 315: -#line 831 "util/configparser.y" + case 318: +#line 832 "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) @@ -3421,11 +3439,11 @@ yyreduce: else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3425 "util/configparser.c" +#line 3443 "util/configparser.c" break; - case 316: -#line 840 "util/configparser.y" + case 319: +#line 841 "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) @@ -3437,11 +3455,11 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3441 "util/configparser.c" +#line 3459 "util/configparser.c" break; - case 317: -#line 853 "util/configparser.y" + case 320: +#line 854 "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) @@ -3449,11 +3467,11 @@ yyreduce: else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3453 "util/configparser.c" +#line 3471 "util/configparser.c" break; - case 318: -#line 862 "util/configparser.y" + case 321: +#line 863 "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) @@ -3465,11 +3483,11 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3469 "util/configparser.c" +#line 3487 "util/configparser.c" break; - case 319: -#line 875 "util/configparser.y" + case 322: +#line 876 "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) @@ -3477,11 +3495,11 @@ yyreduce: else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3481 "util/configparser.c" +#line 3499 "util/configparser.c" break; - case 320: -#line 884 "util/configparser.y" + case 323: +#line 885 "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) @@ -3489,11 +3507,11 @@ yyreduce: else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3493 "util/configparser.c" +#line 3511 "util/configparser.c" break; - case 321: -#line 893 "util/configparser.y" + case 324: +#line 894 "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) @@ -3501,31 +3519,31 @@ yyreduce: else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3505 "util/configparser.c" +#line 3523 "util/configparser.c" break; - case 322: -#line 902 "util/configparser.y" + case 325: +#line 903 "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 3515 "util/configparser.c" +#line 3533 "util/configparser.c" break; - case 323: -#line 909 "util/configparser.y" + case 326: +#line 910 "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 3525 "util/configparser.c" +#line 3543 "util/configparser.c" break; - case 324: -#line 916 "util/configparser.y" + case 327: +#line 917 "util/configparser.y" { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -3533,21 +3551,21 @@ yyreduce: else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3537 "util/configparser.c" +#line 3555 "util/configparser.c" break; - case 325: -#line 925 "util/configparser.y" + case 328: +#line 926 "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 3547 "util/configparser.c" +#line 3565 "util/configparser.c" break; - case 326: -#line 932 "util/configparser.y" + case 329: +#line 933 "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) @@ -3555,53 +3573,53 @@ yyreduce: else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3559 "util/configparser.c" +#line 3577 "util/configparser.c" break; - case 327: -#line 941 "util/configparser.y" + case 330: +#line 942 "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 3570 "util/configparser.c" +#line 3588 "util/configparser.c" break; - case 328: -#line 949 "util/configparser.y" + case 331: +#line 950 "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 3580 "util/configparser.c" +#line 3598 "util/configparser.c" break; - case 329: -#line 956 "util/configparser.y" + case 332: +#line 957 "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 3590 "util/configparser.c" +#line 3608 "util/configparser.c" break; - case 330: -#line 963 "util/configparser.y" + case 333: +#line 964 "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 3601 "util/configparser.c" +#line 3619 "util/configparser.c" break; - case 331: -#line 971 "util/configparser.y" + case 334: +#line 972 "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) @@ -3609,22 +3627,23 @@ yyreduce: else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3613 "util/configparser.c" +#line 3631 "util/configparser.c" break; - case 332: -#line 980 "util/configparser.y" + case 335: +#line 981 "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)); + free((yyvsp[0].str)); } -#line 3624 "util/configparser.c" +#line 3643 "util/configparser.c" break; - case 333: -#line 987 "util/configparser.y" + case 336: +#line 989 "util/configparser.y" { OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_endpoint); @@ -3640,11 +3659,11 @@ yyreduce: cfg_parser->cfg->http_endpoint = (yyvsp[0].str); } } -#line 3644 "util/configparser.c" +#line 3663 "util/configparser.c" break; - case 334: -#line 1003 "util/configparser.y" + case 337: +#line 1005 "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) @@ -3652,11 +3671,11 @@ yyreduce: else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3656 "util/configparser.c" +#line 3675 "util/configparser.c" break; - case 335: -#line 1011 "util/configparser.y" + case 338: +#line 1013 "util/configparser.y" { OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -3664,11 +3683,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3668 "util/configparser.c" +#line 3687 "util/configparser.c" break; - case 336: -#line 1019 "util/configparser.y" + case 339: +#line 1021 "util/configparser.y" { OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), @@ -3676,11 +3695,11 @@ yyreduce: yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3680 "util/configparser.c" +#line 3699 "util/configparser.c" break; - case 337: -#line 1027 "util/configparser.y" + case 340: +#line 1029 "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) @@ -3688,11 +3707,23 @@ yyreduce: else cfg_parser->cfg->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3692 "util/configparser.c" +#line 3711 "util/configparser.c" break; - case 338: -#line 1035 "util/configparser.y" + case 341: +#line 1037 "util/configparser.y" + { + OUTYY(("P(server_http_notls_downstream:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->http_notls_downstream = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 3723 "util/configparser.c" + break; + + case 342: +#line 1045 "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) @@ -3700,11 +3731,11 @@ yyreduce: else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3704 "util/configparser.c" +#line 3735 "util/configparser.c" break; - case 339: -#line 1044 "util/configparser.y" + case 343: +#line 1054 "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) @@ -3712,11 +3743,11 @@ yyreduce: else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3716 "util/configparser.c" +#line 3747 "util/configparser.c" break; - case 340: -#line 1053 "util/configparser.y" + case 344: +#line 1063 "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) @@ -3729,11 +3760,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3733 "util/configparser.c" +#line 3764 "util/configparser.c" break; - case 341: -#line 1067 "util/configparser.y" + case 345: +#line 1077 "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) @@ -3741,11 +3772,11 @@ yyreduce: else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3745 "util/configparser.c" +#line 3776 "util/configparser.c" break; - case 342: -#line 1076 "util/configparser.y" + case 346: +#line 1086 "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) @@ -3753,11 +3784,11 @@ yyreduce: else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3757 "util/configparser.c" +#line 3788 "util/configparser.c" break; - case 343: -#line 1085 "util/configparser.y" + case 347: +#line 1095 "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) @@ -3765,11 +3796,11 @@ yyreduce: else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3769 "util/configparser.c" +#line 3800 "util/configparser.c" break; - case 344: -#line 1094 "util/configparser.y" + case 348: +#line 1104 "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) @@ -3777,11 +3808,11 @@ yyreduce: else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3781 "util/configparser.c" +#line 3812 "util/configparser.c" break; - case 345: -#line 1103 "util/configparser.y" + case 349: +#line 1113 "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) @@ -3789,11 +3820,11 @@ yyreduce: else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3793 "util/configparser.c" +#line 3824 "util/configparser.c" break; - case 346: -#line 1112 "util/configparser.y" + case 350: +#line 1122 "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) @@ -3801,31 +3832,31 @@ yyreduce: else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3805 "util/configparser.c" +#line 3836 "util/configparser.c" break; - case 347: -#line 1121 "util/configparser.y" + case 351: +#line 1131 "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 3815 "util/configparser.c" +#line 3846 "util/configparser.c" break; - case 348: -#line 1128 "util/configparser.y" + case 352: +#line 1138 "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 3825 "util/configparser.c" +#line 3856 "util/configparser.c" break; - case 349: -#line 1135 "util/configparser.y" + case 353: +#line 1145 "util/configparser.y" { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); @@ -3850,105 +3881,105 @@ yyreduce: } } } -#line 3854 "util/configparser.c" +#line 3885 "util/configparser.c" break; - case 350: -#line 1161 "util/configparser.y" + case 354: +#line 1171 "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 3865 "util/configparser.c" +#line 3896 "util/configparser.c" break; - case 351: -#line 1169 "util/configparser.y" + case 355: +#line 1179 "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 3875 "util/configparser.c" +#line 3906 "util/configparser.c" break; - case 352: -#line 1176 "util/configparser.y" + case 356: +#line 1186 "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 3885 "util/configparser.c" +#line 3916 "util/configparser.c" break; - case 353: -#line 1183 "util/configparser.y" + case 357: +#line 1193 "util/configparser.y" { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 3895 "util/configparser.c" +#line 3926 "util/configparser.c" break; - case 354: -#line 1190 "util/configparser.y" + case 358: +#line 1200 "util/configparser.y" { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 3905 "util/configparser.c" +#line 3936 "util/configparser.c" break; - case 355: -#line 1197 "util/configparser.y" + case 359: +#line 1207 "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 3916 "util/configparser.c" +#line 3947 "util/configparser.c" break; - case 356: -#line 1205 "util/configparser.y" + case 360: +#line 1215 "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 3927 "util/configparser.c" +#line 3958 "util/configparser.c" break; - case 357: -#line 1213 "util/configparser.y" + case 361: +#line 1223 "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 3938 "util/configparser.c" +#line 3969 "util/configparser.c" break; - case 358: -#line 1221 "util/configparser.y" + case 362: +#line 1231 "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 3948 "util/configparser.c" +#line 3979 "util/configparser.c" break; - case 359: -#line 1228 "util/configparser.y" + case 363: +#line 1238 "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) @@ -3958,11 +3989,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3962 "util/configparser.c" +#line 3993 "util/configparser.c" break; - case 360: -#line 1239 "util/configparser.y" + case 364: +#line 1249 "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) @@ -3972,21 +4003,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3976 "util/configparser.c" +#line 4007 "util/configparser.c" break; - case 361: -#line 1250 "util/configparser.y" + case 365: +#line 1260 "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 3986 "util/configparser.c" +#line 4017 "util/configparser.c" break; - case 362: -#line 1257 "util/configparser.y" + case 366: +#line 1267 "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) @@ -3994,11 +4025,11 @@ yyreduce: else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3998 "util/configparser.c" +#line 4029 "util/configparser.c" break; - case 363: -#line 1266 "util/configparser.y" + case 367: +#line 1276 "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) @@ -4006,11 +4037,11 @@ yyreduce: else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4010 "util/configparser.c" +#line 4041 "util/configparser.c" break; - case 364: -#line 1275 "util/configparser.y" + case 368: +#line 1285 "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) @@ -4018,53 +4049,53 @@ yyreduce: else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4022 "util/configparser.c" +#line 4053 "util/configparser.c" break; - case 365: -#line 1284 "util/configparser.y" + case 369: +#line 1294 "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 4032 "util/configparser.c" +#line 4063 "util/configparser.c" break; - case 366: -#line 1291 "util/configparser.y" + case 370: +#line 1301 "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 4042 "util/configparser.c" +#line 4073 "util/configparser.c" break; - case 367: -#line 1298 "util/configparser.y" + case 371: +#line 1308 "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 4053 "util/configparser.c" +#line 4084 "util/configparser.c" break; - case 368: -#line 1306 "util/configparser.y" + case 372: +#line 1316 "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 4064 "util/configparser.c" +#line 4095 "util/configparser.c" break; - case 369: -#line 1314 "util/configparser.y" + case 373: +#line 1324 "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) @@ -4073,11 +4104,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4077 "util/configparser.c" +#line 4108 "util/configparser.c" break; - case 370: -#line 1324 "util/configparser.y" + case 374: +#line 1334 "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) @@ -4086,11 +4117,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4090 "util/configparser.c" +#line 4121 "util/configparser.c" break; - case 371: -#line 1334 "util/configparser.y" + case 375: +#line 1344 "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) @@ -4099,11 +4130,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4103 "util/configparser.c" +#line 4134 "util/configparser.c" break; - case 372: -#line 1344 "util/configparser.y" + case 376: +#line 1354 "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) @@ -4116,22 +4147,22 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4120 "util/configparser.c" +#line 4151 "util/configparser.c" break; - case 373: -#line 1358 "util/configparser.y" + case 377: +#line 1368 "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 4131 "util/configparser.c" +#line 4162 "util/configparser.c" break; - case 374: -#line 1366 "util/configparser.y" + case 378: +#line 1376 "util/configparser.y" { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4143,11 +4174,11 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4147 "util/configparser.c" +#line 4178 "util/configparser.c" break; - case 375: -#line 1379 "util/configparser.y" + case 379: +#line 1389 "util/configparser.y" { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4157,22 +4188,22 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4161 "util/configparser.c" +#line 4192 "util/configparser.c" break; - case 376: -#line 1390 "util/configparser.y" + case 380: +#line 1400 "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 4172 "util/configparser.c" +#line 4203 "util/configparser.c" break; - case 377: -#line 1398 "util/configparser.y" + case 381: +#line 1408 "util/configparser.y" { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4184,11 +4215,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4188 "util/configparser.c" +#line 4219 "util/configparser.c" break; - case 378: -#line 1411 "util/configparser.y" + case 382: +#line 1421 "util/configparser.y" { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4196,11 +4227,11 @@ yyreduce: else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4200 "util/configparser.c" +#line 4231 "util/configparser.c" break; - case 379: -#line 1420 "util/configparser.y" + case 383: +#line 1430 "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) @@ -4208,11 +4239,11 @@ yyreduce: else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4212 "util/configparser.c" +#line 4243 "util/configparser.c" break; - case 380: -#line 1429 "util/configparser.y" + case 384: +#line 1439 "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) @@ -4220,11 +4251,23 @@ yyreduce: else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4224 "util/configparser.c" +#line 4255 "util/configparser.c" break; - case 381: -#line 1438 "util/configparser.y" + case 385: +#line 1448 "util/configparser.y" + { + OUTYY(("P(server_udp_connect:%s)\n", (yyvsp[0].str))); + if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) + yyerror("expected yes or no."); + else cfg_parser->cfg->udp_connect = (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 4267 "util/configparser.c" + break; + + case 386: +#line 1457 "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) @@ -4233,11 +4276,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4237 "util/configparser.c" +#line 4280 "util/configparser.c" break; - case 382: -#line 1448 "util/configparser.y" + case 387: +#line 1467 "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) @@ -4246,22 +4289,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4250 "util/configparser.c" +#line 4293 "util/configparser.c" break; - case 383: -#line 1458 "util/configparser.y" + case 388: +#line 1477 "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 4261 "util/configparser.c" +#line 4304 "util/configparser.c" break; - case 384: -#line 1466 "util/configparser.y" + case 389: +#line 1485 "util/configparser.y" { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4273,11 +4316,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4277 "util/configparser.c" +#line 4320 "util/configparser.c" break; - case 385: -#line 1479 "util/configparser.y" + case 390: +#line 1498 "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) @@ -4285,22 +4328,22 @@ yyreduce: else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4289 "util/configparser.c" +#line 4332 "util/configparser.c" break; - case 386: -#line 1488 "util/configparser.y" + case 391: +#line 1507 "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 4300 "util/configparser.c" +#line 4343 "util/configparser.c" break; - case 387: -#line 1496 "util/configparser.y" + case 392: +#line 1515 "util/configparser.y" { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4308,22 +4351,22 @@ yyreduce: else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4312 "util/configparser.c" +#line 4355 "util/configparser.c" break; - case 388: -#line 1505 "util/configparser.y" + case 393: +#line 1524 "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 4323 "util/configparser.c" +#line 4366 "util/configparser.c" break; - case 389: -#line 1513 "util/configparser.y" + case 394: +#line 1532 "util/configparser.y" { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4335,11 +4378,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4339 "util/configparser.c" +#line 4382 "util/configparser.c" break; - case 390: -#line 1526 "util/configparser.y" + case 395: +#line 1545 "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) @@ -4347,21 +4390,34 @@ yyreduce: else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4351 "util/configparser.c" +#line 4394 "util/configparser.c" break; - case 391: -#line 1535 "util/configparser.y" + case 396: +#line 1554 "util/configparser.y" + { + OUTYY(("P(server_infra_keep_probing:%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->infra_keep_probing = + (strcmp((yyvsp[0].str), "yes")==0); + free((yyvsp[0].str)); + } +#line 4407 "util/configparser.c" + break; + + case 397: +#line 1564 "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 4361 "util/configparser.c" +#line 4417 "util/configparser.c" break; - case 392: -#line 1542 "util/configparser.y" + case 398: +#line 1571 "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) @@ -4370,11 +4426,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4374 "util/configparser.c" +#line 4430 "util/configparser.c" break; - case 393: -#line 1552 "util/configparser.y" + case 399: +#line 1581 "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) @@ -4383,11 +4439,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4387 "util/configparser.c" +#line 4443 "util/configparser.c" break; - case 394: -#line 1562 "util/configparser.y" + case 400: +#line 1591 "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) @@ -4396,11 +4452,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4400 "util/configparser.c" +#line 4456 "util/configparser.c" break; - case 395: -#line 1572 "util/configparser.y" + case 401: +#line 1601 "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) @@ -4409,11 +4465,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4413 "util/configparser.c" +#line 4469 "util/configparser.c" break; - case 396: -#line 1582 "util/configparser.y" + case 402: +#line 1611 "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) @@ -4422,11 +4478,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4426 "util/configparser.c" +#line 4482 "util/configparser.c" break; - case 397: -#line 1592 "util/configparser.y" + case 403: +#line 1621 "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) @@ -4435,11 +4491,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4439 "util/configparser.c" +#line 4495 "util/configparser.c" break; - case 398: -#line 1602 "util/configparser.y" + case 404: +#line 1631 "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) @@ -4448,11 +4504,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4452 "util/configparser.c" +#line 4508 "util/configparser.c" break; - case 399: -#line 1612 "util/configparser.y" + case 405: +#line 1641 "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) @@ -4461,41 +4517,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4465 "util/configparser.c" +#line 4521 "util/configparser.c" break; - case 400: -#line 1622 "util/configparser.y" + case 406: +#line 1651 "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 4475 "util/configparser.c" +#line 4531 "util/configparser.c" break; - case 401: -#line 1629 "util/configparser.y" + case 407: +#line 1658 "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 4485 "util/configparser.c" +#line 4541 "util/configparser.c" break; - case 402: -#line 1636 "util/configparser.y" + case 408: +#line 1665 "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 4495 "util/configparser.c" +#line 4551 "util/configparser.c" break; - case 403: -#line 1643 "util/configparser.y" + case 409: +#line 1672 "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) @@ -4503,11 +4559,11 @@ yyreduce: else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4507 "util/configparser.c" +#line 4563 "util/configparser.c" break; - case 404: -#line 1652 "util/configparser.y" + case 410: +#line 1681 "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) @@ -4515,11 +4571,11 @@ yyreduce: else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4519 "util/configparser.c" +#line 4575 "util/configparser.c" break; - case 405: -#line 1661 "util/configparser.y" + case 411: +#line 1690 "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) @@ -4527,11 +4583,11 @@ yyreduce: else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4531 "util/configparser.c" +#line 4587 "util/configparser.c" break; - case 406: -#line 1670 "util/configparser.y" + case 412: +#line 1699 "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) @@ -4539,21 +4595,21 @@ yyreduce: else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4543 "util/configparser.c" +#line 4599 "util/configparser.c" break; - case 407: -#line 1679 "util/configparser.y" + case 413: +#line 1708 "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 4553 "util/configparser.c" +#line 4609 "util/configparser.c" break; - case 408: -#line 1686 "util/configparser.y" + case 414: +#line 1715 "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) @@ -4562,11 +4618,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4566 "util/configparser.c" +#line 4622 "util/configparser.c" break; - case 409: -#line 1696 "util/configparser.y" + case 415: +#line 1725 "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 && @@ -4585,21 +4641,21 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 4589 "util/configparser.c" +#line 4645 "util/configparser.c" break; - case 410: -#line 1716 "util/configparser.y" + case 416: +#line 1745 "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 4599 "util/configparser.c" +#line 4655 "util/configparser.c" break; - case 411: -#line 1723 "util/configparser.y" + case 417: +#line 1752 "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) { @@ -4616,11 +4672,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4620 "util/configparser.c" +#line 4676 "util/configparser.c" break; - case 412: -#line 1741 "util/configparser.y" + case 418: +#line 1770 "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) { @@ -4632,11 +4688,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4636 "util/configparser.c" +#line 4692 "util/configparser.c" break; - case 413: -#line 1754 "util/configparser.y" + case 419: +#line 1783 "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) { @@ -4648,11 +4704,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4652 "util/configparser.c" +#line 4708 "util/configparser.c" break; - case 414: -#line 1767 "util/configparser.y" + case 420: +#line 1796 "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) @@ -4660,11 +4716,11 @@ yyreduce: else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4664 "util/configparser.c" +#line 4720 "util/configparser.c" break; - case 415: -#line 1776 "util/configparser.y" + case 421: +#line 1805 "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) @@ -4672,11 +4728,11 @@ yyreduce: else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4676 "util/configparser.c" +#line 4732 "util/configparser.c" break; - case 416: -#line 1785 "util/configparser.y" + case 422: +#line 1814 "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) @@ -4684,11 +4740,11 @@ yyreduce: else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4688 "util/configparser.c" +#line 4744 "util/configparser.c" break; - case 417: -#line 1794 "util/configparser.y" + case 423: +#line 1823 "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) @@ -4696,11 +4752,11 @@ yyreduce: else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4700 "util/configparser.c" +#line 4756 "util/configparser.c" break; - case 418: -#line 1803 "util/configparser.y" + case 424: +#line 1832 "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) @@ -4709,11 +4765,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4713 "util/configparser.c" +#line 4769 "util/configparser.c" break; - case 419: -#line 1813 "util/configparser.y" + case 425: +#line 1842 "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) @@ -4722,11 +4778,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4726 "util/configparser.c" +#line 4782 "util/configparser.c" break; - case 420: -#line 1823 "util/configparser.y" + case 426: +#line 1852 "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) @@ -4736,11 +4792,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4740 "util/configparser.c" +#line 4796 "util/configparser.c" break; - case 421: -#line 1834 "util/configparser.y" + case 427: +#line 1863 "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) @@ -4748,11 +4804,11 @@ yyreduce: else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4752 "util/configparser.c" +#line 4808 "util/configparser.c" break; - case 422: -#line 1843 "util/configparser.y" + case 428: +#line 1872 "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) @@ -4760,11 +4816,11 @@ yyreduce: else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4764 "util/configparser.c" +#line 4820 "util/configparser.c" break; - case 423: -#line 1852 "util/configparser.y" + case 429: +#line 1881 "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) @@ -4772,11 +4828,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4776 "util/configparser.c" +#line 4832 "util/configparser.c" break; - case 424: -#line 1861 "util/configparser.y" + case 430: +#line 1890 "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) @@ -4784,11 +4840,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4788 "util/configparser.c" +#line 4844 "util/configparser.c" break; - case 425: -#line 1870 "util/configparser.y" + case 431: +#line 1899 "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) @@ -4796,11 +4852,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4800 "util/configparser.c" +#line 4856 "util/configparser.c" break; - case 426: -#line 1879 "util/configparser.y" + case 432: +#line 1908 "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) @@ -4808,11 +4864,11 @@ yyreduce: else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4812 "util/configparser.c" +#line 4868 "util/configparser.c" break; - case 427: -#line 1888 "util/configparser.y" + case 433: +#line 1917 "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) @@ -4824,11 +4880,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4828 "util/configparser.c" +#line 4884 "util/configparser.c" break; - case 428: -#line 1901 "util/configparser.y" + case 434: +#line 1930 "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) @@ -4840,11 +4896,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4844 "util/configparser.c" +#line 4900 "util/configparser.c" break; - case 429: -#line 1914 "util/configparser.y" + case 435: +#line 1943 "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) @@ -4852,21 +4908,21 @@ yyreduce: else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4856 "util/configparser.c" +#line 4912 "util/configparser.c" break; - case 430: -#line 1923 "util/configparser.y" + case 436: +#line 1952 "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 4866 "util/configparser.c" +#line 4922 "util/configparser.c" break; - case 431: -#line 1930 "util/configparser.y" + case 437: +#line 1959 "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) @@ -4874,11 +4930,11 @@ yyreduce: else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4878 "util/configparser.c" +#line 4934 "util/configparser.c" break; - case 432: -#line 1939 "util/configparser.y" + case 438: +#line 1968 "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) @@ -4886,11 +4942,11 @@ yyreduce: else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4890 "util/configparser.c" +#line 4946 "util/configparser.c" break; - case 433: -#line 1948 "util/configparser.y" + case 439: +#line 1977 "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) @@ -4898,11 +4954,11 @@ yyreduce: else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4902 "util/configparser.c" +#line 4958 "util/configparser.c" break; - case 434: -#line 1957 "util/configparser.y" + case 440: +#line 1986 "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) @@ -4911,22 +4967,22 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4915 "util/configparser.c" +#line 4971 "util/configparser.c" break; - case 435: -#line 1966 "util/configparser.y" + case 441: +#line 1995 "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 4926 "util/configparser.c" +#line 4982 "util/configparser.c" break; - case 436: -#line 1974 "util/configparser.y" + case 442: +#line 2003 "util/configparser.y" { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -4938,22 +4994,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4942 "util/configparser.c" +#line 4998 "util/configparser.c" break; - case 437: -#line 1987 "util/configparser.y" + case 443: +#line 2016 "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 4953 "util/configparser.c" +#line 5009 "util/configparser.c" break; - case 438: -#line 1995 "util/configparser.y" + case 444: +#line 2024 "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 && @@ -4993,21 +5049,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 4997 "util/configparser.c" +#line 5053 "util/configparser.c" break; - case 439: -#line 2036 "util/configparser.y" + case 445: +#line 2065 "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 5007 "util/configparser.c" +#line 5063 "util/configparser.c" break; - case 440: -#line 2043 "util/configparser.y" + case 446: +#line 2072 "util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5021,11 +5077,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5025 "util/configparser.c" +#line 5081 "util/configparser.c" break; - case 441: -#line 2058 "util/configparser.y" + case 447: +#line 2087 "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) @@ -5034,11 +5090,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5038 "util/configparser.c" +#line 5094 "util/configparser.c" break; - case 442: -#line 2068 "util/configparser.y" + case 448: +#line 2097 "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) @@ -5047,41 +5103,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5051 "util/configparser.c" +#line 5107 "util/configparser.c" break; - case 443: -#line 2078 "util/configparser.y" + case 449: +#line 2107 "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 5061 "util/configparser.c" +#line 5117 "util/configparser.c" break; - case 444: -#line 2085 "util/configparser.y" + case 450: +#line 2114 "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 5071 "util/configparser.c" +#line 5127 "util/configparser.c" break; - case 445: -#line 2092 "util/configparser.y" + case 451: +#line 2121 "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 5081 "util/configparser.c" +#line 5137 "util/configparser.c" break; - case 446: -#line 2099 "util/configparser.y" + case 452: +#line 2128 "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) @@ -5089,22 +5145,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5093 "util/configparser.c" +#line 5149 "util/configparser.c" break; - case 447: -#line 2108 "util/configparser.y" + case 453: +#line 2137 "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 5104 "util/configparser.c" +#line 5160 "util/configparser.c" break; - case 448: -#line 2116 "util/configparser.y" + case 454: +#line 2145 "util/configparser.y" { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -5117,11 +5173,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5121 "util/configparser.c" +#line 5177 "util/configparser.c" break; - case 449: -#line 2130 "util/configparser.y" + case 455: +#line 2159 "util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5141,11 +5197,11 @@ yyreduce: } } } -#line 5145 "util/configparser.c" +#line 5201 "util/configparser.c" break; - case 450: -#line 2151 "util/configparser.y" + case 456: +#line 2180 "util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5165,11 +5221,11 @@ yyreduce: } } } -#line 5169 "util/configparser.c" +#line 5225 "util/configparser.c" break; - case 451: -#line 2172 "util/configparser.y" + case 457: +#line 2201 "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, @@ -5180,11 +5236,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5184 "util/configparser.c" +#line 5240 "util/configparser.c" break; - case 452: -#line 2184 "util/configparser.y" + case 458: +#line 2213 "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, @@ -5195,11 +5251,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5199 "util/configparser.c" +#line 5255 "util/configparser.c" break; - case 453: -#line 2196 "util/configparser.y" + case 459: +#line 2225 "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, @@ -5210,11 +5266,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5214 "util/configparser.c" +#line 5270 "util/configparser.c" break; - case 454: -#line 2208 "util/configparser.y" + case 460: +#line 2237 "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, @@ -5222,11 +5278,11 @@ yyreduce: yyerror("out of memory"); } } -#line 5226 "util/configparser.c" +#line 5282 "util/configparser.c" break; - case 455: -#line 2217 "util/configparser.y" + case 461: +#line 2246 "util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5246,11 +5302,11 @@ yyreduce: } } } -#line 5250 "util/configparser.c" +#line 5306 "util/configparser.c" break; - case 456: -#line 2238 "util/configparser.y" + case 462: +#line 2267 "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) @@ -5258,11 +5314,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5262 "util/configparser.c" +#line 5318 "util/configparser.c" break; - case 457: -#line 2248 "util/configparser.y" + case 463: +#line 2277 "util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5270,33 +5326,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5274 "util/configparser.c" +#line 5330 "util/configparser.c" break; - case 458: -#line 2257 "util/configparser.y" + case 464: +#line 2286 "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 5285 "util/configparser.c" +#line 5341 "util/configparser.c" break; - case 459: -#line 2265 "util/configparser.y" + case 465: +#line 2294 "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 5296 "util/configparser.c" +#line 5352 "util/configparser.c" break; - case 460: -#line 2273 "util/configparser.y" + case 466: +#line 2302 "util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5308,11 +5364,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5312 "util/configparser.c" +#line 5368 "util/configparser.c" break; - case 461: -#line 2286 "util/configparser.y" + case 467: +#line 2315 "util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5324,11 +5380,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5328 "util/configparser.c" +#line 5384 "util/configparser.c" break; - case 462: -#line 2299 "util/configparser.y" + case 468: +#line 2328 "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) { @@ -5342,11 +5398,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 5346 "util/configparser.c" +#line 5402 "util/configparser.c" break; - case 463: -#line 2314 "util/configparser.y" + case 469: +#line 2343 "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) { @@ -5360,11 +5416,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 5364 "util/configparser.c" +#line 5420 "util/configparser.c" break; - case 464: -#line 2329 "util/configparser.y" + case 470: +#line 2358 "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) @@ -5372,11 +5428,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5376 "util/configparser.c" +#line 5432 "util/configparser.c" break; - case 465: -#line 2338 "util/configparser.y" + case 471: +#line 2367 "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) @@ -5384,20 +5440,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5388 "util/configparser.c" +#line 5444 "util/configparser.c" break; - case 466: -#line 2347 "util/configparser.y" + case 472: +#line 2376 "util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 5397 "util/configparser.c" +#line 5453 "util/configparser.c" break; - case 467: -#line 2353 "util/configparser.y" + case 473: +#line 2382 "util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -5405,11 +5461,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5409 "util/configparser.c" +#line 5465 "util/configparser.c" break; - case 468: -#line 2362 "util/configparser.y" + case 474: +#line 2391 "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) @@ -5417,11 +5473,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5421 "util/configparser.c" +#line 5477 "util/configparser.c" break; - case 469: -#line 2371 "util/configparser.y" + case 475: +#line 2400 "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) @@ -5430,11 +5486,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5434 "util/configparser.c" +#line 5490 "util/configparser.c" break; - case 470: -#line 2381 "util/configparser.y" + case 476: +#line 2410 "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) @@ -5443,11 +5499,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5447 "util/configparser.c" +#line 5503 "util/configparser.c" break; - case 471: -#line 2391 "util/configparser.y" + case 477: +#line 2420 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -5459,11 +5515,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5463 "util/configparser.c" +#line 5519 "util/configparser.c" break; - case 472: -#line 2404 "util/configparser.y" + case 478: +#line 2433 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -5475,11 +5531,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5479 "util/configparser.c" +#line 5535 "util/configparser.c" break; - case 473: -#line 2417 "util/configparser.y" + case 479: +#line 2446 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -5490,11 +5546,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5494 "util/configparser.c" +#line 5550 "util/configparser.c" break; - case 474: -#line 2429 "util/configparser.y" + case 480: +#line 2458 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -5507,11 +5563,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5511 "util/configparser.c" +#line 5567 "util/configparser.c" break; - case 475: -#line 2443 "util/configparser.y" + case 481: +#line 2472 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -5522,11 +5578,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5526 "util/configparser.c" +#line 5582 "util/configparser.c" break; - case 476: -#line 2455 "util/configparser.y" + case 482: +#line 2484 "util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -5539,43 +5595,38 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5543 "util/configparser.c" +#line 5599 "util/configparser.c" break; - 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"); + case 483: +#line 2498 "util/configparser.y" + { + OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert( - &cfg_parser->cfg->edns_client_tags, (yyvsp[-1].str), (yyvsp[0].str))) + &cfg_parser->cfg->edns_client_strings, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding " - "edns-client-tag"); + "edns-client-string"); } -#line 5561 "util/configparser.c" +#line 5611 "util/configparser.c" break; - case 478: -#line 2484 "util/configparser.y" + case 484: +#line 2507 "util/configparser.y" { - OUTYY(("P(edns_client_tag_opcode:%s)\n", (yyvsp[0].str))); + OUTYY(("P(edns_client_string_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)); + else cfg_parser->cfg->edns_client_string_opcode = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } -#line 5575 "util/configparser.c" +#line 5626 "util/configparser.c" break; - case 479: -#line 2495 "util/configparser.y" + case 485: +#line 2519 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -5584,31 +5635,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 5588 "util/configparser.c" +#line 5639 "util/configparser.c" break; - case 480: -#line 2505 "util/configparser.y" + case 486: +#line 2529 "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 5598 "util/configparser.c" +#line 5649 "util/configparser.c" break; - case 481: -#line 2512 "util/configparser.y" + case 487: +#line 2536 "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 5608 "util/configparser.c" +#line 5659 "util/configparser.c" break; - case 482: -#line 2519 "util/configparser.y" + case 488: +#line 2543 "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) @@ -5616,11 +5667,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5620 "util/configparser.c" +#line 5671 "util/configparser.c" break; - case 483: -#line 2528 "util/configparser.y" + case 489: +#line 2552 "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) @@ -5628,11 +5679,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5632 "util/configparser.c" +#line 5683 "util/configparser.c" break; - case 484: -#line 2537 "util/configparser.y" + case 490: +#line 2561 "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) @@ -5641,11 +5692,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5645 "util/configparser.c" +#line 5696 "util/configparser.c" break; - case 485: -#line 2547 "util/configparser.y" + case 491: +#line 2571 "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) @@ -5654,11 +5705,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5658 "util/configparser.c" +#line 5709 "util/configparser.c" break; - case 486: -#line 2557 "util/configparser.y" + case 492: +#line 2581 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -5667,31 +5718,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 5671 "util/configparser.c" +#line 5722 "util/configparser.c" break; - case 487: -#line 2567 "util/configparser.y" + case 493: +#line 2591 "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 5681 "util/configparser.c" +#line 5732 "util/configparser.c" break; - case 488: -#line 2574 "util/configparser.y" + case 494: +#line 2598 "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 5691 "util/configparser.c" +#line 5742 "util/configparser.c" break; - case 489: -#line 2581 "util/configparser.y" + case 495: +#line 2605 "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) @@ -5699,11 +5750,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5703 "util/configparser.c" +#line 5754 "util/configparser.c" break; - case 490: -#line 2590 "util/configparser.y" + case 496: +#line 2614 "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) @@ -5711,11 +5762,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5715 "util/configparser.c" +#line 5766 "util/configparser.c" break; - case 491: -#line 2599 "util/configparser.y" + case 497: +#line 2623 "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) @@ -5724,11 +5775,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5728 "util/configparser.c" +#line 5779 "util/configparser.c" break; - case 492: -#line 2609 "util/configparser.y" + case 498: +#line 2633 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -5737,52 +5788,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 5741 "util/configparser.c" +#line 5792 "util/configparser.c" break; - case 493: -#line 2619 "util/configparser.y" + case 499: +#line 2643 "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 5751 "util/configparser.c" +#line 5802 "util/configparser.c" break; - case 494: -#line 2626 "util/configparser.y" + case 500: +#line 2650 "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 5761 "util/configparser.c" +#line 5812 "util/configparser.c" break; - case 495: -#line 2633 "util/configparser.y" + case 501: +#line 2657 "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 5771 "util/configparser.c" +#line 5822 "util/configparser.c" break; - case 496: -#line 2640 "util/configparser.y" + case 502: +#line 2664 "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 5782 "util/configparser.c" +#line 5833 "util/configparser.c" break; - case 497: -#line 2648 "util/configparser.y" + case 503: +#line 2672 "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) @@ -5791,11 +5842,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5795 "util/configparser.c" +#line 5846 "util/configparser.c" break; - case 498: -#line 2658 "util/configparser.y" + case 504: +#line 2682 "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) @@ -5804,11 +5855,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5808 "util/configparser.c" +#line 5859 "util/configparser.c" break; - case 499: -#line 2668 "util/configparser.y" + case 505: +#line 2692 "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) @@ -5817,11 +5868,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5821 "util/configparser.c" +#line 5872 "util/configparser.c" break; - case 500: -#line 2678 "util/configparser.y" + case 506: +#line 2702 "util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -5830,11 +5881,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 5834 "util/configparser.c" +#line 5885 "util/configparser.c" break; - case 501: -#line 2688 "util/configparser.y" + case 507: +#line 2712 "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 && @@ -5872,11 +5923,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5876 "util/configparser.c" +#line 5927 "util/configparser.c" break; - case 502: -#line 2727 "util/configparser.y" + case 508: +#line 2751 "util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -5885,33 +5936,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 5889 "util/configparser.c" +#line 5940 "util/configparser.c" break; - case 503: -#line 2737 "util/configparser.y" + case 509: +#line 2761 "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 5900 "util/configparser.c" +#line 5951 "util/configparser.c" break; - case 504: -#line 2745 "util/configparser.y" + case 510: +#line 2769 "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 5911 "util/configparser.c" +#line 5962 "util/configparser.c" break; - case 505: -#line 2753 "util/configparser.y" + case 511: +#line 2777 "util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5925,11 +5976,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5929 "util/configparser.c" +#line 5980 "util/configparser.c" break; - case 506: -#line 2768 "util/configparser.y" + case 512: +#line 2792 "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) @@ -5937,19 +5988,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5941 "util/configparser.c" +#line 5992 "util/configparser.c" break; - case 507: -#line 2777 "util/configparser.y" + case 513: +#line 2801 "util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 5949 "util/configparser.c" +#line 6000 "util/configparser.c" break; - case 518: -#line 2788 "util/configparser.y" + case 524: +#line 2812 "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) @@ -5958,11 +6009,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5962 "util/configparser.c" +#line 6013 "util/configparser.c" break; - case 519: -#line 2798 "util/configparser.y" + case 525: +#line 2822 "util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5970,79 +6021,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5974 "util/configparser.c" +#line 6025 "util/configparser.c" break; - case 520: -#line 2807 "util/configparser.y" + case 526: +#line 2831 "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 5984 "util/configparser.c" +#line 6035 "util/configparser.c" break; - case 521: -#line 2814 "util/configparser.y" + case 527: +#line 2838 "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 5994 "util/configparser.c" +#line 6045 "util/configparser.c" break; - case 522: -#line 2821 "util/configparser.y" + case 528: +#line 2845 "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 6004 "util/configparser.c" +#line 6055 "util/configparser.c" break; - case 523: -#line 2828 "util/configparser.y" + case 529: +#line 2852 "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 6014 "util/configparser.c" +#line 6065 "util/configparser.c" break; - case 524: -#line 2835 "util/configparser.y" + case 530: +#line 2859 "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 6024 "util/configparser.c" +#line 6075 "util/configparser.c" break; - case 525: -#line 2842 "util/configparser.y" + case 531: +#line 2866 "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 6034 "util/configparser.c" +#line 6085 "util/configparser.c" break; - case 526: -#line 2849 "util/configparser.y" + case 532: +#line 2873 "util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 6042 "util/configparser.c" +#line 6093 "util/configparser.c" break; - case 548: -#line 2869 "util/configparser.y" + case 554: +#line 2893 "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) @@ -6050,11 +6101,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6054 "util/configparser.c" +#line 6105 "util/configparser.c" break; - case 549: -#line 2878 "util/configparser.y" + case 555: +#line 2902 "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) @@ -6063,31 +6114,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6067 "util/configparser.c" +#line 6118 "util/configparser.c" break; - case 550: -#line 2888 "util/configparser.y" + case 556: +#line 2912 "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 6077 "util/configparser.c" +#line 6128 "util/configparser.c" break; - case 551: -#line 2895 "util/configparser.y" + case 557: +#line 2919 "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 6087 "util/configparser.c" +#line 6138 "util/configparser.c" break; - case 552: -#line 2902 "util/configparser.y" + case 558: +#line 2926 "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) @@ -6095,51 +6146,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6099 "util/configparser.c" +#line 6150 "util/configparser.c" break; - case 553: -#line 2911 "util/configparser.y" + case 559: +#line 2935 "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 6109 "util/configparser.c" +#line 6160 "util/configparser.c" break; - case 554: -#line 2918 "util/configparser.y" + case 560: +#line 2942 "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 6119 "util/configparser.c" +#line 6170 "util/configparser.c" break; - case 555: -#line 2925 "util/configparser.y" + case 561: +#line 2949 "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 6129 "util/configparser.c" +#line 6180 "util/configparser.c" break; - case 556: -#line 2932 "util/configparser.y" + case 562: +#line 2956 "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 6139 "util/configparser.c" +#line 6190 "util/configparser.c" break; - case 557: -#line 2939 "util/configparser.y" + case 563: +#line 2963 "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) @@ -6147,11 +6198,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6151 "util/configparser.c" +#line 6202 "util/configparser.c" break; - case 558: -#line 2948 "util/configparser.y" + case 564: +#line 2972 "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) @@ -6159,31 +6210,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6163 "util/configparser.c" +#line 6214 "util/configparser.c" break; - case 559: -#line 2957 "util/configparser.y" + case 565: +#line 2981 "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 6173 "util/configparser.c" +#line 6224 "util/configparser.c" break; - case 560: -#line 2964 "util/configparser.y" + case 566: +#line 2988 "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 6183 "util/configparser.c" +#line 6234 "util/configparser.c" break; - case 561: -#line 2971 "util/configparser.y" + case 567: +#line 2995 "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) @@ -6192,11 +6243,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6196 "util/configparser.c" +#line 6247 "util/configparser.c" break; - case 562: -#line 2981 "util/configparser.y" + case 568: +#line 3005 "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) @@ -6205,11 +6256,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6209 "util/configparser.c" +#line 6260 "util/configparser.c" break; - case 563: -#line 2991 "util/configparser.y" + case 569: +#line 3015 "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) @@ -6218,11 +6269,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6222 "util/configparser.c" +#line 6273 "util/configparser.c" break; - case 564: -#line 3001 "util/configparser.y" + case 570: +#line 3025 "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) @@ -6231,11 +6282,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6235 "util/configparser.c" +#line 6286 "util/configparser.c" break; - case 565: -#line 3011 "util/configparser.y" + case 571: +#line 3035 "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) @@ -6244,11 +6295,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6248 "util/configparser.c" +#line 6299 "util/configparser.c" break; - case 566: -#line 3021 "util/configparser.y" + case 572: +#line 3045 "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) @@ -6257,47 +6308,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6261 "util/configparser.c" +#line 6312 "util/configparser.c" break; - case 567: -#line 3031 "util/configparser.y" + case 573: +#line 3055 "util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 6269 "util/configparser.c" +#line 6320 "util/configparser.c" break; - case 571: -#line 3040 "util/configparser.y" + case 577: +#line 3064 "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 6279 "util/configparser.c" +#line 6330 "util/configparser.c" break; - case 572: -#line 3046 "util/configparser.y" + case 578: +#line 3070 "util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 6287 "util/configparser.c" +#line 6338 "util/configparser.c" break; - case 576: -#line 3055 "util/configparser.y" + case 582: +#line 3079 "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 6297 "util/configparser.c" +#line 6348 "util/configparser.c" break; - case 577: -#line 3061 "util/configparser.y" + case 583: +#line 3085 "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) @@ -6306,21 +6357,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6310 "util/configparser.c" +#line 6361 "util/configparser.c" break; - case 578: -#line 3071 "util/configparser.y" + case 584: +#line 3095 "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 6320 "util/configparser.c" +#line 6371 "util/configparser.c" break; - case 579: -#line 3078 "util/configparser.y" + case 585: +#line 3102 "util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6328,30 +6379,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 6332 "util/configparser.c" +#line 6383 "util/configparser.c" break; - case 580: -#line 3087 "util/configparser.y" + case 586: +#line 3111 "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 6343 "util/configparser.c" +#line 6394 "util/configparser.c" break; - case 581: -#line 3095 "util/configparser.y" + case 587: +#line 3119 "util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 6351 "util/configparser.c" +#line 6402 "util/configparser.c" break; - case 594: -#line 3111 "util/configparser.y" + case 600: +#line 3135 "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) @@ -6359,11 +6410,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6363 "util/configparser.c" +#line 6414 "util/configparser.c" break; - case 595: -#line 3121 "util/configparser.y" + case 601: +#line 3145 "util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6371,21 +6422,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6375 "util/configparser.c" +#line 6426 "util/configparser.c" break; - case 596: -#line 3130 "util/configparser.y" + case 602: +#line 3154 "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 6385 "util/configparser.c" +#line 6436 "util/configparser.c" break; - case 597: -#line 3137 "util/configparser.y" + case 603: +#line 3161 "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))) @@ -6393,21 +6444,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 6397 "util/configparser.c" +#line 6448 "util/configparser.c" break; - case 598: -#line 3146 "util/configparser.y" + case 604: +#line 3170 "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 6407 "util/configparser.c" +#line 6458 "util/configparser.c" break; - case 599: -#line 3153 "util/configparser.y" + case 605: +#line 3177 "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))) @@ -6415,22 +6466,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 6419 "util/configparser.c" +#line 6470 "util/configparser.c" break; - case 600: -#line 3162 "util/configparser.y" + case 606: +#line 3186 "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 6430 "util/configparser.c" +#line 6481 "util/configparser.c" break; - case 601: -#line 3170 "util/configparser.y" + case 607: +#line 3194 "util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6442,22 +6493,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6446 "util/configparser.c" +#line 6497 "util/configparser.c" break; - case 602: -#line 3183 "util/configparser.y" + case 608: +#line 3207 "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 6457 "util/configparser.c" +#line 6508 "util/configparser.c" break; - case 603: -#line 3191 "util/configparser.y" + case 609: +#line 3215 "util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6469,19 +6520,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6473 "util/configparser.c" +#line 6524 "util/configparser.c" break; - case 604: -#line 3204 "util/configparser.y" + case 610: +#line 3228 "util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 6481 "util/configparser.c" +#line 6532 "util/configparser.c" break; - case 613: -#line 3215 "util/configparser.y" + case 619: +#line 3239 "util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -6492,11 +6543,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6496 "util/configparser.c" +#line 6547 "util/configparser.c" break; - case 614: -#line 3227 "util/configparser.y" + case 620: +#line 3251 "util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -6507,11 +6558,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6511 "util/configparser.c" +#line 6562 "util/configparser.c" break; - case 615: -#line 3239 "util/configparser.y" + case 621: +#line 3263 "util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -6522,11 +6573,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6526 "util/configparser.c" +#line 6577 "util/configparser.c" break; - case 616: -#line 3251 "util/configparser.y" + case 622: +#line 3275 "util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -6540,11 +6591,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6544 "util/configparser.c" +#line 6595 "util/configparser.c" break; - case 617: -#line 3266 "util/configparser.y" + case 623: +#line 3290 "util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -6556,11 +6607,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6560 "util/configparser.c" +#line 6611 "util/configparser.c" break; - case 618: -#line 3279 "util/configparser.y" + case 624: +#line 3303 "util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -6572,11 +6623,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6576 "util/configparser.c" +#line 6627 "util/configparser.c" break; - case 619: -#line 3292 "util/configparser.y" + case 625: +#line 3316 "util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -6586,19 +6637,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 6590 "util/configparser.c" +#line 6641 "util/configparser.c" break; - case 620: -#line 3303 "util/configparser.y" + case 626: +#line 3327 "util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 6598 "util/configparser.c" +#line 6649 "util/configparser.c" break; - case 625: -#line 3312 "util/configparser.y" + case 631: +#line 3336 "util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -6612,11 +6663,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6616 "util/configparser.c" +#line 6667 "util/configparser.c" break; - case 626: -#line 3327 "util/configparser.y" + case 632: +#line 3351 "util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -6630,11 +6681,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6634 "util/configparser.c" +#line 6685 "util/configparser.c" break; -#line 6638 "util/configparser.c" +#line 6689 "util/configparser.c" default: break; } @@ -6866,7 +6917,7 @@ yyreturn: #endif return yyresult; } -#line 3341 "util/configparser.y" +#line 3365 "util/configparser.y" /* parse helper routines could be here */ |