summaryrefslogtreecommitdiff
path: root/util/configparser.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/configparser.c')
-rw-r--r--util/configparser.c2156
1 files changed, 1142 insertions, 1014 deletions
diff --git a/util/configparser.c b/util/configparser.c
index 01e37d45c23c..1f9062d02ada 100644
--- a/util/configparser.c
+++ b/util/configparser.c
@@ -140,157 +140,162 @@ extern int yydebug;
VAR_INTERFACE = 271,
VAR_DO_IP4 = 272,
VAR_DO_IP6 = 273,
- VAR_DO_UDP = 274,
- VAR_DO_TCP = 275,
- VAR_TCP_MSS = 276,
- VAR_OUTGOING_TCP_MSS = 277,
- VAR_CHROOT = 278,
- VAR_USERNAME = 279,
- VAR_DIRECTORY = 280,
- VAR_LOGFILE = 281,
- VAR_PIDFILE = 282,
- VAR_MSG_CACHE_SIZE = 283,
- VAR_MSG_CACHE_SLABS = 284,
- VAR_NUM_QUERIES_PER_THREAD = 285,
- VAR_RRSET_CACHE_SIZE = 286,
- VAR_RRSET_CACHE_SLABS = 287,
- VAR_OUTGOING_NUM_TCP = 288,
- VAR_INFRA_HOST_TTL = 289,
- VAR_INFRA_LAME_TTL = 290,
- VAR_INFRA_CACHE_SLABS = 291,
- VAR_INFRA_CACHE_NUMHOSTS = 292,
- VAR_INFRA_CACHE_LAME_SIZE = 293,
- VAR_NAME = 294,
- VAR_STUB_ZONE = 295,
- VAR_STUB_HOST = 296,
- VAR_STUB_ADDR = 297,
- VAR_TARGET_FETCH_POLICY = 298,
- VAR_HARDEN_SHORT_BUFSIZE = 299,
- VAR_HARDEN_LARGE_QUERIES = 300,
- VAR_FORWARD_ZONE = 301,
- VAR_FORWARD_HOST = 302,
- VAR_FORWARD_ADDR = 303,
- VAR_DO_NOT_QUERY_ADDRESS = 304,
- VAR_HIDE_IDENTITY = 305,
- VAR_HIDE_VERSION = 306,
- VAR_IDENTITY = 307,
- VAR_VERSION = 308,
- VAR_HARDEN_GLUE = 309,
- VAR_MODULE_CONF = 310,
- VAR_TRUST_ANCHOR_FILE = 311,
- VAR_TRUST_ANCHOR = 312,
- VAR_VAL_OVERRIDE_DATE = 313,
- VAR_BOGUS_TTL = 314,
- VAR_VAL_CLEAN_ADDITIONAL = 315,
- VAR_VAL_PERMISSIVE_MODE = 316,
- VAR_INCOMING_NUM_TCP = 317,
- VAR_MSG_BUFFER_SIZE = 318,
- VAR_KEY_CACHE_SIZE = 319,
- VAR_KEY_CACHE_SLABS = 320,
- VAR_TRUSTED_KEYS_FILE = 321,
- VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 322,
- VAR_USE_SYSLOG = 323,
- VAR_OUTGOING_INTERFACE = 324,
- VAR_ROOT_HINTS = 325,
- VAR_DO_NOT_QUERY_LOCALHOST = 326,
- VAR_CACHE_MAX_TTL = 327,
- VAR_HARDEN_DNSSEC_STRIPPED = 328,
- VAR_ACCESS_CONTROL = 329,
- VAR_LOCAL_ZONE = 330,
- VAR_LOCAL_DATA = 331,
- VAR_INTERFACE_AUTOMATIC = 332,
- VAR_STATISTICS_INTERVAL = 333,
- VAR_DO_DAEMONIZE = 334,
- VAR_USE_CAPS_FOR_ID = 335,
- VAR_STATISTICS_CUMULATIVE = 336,
- VAR_OUTGOING_PORT_PERMIT = 337,
- VAR_OUTGOING_PORT_AVOID = 338,
- VAR_DLV_ANCHOR_FILE = 339,
- VAR_DLV_ANCHOR = 340,
- VAR_NEG_CACHE_SIZE = 341,
- VAR_HARDEN_REFERRAL_PATH = 342,
- VAR_PRIVATE_ADDRESS = 343,
- VAR_PRIVATE_DOMAIN = 344,
- VAR_REMOTE_CONTROL = 345,
- VAR_CONTROL_ENABLE = 346,
- VAR_CONTROL_INTERFACE = 347,
- VAR_CONTROL_PORT = 348,
- VAR_SERVER_KEY_FILE = 349,
- VAR_SERVER_CERT_FILE = 350,
- VAR_CONTROL_KEY_FILE = 351,
- VAR_CONTROL_CERT_FILE = 352,
- VAR_CONTROL_USE_CERT = 353,
- VAR_EXTENDED_STATISTICS = 354,
- VAR_LOCAL_DATA_PTR = 355,
- VAR_JOSTLE_TIMEOUT = 356,
- VAR_STUB_PRIME = 357,
- VAR_UNWANTED_REPLY_THRESHOLD = 358,
- VAR_LOG_TIME_ASCII = 359,
- VAR_DOMAIN_INSECURE = 360,
- VAR_PYTHON = 361,
- VAR_PYTHON_SCRIPT = 362,
- VAR_VAL_SIG_SKEW_MIN = 363,
- VAR_VAL_SIG_SKEW_MAX = 364,
- VAR_CACHE_MIN_TTL = 365,
- VAR_VAL_LOG_LEVEL = 366,
- VAR_AUTO_TRUST_ANCHOR_FILE = 367,
- VAR_KEEP_MISSING = 368,
- VAR_ADD_HOLDDOWN = 369,
- VAR_DEL_HOLDDOWN = 370,
- VAR_SO_RCVBUF = 371,
- VAR_EDNS_BUFFER_SIZE = 372,
- VAR_PREFETCH = 373,
- VAR_PREFETCH_KEY = 374,
- VAR_SO_SNDBUF = 375,
- VAR_SO_REUSEPORT = 376,
- VAR_HARDEN_BELOW_NXDOMAIN = 377,
- VAR_IGNORE_CD_FLAG = 378,
- VAR_LOG_QUERIES = 379,
- VAR_TCP_UPSTREAM = 380,
- VAR_SSL_UPSTREAM = 381,
- VAR_SSL_SERVICE_KEY = 382,
- VAR_SSL_SERVICE_PEM = 383,
- VAR_SSL_PORT = 384,
- VAR_FORWARD_FIRST = 385,
- VAR_STUB_FIRST = 386,
- VAR_MINIMAL_RESPONSES = 387,
- VAR_RRSET_ROUNDROBIN = 388,
- VAR_MAX_UDP_SIZE = 389,
- VAR_DELAY_CLOSE = 390,
- VAR_UNBLOCK_LAN_ZONES = 391,
- VAR_INSECURE_LAN_ZONES = 392,
- VAR_INFRA_CACHE_MIN_RTT = 393,
- VAR_DNS64_PREFIX = 394,
- VAR_DNS64_SYNTHALL = 395,
- VAR_DNSTAP = 396,
- VAR_DNSTAP_ENABLE = 397,
- VAR_DNSTAP_SOCKET_PATH = 398,
- VAR_DNSTAP_SEND_IDENTITY = 399,
- VAR_DNSTAP_SEND_VERSION = 400,
- VAR_DNSTAP_IDENTITY = 401,
- VAR_DNSTAP_VERSION = 402,
- VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 403,
- VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 404,
- VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 405,
- VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 406,
- VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 407,
- VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 408,
- VAR_HARDEN_ALGO_DOWNGRADE = 409,
- VAR_IP_TRANSPARENT = 410,
- VAR_DISABLE_DNSSEC_LAME_CHECK = 411,
- VAR_RATELIMIT = 412,
- VAR_RATELIMIT_SLABS = 413,
- VAR_RATELIMIT_SIZE = 414,
- VAR_RATELIMIT_FOR_DOMAIN = 415,
- VAR_RATELIMIT_BELOW_DOMAIN = 416,
- VAR_RATELIMIT_FACTOR = 417,
- VAR_CAPS_WHITELIST = 418,
- VAR_CACHE_MAX_NEGATIVE_TTL = 419,
- VAR_PERMIT_SMALL_HOLDDOWN = 420,
- VAR_QNAME_MINIMISATION = 421,
- VAR_IP_FREEBIND = 422,
- VAR_DEFINE_TAG = 423,
- VAR_LOCAL_ZONE_TAG = 424
+ VAR_PREFER_IP6 = 274,
+ VAR_DO_UDP = 275,
+ VAR_DO_TCP = 276,
+ VAR_TCP_MSS = 277,
+ VAR_OUTGOING_TCP_MSS = 278,
+ VAR_CHROOT = 279,
+ VAR_USERNAME = 280,
+ VAR_DIRECTORY = 281,
+ VAR_LOGFILE = 282,
+ VAR_PIDFILE = 283,
+ VAR_MSG_CACHE_SIZE = 284,
+ VAR_MSG_CACHE_SLABS = 285,
+ VAR_NUM_QUERIES_PER_THREAD = 286,
+ VAR_RRSET_CACHE_SIZE = 287,
+ VAR_RRSET_CACHE_SLABS = 288,
+ VAR_OUTGOING_NUM_TCP = 289,
+ VAR_INFRA_HOST_TTL = 290,
+ VAR_INFRA_LAME_TTL = 291,
+ VAR_INFRA_CACHE_SLABS = 292,
+ VAR_INFRA_CACHE_NUMHOSTS = 293,
+ VAR_INFRA_CACHE_LAME_SIZE = 294,
+ VAR_NAME = 295,
+ VAR_STUB_ZONE = 296,
+ VAR_STUB_HOST = 297,
+ VAR_STUB_ADDR = 298,
+ VAR_TARGET_FETCH_POLICY = 299,
+ VAR_HARDEN_SHORT_BUFSIZE = 300,
+ VAR_HARDEN_LARGE_QUERIES = 301,
+ VAR_FORWARD_ZONE = 302,
+ VAR_FORWARD_HOST = 303,
+ VAR_FORWARD_ADDR = 304,
+ VAR_DO_NOT_QUERY_ADDRESS = 305,
+ VAR_HIDE_IDENTITY = 306,
+ VAR_HIDE_VERSION = 307,
+ VAR_IDENTITY = 308,
+ VAR_VERSION = 309,
+ VAR_HARDEN_GLUE = 310,
+ VAR_MODULE_CONF = 311,
+ VAR_TRUST_ANCHOR_FILE = 312,
+ VAR_TRUST_ANCHOR = 313,
+ VAR_VAL_OVERRIDE_DATE = 314,
+ VAR_BOGUS_TTL = 315,
+ VAR_VAL_CLEAN_ADDITIONAL = 316,
+ VAR_VAL_PERMISSIVE_MODE = 317,
+ VAR_INCOMING_NUM_TCP = 318,
+ VAR_MSG_BUFFER_SIZE = 319,
+ VAR_KEY_CACHE_SIZE = 320,
+ VAR_KEY_CACHE_SLABS = 321,
+ VAR_TRUSTED_KEYS_FILE = 322,
+ VAR_VAL_NSEC3_KEYSIZE_ITERATIONS = 323,
+ VAR_USE_SYSLOG = 324,
+ VAR_OUTGOING_INTERFACE = 325,
+ VAR_ROOT_HINTS = 326,
+ VAR_DO_NOT_QUERY_LOCALHOST = 327,
+ VAR_CACHE_MAX_TTL = 328,
+ VAR_HARDEN_DNSSEC_STRIPPED = 329,
+ VAR_ACCESS_CONTROL = 330,
+ VAR_LOCAL_ZONE = 331,
+ VAR_LOCAL_DATA = 332,
+ VAR_INTERFACE_AUTOMATIC = 333,
+ VAR_STATISTICS_INTERVAL = 334,
+ VAR_DO_DAEMONIZE = 335,
+ VAR_USE_CAPS_FOR_ID = 336,
+ VAR_STATISTICS_CUMULATIVE = 337,
+ VAR_OUTGOING_PORT_PERMIT = 338,
+ VAR_OUTGOING_PORT_AVOID = 339,
+ VAR_DLV_ANCHOR_FILE = 340,
+ VAR_DLV_ANCHOR = 341,
+ VAR_NEG_CACHE_SIZE = 342,
+ VAR_HARDEN_REFERRAL_PATH = 343,
+ VAR_PRIVATE_ADDRESS = 344,
+ VAR_PRIVATE_DOMAIN = 345,
+ VAR_REMOTE_CONTROL = 346,
+ VAR_CONTROL_ENABLE = 347,
+ VAR_CONTROL_INTERFACE = 348,
+ VAR_CONTROL_PORT = 349,
+ VAR_SERVER_KEY_FILE = 350,
+ VAR_SERVER_CERT_FILE = 351,
+ VAR_CONTROL_KEY_FILE = 352,
+ VAR_CONTROL_CERT_FILE = 353,
+ VAR_CONTROL_USE_CERT = 354,
+ VAR_EXTENDED_STATISTICS = 355,
+ VAR_LOCAL_DATA_PTR = 356,
+ VAR_JOSTLE_TIMEOUT = 357,
+ VAR_STUB_PRIME = 358,
+ VAR_UNWANTED_REPLY_THRESHOLD = 359,
+ VAR_LOG_TIME_ASCII = 360,
+ VAR_DOMAIN_INSECURE = 361,
+ VAR_PYTHON = 362,
+ VAR_PYTHON_SCRIPT = 363,
+ VAR_VAL_SIG_SKEW_MIN = 364,
+ VAR_VAL_SIG_SKEW_MAX = 365,
+ VAR_CACHE_MIN_TTL = 366,
+ VAR_VAL_LOG_LEVEL = 367,
+ VAR_AUTO_TRUST_ANCHOR_FILE = 368,
+ VAR_KEEP_MISSING = 369,
+ VAR_ADD_HOLDDOWN = 370,
+ VAR_DEL_HOLDDOWN = 371,
+ VAR_SO_RCVBUF = 372,
+ VAR_EDNS_BUFFER_SIZE = 373,
+ VAR_PREFETCH = 374,
+ VAR_PREFETCH_KEY = 375,
+ VAR_SO_SNDBUF = 376,
+ VAR_SO_REUSEPORT = 377,
+ VAR_HARDEN_BELOW_NXDOMAIN = 378,
+ VAR_IGNORE_CD_FLAG = 379,
+ VAR_LOG_QUERIES = 380,
+ VAR_TCP_UPSTREAM = 381,
+ VAR_SSL_UPSTREAM = 382,
+ VAR_SSL_SERVICE_KEY = 383,
+ VAR_SSL_SERVICE_PEM = 384,
+ VAR_SSL_PORT = 385,
+ VAR_FORWARD_FIRST = 386,
+ VAR_STUB_FIRST = 387,
+ VAR_MINIMAL_RESPONSES = 388,
+ VAR_RRSET_ROUNDROBIN = 389,
+ VAR_MAX_UDP_SIZE = 390,
+ VAR_DELAY_CLOSE = 391,
+ VAR_UNBLOCK_LAN_ZONES = 392,
+ VAR_INSECURE_LAN_ZONES = 393,
+ VAR_INFRA_CACHE_MIN_RTT = 394,
+ VAR_DNS64_PREFIX = 395,
+ VAR_DNS64_SYNTHALL = 396,
+ VAR_DNSTAP = 397,
+ VAR_DNSTAP_ENABLE = 398,
+ VAR_DNSTAP_SOCKET_PATH = 399,
+ VAR_DNSTAP_SEND_IDENTITY = 400,
+ VAR_DNSTAP_SEND_VERSION = 401,
+ VAR_DNSTAP_IDENTITY = 402,
+ VAR_DNSTAP_VERSION = 403,
+ VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES = 404,
+ VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES = 405,
+ VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES = 406,
+ VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES = 407,
+ VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES = 408,
+ VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES = 409,
+ VAR_HARDEN_ALGO_DOWNGRADE = 410,
+ VAR_IP_TRANSPARENT = 411,
+ VAR_DISABLE_DNSSEC_LAME_CHECK = 412,
+ VAR_RATELIMIT = 413,
+ VAR_RATELIMIT_SLABS = 414,
+ VAR_RATELIMIT_SIZE = 415,
+ VAR_RATELIMIT_FOR_DOMAIN = 416,
+ VAR_RATELIMIT_BELOW_DOMAIN = 417,
+ VAR_RATELIMIT_FACTOR = 418,
+ VAR_CAPS_WHITELIST = 419,
+ VAR_CACHE_MAX_NEGATIVE_TTL = 420,
+ VAR_PERMIT_SMALL_HOLDDOWN = 421,
+ VAR_QNAME_MINIMISATION = 422,
+ VAR_IP_FREEBIND = 423,
+ VAR_DEFINE_TAG = 424,
+ VAR_LOCAL_ZONE_TAG = 425,
+ VAR_ACCESS_CONTROL_TAG = 426,
+ VAR_LOCAL_ZONE_OVERRIDE = 427,
+ VAR_ACCESS_CONTROL_TAG_ACTION = 428,
+ VAR_ACCESS_CONTROL_TAG_DATA = 429
};
#endif
/* Tokens. */
@@ -310,157 +315,162 @@ extern int yydebug;
#define VAR_INTERFACE 271
#define VAR_DO_IP4 272
#define VAR_DO_IP6 273
-#define VAR_DO_UDP 274
-#define VAR_DO_TCP 275
-#define VAR_TCP_MSS 276
-#define VAR_OUTGOING_TCP_MSS 277
-#define VAR_CHROOT 278
-#define VAR_USERNAME 279
-#define VAR_DIRECTORY 280
-#define VAR_LOGFILE 281
-#define VAR_PIDFILE 282
-#define VAR_MSG_CACHE_SIZE 283
-#define VAR_MSG_CACHE_SLABS 284
-#define VAR_NUM_QUERIES_PER_THREAD 285
-#define VAR_RRSET_CACHE_SIZE 286
-#define VAR_RRSET_CACHE_SLABS 287
-#define VAR_OUTGOING_NUM_TCP 288
-#define VAR_INFRA_HOST_TTL 289
-#define VAR_INFRA_LAME_TTL 290
-#define VAR_INFRA_CACHE_SLABS 291
-#define VAR_INFRA_CACHE_NUMHOSTS 292
-#define VAR_INFRA_CACHE_LAME_SIZE 293
-#define VAR_NAME 294
-#define VAR_STUB_ZONE 295
-#define VAR_STUB_HOST 296
-#define VAR_STUB_ADDR 297
-#define VAR_TARGET_FETCH_POLICY 298
-#define VAR_HARDEN_SHORT_BUFSIZE 299
-#define VAR_HARDEN_LARGE_QUERIES 300
-#define VAR_FORWARD_ZONE 301
-#define VAR_FORWARD_HOST 302
-#define VAR_FORWARD_ADDR 303
-#define VAR_DO_NOT_QUERY_ADDRESS 304
-#define VAR_HIDE_IDENTITY 305
-#define VAR_HIDE_VERSION 306
-#define VAR_IDENTITY 307
-#define VAR_VERSION 308
-#define VAR_HARDEN_GLUE 309
-#define VAR_MODULE_CONF 310
-#define VAR_TRUST_ANCHOR_FILE 311
-#define VAR_TRUST_ANCHOR 312
-#define VAR_VAL_OVERRIDE_DATE 313
-#define VAR_BOGUS_TTL 314
-#define VAR_VAL_CLEAN_ADDITIONAL 315
-#define VAR_VAL_PERMISSIVE_MODE 316
-#define VAR_INCOMING_NUM_TCP 317
-#define VAR_MSG_BUFFER_SIZE 318
-#define VAR_KEY_CACHE_SIZE 319
-#define VAR_KEY_CACHE_SLABS 320
-#define VAR_TRUSTED_KEYS_FILE 321
-#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 322
-#define VAR_USE_SYSLOG 323
-#define VAR_OUTGOING_INTERFACE 324
-#define VAR_ROOT_HINTS 325
-#define VAR_DO_NOT_QUERY_LOCALHOST 326
-#define VAR_CACHE_MAX_TTL 327
-#define VAR_HARDEN_DNSSEC_STRIPPED 328
-#define VAR_ACCESS_CONTROL 329
-#define VAR_LOCAL_ZONE 330
-#define VAR_LOCAL_DATA 331
-#define VAR_INTERFACE_AUTOMATIC 332
-#define VAR_STATISTICS_INTERVAL 333
-#define VAR_DO_DAEMONIZE 334
-#define VAR_USE_CAPS_FOR_ID 335
-#define VAR_STATISTICS_CUMULATIVE 336
-#define VAR_OUTGOING_PORT_PERMIT 337
-#define VAR_OUTGOING_PORT_AVOID 338
-#define VAR_DLV_ANCHOR_FILE 339
-#define VAR_DLV_ANCHOR 340
-#define VAR_NEG_CACHE_SIZE 341
-#define VAR_HARDEN_REFERRAL_PATH 342
-#define VAR_PRIVATE_ADDRESS 343
-#define VAR_PRIVATE_DOMAIN 344
-#define VAR_REMOTE_CONTROL 345
-#define VAR_CONTROL_ENABLE 346
-#define VAR_CONTROL_INTERFACE 347
-#define VAR_CONTROL_PORT 348
-#define VAR_SERVER_KEY_FILE 349
-#define VAR_SERVER_CERT_FILE 350
-#define VAR_CONTROL_KEY_FILE 351
-#define VAR_CONTROL_CERT_FILE 352
-#define VAR_CONTROL_USE_CERT 353
-#define VAR_EXTENDED_STATISTICS 354
-#define VAR_LOCAL_DATA_PTR 355
-#define VAR_JOSTLE_TIMEOUT 356
-#define VAR_STUB_PRIME 357
-#define VAR_UNWANTED_REPLY_THRESHOLD 358
-#define VAR_LOG_TIME_ASCII 359
-#define VAR_DOMAIN_INSECURE 360
-#define VAR_PYTHON 361
-#define VAR_PYTHON_SCRIPT 362
-#define VAR_VAL_SIG_SKEW_MIN 363
-#define VAR_VAL_SIG_SKEW_MAX 364
-#define VAR_CACHE_MIN_TTL 365
-#define VAR_VAL_LOG_LEVEL 366
-#define VAR_AUTO_TRUST_ANCHOR_FILE 367
-#define VAR_KEEP_MISSING 368
-#define VAR_ADD_HOLDDOWN 369
-#define VAR_DEL_HOLDDOWN 370
-#define VAR_SO_RCVBUF 371
-#define VAR_EDNS_BUFFER_SIZE 372
-#define VAR_PREFETCH 373
-#define VAR_PREFETCH_KEY 374
-#define VAR_SO_SNDBUF 375
-#define VAR_SO_REUSEPORT 376
-#define VAR_HARDEN_BELOW_NXDOMAIN 377
-#define VAR_IGNORE_CD_FLAG 378
-#define VAR_LOG_QUERIES 379
-#define VAR_TCP_UPSTREAM 380
-#define VAR_SSL_UPSTREAM 381
-#define VAR_SSL_SERVICE_KEY 382
-#define VAR_SSL_SERVICE_PEM 383
-#define VAR_SSL_PORT 384
-#define VAR_FORWARD_FIRST 385
-#define VAR_STUB_FIRST 386
-#define VAR_MINIMAL_RESPONSES 387
-#define VAR_RRSET_ROUNDROBIN 388
-#define VAR_MAX_UDP_SIZE 389
-#define VAR_DELAY_CLOSE 390
-#define VAR_UNBLOCK_LAN_ZONES 391
-#define VAR_INSECURE_LAN_ZONES 392
-#define VAR_INFRA_CACHE_MIN_RTT 393
-#define VAR_DNS64_PREFIX 394
-#define VAR_DNS64_SYNTHALL 395
-#define VAR_DNSTAP 396
-#define VAR_DNSTAP_ENABLE 397
-#define VAR_DNSTAP_SOCKET_PATH 398
-#define VAR_DNSTAP_SEND_IDENTITY 399
-#define VAR_DNSTAP_SEND_VERSION 400
-#define VAR_DNSTAP_IDENTITY 401
-#define VAR_DNSTAP_VERSION 402
-#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 403
-#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 404
-#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 405
-#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 406
-#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 407
-#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 408
-#define VAR_HARDEN_ALGO_DOWNGRADE 409
-#define VAR_IP_TRANSPARENT 410
-#define VAR_DISABLE_DNSSEC_LAME_CHECK 411
-#define VAR_RATELIMIT 412
-#define VAR_RATELIMIT_SLABS 413
-#define VAR_RATELIMIT_SIZE 414
-#define VAR_RATELIMIT_FOR_DOMAIN 415
-#define VAR_RATELIMIT_BELOW_DOMAIN 416
-#define VAR_RATELIMIT_FACTOR 417
-#define VAR_CAPS_WHITELIST 418
-#define VAR_CACHE_MAX_NEGATIVE_TTL 419
-#define VAR_PERMIT_SMALL_HOLDDOWN 420
-#define VAR_QNAME_MINIMISATION 421
-#define VAR_IP_FREEBIND 422
-#define VAR_DEFINE_TAG 423
-#define VAR_LOCAL_ZONE_TAG 424
+#define VAR_PREFER_IP6 274
+#define VAR_DO_UDP 275
+#define VAR_DO_TCP 276
+#define VAR_TCP_MSS 277
+#define VAR_OUTGOING_TCP_MSS 278
+#define VAR_CHROOT 279
+#define VAR_USERNAME 280
+#define VAR_DIRECTORY 281
+#define VAR_LOGFILE 282
+#define VAR_PIDFILE 283
+#define VAR_MSG_CACHE_SIZE 284
+#define VAR_MSG_CACHE_SLABS 285
+#define VAR_NUM_QUERIES_PER_THREAD 286
+#define VAR_RRSET_CACHE_SIZE 287
+#define VAR_RRSET_CACHE_SLABS 288
+#define VAR_OUTGOING_NUM_TCP 289
+#define VAR_INFRA_HOST_TTL 290
+#define VAR_INFRA_LAME_TTL 291
+#define VAR_INFRA_CACHE_SLABS 292
+#define VAR_INFRA_CACHE_NUMHOSTS 293
+#define VAR_INFRA_CACHE_LAME_SIZE 294
+#define VAR_NAME 295
+#define VAR_STUB_ZONE 296
+#define VAR_STUB_HOST 297
+#define VAR_STUB_ADDR 298
+#define VAR_TARGET_FETCH_POLICY 299
+#define VAR_HARDEN_SHORT_BUFSIZE 300
+#define VAR_HARDEN_LARGE_QUERIES 301
+#define VAR_FORWARD_ZONE 302
+#define VAR_FORWARD_HOST 303
+#define VAR_FORWARD_ADDR 304
+#define VAR_DO_NOT_QUERY_ADDRESS 305
+#define VAR_HIDE_IDENTITY 306
+#define VAR_HIDE_VERSION 307
+#define VAR_IDENTITY 308
+#define VAR_VERSION 309
+#define VAR_HARDEN_GLUE 310
+#define VAR_MODULE_CONF 311
+#define VAR_TRUST_ANCHOR_FILE 312
+#define VAR_TRUST_ANCHOR 313
+#define VAR_VAL_OVERRIDE_DATE 314
+#define VAR_BOGUS_TTL 315
+#define VAR_VAL_CLEAN_ADDITIONAL 316
+#define VAR_VAL_PERMISSIVE_MODE 317
+#define VAR_INCOMING_NUM_TCP 318
+#define VAR_MSG_BUFFER_SIZE 319
+#define VAR_KEY_CACHE_SIZE 320
+#define VAR_KEY_CACHE_SLABS 321
+#define VAR_TRUSTED_KEYS_FILE 322
+#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS 323
+#define VAR_USE_SYSLOG 324
+#define VAR_OUTGOING_INTERFACE 325
+#define VAR_ROOT_HINTS 326
+#define VAR_DO_NOT_QUERY_LOCALHOST 327
+#define VAR_CACHE_MAX_TTL 328
+#define VAR_HARDEN_DNSSEC_STRIPPED 329
+#define VAR_ACCESS_CONTROL 330
+#define VAR_LOCAL_ZONE 331
+#define VAR_LOCAL_DATA 332
+#define VAR_INTERFACE_AUTOMATIC 333
+#define VAR_STATISTICS_INTERVAL 334
+#define VAR_DO_DAEMONIZE 335
+#define VAR_USE_CAPS_FOR_ID 336
+#define VAR_STATISTICS_CUMULATIVE 337
+#define VAR_OUTGOING_PORT_PERMIT 338
+#define VAR_OUTGOING_PORT_AVOID 339
+#define VAR_DLV_ANCHOR_FILE 340
+#define VAR_DLV_ANCHOR 341
+#define VAR_NEG_CACHE_SIZE 342
+#define VAR_HARDEN_REFERRAL_PATH 343
+#define VAR_PRIVATE_ADDRESS 344
+#define VAR_PRIVATE_DOMAIN 345
+#define VAR_REMOTE_CONTROL 346
+#define VAR_CONTROL_ENABLE 347
+#define VAR_CONTROL_INTERFACE 348
+#define VAR_CONTROL_PORT 349
+#define VAR_SERVER_KEY_FILE 350
+#define VAR_SERVER_CERT_FILE 351
+#define VAR_CONTROL_KEY_FILE 352
+#define VAR_CONTROL_CERT_FILE 353
+#define VAR_CONTROL_USE_CERT 354
+#define VAR_EXTENDED_STATISTICS 355
+#define VAR_LOCAL_DATA_PTR 356
+#define VAR_JOSTLE_TIMEOUT 357
+#define VAR_STUB_PRIME 358
+#define VAR_UNWANTED_REPLY_THRESHOLD 359
+#define VAR_LOG_TIME_ASCII 360
+#define VAR_DOMAIN_INSECURE 361
+#define VAR_PYTHON 362
+#define VAR_PYTHON_SCRIPT 363
+#define VAR_VAL_SIG_SKEW_MIN 364
+#define VAR_VAL_SIG_SKEW_MAX 365
+#define VAR_CACHE_MIN_TTL 366
+#define VAR_VAL_LOG_LEVEL 367
+#define VAR_AUTO_TRUST_ANCHOR_FILE 368
+#define VAR_KEEP_MISSING 369
+#define VAR_ADD_HOLDDOWN 370
+#define VAR_DEL_HOLDDOWN 371
+#define VAR_SO_RCVBUF 372
+#define VAR_EDNS_BUFFER_SIZE 373
+#define VAR_PREFETCH 374
+#define VAR_PREFETCH_KEY 375
+#define VAR_SO_SNDBUF 376
+#define VAR_SO_REUSEPORT 377
+#define VAR_HARDEN_BELOW_NXDOMAIN 378
+#define VAR_IGNORE_CD_FLAG 379
+#define VAR_LOG_QUERIES 380
+#define VAR_TCP_UPSTREAM 381
+#define VAR_SSL_UPSTREAM 382
+#define VAR_SSL_SERVICE_KEY 383
+#define VAR_SSL_SERVICE_PEM 384
+#define VAR_SSL_PORT 385
+#define VAR_FORWARD_FIRST 386
+#define VAR_STUB_FIRST 387
+#define VAR_MINIMAL_RESPONSES 388
+#define VAR_RRSET_ROUNDROBIN 389
+#define VAR_MAX_UDP_SIZE 390
+#define VAR_DELAY_CLOSE 391
+#define VAR_UNBLOCK_LAN_ZONES 392
+#define VAR_INSECURE_LAN_ZONES 393
+#define VAR_INFRA_CACHE_MIN_RTT 394
+#define VAR_DNS64_PREFIX 395
+#define VAR_DNS64_SYNTHALL 396
+#define VAR_DNSTAP 397
+#define VAR_DNSTAP_ENABLE 398
+#define VAR_DNSTAP_SOCKET_PATH 399
+#define VAR_DNSTAP_SEND_IDENTITY 400
+#define VAR_DNSTAP_SEND_VERSION 401
+#define VAR_DNSTAP_IDENTITY 402
+#define VAR_DNSTAP_VERSION 403
+#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES 404
+#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES 405
+#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES 406
+#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES 407
+#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES 408
+#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES 409
+#define VAR_HARDEN_ALGO_DOWNGRADE 410
+#define VAR_IP_TRANSPARENT 411
+#define VAR_DISABLE_DNSSEC_LAME_CHECK 412
+#define VAR_RATELIMIT 413
+#define VAR_RATELIMIT_SLABS 414
+#define VAR_RATELIMIT_SIZE 415
+#define VAR_RATELIMIT_FOR_DOMAIN 416
+#define VAR_RATELIMIT_BELOW_DOMAIN 417
+#define VAR_RATELIMIT_FACTOR 418
+#define VAR_CAPS_WHITELIST 419
+#define VAR_CACHE_MAX_NEGATIVE_TTL 420
+#define VAR_PERMIT_SMALL_HOLDDOWN 421
+#define VAR_QNAME_MINIMISATION 422
+#define VAR_IP_FREEBIND 423
+#define VAR_DEFINE_TAG 424
+#define VAR_LOCAL_ZONE_TAG 425
+#define VAR_ACCESS_CONTROL_TAG 426
+#define VAR_LOCAL_ZONE_OVERRIDE 427
+#define VAR_ACCESS_CONTROL_TAG_ACTION 428
+#define VAR_ACCESS_CONTROL_TAG_DATA 429
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -471,7 +481,7 @@ union YYSTYPE
char* str;
-#line 475 "util/configparser.c" /* yacc.c:355 */
+#line 485 "util/configparser.c" /* yacc.c:355 */
};
typedef union YYSTYPE YYSTYPE;
@@ -488,7 +498,7 @@ int yyparse (void);
/* Copy the second part of user declarations. */
-#line 492 "util/configparser.c" /* yacc.c:358 */
+#line 502 "util/configparser.c" /* yacc.c:358 */
#ifdef short
# undef short
@@ -730,21 +740,21 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 319
+#define YYLAST 337
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 170
+#define YYNTOKENS 175
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 175
+#define YYNNTS 180
/* YYNRULES -- Number of rules. */
-#define YYNRULES 335
+#define YYNRULES 345
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 495
+#define YYNSTATES 517
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 424
+#define YYMAXUTOK 429
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -795,47 +805,48 @@ static const yytype_uint8 yytranslate[] =
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 167, 168, 169
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174
};
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 131, 131, 131, 132, 132, 133, 133, 134, 134,
- 138, 143, 144, 145, 145, 145, 146, 146, 147, 147,
- 147, 148, 148, 149, 149, 149, 150, 150, 150, 151,
- 151, 152, 152, 153, 153, 154, 154, 155, 155, 156,
- 156, 157, 157, 158, 158, 159, 159, 159, 160, 160,
- 160, 161, 161, 161, 162, 162, 163, 163, 164, 164,
- 165, 165, 166, 166, 166, 167, 167, 168, 168, 169,
- 169, 169, 170, 170, 171, 171, 172, 172, 173, 173,
- 173, 174, 174, 175, 175, 176, 176, 177, 177, 178,
- 178, 179, 179, 179, 180, 180, 181, 181, 181, 182,
- 182, 182, 183, 183, 183, 184, 184, 184, 185, 185,
- 185, 186, 186, 186, 187, 187, 188, 188, 189, 189,
- 190, 190, 191, 191, 191, 192, 192, 193, 193, 194,
- 194, 195, 195, 196, 196, 196, 197, 199, 211, 212,
- 213, 213, 213, 213, 213, 215, 227, 228, 229, 229,
- 229, 229, 231, 240, 249, 260, 269, 278, 287, 300,
- 315, 324, 333, 342, 351, 360, 369, 378, 387, 396,
- 405, 414, 423, 432, 441, 448, 455, 464, 473, 487,
- 496, 505, 512, 519, 526, 534, 541, 548, 555, 562,
- 570, 578, 586, 593, 600, 609, 618, 625, 632, 640,
- 648, 658, 668, 678, 691, 702, 710, 723, 732, 741,
- 750, 760, 770, 778, 791, 800, 808, 817, 825, 838,
- 847, 854, 864, 874, 884, 894, 904, 914, 924, 934,
- 941, 948, 955, 964, 973, 982, 989, 999, 1016, 1023,
- 1041, 1054, 1067, 1076, 1085, 1094, 1103, 1113, 1123, 1132,
- 1141, 1148, 1157, 1166, 1175, 1184, 1192, 1205, 1213, 1237,
- 1244, 1259, 1269, 1279, 1286, 1293, 1302, 1316, 1335, 1344,
- 1352, 1365, 1378, 1391, 1400, 1410, 1420, 1427, 1434, 1443,
- 1453, 1463, 1470, 1477, 1486, 1491, 1492, 1493, 1493, 1493,
- 1494, 1494, 1494, 1495, 1495, 1497, 1507, 1516, 1523, 1533,
- 1540, 1547, 1554, 1561, 1566, 1567, 1568, 1568, 1569, 1569,
- 1570, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1578, 1586,
- 1593, 1601, 1609, 1616, 1623, 1632, 1641, 1650, 1659, 1668,
- 1677, 1682, 1683, 1684, 1686, 1692
+ 0, 133, 133, 133, 134, 134, 135, 135, 136, 136,
+ 140, 145, 146, 147, 147, 147, 148, 148, 149, 149,
+ 150, 150, 151, 151, 152, 152, 152, 153, 153, 153,
+ 154, 154, 155, 155, 156, 156, 157, 157, 158, 158,
+ 159, 159, 160, 160, 161, 161, 162, 162, 162, 163,
+ 163, 163, 164, 164, 164, 165, 165, 166, 166, 167,
+ 167, 168, 168, 169, 169, 169, 170, 170, 171, 171,
+ 172, 172, 172, 173, 173, 174, 174, 175, 175, 176,
+ 176, 176, 177, 177, 178, 178, 179, 179, 180, 180,
+ 181, 181, 182, 182, 182, 183, 183, 184, 184, 184,
+ 185, 185, 185, 186, 186, 186, 187, 187, 187, 188,
+ 188, 188, 189, 189, 189, 190, 190, 191, 191, 192,
+ 192, 193, 193, 194, 194, 194, 195, 195, 196, 196,
+ 197, 197, 198, 198, 199, 199, 199, 200, 200, 201,
+ 201, 202, 204, 216, 217, 218, 218, 218, 218, 218,
+ 220, 232, 233, 234, 234, 234, 234, 236, 245, 254,
+ 265, 274, 283, 292, 305, 320, 329, 338, 347, 356,
+ 365, 374, 383, 392, 401, 410, 419, 428, 437, 446,
+ 455, 462, 469, 478, 487, 501, 510, 519, 526, 533,
+ 557, 565, 572, 579, 586, 593, 601, 609, 617, 624,
+ 631, 640, 649, 656, 663, 671, 679, 689, 699, 709,
+ 722, 733, 741, 754, 763, 772, 781, 791, 801, 809,
+ 822, 831, 839, 848, 856, 869, 878, 885, 895, 905,
+ 915, 925, 935, 945, 955, 965, 972, 979, 986, 995,
+ 1004, 1013, 1020, 1030, 1047, 1054, 1072, 1085, 1098, 1107,
+ 1116, 1125, 1134, 1144, 1154, 1163, 1172, 1179, 1188, 1197,
+ 1206, 1215, 1223, 1236, 1244, 1272, 1279, 1294, 1304, 1314,
+ 1321, 1328, 1337, 1351, 1370, 1389, 1401, 1413, 1425, 1434,
+ 1442, 1455, 1468, 1481, 1490, 1500, 1510, 1517, 1524, 1533,
+ 1543, 1553, 1560, 1567, 1576, 1581, 1582, 1583, 1583, 1583,
+ 1584, 1584, 1584, 1585, 1585, 1587, 1597, 1606, 1613, 1623,
+ 1630, 1637, 1644, 1651, 1656, 1657, 1658, 1658, 1659, 1659,
+ 1660, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1668, 1676,
+ 1683, 1691, 1699, 1706, 1713, 1722, 1731, 1740, 1749, 1758,
+ 1767, 1772, 1773, 1774, 1776, 1782
};
#endif
@@ -847,9 +858,9 @@ static const char *const yytname[] =
"$end", "error", "$undefined", "SPACE", "LETTER", "NEWLINE", "COMMENT",
"COLON", "ANY", "ZONESTR", "STRING_ARG", "VAR_SERVER", "VAR_VERBOSITY",
"VAR_NUM_THREADS", "VAR_PORT", "VAR_OUTGOING_RANGE", "VAR_INTERFACE",
- "VAR_DO_IP4", "VAR_DO_IP6", "VAR_DO_UDP", "VAR_DO_TCP", "VAR_TCP_MSS",
- "VAR_OUTGOING_TCP_MSS", "VAR_CHROOT", "VAR_USERNAME", "VAR_DIRECTORY",
- "VAR_LOGFILE", "VAR_PIDFILE", "VAR_MSG_CACHE_SIZE",
+ "VAR_DO_IP4", "VAR_DO_IP6", "VAR_PREFER_IP6", "VAR_DO_UDP", "VAR_DO_TCP",
+ "VAR_TCP_MSS", "VAR_OUTGOING_TCP_MSS", "VAR_CHROOT", "VAR_USERNAME",
+ "VAR_DIRECTORY", "VAR_LOGFILE", "VAR_PIDFILE", "VAR_MSG_CACHE_SIZE",
"VAR_MSG_CACHE_SLABS", "VAR_NUM_QUERIES_PER_THREAD",
"VAR_RRSET_CACHE_SIZE", "VAR_RRSET_CACHE_SLABS", "VAR_OUTGOING_NUM_TCP",
"VAR_INFRA_HOST_TTL", "VAR_INFRA_LAME_TTL", "VAR_INFRA_CACHE_SLABS",
@@ -903,17 +914,19 @@ static const char *const yytname[] =
"VAR_RATELIMIT_BELOW_DOMAIN", "VAR_RATELIMIT_FACTOR",
"VAR_CAPS_WHITELIST", "VAR_CACHE_MAX_NEGATIVE_TTL",
"VAR_PERMIT_SMALL_HOLDDOWN", "VAR_QNAME_MINIMISATION", "VAR_IP_FREEBIND",
- "VAR_DEFINE_TAG", "VAR_LOCAL_ZONE_TAG", "$accept", "toplevelvars",
- "toplevelvar", "serverstart", "contents_server", "content_server",
- "stubstart", "contents_stub", "content_stub", "forwardstart",
- "contents_forward", "content_forward", "server_num_threads",
- "server_verbosity", "server_statistics_interval",
- "server_statistics_cumulative", "server_extended_statistics",
- "server_port", "server_interface", "server_outgoing_interface",
- "server_outgoing_range", "server_outgoing_port_permit",
- "server_outgoing_port_avoid", "server_outgoing_num_tcp",
- "server_incoming_num_tcp", "server_interface_automatic", "server_do_ip4",
- "server_do_ip6", "server_do_udp", "server_do_tcp", "server_tcp_mss",
+ "VAR_DEFINE_TAG", "VAR_LOCAL_ZONE_TAG", "VAR_ACCESS_CONTROL_TAG",
+ "VAR_LOCAL_ZONE_OVERRIDE", "VAR_ACCESS_CONTROL_TAG_ACTION",
+ "VAR_ACCESS_CONTROL_TAG_DATA", "$accept", "toplevelvars", "toplevelvar",
+ "serverstart", "contents_server", "content_server", "stubstart",
+ "contents_stub", "content_stub", "forwardstart", "contents_forward",
+ "content_forward", "server_num_threads", "server_verbosity",
+ "server_statistics_interval", "server_statistics_cumulative",
+ "server_extended_statistics", "server_port", "server_interface",
+ "server_outgoing_interface", "server_outgoing_range",
+ "server_outgoing_port_permit", "server_outgoing_port_avoid",
+ "server_outgoing_num_tcp", "server_incoming_num_tcp",
+ "server_interface_automatic", "server_do_ip4", "server_do_ip6",
+ "server_do_udp", "server_do_tcp", "server_prefer_ip6", "server_tcp_mss",
"server_outgoing_tcp_mss", "server_tcp_upstream", "server_ssl_upstream",
"server_ssl_service_key", "server_ssl_service_pem", "server_ssl_port",
"server_do_daemonize", "server_use_syslog", "server_log_time_ascii",
@@ -955,6 +968,8 @@ static const char *const yytname[] =
"server_local_data", "server_local_data_ptr", "server_minimal_responses",
"server_rrset_roundrobin", "server_max_udp_size", "server_dns64_prefix",
"server_dns64_synthall", "server_define_tag", "server_local_zone_tag",
+ "server_access_control_tag", "server_access_control_tag_action",
+ "server_access_control_tag_data", "server_local_zone_override",
"server_ratelimit", "server_ratelimit_size", "server_ratelimit_slabs",
"server_ratelimit_for_domain", "server_ratelimit_below_domain",
"server_ratelimit_factor", "server_qname_minimisation", "stub_name",
@@ -998,7 +1013,8 @@ static const yytype_uint16 yytoknum[] =
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
+ 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
+ 425, 426, 427, 428, 429
};
# endif
@@ -1016,21 +1032,22 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- -81, 118, -81, -81, -81, -81, -81, -81, -81, -81,
- -81, -81, -81, -81, -81, -81, -12, 39, 47, 40,
- 36, -80, 18, 19, 20, 24, 25, 26, 69, 72,
- 73, 74, 75, 80, 109, 120, 129, 130, 149, 150,
- 151, 152, 153, 155, 156, 157, 158, 159, 161, 162,
- 163, 164, 165, 166, 180, 181, 182, 183, 184, 185,
- 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- 196, 197, 199, 200, 201, 202, 203, 204, 205, 206,
- 207, 208, 209, 210, 211, 212, 213, 215, 216, 217,
- 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
- 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
- 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
- 248, 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, -81, -81, -81, -81,
+ -81, 130, -81, -81, -81, -81, -81, -81, -81, -81,
+ -81, -81, -81, -81, -81, -81, -12, 91, 47, -13,
+ 36, -80, 19, 20, 21, 25, 26, 27, 81, 109,
+ 110, 122, 125, 126, 127, 128, 129, 132, 153, 154,
+ 155, 156, 157, 158, 159, 160, 162, 163, 164, 165,
+ 166, 181, 182, 183, 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,
+ 212, 214, 215, 216, 217, 218, 219, 220, 221, 222,
+ 223, 224, 225, 226, 228, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, 259, 260, 261, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
@@ -1043,29 +1060,30 @@ static const yytype_int16 yypact[] =
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
- -81, 275, 276, 277, 278, 279, -81, -81, -81, -81,
- -81, -81, 280, 281, 282, 283, -81, -81, -81, -81,
- -81, 284, 285, 286, 287, 288, 289, 290, 291, -81,
- -81, -81, -81, -81, -81, -81, -81, -81, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ -81, 286, 287, 288, 289, 290, -81, -81, -81, -81,
+ -81, -81, 291, 292, 293, 294, -81, -81, -81, -81,
+ -81, 295, 296, 297, 298, 299, 300, 301, 302, -81,
+ -81, -81, -81, -81, -81, -81, -81, -81, 303, 304,
+ 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
- -81, -81, -81, 304, -81, -81, -81, -81, -81, -81,
+ -81, -81, -81, 315, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
- -81, 305, 306, -81, -81, -81, -81, -81, -81, -81,
+ -81, -81, 316, 317, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
- 307, 308, -81, -81, -81, -81, -81, -81, -81, 309,
+ -81, 318, 319, -81, -81, -81, -81, -81, -81, -81,
+ 320, 321, 322, 323, 324, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
- -81, -81, -81, -81, -81
+ -81, 325, 326, 327, -81, -81, -81
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1073,8 +1091,8 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
- 2, 0, 1, 10, 137, 145, 284, 330, 303, 3,
- 12, 139, 147, 286, 305, 332, 4, 5, 6, 8,
+ 2, 0, 1, 10, 142, 150, 294, 340, 313, 3,
+ 12, 144, 152, 296, 315, 342, 4, 5, 6, 8,
9, 7, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1087,42 +1105,44 @@ 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, 11, 13, 14, 72,
- 75, 84, 15, 23, 63, 16, 76, 77, 34, 56,
- 71, 17, 18, 19, 20, 21, 22, 106, 107, 108,
- 109, 110, 73, 62, 88, 105, 24, 25, 26, 27,
- 28, 64, 78, 79, 94, 50, 60, 51, 89, 44,
- 45, 46, 47, 98, 102, 114, 122, 133, 99, 57,
- 29, 30, 31, 86, 115, 116, 117, 32, 33, 35,
- 36, 38, 39, 37, 120, 40, 41, 42, 48, 67,
- 103, 81, 121, 74, 129, 82, 83, 100, 101, 87,
- 43, 65, 68, 49, 52, 90, 91, 66, 130, 92,
- 53, 54, 55, 104, 93, 61, 95, 96, 97, 131,
- 58, 59, 80, 69, 70, 85, 111, 112, 113, 118,
- 119, 134, 135, 123, 125, 124, 126, 127, 128, 132,
- 136, 0, 0, 0, 0, 0, 138, 140, 141, 142,
- 144, 143, 0, 0, 0, 0, 146, 148, 149, 150,
- 151, 0, 0, 0, 0, 0, 0, 0, 0, 285,
- 287, 289, 288, 294, 290, 291, 292, 293, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 304, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 0, 331, 333, 153, 152, 157, 160,
- 158, 166, 167, 168, 169, 170, 171, 181, 182, 183,
- 184, 185, 205, 206, 207, 212, 213, 163, 214, 215,
- 218, 216, 217, 220, 221, 222, 235, 194, 195, 196,
- 197, 223, 238, 190, 192, 239, 245, 246, 247, 164,
- 204, 255, 256, 191, 250, 178, 159, 186, 236, 242,
- 224, 0, 0, 259, 165, 154, 177, 228, 155, 161,
- 162, 187, 188, 257, 226, 230, 231, 156, 260, 208,
- 234, 179, 193, 240, 241, 244, 249, 189, 253, 251,
- 252, 198, 203, 232, 233, 199, 200, 225, 248, 180,
- 172, 173, 174, 175, 176, 261, 262, 263, 209, 210,
- 211, 219, 264, 265, 227, 201, 335, 268, 270, 269,
- 0, 0, 273, 229, 243, 254, 274, 202, 266, 0,
- 275, 276, 277, 279, 278, 280, 281, 282, 283, 295,
- 297, 296, 299, 300, 301, 302, 298, 318, 319, 320,
- 321, 322, 323, 324, 325, 326, 327, 328, 329, 334,
- 237, 258, 271, 272, 267
+ 0, 11, 13, 14, 73, 76, 85, 15, 24, 64,
+ 16, 77, 78, 35, 57, 72, 17, 18, 20, 21,
+ 19, 22, 23, 107, 108, 109, 110, 111, 74, 63,
+ 89, 106, 25, 26, 27, 28, 29, 65, 79, 80,
+ 95, 51, 61, 52, 90, 45, 46, 47, 48, 99,
+ 103, 115, 123, 134, 100, 58, 30, 31, 32, 87,
+ 116, 117, 118, 33, 34, 36, 37, 39, 40, 38,
+ 121, 41, 42, 43, 49, 68, 104, 82, 122, 75,
+ 130, 83, 84, 101, 102, 88, 44, 66, 69, 50,
+ 53, 91, 92, 67, 131, 93, 54, 55, 56, 105,
+ 94, 62, 96, 97, 98, 132, 59, 60, 81, 70,
+ 71, 86, 112, 113, 114, 119, 120, 135, 136, 138,
+ 140, 141, 139, 124, 126, 125, 127, 128, 129, 133,
+ 137, 0, 0, 0, 0, 0, 143, 145, 146, 147,
+ 149, 148, 0, 0, 0, 0, 151, 153, 154, 155,
+ 156, 0, 0, 0, 0, 0, 0, 0, 0, 295,
+ 297, 299, 298, 304, 300, 301, 302, 303, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 314, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 325, 326, 327, 0, 341, 343, 158, 157, 162, 165,
+ 163, 171, 172, 175, 173, 174, 176, 177, 187, 188,
+ 189, 190, 191, 211, 212, 213, 218, 219, 168, 220,
+ 221, 224, 222, 223, 226, 227, 228, 241, 200, 201,
+ 202, 203, 229, 244, 196, 198, 245, 251, 252, 253,
+ 169, 210, 261, 262, 197, 256, 184, 164, 192, 242,
+ 248, 230, 0, 0, 265, 170, 159, 183, 234, 160,
+ 166, 167, 193, 194, 263, 232, 236, 237, 161, 266,
+ 214, 240, 185, 199, 246, 247, 250, 255, 195, 259,
+ 257, 258, 204, 209, 238, 239, 205, 206, 231, 254,
+ 186, 178, 179, 180, 181, 182, 267, 268, 269, 215,
+ 216, 217, 225, 270, 271, 233, 207, 345, 278, 280,
+ 279, 0, 0, 283, 235, 249, 260, 284, 208, 272,
+ 0, 0, 0, 0, 0, 285, 286, 287, 289, 288,
+ 290, 291, 292, 293, 305, 307, 306, 309, 310, 311,
+ 312, 308, 328, 329, 330, 331, 332, 333, 334, 335,
+ 336, 337, 338, 339, 344, 243, 264, 281, 282, 273,
+ 274, 0, 0, 0, 277, 275, 276
};
/* YYPGOTO[NTERM-NUM]. */
@@ -1145,30 +1165,30 @@ static const yytype_int8 yypgoto[] =
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
-81, -81, -81, -81, -81, -81, -81, -81, -81, -81,
- -81, -81, -81, -81, -81
+ -81, -81, -81, -81, -81, -81, -81, -81, -81, -81
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 9, 10, 16, 146, 11, 17, 276, 12,
- 18, 286, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
- 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
- 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
- 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
- 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
- 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
- 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
- 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
- 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
- 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 277, 278, 279, 280, 281,
- 287, 288, 289, 290, 13, 19, 299, 300, 301, 302,
- 303, 304, 305, 306, 307, 14, 20, 320, 321, 322,
- 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
- 15, 21, 334, 335, 270
+ -1, 1, 9, 10, 16, 151, 11, 17, 286, 12,
+ 18, 296, 152, 153, 154, 155, 156, 157, 158, 159,
+ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+ 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
+ 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+ 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+ 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
+ 287, 288, 289, 290, 291, 297, 298, 299, 300, 13,
+ 19, 309, 310, 311, 312, 313, 314, 315, 316, 317,
+ 14, 20, 330, 331, 332, 333, 334, 335, 336, 337,
+ 338, 339, 340, 341, 342, 15, 21, 344, 345, 280
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -1178,94 +1198,98 @@ static const yytype_uint16 yytable[] =
{
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 333, 336, 337,
- 338, 49, 50, 51, 339, 340, 341, 52, 53, 54,
+ 42, 43, 44, 45, 46, 47, 48, 49, 343, 346,
+ 347, 348, 50, 51, 52, 349, 350, 351, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 271, 342,
- 272, 273, 343, 344, 345, 346, 282, 93, 94, 95,
- 347, 96, 97, 98, 283, 284, 99, 100, 101, 102,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 301,
+ 302, 303, 304, 305, 306, 307, 308, 292, 94, 95,
+ 96, 352, 97, 98, 99, 293, 294, 100, 101, 102,
103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 2, 348,
- 121, 122, 123, 124, 125, 126, 127, 128, 129, 3,
- 349, 291, 292, 293, 294, 295, 296, 297, 298, 350,
- 351, 274, 130, 131, 132, 133, 134, 135, 136, 137,
- 138, 139, 140, 141, 142, 143, 144, 145, 4, 352,
- 353, 354, 355, 356, 5, 357, 358, 359, 360, 361,
- 275, 362, 363, 364, 365, 366, 367, 285, 308, 309,
- 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
- 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
- 378, 379, 380, 381, 382, 383, 384, 385, 6, 386,
- 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
- 397, 398, 399, 400, 7, 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, 8,
- 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
- 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
- 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
- 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
- 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
- 485, 486, 487, 488, 489, 490, 491, 492, 493, 494
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 353,
+ 354, 122, 123, 124, 125, 126, 127, 128, 129, 130,
+ 2, 281, 355, 282, 283, 356, 357, 358, 359, 360,
+ 0, 3, 361, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
+ 148, 149, 150, 362, 363, 364, 365, 366, 367, 368,
+ 369, 4, 370, 371, 372, 373, 374, 5, 295, 318,
+ 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 375, 376, 377, 284, 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, 6, 404, 285, 405, 406, 407, 408, 409, 410,
+ 411, 412, 413, 414, 415, 416, 417, 7, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
+ 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
+ 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
+ 450, 451, 8, 452, 453, 454, 455, 456, 457, 458,
+ 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
+ 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
+ 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
+ 489, 490, 491, 492, 493, 494, 495, 496, 497, 498,
+ 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
+ 509, 510, 511, 512, 513, 514, 515, 516
};
-static const yytype_uint8 yycheck[] =
+static const yytype_int16 yycheck[] =
{
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 107, 10, 10,
- 10, 43, 44, 45, 10, 10, 10, 49, 50, 51,
+ 32, 33, 34, 35, 36, 37, 38, 39, 108, 10,
+ 10, 10, 44, 45, 46, 10, 10, 10, 50, 51,
52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 85, 86, 87, 88, 89, 39, 10,
- 41, 42, 10, 10, 10, 10, 39, 99, 100, 101,
- 10, 103, 104, 105, 47, 48, 108, 109, 110, 111,
+ 82, 83, 84, 85, 86, 87, 88, 89, 90, 92,
+ 93, 94, 95, 96, 97, 98, 99, 40, 100, 101,
+ 102, 10, 104, 105, 106, 48, 49, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 129, 0, 10,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 11,
- 10, 91, 92, 93, 94, 95, 96, 97, 98, 10,
- 10, 102, 154, 155, 156, 157, 158, 159, 160, 161,
- 162, 163, 164, 165, 166, 167, 168, 169, 40, 10,
- 10, 10, 10, 10, 46, 10, 10, 10, 10, 10,
- 131, 10, 10, 10, 10, 10, 10, 130, 142, 143,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 10,
+ 10, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 0, 40, 10, 42, 43, 10, 10, 10, 10, 10,
+ -1, 11, 10, 155, 156, 157, 158, 159, 160, 161,
+ 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 10, 10, 10, 10, 10, 10, 10,
+ 10, 41, 10, 10, 10, 10, 10, 47, 131, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
+ 154, 10, 10, 10, 103, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 90, 10,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 106, 10, 10, 10, 10, 10,
+ 10, 91, 10, 132, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 107, 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, 141,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 142, 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, 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
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint16 yystos[] =
{
- 0, 171, 0, 11, 40, 46, 90, 106, 141, 172,
- 173, 176, 179, 314, 325, 340, 174, 177, 180, 315,
- 326, 341, 12, 13, 14, 15, 16, 17, 18, 19,
+ 0, 176, 0, 11, 41, 47, 91, 107, 142, 177,
+ 178, 181, 184, 324, 335, 350, 179, 182, 185, 325,
+ 336, 351, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 43,
- 44, 45, 49, 50, 51, 52, 53, 54, 55, 56,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 44, 45, 46, 50, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- 87, 88, 89, 99, 100, 101, 103, 104, 105, 108,
+ 87, 88, 89, 90, 100, 101, 102, 104, 105, 106,
109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
- 164, 165, 166, 167, 168, 169, 175, 182, 183, 184,
- 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 129, 130, 133, 134, 135, 136, 137, 138, 139, 140,
+ 141, 155, 156, 157, 158, 159, 160, 161, 162, 163,
+ 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
+ 174, 180, 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, 221, 222, 223, 224,
@@ -1277,13 +1301,15 @@ static const yytype_uint16 yystos[] =
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,
- 344, 39, 41, 42, 102, 131, 178, 305, 306, 307,
- 308, 309, 39, 47, 48, 130, 181, 310, 311, 312,
- 313, 91, 92, 93, 94, 95, 96, 97, 98, 316,
- 317, 318, 319, 320, 321, 322, 323, 324, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
- 327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
- 337, 338, 339, 107, 342, 343, 10, 10, 10, 10,
+ 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 354, 40, 42, 43, 103, 132, 183, 315, 316, 317,
+ 318, 319, 40, 48, 49, 131, 186, 320, 321, 322,
+ 323, 92, 93, 94, 95, 96, 97, 98, 99, 326,
+ 327, 328, 329, 330, 331, 332, 333, 334, 143, 144,
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, 349, 108, 352, 353, 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,
@@ -1299,28 +1325,28 @@ 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
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint16 yyr1[] =
{
- 0, 170, 171, 171, 172, 172, 172, 172, 172, 172,
- 173, 174, 174, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 176, 177, 177,
- 178, 178, 178, 178, 178, 179, 180, 180, 181, 181,
- 181, 181, 182, 183, 184, 185, 186, 187, 188, 189,
+ 0, 175, 176, 176, 177, 177, 177, 177, 177, 177,
+ 178, 179, 179, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 181, 182, 182, 183, 183, 183, 183, 183,
+ 184, 185, 185, 186, 186, 186, 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,
@@ -1333,12 +1359,13 @@ static const yytype_uint16 yyr1[] =
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, 315, 316, 316, 316,
- 316, 316, 316, 316, 316, 317, 318, 319, 320, 321,
- 322, 323, 324, 325, 326, 326, 327, 327, 327, 327,
- 327, 327, 327, 327, 327, 327, 327, 327, 328, 329,
- 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
- 340, 341, 341, 342, 343, 344
+ 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
+ 320, 321, 322, 323, 324, 325, 325, 326, 326, 326,
+ 326, 326, 326, 326, 326, 327, 328, 329, 330, 331,
+ 332, 333, 334, 335, 336, 336, 337, 337, 337, 337,
+ 337, 337, 337, 337, 337, 337, 337, 337, 338, 339,
+ 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
+ 350, 351, 351, 352, 353, 354
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1357,9 +1384,9 @@ static const yytype_uint8 yyr2[] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
- 1, 1, 1, 1, 1, 1, 2, 0, 1, 1,
- 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 2, 0, 1, 1, 1, 1, 1,
+ 1, 2, 0, 1, 1, 1, 1, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -1367,10 +1394,11 @@ 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, 3, 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, 3, 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, 3, 2, 2, 2, 2, 2,
+ 2, 2, 2, 3, 3, 4, 4, 4, 2, 2,
2, 3, 3, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 1, 2, 0, 1, 1, 1,
1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
@@ -2054,15 +2082,15 @@ yyreduce:
switch (yyn)
{
case 10:
-#line 139 "util/configparser.y" /* yacc.c:1646 */
+#line 141 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(server:)\n"));
}
-#line 2062 "util/configparser.c" /* yacc.c:1646 */
+#line 2090 "util/configparser.c" /* yacc.c:1646 */
break;
- case 137:
-#line 200 "util/configparser.y" /* yacc.c:1646 */
+ case 142:
+#line 205 "util/configparser.y" /* yacc.c:1646 */
{
struct config_stub* s;
OUTYY(("\nP(stub_zone:)\n"));
@@ -2073,11 +2101,11 @@ yyreduce:
} else
yyerror("out of memory");
}
-#line 2077 "util/configparser.c" /* yacc.c:1646 */
+#line 2105 "util/configparser.c" /* yacc.c:1646 */
break;
- case 145:
-#line 216 "util/configparser.y" /* yacc.c:1646 */
+ case 150:
+#line 221 "util/configparser.y" /* yacc.c:1646 */
{
struct config_stub* s;
OUTYY(("\nP(forward_zone:)\n"));
@@ -2088,11 +2116,11 @@ yyreduce:
} else
yyerror("out of memory");
}
-#line 2092 "util/configparser.c" /* yacc.c:1646 */
+#line 2120 "util/configparser.c" /* yacc.c:1646 */
break;
- case 152:
-#line 232 "util/configparser.y" /* yacc.c:1646 */
+ case 157:
+#line 237 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2100,11 +2128,11 @@ yyreduce:
else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2104 "util/configparser.c" /* yacc.c:1646 */
+#line 2132 "util/configparser.c" /* yacc.c:1646 */
break;
- case 153:
-#line 241 "util/configparser.y" /* yacc.c:1646 */
+ case 158:
+#line 246 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2112,11 +2140,11 @@ yyreduce:
else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2116 "util/configparser.c" /* yacc.c:1646 */
+#line 2144 "util/configparser.c" /* yacc.c:1646 */
break;
- case 154:
-#line 250 "util/configparser.y" /* yacc.c:1646 */
+ case 159:
+#line 255 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0)
@@ -2126,11 +2154,11 @@ yyreduce:
else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2130 "util/configparser.c" /* yacc.c:1646 */
+#line 2158 "util/configparser.c" /* yacc.c:1646 */
break;
- case 155:
-#line 261 "util/configparser.y" /* yacc.c:1646 */
+ case 160:
+#line 266 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2138,11 +2166,11 @@ yyreduce:
else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2142 "util/configparser.c" /* yacc.c:1646 */
+#line 2170 "util/configparser.c" /* yacc.c:1646 */
break;
- case 156:
-#line 270 "util/configparser.y" /* yacc.c:1646 */
+ case 161:
+#line 275 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2150,11 +2178,11 @@ yyreduce:
else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2154 "util/configparser.c" /* yacc.c:1646 */
+#line 2182 "util/configparser.c" /* yacc.c:1646 */
break;
- case 157:
-#line 279 "util/configparser.y" /* yacc.c:1646 */
+ case 162:
+#line 284 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -2162,11 +2190,11 @@ yyreduce:
else cfg_parser->cfg->port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2166 "util/configparser.c" /* yacc.c:1646 */
+#line 2194 "util/configparser.c" /* yacc.c:1646 */
break;
- case 158:
-#line 288 "util/configparser.y" /* yacc.c:1646 */
+ case 163:
+#line 293 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->num_ifs == 0)
@@ -2178,11 +2206,11 @@ yyreduce:
else
cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str);
}
-#line 2182 "util/configparser.c" /* yacc.c:1646 */
+#line 2210 "util/configparser.c" /* yacc.c:1646 */
break;
- case 159:
-#line 301 "util/configparser.y" /* yacc.c:1646 */
+ case 164:
+#line 306 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->num_out_ifs == 0)
@@ -2196,11 +2224,11 @@ yyreduce:
cfg_parser->cfg->out_ifs[
cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str);
}
-#line 2200 "util/configparser.c" /* yacc.c:1646 */
+#line 2228 "util/configparser.c" /* yacc.c:1646 */
break;
- case 160:
-#line 316 "util/configparser.y" /* yacc.c:1646 */
+ case 165:
+#line 321 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -2208,11 +2236,11 @@ yyreduce:
else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2212 "util/configparser.c" /* yacc.c:1646 */
+#line 2240 "util/configparser.c" /* yacc.c:1646 */
break;
- case 161:
-#line 325 "util/configparser.y" /* yacc.c:1646 */
+ case 166:
+#line 330 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str)));
if(!cfg_mark_ports((yyvsp[0].str), 1,
@@ -2220,11 +2248,11 @@ yyreduce:
yyerror("port number or range (\"low-high\") expected");
free((yyvsp[0].str));
}
-#line 2224 "util/configparser.c" /* yacc.c:1646 */
+#line 2252 "util/configparser.c" /* yacc.c:1646 */
break;
- case 162:
-#line 334 "util/configparser.y" /* yacc.c:1646 */
+ case 167:
+#line 339 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str)));
if(!cfg_mark_ports((yyvsp[0].str), 0,
@@ -2232,11 +2260,11 @@ yyreduce:
yyerror("port number or range (\"low-high\") expected");
free((yyvsp[0].str));
}
-#line 2236 "util/configparser.c" /* yacc.c:1646 */
+#line 2264 "util/configparser.c" /* yacc.c:1646 */
break;
- case 163:
-#line 343 "util/configparser.y" /* yacc.c:1646 */
+ case 168:
+#line 348 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2244,11 +2272,11 @@ yyreduce:
else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2248 "util/configparser.c" /* yacc.c:1646 */
+#line 2276 "util/configparser.c" /* yacc.c:1646 */
break;
- case 164:
-#line 352 "util/configparser.y" /* yacc.c:1646 */
+ case 169:
+#line 357 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2256,11 +2284,11 @@ yyreduce:
else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2260 "util/configparser.c" /* yacc.c:1646 */
+#line 2288 "util/configparser.c" /* yacc.c:1646 */
break;
- case 165:
-#line 361 "util/configparser.y" /* yacc.c:1646 */
+ case 170:
+#line 366 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2268,11 +2296,11 @@ yyreduce:
else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2272 "util/configparser.c" /* yacc.c:1646 */
+#line 2300 "util/configparser.c" /* yacc.c:1646 */
break;
- case 166:
-#line 370 "util/configparser.y" /* yacc.c:1646 */
+ case 171:
+#line 375 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2280,11 +2308,11 @@ yyreduce:
else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2284 "util/configparser.c" /* yacc.c:1646 */
+#line 2312 "util/configparser.c" /* yacc.c:1646 */
break;
- case 167:
-#line 379 "util/configparser.y" /* yacc.c:1646 */
+ case 172:
+#line 384 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2292,11 +2320,11 @@ yyreduce:
else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2296 "util/configparser.c" /* yacc.c:1646 */
+#line 2324 "util/configparser.c" /* yacc.c:1646 */
break;
- case 168:
-#line 388 "util/configparser.y" /* yacc.c:1646 */
+ case 173:
+#line 393 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2304,11 +2332,11 @@ yyreduce:
else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2308 "util/configparser.c" /* yacc.c:1646 */
+#line 2336 "util/configparser.c" /* yacc.c:1646 */
break;
- case 169:
-#line 397 "util/configparser.y" /* yacc.c:1646 */
+ case 174:
+#line 402 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2316,11 +2344,23 @@ yyreduce:
else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2320 "util/configparser.c" /* yacc.c:1646 */
+#line 2348 "util/configparser.c" /* yacc.c:1646 */
break;
- case 170:
-#line 406 "util/configparser.y" /* yacc.c:1646 */
+ case 175:
+#line 411 "util/configparser.y" /* yacc.c:1646 */
+ {
+ OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str)));
+ if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
+ yyerror("expected yes or no.");
+ else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0);
+ free((yyvsp[0].str));
+ }
+#line 2360 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 176:
+#line 420 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2328,11 +2368,11 @@ yyreduce:
else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2332 "util/configparser.c" /* yacc.c:1646 */
+#line 2372 "util/configparser.c" /* yacc.c:1646 */
break;
- case 171:
-#line 415 "util/configparser.y" /* yacc.c:1646 */
+ case 177:
+#line 429 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2340,11 +2380,11 @@ yyreduce:
else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2344 "util/configparser.c" /* yacc.c:1646 */
+#line 2384 "util/configparser.c" /* yacc.c:1646 */
break;
- case 172:
-#line 424 "util/configparser.y" /* yacc.c:1646 */
+ case 178:
+#line 438 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2352,11 +2392,11 @@ yyreduce:
else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2356 "util/configparser.c" /* yacc.c:1646 */
+#line 2396 "util/configparser.c" /* yacc.c:1646 */
break;
- case 173:
-#line 433 "util/configparser.y" /* yacc.c:1646 */
+ case 179:
+#line 447 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2364,31 +2404,31 @@ yyreduce:
else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2368 "util/configparser.c" /* yacc.c:1646 */
+#line 2408 "util/configparser.c" /* yacc.c:1646 */
break;
- case 174:
-#line 442 "util/configparser.y" /* yacc.c:1646 */
+ case 180:
+#line 456 "util/configparser.y" /* yacc.c:1646 */
{
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 2378 "util/configparser.c" /* yacc.c:1646 */
+#line 2418 "util/configparser.c" /* yacc.c:1646 */
break;
- case 175:
-#line 449 "util/configparser.y" /* yacc.c:1646 */
+ case 181:
+#line 463 "util/configparser.y" /* yacc.c:1646 */
{
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 2388 "util/configparser.c" /* yacc.c:1646 */
+#line 2428 "util/configparser.c" /* yacc.c:1646 */
break;
- case 176:
-#line 456 "util/configparser.y" /* yacc.c:1646 */
+ case 182:
+#line 470 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -2396,11 +2436,11 @@ yyreduce:
else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2400 "util/configparser.c" /* yacc.c:1646 */
+#line 2440 "util/configparser.c" /* yacc.c:1646 */
break;
- case 177:
-#line 465 "util/configparser.y" /* yacc.c:1646 */
+ case 183:
+#line 479 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2408,11 +2448,11 @@ yyreduce:
else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2412 "util/configparser.c" /* yacc.c:1646 */
+#line 2452 "util/configparser.c" /* yacc.c:1646 */
break;
- case 178:
-#line 474 "util/configparser.y" /* yacc.c:1646 */
+ case 184:
+#line 488 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2425,11 +2465,11 @@ yyreduce:
#endif
free((yyvsp[0].str));
}
-#line 2429 "util/configparser.c" /* yacc.c:1646 */
+#line 2469 "util/configparser.c" /* yacc.c:1646 */
break;
- case 179:
-#line 488 "util/configparser.y" /* yacc.c:1646 */
+ case 185:
+#line 502 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2437,11 +2477,11 @@ yyreduce:
else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2441 "util/configparser.c" /* yacc.c:1646 */
+#line 2481 "util/configparser.c" /* yacc.c:1646 */
break;
- case 180:
-#line 497 "util/configparser.y" /* yacc.c:1646 */
+ case 186:
+#line 511 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2449,145 +2489,162 @@ yyreduce:
else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2453 "util/configparser.c" /* yacc.c:1646 */
+#line 2493 "util/configparser.c" /* yacc.c:1646 */
break;
- case 181:
-#line 506 "util/configparser.y" /* yacc.c:1646 */
+ case 187:
+#line 520 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->chrootdir);
cfg_parser->cfg->chrootdir = (yyvsp[0].str);
}
-#line 2463 "util/configparser.c" /* yacc.c:1646 */
+#line 2503 "util/configparser.c" /* yacc.c:1646 */
break;
- case 182:
-#line 513 "util/configparser.y" /* yacc.c:1646 */
+ case 188:
+#line 527 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_username:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->username);
cfg_parser->cfg->username = (yyvsp[0].str);
}
-#line 2473 "util/configparser.c" /* yacc.c:1646 */
+#line 2513 "util/configparser.c" /* yacc.c:1646 */
break;
- case 183:
-#line 520 "util/configparser.y" /* yacc.c:1646 */
+ case 189:
+#line 534 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->directory);
cfg_parser->cfg->directory = (yyvsp[0].str);
+ /* change there right away for includes relative to this */
+ if((yyvsp[0].str)[0]) {
+ char* d;
+#ifdef UB_ON_WINDOWS
+ w_config_adjust_directory(cfg_parser->cfg);
+#endif
+ d = cfg_parser->cfg->directory;
+ /* adjust directory if we have already chroot,
+ * like, we reread after sighup */
+ if(cfg_parser->chroot && cfg_parser->chroot[0] &&
+ strncmp(d, cfg_parser->chroot, strlen(
+ cfg_parser->chroot)) == 0)
+ d += strlen(cfg_parser->chroot);
+ if(chdir(d))
+ log_err("cannot chdir to directory: %s (%s)",
+ d, strerror(errno));
+ }
}
-#line 2483 "util/configparser.c" /* yacc.c:1646 */
+#line 2540 "util/configparser.c" /* yacc.c:1646 */
break;
- case 184:
-#line 527 "util/configparser.y" /* yacc.c:1646 */
+ case 190:
+#line 558 "util/configparser.y" /* yacc.c:1646 */
{
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 2494 "util/configparser.c" /* yacc.c:1646 */
+#line 2551 "util/configparser.c" /* yacc.c:1646 */
break;
- case 185:
-#line 535 "util/configparser.y" /* yacc.c:1646 */
+ case 191:
+#line 566 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->pidfile);
cfg_parser->cfg->pidfile = (yyvsp[0].str);
}
-#line 2504 "util/configparser.c" /* yacc.c:1646 */
+#line 2561 "util/configparser.c" /* yacc.c:1646 */
break;
- case 186:
-#line 542 "util/configparser.y" /* yacc.c:1646 */
+ case 192:
+#line 573 "util/configparser.y" /* yacc.c:1646 */
{
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 2514 "util/configparser.c" /* yacc.c:1646 */
+#line 2571 "util/configparser.c" /* yacc.c:1646 */
break;
- case 187:
-#line 549 "util/configparser.y" /* yacc.c:1646 */
+ case 193:
+#line 580 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dlv_anchor_file);
cfg_parser->cfg->dlv_anchor_file = (yyvsp[0].str);
}
-#line 2524 "util/configparser.c" /* yacc.c:1646 */
+#line 2581 "util/configparser.c" /* yacc.c:1646 */
break;
- case 188:
-#line 556 "util/configparser.y" /* yacc.c:1646 */
+ case 194:
+#line 587 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 2534 "util/configparser.c" /* yacc.c:1646 */
+#line 2591 "util/configparser.c" /* yacc.c:1646 */
break;
- case 189:
-#line 563 "util/configparser.y" /* yacc.c:1646 */
+ case 195:
+#line 594 "util/configparser.y" /* yacc.c:1646 */
{
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 2545 "util/configparser.c" /* yacc.c:1646 */
+#line 2602 "util/configparser.c" /* yacc.c:1646 */
break;
- case 190:
-#line 571 "util/configparser.y" /* yacc.c:1646 */
+ case 196:
+#line 602 "util/configparser.y" /* yacc.c:1646 */
{
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 2556 "util/configparser.c" /* yacc.c:1646 */
+#line 2613 "util/configparser.c" /* yacc.c:1646 */
break;
- case 191:
-#line 579 "util/configparser.y" /* yacc.c:1646 */
+ case 197:
+#line 610 "util/configparser.y" /* yacc.c:1646 */
{
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 2567 "util/configparser.c" /* yacc.c:1646 */
+#line 2624 "util/configparser.c" /* yacc.c:1646 */
break;
- case 192:
-#line 587 "util/configparser.y" /* yacc.c:1646 */
+ case 198:
+#line 618 "util/configparser.y" /* yacc.c:1646 */
{
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 2577 "util/configparser.c" /* yacc.c:1646 */
+#line 2634 "util/configparser.c" /* yacc.c:1646 */
break;
- case 193:
-#line 594 "util/configparser.y" /* yacc.c:1646 */
+ case 199:
+#line 625 "util/configparser.y" /* yacc.c:1646 */
{
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 2587 "util/configparser.c" /* yacc.c:1646 */
+#line 2644 "util/configparser.c" /* yacc.c:1646 */
break;
- case 194:
-#line 601 "util/configparser.y" /* yacc.c:1646 */
+ case 200:
+#line 632 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2595,11 +2652,11 @@ yyreduce:
else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2599 "util/configparser.c" /* yacc.c:1646 */
+#line 2656 "util/configparser.c" /* yacc.c:1646 */
break;
- case 195:
-#line 610 "util/configparser.y" /* yacc.c:1646 */
+ case 201:
+#line 641 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2607,53 +2664,53 @@ yyreduce:
else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2611 "util/configparser.c" /* yacc.c:1646 */
+#line 2668 "util/configparser.c" /* yacc.c:1646 */
break;
- case 196:
-#line 619 "util/configparser.y" /* yacc.c:1646 */
+ case 202:
+#line 650 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->identity);
cfg_parser->cfg->identity = (yyvsp[0].str);
}
-#line 2621 "util/configparser.c" /* yacc.c:1646 */
+#line 2678 "util/configparser.c" /* yacc.c:1646 */
break;
- case 197:
-#line 626 "util/configparser.y" /* yacc.c:1646 */
+ case 203:
+#line 657 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_version:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->version);
cfg_parser->cfg->version = (yyvsp[0].str);
}
-#line 2631 "util/configparser.c" /* yacc.c:1646 */
+#line 2688 "util/configparser.c" /* yacc.c:1646 */
break;
- case 198:
-#line 633 "util/configparser.y" /* yacc.c:1646 */
+ case 204:
+#line 664 "util/configparser.y" /* yacc.c:1646 */
{
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 2642 "util/configparser.c" /* yacc.c:1646 */
+#line 2699 "util/configparser.c" /* yacc.c:1646 */
break;
- case 199:
-#line 641 "util/configparser.y" /* yacc.c:1646 */
+ case 205:
+#line 672 "util/configparser.y" /* yacc.c:1646 */
{
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 2653 "util/configparser.c" /* yacc.c:1646 */
+#line 2710 "util/configparser.c" /* yacc.c:1646 */
break;
- case 200:
-#line 649 "util/configparser.y" /* yacc.c:1646 */
+ case 206:
+#line 680 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2662,11 +2719,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2666 "util/configparser.c" /* yacc.c:1646 */
+#line 2723 "util/configparser.c" /* yacc.c:1646 */
break;
- case 201:
-#line 659 "util/configparser.y" /* yacc.c:1646 */
+ case 207:
+#line 690 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2675,11 +2732,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2679 "util/configparser.c" /* yacc.c:1646 */
+#line 2736 "util/configparser.c" /* yacc.c:1646 */
break;
- case 202:
-#line 669 "util/configparser.y" /* yacc.c:1646 */
+ case 208:
+#line 700 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2688,11 +2745,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2692 "util/configparser.c" /* yacc.c:1646 */
+#line 2749 "util/configparser.c" /* yacc.c:1646 */
break;
- case 203:
-#line 679 "util/configparser.y" /* yacc.c:1646 */
+ case 209:
+#line 710 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -2704,11 +2761,11 @@ yyreduce:
else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2708 "util/configparser.c" /* yacc.c:1646 */
+#line 2765 "util/configparser.c" /* yacc.c:1646 */
break;
- case 204:
-#line 692 "util/configparser.y" /* yacc.c:1646 */
+ case 210:
+#line 723 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -2718,22 +2775,22 @@ yyreduce:
else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2722 "util/configparser.c" /* yacc.c:1646 */
+#line 2779 "util/configparser.c" /* yacc.c:1646 */
break;
- case 205:
-#line 703 "util/configparser.y" /* yacc.c:1646 */
+ case 211:
+#line 734 "util/configparser.y" /* yacc.c:1646 */
{
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 2733 "util/configparser.c" /* yacc.c:1646 */
+#line 2790 "util/configparser.c" /* yacc.c:1646 */
break;
- case 206:
-#line 711 "util/configparser.y" /* yacc.c:1646 */
+ case 212:
+#line 742 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -2745,11 +2802,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 2749 "util/configparser.c" /* yacc.c:1646 */
+#line 2806 "util/configparser.c" /* yacc.c:1646 */
break;
- case 207:
-#line 724 "util/configparser.y" /* yacc.c:1646 */
+ case 213:
+#line 755 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -2757,11 +2814,11 @@ yyreduce:
else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2761 "util/configparser.c" /* yacc.c:1646 */
+#line 2818 "util/configparser.c" /* yacc.c:1646 */
break;
- case 208:
-#line 733 "util/configparser.y" /* yacc.c:1646 */
+ case 214:
+#line 764 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2769,11 +2826,11 @@ yyreduce:
else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2773 "util/configparser.c" /* yacc.c:1646 */
+#line 2830 "util/configparser.c" /* yacc.c:1646 */
break;
- case 209:
-#line 742 "util/configparser.y" /* yacc.c:1646 */
+ case 215:
+#line 773 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2781,11 +2838,11 @@ yyreduce:
else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2785 "util/configparser.c" /* yacc.c:1646 */
+#line 2842 "util/configparser.c" /* yacc.c:1646 */
break;
- case 210:
-#line 751 "util/configparser.y" /* yacc.c:1646 */
+ case 216:
+#line 782 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2794,11 +2851,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2798 "util/configparser.c" /* yacc.c:1646 */
+#line 2855 "util/configparser.c" /* yacc.c:1646 */
break;
- case 211:
-#line 761 "util/configparser.y" /* yacc.c:1646 */
+ case 217:
+#line 792 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2807,22 +2864,22 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2811 "util/configparser.c" /* yacc.c:1646 */
+#line 2868 "util/configparser.c" /* yacc.c:1646 */
break;
- case 212:
-#line 771 "util/configparser.y" /* yacc.c:1646 */
+ case 218:
+#line 802 "util/configparser.y" /* yacc.c:1646 */
{
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 2822 "util/configparser.c" /* yacc.c:1646 */
+#line 2879 "util/configparser.c" /* yacc.c:1646 */
break;
- case 213:
-#line 779 "util/configparser.y" /* yacc.c:1646 */
+ case 219:
+#line 810 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -2834,11 +2891,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 2838 "util/configparser.c" /* yacc.c:1646 */
+#line 2895 "util/configparser.c" /* yacc.c:1646 */
break;
- case 214:
-#line 792 "util/configparser.y" /* yacc.c:1646 */
+ case 220:
+#line 823 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2846,22 +2903,22 @@ yyreduce:
else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2850 "util/configparser.c" /* yacc.c:1646 */
+#line 2907 "util/configparser.c" /* yacc.c:1646 */
break;
- case 215:
-#line 801 "util/configparser.y" /* yacc.c:1646 */
+ case 221:
+#line 832 "util/configparser.y" /* yacc.c:1646 */
{
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 2861 "util/configparser.c" /* yacc.c:1646 */
+#line 2918 "util/configparser.c" /* yacc.c:1646 */
break;
- case 216:
-#line 809 "util/configparser.y" /* yacc.c:1646 */
+ case 222:
+#line 840 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -2869,22 +2926,22 @@ yyreduce:
else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2873 "util/configparser.c" /* yacc.c:1646 */
+#line 2930 "util/configparser.c" /* yacc.c:1646 */
break;
- case 217:
-#line 818 "util/configparser.y" /* yacc.c:1646 */
+ case 223:
+#line 849 "util/configparser.y" /* yacc.c:1646 */
{
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 2884 "util/configparser.c" /* yacc.c:1646 */
+#line 2941 "util/configparser.c" /* yacc.c:1646 */
break;
- case 218:
-#line 826 "util/configparser.y" /* yacc.c:1646 */
+ case 224:
+#line 857 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -2896,11 +2953,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 2900 "util/configparser.c" /* yacc.c:1646 */
+#line 2957 "util/configparser.c" /* yacc.c:1646 */
break;
- case 219:
-#line 839 "util/configparser.y" /* yacc.c:1646 */
+ case 225:
+#line 870 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -2908,21 +2965,21 @@ yyreduce:
else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 2912 "util/configparser.c" /* yacc.c:1646 */
+#line 2969 "util/configparser.c" /* yacc.c:1646 */
break;
- case 220:
-#line 848 "util/configparser.y" /* yacc.c:1646 */
+ case 226:
+#line 879 "util/configparser.y" /* yacc.c:1646 */
{
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 2922 "util/configparser.c" /* yacc.c:1646 */
+#line 2979 "util/configparser.c" /* yacc.c:1646 */
break;
- case 221:
-#line 855 "util/configparser.y" /* yacc.c:1646 */
+ case 227:
+#line 886 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2931,11 +2988,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2935 "util/configparser.c" /* yacc.c:1646 */
+#line 2992 "util/configparser.c" /* yacc.c:1646 */
break;
- case 222:
-#line 865 "util/configparser.y" /* yacc.c:1646 */
+ case 228:
+#line 896 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2944,11 +3001,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2948 "util/configparser.c" /* yacc.c:1646 */
+#line 3005 "util/configparser.c" /* yacc.c:1646 */
break;
- case 223:
-#line 875 "util/configparser.y" /* yacc.c:1646 */
+ case 229:
+#line 906 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2957,11 +3014,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2961 "util/configparser.c" /* yacc.c:1646 */
+#line 3018 "util/configparser.c" /* yacc.c:1646 */
break;
- case 224:
-#line 885 "util/configparser.y" /* yacc.c:1646 */
+ case 230:
+#line 916 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2970,11 +3027,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2974 "util/configparser.c" /* yacc.c:1646 */
+#line 3031 "util/configparser.c" /* yacc.c:1646 */
break;
- case 225:
-#line 895 "util/configparser.y" /* yacc.c:1646 */
+ case 231:
+#line 926 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2983,11 +3040,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 2987 "util/configparser.c" /* yacc.c:1646 */
+#line 3044 "util/configparser.c" /* yacc.c:1646 */
break;
- case 226:
-#line 905 "util/configparser.y" /* yacc.c:1646 */
+ case 232:
+#line 936 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -2996,11 +3053,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3000 "util/configparser.c" /* yacc.c:1646 */
+#line 3057 "util/configparser.c" /* yacc.c:1646 */
break;
- case 227:
-#line 915 "util/configparser.y" /* yacc.c:1646 */
+ case 233:
+#line 946 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3009,11 +3066,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3013 "util/configparser.c" /* yacc.c:1646 */
+#line 3070 "util/configparser.c" /* yacc.c:1646 */
break;
- case 228:
-#line 925 "util/configparser.y" /* yacc.c:1646 */
+ case 234:
+#line 956 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -3022,41 +3079,41 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3026 "util/configparser.c" /* yacc.c:1646 */
+#line 3083 "util/configparser.c" /* yacc.c:1646 */
break;
- case 229:
-#line 935 "util/configparser.y" /* yacc.c:1646 */
+ case 235:
+#line 966 "util/configparser.y" /* yacc.c:1646 */
{
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 3036 "util/configparser.c" /* yacc.c:1646 */
+#line 3093 "util/configparser.c" /* yacc.c:1646 */
break;
- case 230:
-#line 942 "util/configparser.y" /* yacc.c:1646 */
+ case 236:
+#line 973 "util/configparser.y" /* yacc.c:1646 */
{
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 3046 "util/configparser.c" /* yacc.c:1646 */
+#line 3103 "util/configparser.c" /* yacc.c:1646 */
break;
- case 231:
-#line 949 "util/configparser.y" /* yacc.c:1646 */
+ case 237:
+#line 980 "util/configparser.y" /* yacc.c:1646 */
{
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 3056 "util/configparser.c" /* yacc.c:1646 */
+#line 3113 "util/configparser.c" /* yacc.c:1646 */
break;
- case 232:
-#line 956 "util/configparser.y" /* yacc.c:1646 */
+ case 238:
+#line 987 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3064,11 +3121,11 @@ yyreduce:
else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3068 "util/configparser.c" /* yacc.c:1646 */
+#line 3125 "util/configparser.c" /* yacc.c:1646 */
break;
- case 233:
-#line 965 "util/configparser.y" /* yacc.c:1646 */
+ case 239:
+#line 996 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3076,11 +3133,11 @@ yyreduce:
else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3080 "util/configparser.c" /* yacc.c:1646 */
+#line 3137 "util/configparser.c" /* yacc.c:1646 */
break;
- case 234:
-#line 974 "util/configparser.y" /* yacc.c:1646 */
+ case 240:
+#line 1005 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3088,21 +3145,21 @@ yyreduce:
else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3092 "util/configparser.c" /* yacc.c:1646 */
+#line 3149 "util/configparser.c" /* yacc.c:1646 */
break;
- case 235:
-#line 983 "util/configparser.y" /* yacc.c:1646 */
+ case 241:
+#line 1014 "util/configparser.y" /* yacc.c:1646 */
{
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 3102 "util/configparser.c" /* yacc.c:1646 */
+#line 3159 "util/configparser.c" /* yacc.c:1646 */
break;
- case 236:
-#line 990 "util/configparser.y" /* yacc.c:1646 */
+ case 242:
+#line 1021 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -3111,11 +3168,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3115 "util/configparser.c" /* yacc.c:1646 */
+#line 3172 "util/configparser.c" /* yacc.c:1646 */
break;
- case 237:
-#line 1000 "util/configparser.y" /* yacc.c:1646 */
+ case 243:
+#line 1031 "util/configparser.y" /* yacc.c:1646 */
{
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 &&
@@ -3131,21 +3188,21 @@ yyreduce:
fatal_exit("out of memory adding acl");
}
}
-#line 3135 "util/configparser.c" /* yacc.c:1646 */
+#line 3192 "util/configparser.c" /* yacc.c:1646 */
break;
- case 238:
-#line 1017 "util/configparser.y" /* yacc.c:1646 */
+ case 244:
+#line 1048 "util/configparser.y" /* yacc.c:1646 */
{
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 3145 "util/configparser.c" /* yacc.c:1646 */
+#line 3202 "util/configparser.c" /* yacc.c:1646 */
break;
- case 239:
-#line 1024 "util/configparser.y" /* yacc.c:1646 */
+ case 245:
+#line 1055 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -3162,11 +3219,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3166 "util/configparser.c" /* yacc.c:1646 */
+#line 3223 "util/configparser.c" /* yacc.c:1646 */
break;
- case 240:
-#line 1042 "util/configparser.y" /* yacc.c:1646 */
+ case 246:
+#line 1073 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -3178,11 +3235,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3182 "util/configparser.c" /* yacc.c:1646 */
+#line 3239 "util/configparser.c" /* yacc.c:1646 */
break;
- case 241:
-#line 1055 "util/configparser.y" /* yacc.c:1646 */
+ case 247:
+#line 1086 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str)));
if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) {
@@ -3194,11 +3251,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3198 "util/configparser.c" /* yacc.c:1646 */
+#line 3255 "util/configparser.c" /* yacc.c:1646 */
break;
- case 242:
-#line 1068 "util/configparser.y" /* yacc.c:1646 */
+ case 248:
+#line 1099 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3206,11 +3263,11 @@ yyreduce:
else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3210 "util/configparser.c" /* yacc.c:1646 */
+#line 3267 "util/configparser.c" /* yacc.c:1646 */
break;
- case 243:
-#line 1077 "util/configparser.y" /* yacc.c:1646 */
+ case 249:
+#line 1108 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3218,11 +3275,11 @@ yyreduce:
else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3222 "util/configparser.c" /* yacc.c:1646 */
+#line 3279 "util/configparser.c" /* yacc.c:1646 */
break;
- case 244:
-#line 1086 "util/configparser.y" /* yacc.c:1646 */
+ case 250:
+#line 1117 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3230,11 +3287,11 @@ yyreduce:
else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3234 "util/configparser.c" /* yacc.c:1646 */
+#line 3291 "util/configparser.c" /* yacc.c:1646 */
break;
- case 245:
-#line 1095 "util/configparser.y" /* yacc.c:1646 */
+ case 251:
+#line 1126 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3242,11 +3299,11 @@ yyreduce:
else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3246 "util/configparser.c" /* yacc.c:1646 */
+#line 3303 "util/configparser.c" /* yacc.c:1646 */
break;
- case 246:
-#line 1104 "util/configparser.y" /* yacc.c:1646 */
+ case 252:
+#line 1135 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3255,11 +3312,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3259 "util/configparser.c" /* yacc.c:1646 */
+#line 3316 "util/configparser.c" /* yacc.c:1646 */
break;
- case 247:
-#line 1114 "util/configparser.y" /* yacc.c:1646 */
+ case 253:
+#line 1145 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3268,11 +3325,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3272 "util/configparser.c" /* yacc.c:1646 */
+#line 3329 "util/configparser.c" /* yacc.c:1646 */
break;
- case 248:
-#line 1124 "util/configparser.y" /* yacc.c:1646 */
+ case 254:
+#line 1155 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3280,11 +3337,11 @@ yyreduce:
else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3284 "util/configparser.c" /* yacc.c:1646 */
+#line 3341 "util/configparser.c" /* yacc.c:1646 */
break;
- case 249:
-#line 1133 "util/configparser.y" /* yacc.c:1646 */
+ case 255:
+#line 1164 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3292,21 +3349,21 @@ yyreduce:
else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3296 "util/configparser.c" /* yacc.c:1646 */
+#line 3353 "util/configparser.c" /* yacc.c:1646 */
break;
- case 250:
-#line 1142 "util/configparser.y" /* yacc.c:1646 */
+ case 256:
+#line 1173 "util/configparser.y" /* yacc.c:1646 */
{
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 3306 "util/configparser.c" /* yacc.c:1646 */
+#line 3363 "util/configparser.c" /* yacc.c:1646 */
break;
- case 251:
-#line 1149 "util/configparser.y" /* yacc.c:1646 */
+ case 257:
+#line 1180 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3314,11 +3371,11 @@ yyreduce:
else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3318 "util/configparser.c" /* yacc.c:1646 */
+#line 3375 "util/configparser.c" /* yacc.c:1646 */
break;
- case 252:
-#line 1158 "util/configparser.y" /* yacc.c:1646 */
+ case 258:
+#line 1189 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3326,11 +3383,11 @@ yyreduce:
else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3330 "util/configparser.c" /* yacc.c:1646 */
+#line 3387 "util/configparser.c" /* yacc.c:1646 */
break;
- case 253:
-#line 1167 "util/configparser.y" /* yacc.c:1646 */
+ case 259:
+#line 1198 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3338,11 +3395,11 @@ yyreduce:
else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3342 "util/configparser.c" /* yacc.c:1646 */
+#line 3399 "util/configparser.c" /* yacc.c:1646 */
break;
- case 254:
-#line 1176 "util/configparser.y" /* yacc.c:1646 */
+ case 260:
+#line 1207 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3351,22 +3408,22 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3355 "util/configparser.c" /* yacc.c:1646 */
+#line 3412 "util/configparser.c" /* yacc.c:1646 */
break;
- case 255:
-#line 1185 "util/configparser.y" /* yacc.c:1646 */
+ case 261:
+#line 1216 "util/configparser.y" /* yacc.c:1646 */
{
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 3366 "util/configparser.c" /* yacc.c:1646 */
+#line 3423 "util/configparser.c" /* yacc.c:1646 */
break;
- case 256:
-#line 1193 "util/configparser.y" /* yacc.c:1646 */
+ case 262:
+#line 1224 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3378,33 +3435,37 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3382 "util/configparser.c" /* yacc.c:1646 */
+#line 3439 "util/configparser.c" /* yacc.c:1646 */
break;
- case 257:
-#line 1206 "util/configparser.y" /* yacc.c:1646 */
+ case 263:
+#line 1237 "util/configparser.y" /* yacc.c:1646 */
{
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 3393 "util/configparser.c" /* yacc.c:1646 */
+#line 3450 "util/configparser.c" /* yacc.c:1646 */
break;
- case 258:
-#line 1214 "util/configparser.y" /* yacc.c:1646 */
+ case 264:
+#line 1245 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 &&
strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 &&
strcmp((yyvsp[0].str), "transparent")!=0 && strcmp((yyvsp[0].str), "nodefault")!=0
- && strcmp((yyvsp[0].str), "typetransparent")!=0 &&
- strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0)
+ && strcmp((yyvsp[0].str), "typetransparent")!=0
+ && strcmp((yyvsp[0].str), "always_transparent")!=0
+ && strcmp((yyvsp[0].str), "always_refuse")!=0
+ && strcmp((yyvsp[0].str), "always_nxdomain")!=0
+ && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0)
yyerror("local-zone type: expected static, deny, "
"refuse, redirect, transparent, "
- "typetransparent, inform, inform_deny "
- "or nodefault");
+ "typetransparent, inform, inform_deny, "
+ "always_transparent, always_refuse, "
+ "always_nxdomain or nodefault");
else if(strcmp((yyvsp[0].str), "nodefault")==0) {
if(!cfg_strlist_insert(&cfg_parser->cfg->
local_zones_nodefault, (yyvsp[-1].str)))
@@ -3416,21 +3477,21 @@ yyreduce:
fatal_exit("out of memory adding local-zone");
}
}
-#line 3420 "util/configparser.c" /* yacc.c:1646 */
+#line 3481 "util/configparser.c" /* yacc.c:1646 */
break;
- case 259:
-#line 1238 "util/configparser.y" /* yacc.c:1646 */
+ case 265:
+#line 1273 "util/configparser.y" /* yacc.c:1646 */
{
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 3430 "util/configparser.c" /* yacc.c:1646 */
+#line 3491 "util/configparser.c" /* yacc.c:1646 */
break;
- case 260:
-#line 1245 "util/configparser.y" /* yacc.c:1646 */
+ case 266:
+#line 1280 "util/configparser.y" /* yacc.c:1646 */
{
char* ptr;
OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str)));
@@ -3444,11 +3505,11 @@ yyreduce:
yyerror("local-data-ptr could not be reversed");
}
}
-#line 3448 "util/configparser.c" /* yacc.c:1646 */
+#line 3509 "util/configparser.c" /* yacc.c:1646 */
break;
- case 261:
-#line 1260 "util/configparser.y" /* yacc.c:1646 */
+ case 267:
+#line 1295 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3457,11 +3518,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3461 "util/configparser.c" /* yacc.c:1646 */
+#line 3522 "util/configparser.c" /* yacc.c:1646 */
break;
- case 262:
-#line 1270 "util/configparser.y" /* yacc.c:1646 */
+ case 268:
+#line 1305 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3470,31 +3531,31 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3474 "util/configparser.c" /* yacc.c:1646 */
+#line 3535 "util/configparser.c" /* yacc.c:1646 */
break;
- case 263:
-#line 1280 "util/configparser.y" /* yacc.c:1646 */
+ case 269:
+#line 1315 "util/configparser.y" /* yacc.c:1646 */
{
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 3484 "util/configparser.c" /* yacc.c:1646 */
+#line 3545 "util/configparser.c" /* yacc.c:1646 */
break;
- case 264:
-#line 1287 "util/configparser.y" /* yacc.c:1646 */
+ case 270:
+#line 1322 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->dns64_prefix);
cfg_parser->cfg->dns64_prefix = (yyvsp[0].str);
}
-#line 3494 "util/configparser.c" /* yacc.c:1646 */
+#line 3555 "util/configparser.c" /* yacc.c:1646 */
break;
- case 265:
-#line 1294 "util/configparser.y" /* yacc.c:1646 */
+ case 271:
+#line 1329 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3502,11 +3563,11 @@ yyreduce:
else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3506 "util/configparser.c" /* yacc.c:1646 */
+#line 3567 "util/configparser.c" /* yacc.c:1646 */
break;
- case 266:
-#line 1303 "util/configparser.y" /* yacc.c:1646 */
+ case 272:
+#line 1338 "util/configparser.y" /* yacc.c:1646 */
{
char* p, *s = (yyvsp[0].str);
OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str)));
@@ -3519,11 +3580,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3523 "util/configparser.c" /* yacc.c:1646 */
+#line 3584 "util/configparser.c" /* yacc.c:1646 */
break;
- case 267:
-#line 1317 "util/configparser.y" /* yacc.c:1646 */
+ case 273:
+#line 1352 "util/configparser.y" /* yacc.c:1646 */
{
size_t len = 0;
uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
@@ -3541,11 +3602,78 @@ yyreduce:
}
}
}
-#line 3545 "util/configparser.c" /* yacc.c:1646 */
+#line 3606 "util/configparser.c" /* yacc.c:1646 */
break;
- case 268:
-#line 1336 "util/configparser.y" /* yacc.c:1646 */
+ case 274:
+#line 1371 "util/configparser.y" /* yacc.c:1646 */
+ {
+ size_t len = 0;
+ uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str),
+ &len);
+ free((yyvsp[0].str));
+ OUTYY(("P(server_access_control_tag:%s)\n", (yyvsp[-1].str)));
+ if(!bitlist)
+ yyerror("could not parse tags, (define-tag them first)");
+ if(bitlist) {
+ if(!cfg_strbytelist_insert(
+ &cfg_parser->cfg->acl_tags,
+ (yyvsp[-1].str), bitlist, len)) {
+ yyerror("out of memory");
+ free((yyvsp[-1].str));
+ }
+ }
+ }
+#line 3628 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 275:
+#line 1390 "util/configparser.y" /* yacc.c:1646 */
+ {
+ OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
+ if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
+ (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
+ yyerror("out of memory");
+ free((yyvsp[-2].str));
+ free((yyvsp[-1].str));
+ free((yyvsp[0].str));
+ }
+ }
+#line 3643 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 276:
+#line 1402 "util/configparser.y" /* yacc.c:1646 */
+ {
+ OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
+ if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
+ (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
+ yyerror("out of memory");
+ free((yyvsp[-2].str));
+ free((yyvsp[-1].str));
+ free((yyvsp[0].str));
+ }
+ }
+#line 3658 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 277:
+#line 1414 "util/configparser.y" /* yacc.c:1646 */
+ {
+ OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str)));
+ if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides,
+ (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) {
+ yyerror("out of memory");
+ free((yyvsp[-2].str));
+ free((yyvsp[-1].str));
+ free((yyvsp[0].str));
+ }
+ }
+#line 3673 "util/configparser.c" /* yacc.c:1646 */
+ break;
+
+ case 278:
+#line 1426 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3553,22 +3681,22 @@ yyreduce:
else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3557 "util/configparser.c" /* yacc.c:1646 */
+#line 3685 "util/configparser.c" /* yacc.c:1646 */
break;
- case 269:
-#line 1345 "util/configparser.y" /* yacc.c:1646 */
+ case 279:
+#line 1435 "util/configparser.y" /* yacc.c:1646 */
{
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 3568 "util/configparser.c" /* yacc.c:1646 */
+#line 3696 "util/configparser.c" /* yacc.c:1646 */
break;
- case 270:
-#line 1353 "util/configparser.y" /* yacc.c:1646 */
+ case 280:
+#line 1443 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3580,11 +3708,11 @@ yyreduce:
}
free((yyvsp[0].str));
}
-#line 3584 "util/configparser.c" /* yacc.c:1646 */
+#line 3712 "util/configparser.c" /* yacc.c:1646 */
break;
- case 271:
-#line 1366 "util/configparser.y" /* yacc.c:1646 */
+ case 281:
+#line 1456 "util/configparser.y" /* yacc.c:1646 */
{
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) {
@@ -3596,11 +3724,11 @@ yyreduce:
"ratelimit-for-domain");
}
}
-#line 3600 "util/configparser.c" /* yacc.c:1646 */
+#line 3728 "util/configparser.c" /* yacc.c:1646 */
break;
- case 272:
-#line 1379 "util/configparser.y" /* yacc.c:1646 */
+ case 282:
+#line 1469 "util/configparser.y" /* yacc.c:1646 */
{
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) {
@@ -3612,11 +3740,11 @@ yyreduce:
"ratelimit-below-domain");
}
}
-#line 3616 "util/configparser.c" /* yacc.c:1646 */
+#line 3744 "util/configparser.c" /* yacc.c:1646 */
break;
- case 273:
-#line 1392 "util/configparser.y" /* yacc.c:1646 */
+ case 283:
+#line 1482 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0)
@@ -3624,11 +3752,11 @@ yyreduce:
else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3628 "util/configparser.c" /* yacc.c:1646 */
+#line 3756 "util/configparser.c" /* yacc.c:1646 */
break;
- case 274:
-#line 1401 "util/configparser.y" /* yacc.c:1646 */
+ case 284:
+#line 1491 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3637,11 +3765,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3641 "util/configparser.c" /* yacc.c:1646 */
+#line 3769 "util/configparser.c" /* yacc.c:1646 */
break;
- case 275:
-#line 1411 "util/configparser.y" /* yacc.c:1646 */
+ case 285:
+#line 1501 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->stubs->name)
@@ -3650,31 +3778,31 @@ yyreduce:
free(cfg_parser->cfg->stubs->name);
cfg_parser->cfg->stubs->name = (yyvsp[0].str);
}
-#line 3654 "util/configparser.c" /* yacc.c:1646 */
+#line 3782 "util/configparser.c" /* yacc.c:1646 */
break;
- case 276:
-#line 1421 "util/configparser.y" /* yacc.c:1646 */
+ case 286:
+#line 1511 "util/configparser.y" /* yacc.c:1646 */
{
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 3664 "util/configparser.c" /* yacc.c:1646 */
+#line 3792 "util/configparser.c" /* yacc.c:1646 */
break;
- case 277:
-#line 1428 "util/configparser.y" /* yacc.c:1646 */
+ case 287:
+#line 1518 "util/configparser.y" /* yacc.c:1646 */
{
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 3674 "util/configparser.c" /* yacc.c:1646 */
+#line 3802 "util/configparser.c" /* yacc.c:1646 */
break;
- case 278:
-#line 1435 "util/configparser.y" /* yacc.c:1646 */
+ case 288:
+#line 1525 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3682,11 +3810,11 @@ yyreduce:
else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3686 "util/configparser.c" /* yacc.c:1646 */
+#line 3814 "util/configparser.c" /* yacc.c:1646 */
break;
- case 279:
-#line 1444 "util/configparser.y" /* yacc.c:1646 */
+ case 289:
+#line 1534 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3695,11 +3823,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3699 "util/configparser.c" /* yacc.c:1646 */
+#line 3827 "util/configparser.c" /* yacc.c:1646 */
break;
- case 280:
-#line 1454 "util/configparser.y" /* yacc.c:1646 */
+ case 290:
+#line 1544 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(name:%s)\n", (yyvsp[0].str)));
if(cfg_parser->cfg->forwards->name)
@@ -3708,31 +3836,31 @@ yyreduce:
free(cfg_parser->cfg->forwards->name);
cfg_parser->cfg->forwards->name = (yyvsp[0].str);
}
-#line 3712 "util/configparser.c" /* yacc.c:1646 */
+#line 3840 "util/configparser.c" /* yacc.c:1646 */
break;
- case 281:
-#line 1464 "util/configparser.y" /* yacc.c:1646 */
+ case 291:
+#line 1554 "util/configparser.y" /* yacc.c:1646 */
{
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 3722 "util/configparser.c" /* yacc.c:1646 */
+#line 3850 "util/configparser.c" /* yacc.c:1646 */
break;
- case 282:
-#line 1471 "util/configparser.y" /* yacc.c:1646 */
+ case 292:
+#line 1561 "util/configparser.y" /* yacc.c:1646 */
{
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 3732 "util/configparser.c" /* yacc.c:1646 */
+#line 3860 "util/configparser.c" /* yacc.c:1646 */
break;
- case 283:
-#line 1478 "util/configparser.y" /* yacc.c:1646 */
+ case 293:
+#line 1568 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3740,19 +3868,19 @@ yyreduce:
else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3744 "util/configparser.c" /* yacc.c:1646 */
+#line 3872 "util/configparser.c" /* yacc.c:1646 */
break;
- case 284:
-#line 1487 "util/configparser.y" /* yacc.c:1646 */
+ case 294:
+#line 1577 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(remote-control:)\n"));
}
-#line 3752 "util/configparser.c" /* yacc.c:1646 */
+#line 3880 "util/configparser.c" /* yacc.c:1646 */
break;
- case 295:
-#line 1498 "util/configparser.y" /* yacc.c:1646 */
+ case 305:
+#line 1588 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3761,11 +3889,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3765 "util/configparser.c" /* yacc.c:1646 */
+#line 3893 "util/configparser.c" /* yacc.c:1646 */
break;
- case 296:
-#line 1508 "util/configparser.y" /* yacc.c:1646 */
+ case 306:
+#line 1598 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(control_port:%s)\n", (yyvsp[0].str)));
if(atoi((yyvsp[0].str)) == 0)
@@ -3773,21 +3901,21 @@ yyreduce:
else cfg_parser->cfg->control_port = atoi((yyvsp[0].str));
free((yyvsp[0].str));
}
-#line 3777 "util/configparser.c" /* yacc.c:1646 */
+#line 3905 "util/configparser.c" /* yacc.c:1646 */
break;
- case 297:
-#line 1517 "util/configparser.y" /* yacc.c:1646 */
+ case 307:
+#line 1607 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str)));
if(!cfg_strlist_insert(&cfg_parser->cfg->control_ifs, (yyvsp[0].str)))
yyerror("out of memory");
}
-#line 3787 "util/configparser.c" /* yacc.c:1646 */
+#line 3915 "util/configparser.c" /* yacc.c:1646 */
break;
- case 298:
-#line 1524 "util/configparser.y" /* yacc.c:1646 */
+ case 308:
+#line 1614 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -3796,122 +3924,122 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 3800 "util/configparser.c" /* yacc.c:1646 */
+#line 3928 "util/configparser.c" /* yacc.c:1646 */
break;
- case 299:
-#line 1534 "util/configparser.y" /* yacc.c:1646 */
+ case 309:
+#line 1624 "util/configparser.y" /* yacc.c:1646 */
{
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 3810 "util/configparser.c" /* yacc.c:1646 */
+#line 3938 "util/configparser.c" /* yacc.c:1646 */
break;
- case 300:
-#line 1541 "util/configparser.y" /* yacc.c:1646 */
+ case 310:
+#line 1631 "util/configparser.y" /* yacc.c:1646 */
{
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 3820 "util/configparser.c" /* yacc.c:1646 */
+#line 3948 "util/configparser.c" /* yacc.c:1646 */
break;
- case 301:
-#line 1548 "util/configparser.y" /* yacc.c:1646 */
+ case 311:
+#line 1638 "util/configparser.y" /* yacc.c:1646 */
{
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 3830 "util/configparser.c" /* yacc.c:1646 */
+#line 3958 "util/configparser.c" /* yacc.c:1646 */
break;
- case 302:
-#line 1555 "util/configparser.y" /* yacc.c:1646 */
+ case 312:
+#line 1645 "util/configparser.y" /* yacc.c:1646 */
{
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 3840 "util/configparser.c" /* yacc.c:1646 */
+#line 3968 "util/configparser.c" /* yacc.c:1646 */
break;
- case 303:
-#line 1562 "util/configparser.y" /* yacc.c:1646 */
+ case 313:
+#line 1652 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(dnstap:)\n"));
}
-#line 3848 "util/configparser.c" /* yacc.c:1646 */
+#line 3976 "util/configparser.c" /* yacc.c:1646 */
break;
- case 318:
-#line 1579 "util/configparser.y" /* yacc.c:1646 */
+ case 328:
+#line 1669 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0);
}
-#line 3859 "util/configparser.c" /* yacc.c:1646 */
+#line 3987 "util/configparser.c" /* yacc.c:1646 */
break;
- case 319:
-#line 1587 "util/configparser.y" /* yacc.c:1646 */
+ case 329:
+#line 1677 "util/configparser.y" /* yacc.c:1646 */
{
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 3869 "util/configparser.c" /* yacc.c:1646 */
+#line 3997 "util/configparser.c" /* yacc.c:1646 */
break;
- case 320:
-#line 1594 "util/configparser.y" /* yacc.c:1646 */
+ case 330:
+#line 1684 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0);
}
-#line 3880 "util/configparser.c" /* yacc.c:1646 */
+#line 4008 "util/configparser.c" /* yacc.c:1646 */
break;
- case 321:
-#line 1602 "util/configparser.y" /* yacc.c:1646 */
+ case 331:
+#line 1692 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str)));
if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
yyerror("expected yes or no.");
else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0);
}
-#line 3891 "util/configparser.c" /* yacc.c:1646 */
+#line 4019 "util/configparser.c" /* yacc.c:1646 */
break;
- case 322:
-#line 1610 "util/configparser.y" /* yacc.c:1646 */
+ case 332:
+#line 1700 "util/configparser.y" /* yacc.c:1646 */
{
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 3901 "util/configparser.c" /* yacc.c:1646 */
+#line 4029 "util/configparser.c" /* yacc.c:1646 */
break;
- case 323:
-#line 1617 "util/configparser.y" /* yacc.c:1646 */
+ case 333:
+#line 1707 "util/configparser.y" /* yacc.c:1646 */
{
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 3911 "util/configparser.c" /* yacc.c:1646 */
+#line 4039 "util/configparser.c" /* yacc.c:1646 */
break;
- case 324:
-#line 1624 "util/configparser.y" /* yacc.c:1646 */
+ case 334:
+#line 1714 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -3919,11 +4047,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_resolver_query_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 3923 "util/configparser.c" /* yacc.c:1646 */
+#line 4051 "util/configparser.c" /* yacc.c:1646 */
break;
- case 325:
-#line 1633 "util/configparser.y" /* yacc.c:1646 */
+ case 335:
+#line 1723 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -3931,11 +4059,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_resolver_response_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 3935 "util/configparser.c" /* yacc.c:1646 */
+#line 4063 "util/configparser.c" /* yacc.c:1646 */
break;
- case 326:
-#line 1642 "util/configparser.y" /* yacc.c:1646 */
+ case 336:
+#line 1732 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -3943,11 +4071,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_client_query_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 3947 "util/configparser.c" /* yacc.c:1646 */
+#line 4075 "util/configparser.c" /* yacc.c:1646 */
break;
- case 327:
-#line 1651 "util/configparser.y" /* yacc.c:1646 */
+ case 337:
+#line 1741 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -3955,11 +4083,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_client_response_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 3959 "util/configparser.c" /* yacc.c:1646 */
+#line 4087 "util/configparser.c" /* yacc.c:1646 */
break;
- case 328:
-#line 1660 "util/configparser.y" /* yacc.c:1646 */
+ case 338:
+#line 1750 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -3967,11 +4095,11 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_forwarder_query_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 3971 "util/configparser.c" /* yacc.c:1646 */
+#line 4099 "util/configparser.c" /* yacc.c:1646 */
break;
- case 329:
-#line 1669 "util/configparser.y" /* yacc.c:1646 */
+ case 339:
+#line 1759 "util/configparser.y" /* yacc.c:1646 */
{
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)
@@ -3979,29 +4107,29 @@ yyreduce:
else cfg_parser->cfg->dnstap_log_forwarder_response_messages =
(strcmp((yyvsp[0].str), "yes")==0);
}
-#line 3983 "util/configparser.c" /* yacc.c:1646 */
+#line 4111 "util/configparser.c" /* yacc.c:1646 */
break;
- case 330:
-#line 1678 "util/configparser.y" /* yacc.c:1646 */
+ case 340:
+#line 1768 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("\nP(python:)\n"));
}
-#line 3991 "util/configparser.c" /* yacc.c:1646 */
+#line 4119 "util/configparser.c" /* yacc.c:1646 */
break;
- case 334:
-#line 1687 "util/configparser.y" /* yacc.c:1646 */
+ case 344:
+#line 1777 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(python-script:%s)\n", (yyvsp[0].str)));
free(cfg_parser->cfg->python_script);
cfg_parser->cfg->python_script = (yyvsp[0].str);
}
-#line 4001 "util/configparser.c" /* yacc.c:1646 */
+#line 4129 "util/configparser.c" /* yacc.c:1646 */
break;
- case 335:
-#line 1693 "util/configparser.y" /* yacc.c:1646 */
+ case 345:
+#line 1783 "util/configparser.y" /* yacc.c:1646 */
{
OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str)));
if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0)
@@ -4010,11 +4138,11 @@ yyreduce:
(strcmp((yyvsp[0].str), "yes")==0);
free((yyvsp[0].str));
}
-#line 4014 "util/configparser.c" /* yacc.c:1646 */
+#line 4142 "util/configparser.c" /* yacc.c:1646 */
break;
-#line 4018 "util/configparser.c" /* yacc.c:1646 */
+#line 4146 "util/configparser.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -4242,7 +4370,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 1701 "util/configparser.y" /* yacc.c:1906 */
+#line 1791 "util/configparser.y" /* yacc.c:1906 */
/* parse helper routines could be here */