Bug Summary

File:src/usr.sbin/unbound/obj/util/configparser.c
Warning:line 2094, column 26
Use of zero-allocated memory

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple amd64-unknown-openbsd7.0 -analyze -disable-free -disable-llvm-verifier -discard-value-names -main-file-name configparser.c -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 1 -pic-is-pie -mframe-pointer=all -relaxed-aliasing -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-feature +retpoline-indirect-calls -target-feature +retpoline-indirect-branches -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/usr/src/usr.sbin/unbound/obj -resource-dir /usr/local/lib/clang/13.0.0 -I . -I /usr/src/usr.sbin/unbound -D SRCDIR=/usr/src/usr.sbin/unbound -internal-isystem /usr/local/lib/clang/13.0.0/include -internal-externc-isystem /usr/include -O2 -fdebug-compilation-dir=/usr/src/usr.sbin/unbound/obj -ferror-limit 19 -fwrapv -D_RET_PROTECTOR -ret-protector -fgnuc-version=4.2.1 -vectorize-loops -vectorize-slp -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-valloc -fno-builtin-free -fno-builtin-strdup -fno-builtin-strndup -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /home/ben/Projects/vmm/scan-build/2022-01-12-194120-40624-1 -x c util/configparser.c
1#include <stdlib.h>
2#include <string.h>
3#define YYBYACC1 1
4#define YYMAJOR1 1
5#define YYMINOR9 9
6#define YYLEXub_c_lex() yylexub_c_lex()
7#define YYEMPTY-1 -1
8#define yyclearin(ub_c_char=(-1)) (yycharub_c_char=(YYEMPTY-1))
9#define yyerrok(ub_c_errflag=0) (yyerrflagub_c_errflag=0)
10#define YYRECOVERING()(ub_c_errflag!=0) (yyerrflagub_c_errflag!=0)
11#define YYPREFIX"yy" "yy"
12#line 39 "/usr/src/usr.sbin/unbound/util/configparser.y"
13#include "config.h"
14
15#include <stdarg.h>
16#include <stdio.h>
17#include <string.h>
18#include <stdlib.h>
19#include <assert.h>
20
21#include "util/configyyrename.h"
22#include "util/config_file.h"
23#include "util/net_help.h"
24
25int ub_c_lex(void);
26void ub_c_error(const char *message);
27
28static void validate_respip_action(const char* action);
29
30/* these need to be global, otherwise they cannot be used inside yacc */
31extern struct config_parser_state* cfg_parser;
32
33#if 0
34#define OUTYY(s) printf s /* used ONLY when debugging */
35#else
36#define OUTYY(s)
37#endif
38
39#line 66 "/usr/src/usr.sbin/unbound/util/configparser.y"
40#ifndef YYSTYPE_DEFINED
41#define YYSTYPE_DEFINED
42typedef union {
43 char* str;
44} YYSTYPE;
45#endif /* YYSTYPE_DEFINED */
46#line 47 "util/configparser.c"
47#define SPACE257 257
48#define LETTER258 258
49#define NEWLINE259 259
50#define COMMENT260 260
51#define COLON261 261
52#define ANY262 262
53#define ZONESTR263 263
54#define STRING_ARG264 264
55#define VAR_FORCE_TOPLEVEL265 265
56#define VAR_SERVER266 266
57#define VAR_VERBOSITY267 267
58#define VAR_NUM_THREADS268 268
59#define VAR_PORT269 269
60#define VAR_OUTGOING_RANGE270 270
61#define VAR_INTERFACE271 271
62#define VAR_PREFER_IP4272 272
63#define VAR_DO_IP4273 273
64#define VAR_DO_IP6274 274
65#define VAR_PREFER_IP6275 275
66#define VAR_DO_UDP276 276
67#define VAR_DO_TCP277 277
68#define VAR_TCP_MSS278 278
69#define VAR_OUTGOING_TCP_MSS279 279
70#define VAR_TCP_IDLE_TIMEOUT280 280
71#define VAR_EDNS_TCP_KEEPALIVE281 281
72#define VAR_EDNS_TCP_KEEPALIVE_TIMEOUT282 282
73#define VAR_CHROOT283 283
74#define VAR_USERNAME284 284
75#define VAR_DIRECTORY285 285
76#define VAR_LOGFILE286 286
77#define VAR_PIDFILE287 287
78#define VAR_MSG_CACHE_SIZE288 288
79#define VAR_MSG_CACHE_SLABS289 289
80#define VAR_NUM_QUERIES_PER_THREAD290 290
81#define VAR_RRSET_CACHE_SIZE291 291
82#define VAR_RRSET_CACHE_SLABS292 292
83#define VAR_OUTGOING_NUM_TCP293 293
84#define VAR_INFRA_HOST_TTL294 294
85#define VAR_INFRA_LAME_TTL295 295
86#define VAR_INFRA_CACHE_SLABS296 296
87#define VAR_INFRA_CACHE_NUMHOSTS297 297
88#define VAR_INFRA_CACHE_LAME_SIZE298 298
89#define VAR_NAME299 299
90#define VAR_STUB_ZONE300 300
91#define VAR_STUB_HOST301 301
92#define VAR_STUB_ADDR302 302
93#define VAR_TARGET_FETCH_POLICY303 303
94#define VAR_HARDEN_SHORT_BUFSIZE304 304
95#define VAR_HARDEN_LARGE_QUERIES305 305
96#define VAR_FORWARD_ZONE306 306
97#define VAR_FORWARD_HOST307 307
98#define VAR_FORWARD_ADDR308 308
99#define VAR_DO_NOT_QUERY_ADDRESS309 309
100#define VAR_HIDE_IDENTITY310 310
101#define VAR_HIDE_VERSION311 311
102#define VAR_IDENTITY312 312
103#define VAR_VERSION313 313
104#define VAR_HARDEN_GLUE314 314
105#define VAR_MODULE_CONF315 315
106#define VAR_TRUST_ANCHOR_FILE316 316
107#define VAR_TRUST_ANCHOR317 317
108#define VAR_VAL_OVERRIDE_DATE318 318
109#define VAR_BOGUS_TTL319 319
110#define VAR_VAL_CLEAN_ADDITIONAL320 320
111#define VAR_VAL_PERMISSIVE_MODE321 321
112#define VAR_INCOMING_NUM_TCP322 322
113#define VAR_MSG_BUFFER_SIZE323 323
114#define VAR_KEY_CACHE_SIZE324 324
115#define VAR_KEY_CACHE_SLABS325 325
116#define VAR_TRUSTED_KEYS_FILE326 326
117#define VAR_VAL_NSEC3_KEYSIZE_ITERATIONS327 327
118#define VAR_USE_SYSLOG328 328
119#define VAR_OUTGOING_INTERFACE329 329
120#define VAR_ROOT_HINTS330 330
121#define VAR_DO_NOT_QUERY_LOCALHOST331 331
122#define VAR_CACHE_MAX_TTL332 332
123#define VAR_HARDEN_DNSSEC_STRIPPED333 333
124#define VAR_ACCESS_CONTROL334 334
125#define VAR_LOCAL_ZONE335 335
126#define VAR_LOCAL_DATA336 336
127#define VAR_INTERFACE_AUTOMATIC337 337
128#define VAR_STATISTICS_INTERVAL338 338
129#define VAR_DO_DAEMONIZE339 339
130#define VAR_USE_CAPS_FOR_ID340 340
131#define VAR_STATISTICS_CUMULATIVE341 341
132#define VAR_OUTGOING_PORT_PERMIT342 342
133#define VAR_OUTGOING_PORT_AVOID343 343
134#define VAR_DLV_ANCHOR_FILE344 344
135#define VAR_DLV_ANCHOR345 345
136#define VAR_NEG_CACHE_SIZE346 346
137#define VAR_HARDEN_REFERRAL_PATH347 347
138#define VAR_PRIVATE_ADDRESS348 348
139#define VAR_PRIVATE_DOMAIN349 349
140#define VAR_REMOTE_CONTROL350 350
141#define VAR_CONTROL_ENABLE351 351
142#define VAR_CONTROL_INTERFACE352 352
143#define VAR_CONTROL_PORT353 353
144#define VAR_SERVER_KEY_FILE354 354
145#define VAR_SERVER_CERT_FILE355 355
146#define VAR_CONTROL_KEY_FILE356 356
147#define VAR_CONTROL_CERT_FILE357 357
148#define VAR_CONTROL_USE_CERT358 358
149#define VAR_TCP_REUSE_TIMEOUT359 359
150#define VAR_MAX_REUSE_TCP_QUERIES360 360
151#define VAR_EXTENDED_STATISTICS361 361
152#define VAR_LOCAL_DATA_PTR362 362
153#define VAR_JOSTLE_TIMEOUT363 363
154#define VAR_STUB_PRIME364 364
155#define VAR_UNWANTED_REPLY_THRESHOLD365 365
156#define VAR_LOG_TIME_ASCII366 366
157#define VAR_DOMAIN_INSECURE367 367
158#define VAR_PYTHON368 368
159#define VAR_PYTHON_SCRIPT369 369
160#define VAR_VAL_SIG_SKEW_MIN370 370
161#define VAR_VAL_SIG_SKEW_MAX371 371
162#define VAR_VAL_MAX_RESTART372 372
163#define VAR_CACHE_MIN_TTL373 373
164#define VAR_VAL_LOG_LEVEL374 374
165#define VAR_AUTO_TRUST_ANCHOR_FILE375 375
166#define VAR_KEEP_MISSING376 376
167#define VAR_ADD_HOLDDOWN377 377
168#define VAR_DEL_HOLDDOWN378 378
169#define VAR_SO_RCVBUF379 379
170#define VAR_EDNS_BUFFER_SIZE380 380
171#define VAR_PREFETCH381 381
172#define VAR_PREFETCH_KEY382 382
173#define VAR_SO_SNDBUF383 383
174#define VAR_SO_REUSEPORT384 384
175#define VAR_HARDEN_BELOW_NXDOMAIN385 385
176#define VAR_IGNORE_CD_FLAG386 386
177#define VAR_LOG_QUERIES387 387
178#define VAR_LOG_REPLIES388 388
179#define VAR_LOG_LOCAL_ACTIONS389 389
180#define VAR_TCP_UPSTREAM390 390
181#define VAR_SSL_UPSTREAM391 391
182#define VAR_TCP_AUTH_QUERY_TIMEOUT392 392
183#define VAR_SSL_SERVICE_KEY393 393
184#define VAR_SSL_SERVICE_PEM394 394
185#define VAR_SSL_PORT395 395
186#define VAR_FORWARD_FIRST396 396
187#define VAR_STUB_SSL_UPSTREAM397 397
188#define VAR_FORWARD_SSL_UPSTREAM398 398
189#define VAR_TLS_CERT_BUNDLE399 399
190#define VAR_HTTPS_PORT400 400
191#define VAR_HTTP_ENDPOINT401 401
192#define VAR_HTTP_MAX_STREAMS402 402
193#define VAR_HTTP_QUERY_BUFFER_SIZE403 403
194#define VAR_HTTP_RESPONSE_BUFFER_SIZE404 404
195#define VAR_HTTP_NODELAY405 405
196#define VAR_HTTP_NOTLS_DOWNSTREAM406 406
197#define VAR_STUB_FIRST407 407
198#define VAR_MINIMAL_RESPONSES408 408
199#define VAR_RRSET_ROUNDROBIN409 409
200#define VAR_MAX_UDP_SIZE410 410
201#define VAR_DELAY_CLOSE411 411
202#define VAR_UDP_CONNECT412 412
203#define VAR_UNBLOCK_LAN_ZONES413 413
204#define VAR_INSECURE_LAN_ZONES414 414
205#define VAR_INFRA_CACHE_MIN_RTT415 415
206#define VAR_INFRA_KEEP_PROBING416 416
207#define VAR_DNS64_PREFIX417 417
208#define VAR_DNS64_SYNTHALL418 418
209#define VAR_DNS64_IGNORE_AAAA419 419
210#define VAR_DNSTAP420 420
211#define VAR_DNSTAP_ENABLE421 421
212#define VAR_DNSTAP_SOCKET_PATH422 422
213#define VAR_DNSTAP_IP423 423
214#define VAR_DNSTAP_TLS424 424
215#define VAR_DNSTAP_TLS_SERVER_NAME425 425
216#define VAR_DNSTAP_TLS_CERT_BUNDLE426 426
217#define VAR_DNSTAP_TLS_CLIENT_KEY_FILE427 427
218#define VAR_DNSTAP_TLS_CLIENT_CERT_FILE428 428
219#define VAR_DNSTAP_SEND_IDENTITY429 429
220#define VAR_DNSTAP_SEND_VERSION430 430
221#define VAR_DNSTAP_BIDIRECTIONAL431 431
222#define VAR_DNSTAP_IDENTITY432 432
223#define VAR_DNSTAP_VERSION433 433
224#define VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES434 434
225#define VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES435 435
226#define VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES436 436
227#define VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES437 437
228#define VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES438 438
229#define VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES439 439
230#define VAR_RESPONSE_IP_TAG440 440
231#define VAR_RESPONSE_IP441 441
232#define VAR_RESPONSE_IP_DATA442 442
233#define VAR_HARDEN_ALGO_DOWNGRADE443 443
234#define VAR_IP_TRANSPARENT444 444
235#define VAR_IP_DSCP445 445
236#define VAR_DISABLE_DNSSEC_LAME_CHECK446 446
237#define VAR_IP_RATELIMIT447 447
238#define VAR_IP_RATELIMIT_SLABS448 448
239#define VAR_IP_RATELIMIT_SIZE449 449
240#define VAR_RATELIMIT450 450
241#define VAR_RATELIMIT_SLABS451 451
242#define VAR_RATELIMIT_SIZE452 452
243#define VAR_RATELIMIT_FOR_DOMAIN453 453
244#define VAR_RATELIMIT_BELOW_DOMAIN454 454
245#define VAR_IP_RATELIMIT_FACTOR455 455
246#define VAR_RATELIMIT_FACTOR456 456
247#define VAR_SEND_CLIENT_SUBNET457 457
248#define VAR_CLIENT_SUBNET_ZONE458 458
249#define VAR_CLIENT_SUBNET_ALWAYS_FORWARD459 459
250#define VAR_CLIENT_SUBNET_OPCODE460 460
251#define VAR_MAX_CLIENT_SUBNET_IPV4461 461
252#define VAR_MAX_CLIENT_SUBNET_IPV6462 462
253#define VAR_MIN_CLIENT_SUBNET_IPV4463 463
254#define VAR_MIN_CLIENT_SUBNET_IPV6464 464
255#define VAR_MAX_ECS_TREE_SIZE_IPV4465 465
256#define VAR_MAX_ECS_TREE_SIZE_IPV6466 466
257#define VAR_CAPS_WHITELIST467 467
258#define VAR_CACHE_MAX_NEGATIVE_TTL468 468
259#define VAR_PERMIT_SMALL_HOLDDOWN469 469
260#define VAR_QNAME_MINIMISATION470 470
261#define VAR_QNAME_MINIMISATION_STRICT471 471
262#define VAR_IP_FREEBIND472 472
263#define VAR_DEFINE_TAG473 473
264#define VAR_LOCAL_ZONE_TAG474 474
265#define VAR_ACCESS_CONTROL_TAG475 475
266#define VAR_LOCAL_ZONE_OVERRIDE476 476
267#define VAR_ACCESS_CONTROL_TAG_ACTION477 477
268#define VAR_ACCESS_CONTROL_TAG_DATA478 478
269#define VAR_VIEW479 479
270#define VAR_ACCESS_CONTROL_VIEW480 480
271#define VAR_VIEW_FIRST481 481
272#define VAR_SERVE_EXPIRED482 482
273#define VAR_SERVE_EXPIRED_TTL483 483
274#define VAR_SERVE_EXPIRED_TTL_RESET484 484
275#define VAR_SERVE_EXPIRED_REPLY_TTL485 485
276#define VAR_SERVE_EXPIRED_CLIENT_TIMEOUT486 486
277#define VAR_SERVE_ORIGINAL_TTL487 487
278#define VAR_FAKE_DSA488 488
279#define VAR_FAKE_SHA1489 489
280#define VAR_LOG_IDENTITY490 490
281#define VAR_HIDE_TRUSTANCHOR491 491
282#define VAR_HIDE_HTTP_USER_AGENT492 492
283#define VAR_HTTP_USER_AGENT493 493
284#define VAR_TRUST_ANCHOR_SIGNALING494 494
285#define VAR_AGGRESSIVE_NSEC495 495
286#define VAR_USE_SYSTEMD496 496
287#define VAR_SHM_ENABLE497 497
288#define VAR_SHM_KEY498 498
289#define VAR_ROOT_KEY_SENTINEL499 499
290#define VAR_DNSCRYPT500 500
291#define VAR_DNSCRYPT_ENABLE501 501
292#define VAR_DNSCRYPT_PORT502 502
293#define VAR_DNSCRYPT_PROVIDER503 503
294#define VAR_DNSCRYPT_SECRET_KEY504 504
295#define VAR_DNSCRYPT_PROVIDER_CERT505 505
296#define VAR_DNSCRYPT_PROVIDER_CERT_ROTATED506 506
297#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE507 507
298#define VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS508 508
299#define VAR_DNSCRYPT_NONCE_CACHE_SIZE509 509
300#define VAR_DNSCRYPT_NONCE_CACHE_SLABS510 510
301#define VAR_PAD_RESPONSES511 511
302#define VAR_PAD_RESPONSES_BLOCK_SIZE512 512
303#define VAR_PAD_QUERIES513 513
304#define VAR_PAD_QUERIES_BLOCK_SIZE514 514
305#define VAR_IPSECMOD_ENABLED515 515
306#define VAR_IPSECMOD_HOOK516 516
307#define VAR_IPSECMOD_IGNORE_BOGUS517 517
308#define VAR_IPSECMOD_MAX_TTL518 518
309#define VAR_IPSECMOD_WHITELIST519 519
310#define VAR_IPSECMOD_STRICT520 520
311#define VAR_CACHEDB521 521
312#define VAR_CACHEDB_BACKEND522 522
313#define VAR_CACHEDB_SECRETSEED523 523
314#define VAR_CACHEDB_REDISHOST524 524
315#define VAR_CACHEDB_REDISPORT525 525
316#define VAR_CACHEDB_REDISTIMEOUT526 526
317#define VAR_CACHEDB_REDISEXPIRERECORDS527 527
318#define VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM528 528
319#define VAR_FOR_UPSTREAM529 529
320#define VAR_AUTH_ZONE530 530
321#define VAR_ZONEFILE531 531
322#define VAR_MASTER532 532
323#define VAR_URL533 533
324#define VAR_FOR_DOWNSTREAM534 534
325#define VAR_FALLBACK_ENABLED535 535
326#define VAR_TLS_ADDITIONAL_PORT536 536
327#define VAR_LOW_RTT537 537
328#define VAR_LOW_RTT_PERMIL538 538
329#define VAR_FAST_SERVER_PERMIL539 539
330#define VAR_FAST_SERVER_NUM540 540
331#define VAR_ALLOW_NOTIFY541 541
332#define VAR_TLS_WIN_CERT542 542
333#define VAR_TCP_CONNECTION_LIMIT543 543
334#define VAR_FORWARD_NO_CACHE544 544
335#define VAR_STUB_NO_CACHE545 545
336#define VAR_LOG_SERVFAIL546 546
337#define VAR_DENY_ANY547 547
338#define VAR_UNKNOWN_SERVER_TIME_LIMIT548 548
339#define VAR_LOG_TAG_QUERYREPLY549 549
340#define VAR_STREAM_WAIT_SIZE550 550
341#define VAR_TLS_CIPHERS551 551
342#define VAR_TLS_CIPHERSUITES552 552
343#define VAR_TLS_USE_SNI553 553
344#define VAR_IPSET554 554
345#define VAR_IPSET_NAME_V4555 555
346#define VAR_IPSET_NAME_V6556 556
347#define VAR_TLS_SESSION_TICKET_KEYS557 557
348#define VAR_RPZ558 558
349#define VAR_TAGS559 559
350#define VAR_RPZ_ACTION_OVERRIDE560 560
351#define VAR_RPZ_CNAME_OVERRIDE561 561
352#define VAR_RPZ_LOG562 562
353#define VAR_RPZ_LOG_NAME563 563
354#define VAR_DYNLIB564 564
355#define VAR_DYNLIB_FILE565 565
356#define VAR_EDNS_CLIENT_STRING566 566
357#define VAR_EDNS_CLIENT_STRING_OPCODE567 567
358#define VAR_NSID568 568
359#define VAR_ZONEMD_PERMISSIVE_MODE569 569
360#define VAR_ZONEMD_CHECK570 570
361#define VAR_ZONEMD_REJECT_ABSENCE571 571
362#define YYERRCODE256 256
363const short yylhsub_c_yylhs[] =
364 { -1,
365 0, 0, 1, 1, 1, 1, 1, 1, 1, 1,
366 1, 1, 1, 1, 1, 1, 28, 2, 3, 3,
367 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
368 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
369 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
370 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
371 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
372 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
373 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
374 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
375 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
376 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
377 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
378 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
379 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
380 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
381 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
382 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
383 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
384 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
385 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
386 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
387 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
388 29, 29, 29, 29, 29, 29, 29, 29, 4, 5,
389 5, 248, 248, 248, 248, 248, 248, 248, 6, 7,
390 7, 256, 256, 256, 256, 256, 256, 14, 15, 15,
391 263, 263, 263, 263, 263, 263, 263, 22, 23, 23,
392 271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
393 282, 283, 284, 285, 286, 24, 25, 25, 287, 287,
394 287, 287, 287, 287, 287, 287, 287, 287, 30, 31,
395 96, 99, 108, 211, 212, 32, 171, 172, 173, 174,
396 175, 176, 177, 178, 179, 180, 45, 87, 33, 100,
397 101, 56, 80, 95, 34, 35, 38, 39, 36, 37,
398 40, 41, 42, 245, 246, 247, 43, 44, 132, 223,
399 133, 135, 136, 137, 225, 230, 226, 237, 238, 239,
400 240, 138, 139, 140, 141, 142, 143, 144, 207, 97,
401 86, 112, 130, 131, 235, 232, 134, 46, 47, 48,
402 49, 50, 88, 102, 103, 119, 74, 84, 75, 215,
403 216, 113, 66, 67, 214, 70, 68, 69, 71, 243,
404 123, 127, 148, 158, 185, 161, 236, 124, 81, 51,
405 52, 53, 110, 149, 150, 151, 152, 54, 55, 57,
406 58, 60, 61, 59, 156, 162, 62, 63, 64, 72,
407 91, 128, 105, 157, 98, 181, 106, 107, 125, 126,
408 233, 111, 65, 89, 92, 73, 76, 114, 115, 116,
409 90, 182, 117, 77, 78, 79, 224, 129, 199, 200,
410 201, 202, 203, 204, 205, 213, 118, 85, 244, 120,
411 121, 122, 183, 82, 83, 104, 93, 94, 109, 145,
412 146, 234, 147, 153, 154, 155, 186, 187, 189, 191,
413 192, 190, 193, 208, 159, 160, 165, 166, 163, 164,
414 167, 168, 170, 169, 227, 229, 228, 184, 194, 195,
415 196, 197, 198, 217, 219, 218, 220, 221, 222, 241,
416 242, 249, 250, 251, 253, 254, 255, 252, 257, 258,
417 259, 260, 261, 262, 272, 273, 274, 275, 279, 280,
418 281, 276, 277, 278, 264, 265, 268, 269, 266, 270,
419 267, 10, 11, 11, 288, 288, 288, 288, 288, 288,
420 288, 288, 289, 291, 290, 296, 292, 293, 294, 295,
421 12, 13, 13, 297, 297, 297, 297, 297, 297, 297,
422 297, 297, 297, 297, 297, 297, 297, 297, 297, 297,
423 297, 297, 298, 300, 299, 301, 302, 303, 304, 305,
424 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
425 316, 8, 9, 9, 317, 318, 26, 27, 27, 319,
426 320, 188, 206, 209, 210, 16, 17, 17, 321, 321,
427 321, 321, 321, 321, 321, 321, 321, 321, 322, 323,
428 324, 326, 327, 325, 328, 329, 330, 331, 18, 19,
429 19, 332, 332, 332, 332, 332, 332, 333, 334, 335,
430 336, 337, 338, 231, 20, 21, 21, 339, 339, 340,
431 341,
432};
433const short yylenub_c_yylen[] =
434 { 2,
435 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
436 2, 2, 2, 2, 2, 1, 1, 1, 2, 0,
437 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
438 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
439 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
440 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
441 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
442 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
443 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
444 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
445 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
446 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
447 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
448 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
449 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
450 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
451 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
452 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
453 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
454 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
455 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
456 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
457 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
458 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
459 0, 1, 1, 1, 1, 1, 1, 1, 1, 2,
460 0, 1, 1, 1, 1, 1, 1, 1, 2, 0,
461 1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
462 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
463 2, 2, 2, 2, 2, 1, 2, 0, 1, 1,
464 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
465 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
466 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
467 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
468 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
469 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
470 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
471 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
472 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
473 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
474 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
475 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
476 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
477 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
478 2, 2, 2, 2, 3, 2, 2, 2, 2, 2,
479 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
480 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
481 2, 2, 2, 2, 2, 2, 3, 2, 2, 2,
482 2, 2, 2, 2, 2, 2, 2, 3, 3, 4,
483 4, 4, 3, 3, 2, 2, 2, 2, 2, 2,
484 3, 3, 2, 2, 2, 2, 2, 2, 2, 2,
485 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
486 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
487 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
488 2, 2, 2, 2, 2, 3, 3, 3, 2, 2,
489 2, 1, 2, 0, 1, 1, 1, 1, 1, 1,
490 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
491 1, 2, 0, 1, 1, 1, 1, 1, 1, 1,
492 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
493 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
494 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
495 2, 1, 2, 0, 1, 2, 1, 2, 0, 1,
496 2, 2, 2, 3, 3, 1, 2, 0, 1, 1,
497 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
498 2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
499 0, 1, 1, 1, 1, 1, 1, 2, 2, 2,
500 2, 2, 2, 3, 1, 2, 0, 1, 1, 2,
501 2,
502};
503const short yydefredub_c_yydefred[] =
504 { 1,
505 0, 17, 18, 239, 249, 542, 602, 561, 258, 616,
506 639, 268, 655, 286, 607, 2, 20, 241, 251, 604,
507 544, 563, 260, 618, 641, 657, 270, 288, 609, 16,
508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
531 0, 19, 21, 22, 23, 24, 25, 26, 27, 28,
532 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
533 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
534 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
535 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
536 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
537 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
538 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
539 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
540 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
541 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
542 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
543 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
544 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
545 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
546 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
547 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
548 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
549 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
550 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
551 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
552 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
553 0, 0, 0, 0, 0, 0, 0, 240, 242, 243,
554 244, 245, 246, 247, 248, 0, 0, 0, 0, 0,
555 0, 250, 252, 253, 254, 255, 256, 257, 0, 603,
556 605, 0, 0, 0, 0, 0, 0, 0, 0, 543,
557 545, 546, 547, 548, 549, 550, 551, 552, 0, 0,
558 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
559 0, 0, 0, 0, 0, 0, 0, 562, 564, 565,
560 566, 567, 568, 569, 570, 571, 572, 573, 574, 575,
561 576, 577, 578, 579, 580, 581, 582, 0, 0, 0,
562 0, 0, 0, 0, 259, 261, 262, 263, 264, 265,
563 266, 267, 0, 0, 0, 0, 0, 0, 0, 0,
564 0, 0, 617, 619, 620, 621, 622, 623, 624, 625,
565 626, 627, 628, 0, 0, 0, 0, 0, 0, 640,
566 642, 643, 644, 645, 646, 647, 0, 0, 656, 658,
567 659, 0, 0, 0, 0, 0, 0, 0, 0, 0,
568 0, 269, 271, 272, 273, 274, 275, 276, 277, 278,
569 279, 280, 0, 0, 0, 0, 0, 289, 290, 292,
570 293, 294, 291, 295, 296, 297, 298, 287, 0, 608,
571 610, 300, 299, 306, 319, 317, 329, 325, 326, 330,
572 327, 328, 331, 332, 333, 337, 338, 368, 369, 370,
573 371, 372, 400, 401, 402, 408, 409, 322, 410, 411,
574 414, 412, 413, 417, 418, 419, 433, 383, 384, 387,
575 388, 420, 436, 377, 379, 437, 444, 445, 446, 323,
576 399, 464, 465, 378, 458, 361, 318, 373, 434, 441,
577 421, 0, 0, 468, 324, 301, 360, 425, 302, 320,
578 321, 374, 375, 466, 423, 427, 428, 335, 334, 303,
579 469, 403, 432, 362, 382, 438, 439, 440, 443, 457,
580 376, 462, 460, 461, 391, 398, 429, 430, 392, 393,
581 422, 448, 363, 364, 367, 339, 341, 336, 342, 343,
582 344, 345, 352, 353, 354, 355, 356, 357, 358, 470,
583 471, 473, 404, 405, 406, 407, 415, 416, 474, 475,
584 476, 0, 0, 0, 424, 394, 396, 612, 485, 489,
585 487, 486, 490, 488, 0, 0, 493, 494, 307, 308,
586 309, 310, 311, 312, 313, 314, 315, 316, 426, 442,
587 463, 498, 499, 395, 477, 0, 0, 0, 0, 0,
588 0, 449, 450, 451, 452, 453, 454, 455, 456, 613,
589 385, 386, 389, 380, 447, 359, 304, 305, 381, 500,
590 501, 502, 503, 504, 506, 505, 507, 508, 509, 340,
591 347, 495, 497, 496, 346, 0, 366, 431, 472, 365,
592 397, 348, 349, 351, 350, 0, 511, 390, 459, 512,
593 513, 514, 518, 517, 515, 516, 519, 520, 521, 522,
594 524, 523, 606, 553, 555, 554, 557, 558, 559, 560,
595 556, 583, 585, 586, 587, 588, 589, 590, 591, 592,
596 593, 584, 594, 595, 596, 597, 598, 599, 600, 601,
597 535, 0, 539, 540, 0, 0, 541, 629, 630, 631,
598 634, 632, 633, 635, 636, 637, 638, 648, 649, 650,
599 651, 652, 653, 660, 661, 525, 533, 526, 527, 528,
600 532, 534, 529, 530, 531, 281, 282, 283, 284, 285,
601 611, 435, 467, 484, 614, 615, 491, 492, 478, 479,
602 0, 0, 0, 483, 654, 510, 536, 537, 538, 482,
603 480, 481,
604};
605const short yydgotoub_c_yydgoto[] =
606 { 1,
607 16, 17, 31, 18, 32, 19, 33, 20, 34, 21,
608 35, 22, 36, 23, 37, 24, 38, 25, 39, 26,
609 40, 27, 41, 28, 42, 29, 43, 30, 262, 263,
610 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
611 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
612 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
613 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
614 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
615 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
616 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
617 334, 335, 336, 337, 338, 339, 340, 341, 342, 343,
618 344, 345, 346, 347, 348, 349, 350, 351, 352, 353,
619 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
620 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
621 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
622 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
623 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
624 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
625 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
626 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
627 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
628 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
629 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
630 464, 465, 466, 467, 468, 469, 470, 471, 472, 473,
631 474, 475, 476, 477, 478, 479, 480, 488, 489, 490,
632 491, 492, 493, 494, 495, 502, 503, 504, 505, 506,
633 507, 508, 575, 576, 577, 578, 579, 580, 581, 582,
634 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
635 642, 653, 654, 655, 656, 657, 658, 520, 521, 522,
636 523, 524, 525, 526, 527, 528, 548, 549, 550, 551,
637 552, 553, 554, 555, 556, 557, 558, 559, 560, 561,
638 562, 563, 564, 565, 566, 567, 510, 511, 660, 661,
639 593, 594, 595, 596, 597, 598, 599, 600, 601, 602,
640 603, 610, 611, 612, 613, 614, 615, 616, 619, 620,
641 621,
642};
643const short yysindexub_c_yysindex[] =
644 { 0,
645 -239, 0, 0, 0, 0, 0, 0, 0, 0, 0,
646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
648 543, -292, -295, -367, -278, -277, -299, -455, -508, -534,
649 -254, -195, -560, -253, -240, -235, -234, -233, -232, -231,
650 -230, -229, -226, -225, -224, -223, -222, -221, -220, -208,
651 -207, -206, -205, -204, -202, -200, -199, -198, -196, -194,
652 -193, -183, -182, -181, -180, -179, -178, -177, -176, -174,
653 -173, -172, -171, -169, -168, -166, -165, -164, -162, -158,
654 -157, -156, -155, -154, -152, -151, -150, -148, -147, -146,
655 -145, -144, -143, -142, -141, -140, -139, -138, -137, -136,
656 -134, -133, -132, -131, -130, -129, -128, -127, -126, -125,
657 -124, -123, -101, -100, -99, -98, -97, -96, -95, -94,
658 -92, -91, -90, -89, -88, -87, -86, -85, -84, -81,
659 -79, -78, -77, -76, -75, -74, -73, -72, -71, -70,
660 -69, -68, -67, -66, -65, -64, -63, -62, -61, -60,
661 -59, -58, -57, -56, -55, -54, -53, -52, -51, -50,
662 -49, -48, -47, -46, -45, -44, -43, -42, -41, -40,
663 -39, -38, -37, -36, -35, -34, -33, -32, -31, -30,
664 -29, -28, -27, -26, -25, -23, -22, -21, -20, -18,
665 -17, -16, -14, -13, -12, -10, -9, -8, -7, -6,
666 -5, -4, -2, -1, 12, 19, 26, 31, 32, 33,
667 34, 35, 36, 38, 40, 41, 46, 47, 49, 54,
668 57, 58, 60, 63, 66, 67, 68, 69, 71, 75,
669 76, 77, 78, 79, 80, 81, 83, 84, 85, 86,
670 88, 93, 108, 111, 113, 115, 116, 117, 118, 119,
671 120, 0, 0, 0, 0, 0, 0, 0, 0, 0,
672 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
673 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
680 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
681 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
682 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
683 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
684 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
685 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
693 121, 122, 123, 126, 128, 129, 134, 0, 0, 0,
694 0, 0, 0, 0, 0, 135, 137, 138, 140, 141,
695 142, 0, 0, 0, 0, 0, 0, 0, 143, 0,
696 0, 144, 145, 146, 147, 148, 149, 150, 151, 0,
697 0, 0, 0, 0, 0, 0, 0, 0, 152, 153,
698 154, 155, 156, 158, 160, 161, 163, 165, 166, 167,
699 168, 169, 170, 174, 177, 178, 181, 0, 0, 0,
700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
701 0, 0, 0, 0, 0, 0, 0, 182, 187, 188,
702 189, 190, 191, 192, 0, 0, 0, 0, 0, 0,
703 0, 0, 194, 195, 196, 197, 199, 200, 202, 203,
704 204, 205, 0, 0, 0, 0, 0, 0, 0, 0,
705 0, 0, 0, 206, 208, 209, 210, 211, 212, 0,
706 0, 0, 0, 0, 0, 0, 214, 215, 0, 0,
707 0, 217, 219, 222, 224, 225, 227, 228, 229, 230,
708 231, 0, 0, 0, 0, 0, 0, 0, 0, 0,
709 0, 0, 232, 233, 234, 236, 240, 0, 0, 0,
710 0, 0, 0, 0, 0, 0, 0, 0, 241, 0,
711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
715 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 251, 252, 254, 0, 0, 0, 0, 0, 0,
725 0, 0, 0, 0, 255, 261, 0, 0, 0, 0,
726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
727 0, 0, 0, 0, 0, 262, 266, 268, 271, 273,
728 276, 0, 0, 0, 0, 0, 0, 0, 0, 0,
729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731 0, 0, 0, 0, 0, 278, 0, 0, 0, 0,
732 0, 0, 0, 0, 0, 279, 0, 0, 0, 0,
733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
737 0, 282, 0, 0, 283, 284, 0, 0, 0, 0,
738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
742 290, 292, 299, 0, 0, 0, 0, 0, 0, 0,
743 0, 0,};
744const short yyrindexub_c_yyrindex[] =
745 { 0,
746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
748 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
749 1, 3, 6, 8, 20, 23, 28, 89, 94, 97,
750 171, 184, 245, 0, 0, 0, 0, 0, 0, 0,
751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
781 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
814 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844 0, 0,};
845const short yygindexub_c_yygindex[] =
846 { 0,
847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
874 0, 27, 223, 242, 250, 0, 0, 0, 319, 0,
875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
881 0,
882};
883#define YYTABLESIZE1112 1112
884const short yytableub_c_yytable[] =
885 { 568,
886 3, 509, 4, 496, 659, 5, 481, 6, 482, 483,
887 662, 497, 498, 604, 605, 606, 607, 608, 609, 7,
888 617, 618, 8, 663, 0, 2, 3, 9, 664, 665,
889 666, 667, 668, 669, 670, 569, 570, 671, 672, 673,
890 674, 675, 676, 677, 622, 583, 584, 585, 586, 587,
891 588, 589, 590, 591, 592, 678, 679, 680, 681, 682,
892 4, 683, 571, 684, 685, 686, 5, 687, 648, 688,
893 689, 484, 512, 513, 514, 515, 516, 517, 518, 519,
894 690, 691, 692, 693, 694, 695, 696, 697, 10, 698,
895 699, 700, 701, 11, 702, 703, 12, 704, 705, 706,
896 499, 707, 500, 622, 485, 708, 709, 710, 711, 712,
897 6, 713, 714, 715, 486, 716, 717, 718, 719, 720,
898 721, 722, 723, 724, 725, 726, 727, 728, 7, 729,
899 730, 731, 732, 733, 734, 735, 736, 737, 738, 739,
900 740, 572, 573, 529, 530, 531, 532, 533, 534, 535,
901 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
902 546, 547, 741, 742, 743, 744, 745, 746, 747, 748,
903 13, 749, 750, 751, 752, 753, 754, 755, 756, 757,
904 8, 574, 758, 14, 759, 760, 761, 762, 763, 764,
905 765, 766, 767, 768, 769, 770, 771, 772, 773, 774,
906 775, 776, 777, 778, 779, 780, 781, 782, 783, 784,
907 785, 786, 787, 788, 789, 790, 791, 792, 793, 794,
908 795, 796, 797, 798, 799, 800, 801, 802, 803, 804,
909 805, 806, 807, 808, 809, 810, 811, 812, 813, 9,
910 814, 815, 816, 817, 15, 818, 819, 820, 501, 821,
911 822, 823, 487, 824, 825, 826, 827, 828, 829, 830,
912 10, 831, 832, 0, 649, 3, 3, 4, 4, 0,
913 5, 5, 6, 6, 623, 833, 624, 625, 626, 627,
914 628, 11, 834, 650, 7, 7, 629, 8, 8, 835,
915 12, 651, 9, 9, 836, 837, 838, 839, 840, 841,
916 3, 842, 4, 843, 844, 5, 3, 6, 4, 845,
917 846, 5, 847, 6, 13, 630, 631, 848, 14, 7,
918 849, 850, 8, 851, 15, 7, 852, 9, 8, 853,
919 854, 855, 856, 9, 857, 624, 625, 626, 858, 859,
920 860, 861, 862, 863, 864, 629, 865, 866, 867, 868,
921 3, 869, 4, 10, 10, 5, 870, 6, 11, 11,
922 652, 12, 12, 643, 644, 645, 646, 647, 3, 7,
923 4, 871, 8, 5, 872, 6, 873, 9, 874, 875,
924 876, 877, 878, 879, 880, 881, 882, 7, 10, 883,
925 8, 884, 885, 11, 10, 9, 12, 886, 887, 11,
926 888, 889, 12, 890, 891, 892, 893, 894, 895, 896,
927 897, 898, 899, 900, 901, 902, 903, 904, 905, 906,
928 3, 907, 4, 908, 909, 5, 910, 6, 911, 912,
929 913, 914, 915, 916, 0, 13, 13, 917, 10, 7,
930 918, 919, 8, 11, 920, 921, 12, 9, 14, 14,
931 922, 923, 924, 925, 926, 927, 10, 928, 929, 930,
932 931, 11, 932, 933, 12, 934, 935, 936, 937, 938,
933 13, 939, 940, 941, 942, 943, 13, 944, 945, 3,
934 946, 4, 947, 14, 5, 948, 6, 949, 950, 14,
935 951, 952, 953, 954, 955, 956, 957, 958, 7, 959,
936 3, 8, 4, 960, 961, 5, 9, 6, 10, 15,
937 15, 962, 963, 11, 964, 965, 12, 966, 967, 7,
938 13, 3, 8, 4, 968, 969, 5, 9, 6, 970,
939 3, 971, 4, 14, 972, 5, 973, 6, 13, 974,
940 7, 975, 976, 8, 15, 977, 978, 979, 9, 7,
941 15, 14, 8, 980, 3, 981, 4, 9, 3, 5,
942 4, 6, 982, 5, 3, 6, 4, 10, 0, 5,
943 0, 6, 11, 7, 0, 12, 8, 7, 0, 0,
944 8, 9, 0, 7, 0, 9, 8, 0, 10, 0,
945 13, 9, 0, 11, 15, 0, 12, 0, 0, 0,
946 0, 0, 0, 14, 0, 0, 0, 0, 0, 10,
947 0, 0, 15, 0, 11, 0, 0, 12, 10, 0,
948 0, 0, 0, 11, 0, 0, 12, 0, 0, 0,
949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
950 0, 0, 10, 0, 0, 0, 10, 11, 0, 13,
951 12, 11, 10, 0, 12, 0, 0, 11, 0, 0,
952 12, 0, 14, 0, 15, 0, 0, 0, 0, 0,
953 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
954 0, 0, 0, 14, 0, 0, 0, 0, 0, 0,
955 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
956 13, 0, 0, 0, 14, 0, 0, 0, 0, 0,
957 0, 0, 0, 14, 0, 0, 0, 0, 0, 0,
958 0, 0, 0, 15, 13, 0, 0, 0, 13, 0,
959 0, 0, 0, 0, 13, 0, 0, 14, 0, 0,
960 0, 14, 0, 0, 15, 0, 0, 14, 0, 0,
961 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
962 0, 0, 0, 0, 0, 15, 0, 0, 0, 0,
963 0, 0, 0, 0, 15, 0, 0, 0, 0, 0,
964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
965 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
966 0, 0, 15, 0, 0, 0, 0, 0, 15, 44,
967 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
968 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
969 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
970 75, 0, 0, 0, 0, 76, 77, 78, 0, 0,
971 0, 79, 80, 81, 82, 83, 84, 85, 86, 87,
972 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
973 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
974 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
975 118, 119, 0, 0, 0, 0, 0, 0, 0, 0,
976 0, 120, 121, 122, 123, 124, 0, 125, 126, 127,
977 0, 0, 128, 129, 130, 131, 132, 133, 134, 135,
978 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
979 146, 147, 148, 149, 150, 151, 152, 153, 0, 0,
980 0, 154, 155, 156, 157, 158, 159, 160, 161, 0,
981 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
982 172, 173, 0, 0, 0, 0, 0, 0, 0, 0,
983 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
984 0, 0, 174, 175, 176, 177, 178, 179, 180, 181,
985 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
986 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
987 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
988 212, 0, 213, 0, 214, 215, 216, 217, 218, 219,
989 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
990 230, 231, 0, 0, 0, 0, 0, 0, 0, 0,
991 0, 0, 0, 232, 233, 234, 235, 236, 237, 238,
992 239, 240, 241, 0, 0, 0, 0, 0, 0, 0,
993 242, 0, 0, 0, 0, 0, 0, 0, 243, 244,
994 0, 245, 246, 0, 247, 248, 0, 0, 249, 250,
995 251, 252, 253, 254, 255, 256, 0, 0, 0, 257,
996 0, 0, 0, 0, 0, 0, 0, 0, 258, 259,
997 260, 261,
998};
999const short yycheckub_c_yycheck[] =
1000 { 299,
1001 0, 369, 0, 299, 565, 0, 299, 0, 301, 302,
1002 264, 307, 308, 522, 523, 524, 525, 526, 527, 0,
1003 555, 556, 0, 264, -1, 265, 266, 0, 264, 264,
1004 264, 264, 264, 264, 264, 335, 336, 264, 264, 264,
1005 264, 264, 264, 264, 299, 501, 502, 503, 504, 505,
1006 506, 507, 508, 509, 510, 264, 264, 264, 264, 264,
1007 300, 264, 362, 264, 264, 264, 306, 264, 42, 264,
1008 264, 364, 351, 352, 353, 354, 355, 356, 357, 358,
1009 264, 264, 264, 264, 264, 264, 264, 264, 0, 264,
1010 264, 264, 264, 0, 264, 264, 0, 264, 264, 264,
1011 396, 264, 398, 299, 397, 264, 264, 264, 264, 264,
1012 350, 264, 264, 264, 407, 264, 264, 264, 264, 264,
1013 264, 264, 264, 264, 264, 264, 264, 264, 368, 264,
1014 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
1015 264, 441, 442, 421, 422, 423, 424, 425, 426, 427,
1016 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
1017 438, 439, 264, 264, 264, 264, 264, 264, 264, 264,
1018 0, 264, 264, 264, 264, 264, 264, 264, 264, 264,
1019 420, 481, 264, 0, 264, 264, 264, 264, 264, 264,
1020 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
1021 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
1022 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
1023 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
1024 264, 264, 264, 264, 264, 264, 264, 264, 264, 479,
1025 264, 264, 264, 264, 0, 264, 264, 264, 544, 264,
1026 264, 264, 545, 264, 264, 264, 264, 264, 264, 264,
1027 500, 264, 264, -1, 42, 265, 266, 265, 266, -1,
1028 265, 266, 265, 266, 529, 264, 531, 532, 533, 534,
1029 535, 521, 264, 42, 265, 266, 541, 265, 266, 264,
1030 530, 42, 265, 266, 264, 264, 264, 264, 264, 264,
1031 300, 264, 300, 264, 264, 300, 306, 300, 306, 264,
1032 264, 306, 264, 306, 554, 570, 571, 264, 558, 300,
1033 264, 264, 300, 264, 564, 306, 264, 300, 306, 264,
1034 264, 264, 264, 306, 264, 531, 532, 533, 264, 264,
1035 264, 264, 264, 264, 264, 541, 264, 264, 264, 264,
1036 350, 264, 350, 265, 266, 350, 264, 350, 265, 266,
1037 42, 265, 266, 559, 560, 561, 562, 563, 368, 350,
1038 368, 264, 350, 368, 264, 368, 264, 350, 264, 264,
1039 264, 264, 264, 264, 264, 264, 264, 368, 300, 264,
1040 368, 264, 264, 300, 306, 368, 300, 264, 264, 306,
1041 264, 264, 306, 264, 264, 264, 264, 264, 264, 264,
1042 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
1043 420, 264, 420, 264, 264, 420, 264, 420, 264, 264,
1044 264, 264, 264, 264, -1, 265, 266, 264, 350, 420,
1045 264, 264, 420, 350, 264, 264, 350, 420, 265, 266,
1046 264, 264, 264, 264, 264, 264, 368, 264, 264, 264,
1047 264, 368, 264, 264, 368, 264, 264, 264, 264, 264,
1048 300, 264, 264, 264, 264, 264, 306, 264, 264, 479,
1049 264, 479, 264, 300, 479, 264, 479, 264, 264, 306,
1050 264, 264, 264, 264, 264, 264, 264, 264, 479, 264,
1051 500, 479, 500, 264, 264, 500, 479, 500, 420, 265,
1052 266, 264, 264, 420, 264, 264, 420, 264, 264, 500,
1053 350, 521, 500, 521, 264, 264, 521, 500, 521, 264,
1054 530, 264, 530, 350, 264, 530, 264, 530, 368, 264,
1055 521, 264, 264, 521, 300, 264, 264, 264, 521, 530,
1056 306, 368, 530, 264, 554, 264, 554, 530, 558, 554,
1057 558, 554, 264, 558, 564, 558, 564, 479, -1, 564,
1058 -1, 564, 479, 554, -1, 479, 554, 558, -1, -1,
1059 558, 554, -1, 564, -1, 558, 564, -1, 500, -1,
1060 420, 564, -1, 500, 350, -1, 500, -1, -1, -1,
1061 -1, -1, -1, 420, -1, -1, -1, -1, -1, 521,
1062 -1, -1, 368, -1, 521, -1, -1, 521, 530, -1,
1063 -1, -1, -1, 530, -1, -1, 530, -1, -1, -1,
1064 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1065 -1, -1, 554, -1, -1, -1, 558, 554, -1, 479,
1066 554, 558, 564, -1, 558, -1, -1, 564, -1, -1,
1067 564, -1, 479, -1, 420, -1, -1, -1, -1, -1,
1068 500, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1069 -1, -1, -1, 500, -1, -1, -1, -1, -1, -1,
1070 -1, 521, -1, -1, -1, -1, -1, -1, -1, -1,
1071 530, -1, -1, -1, 521, -1, -1, -1, -1, -1,
1072 -1, -1, -1, 530, -1, -1, -1, -1, -1, -1,
1073 -1, -1, -1, 479, 554, -1, -1, -1, 558, -1,
1074 -1, -1, -1, -1, 564, -1, -1, 554, -1, -1,
1075 -1, 558, -1, -1, 500, -1, -1, 564, -1, -1,
1076 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1077 -1, -1, -1, -1, -1, 521, -1, -1, -1, -1,
1078 -1, -1, -1, -1, 530, -1, -1, -1, -1, -1,
1079 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1080 -1, -1, -1, -1, -1, -1, -1, -1, 554, -1,
1081 -1, -1, 558, -1, -1, -1, -1, -1, 564, 267,
1082 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
1083 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
1084 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
1085 298, -1, -1, -1, -1, 303, 304, 305, -1, -1,
1086 -1, 309, 310, 311, 312, 313, 314, 315, 316, 317,
1087 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
1088 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
1089 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
1090 348, 349, -1, -1, -1, -1, -1, -1, -1, -1,
1091 -1, 359, 360, 361, 362, 363, -1, 365, 366, 367,
1092 -1, -1, 370, 371, 372, 373, 374, 375, 376, 377,
1093 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
1094 388, 389, 390, 391, 392, 393, 394, 395, -1, -1,
1095 -1, 399, 400, 401, 402, 403, 404, 405, 406, -1,
1096 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
1097 418, 419, -1, -1, -1, -1, -1, -1, -1, -1,
1098 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1099 -1, -1, 440, 441, 442, 443, 444, 445, 446, 447,
1100 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
1101 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
1102 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
1103 478, -1, 480, -1, 482, 483, 484, 485, 486, 487,
1104 488, 489, 490, 491, 492, 493, 494, 495, 496, 497,
1105 498, 499, -1, -1, -1, -1, -1, -1, -1, -1,
1106 -1, -1, -1, 511, 512, 513, 514, 515, 516, 517,
1107 518, 519, 520, -1, -1, -1, -1, -1, -1, -1,
1108 528, -1, -1, -1, -1, -1, -1, -1, 536, 537,
1109 -1, 539, 540, -1, 542, 543, -1, -1, 546, 547,
1110 548, 549, 550, 551, 552, 553, -1, -1, -1, 557,
1111 -1, -1, -1, -1, -1, -1, -1, -1, 566, 567,
1112 568, 569,
1113};
1114#define YYFINAL1 1
1115#ifndef YYDEBUG0
1116#define YYDEBUG0 0
1117#endif
1118#define YYMAXTOKEN571 571
1119#if YYDEBUG0
1120const char * const yynameub_c_yyname[] =
1121 {
1122"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
11230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
11240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
11250,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
11260,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
11270,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
11280,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"SPACE","LETTER","NEWLINE",
1129"COMMENT","COLON","ANY","ZONESTR","STRING_ARG","VAR_FORCE_TOPLEVEL",
1130"VAR_SERVER","VAR_VERBOSITY","VAR_NUM_THREADS","VAR_PORT","VAR_OUTGOING_RANGE",
1131"VAR_INTERFACE","VAR_PREFER_IP4","VAR_DO_IP4","VAR_DO_IP6","VAR_PREFER_IP6",
1132"VAR_DO_UDP","VAR_DO_TCP","VAR_TCP_MSS","VAR_OUTGOING_TCP_MSS",
1133"VAR_TCP_IDLE_TIMEOUT","VAR_EDNS_TCP_KEEPALIVE",
1134"VAR_EDNS_TCP_KEEPALIVE_TIMEOUT","VAR_CHROOT","VAR_USERNAME","VAR_DIRECTORY",
1135"VAR_LOGFILE","VAR_PIDFILE","VAR_MSG_CACHE_SIZE","VAR_MSG_CACHE_SLABS",
1136"VAR_NUM_QUERIES_PER_THREAD","VAR_RRSET_CACHE_SIZE","VAR_RRSET_CACHE_SLABS",
1137"VAR_OUTGOING_NUM_TCP","VAR_INFRA_HOST_TTL","VAR_INFRA_LAME_TTL",
1138"VAR_INFRA_CACHE_SLABS","VAR_INFRA_CACHE_NUMHOSTS","VAR_INFRA_CACHE_LAME_SIZE",
1139"VAR_NAME","VAR_STUB_ZONE","VAR_STUB_HOST","VAR_STUB_ADDR",
1140"VAR_TARGET_FETCH_POLICY","VAR_HARDEN_SHORT_BUFSIZE","VAR_HARDEN_LARGE_QUERIES",
1141"VAR_FORWARD_ZONE","VAR_FORWARD_HOST","VAR_FORWARD_ADDR",
1142"VAR_DO_NOT_QUERY_ADDRESS","VAR_HIDE_IDENTITY","VAR_HIDE_VERSION",
1143"VAR_IDENTITY","VAR_VERSION","VAR_HARDEN_GLUE","VAR_MODULE_CONF",
1144"VAR_TRUST_ANCHOR_FILE","VAR_TRUST_ANCHOR","VAR_VAL_OVERRIDE_DATE",
1145"VAR_BOGUS_TTL","VAR_VAL_CLEAN_ADDITIONAL","VAR_VAL_PERMISSIVE_MODE",
1146"VAR_INCOMING_NUM_TCP","VAR_MSG_BUFFER_SIZE","VAR_KEY_CACHE_SIZE",
1147"VAR_KEY_CACHE_SLABS","VAR_TRUSTED_KEYS_FILE",
1148"VAR_VAL_NSEC3_KEYSIZE_ITERATIONS","VAR_USE_SYSLOG","VAR_OUTGOING_INTERFACE",
1149"VAR_ROOT_HINTS","VAR_DO_NOT_QUERY_LOCALHOST","VAR_CACHE_MAX_TTL",
1150"VAR_HARDEN_DNSSEC_STRIPPED","VAR_ACCESS_CONTROL","VAR_LOCAL_ZONE",
1151"VAR_LOCAL_DATA","VAR_INTERFACE_AUTOMATIC","VAR_STATISTICS_INTERVAL",
1152"VAR_DO_DAEMONIZE","VAR_USE_CAPS_FOR_ID","VAR_STATISTICS_CUMULATIVE",
1153"VAR_OUTGOING_PORT_PERMIT","VAR_OUTGOING_PORT_AVOID","VAR_DLV_ANCHOR_FILE",
1154"VAR_DLV_ANCHOR","VAR_NEG_CACHE_SIZE","VAR_HARDEN_REFERRAL_PATH",
1155"VAR_PRIVATE_ADDRESS","VAR_PRIVATE_DOMAIN","VAR_REMOTE_CONTROL",
1156"VAR_CONTROL_ENABLE","VAR_CONTROL_INTERFACE","VAR_CONTROL_PORT",
1157"VAR_SERVER_KEY_FILE","VAR_SERVER_CERT_FILE","VAR_CONTROL_KEY_FILE",
1158"VAR_CONTROL_CERT_FILE","VAR_CONTROL_USE_CERT","VAR_TCP_REUSE_TIMEOUT",
1159"VAR_MAX_REUSE_TCP_QUERIES","VAR_EXTENDED_STATISTICS","VAR_LOCAL_DATA_PTR",
1160"VAR_JOSTLE_TIMEOUT","VAR_STUB_PRIME","VAR_UNWANTED_REPLY_THRESHOLD",
1161"VAR_LOG_TIME_ASCII","VAR_DOMAIN_INSECURE","VAR_PYTHON","VAR_PYTHON_SCRIPT",
1162"VAR_VAL_SIG_SKEW_MIN","VAR_VAL_SIG_SKEW_MAX","VAR_VAL_MAX_RESTART",
1163"VAR_CACHE_MIN_TTL","VAR_VAL_LOG_LEVEL","VAR_AUTO_TRUST_ANCHOR_FILE",
1164"VAR_KEEP_MISSING","VAR_ADD_HOLDDOWN","VAR_DEL_HOLDDOWN","VAR_SO_RCVBUF",
1165"VAR_EDNS_BUFFER_SIZE","VAR_PREFETCH","VAR_PREFETCH_KEY","VAR_SO_SNDBUF",
1166"VAR_SO_REUSEPORT","VAR_HARDEN_BELOW_NXDOMAIN","VAR_IGNORE_CD_FLAG",
1167"VAR_LOG_QUERIES","VAR_LOG_REPLIES","VAR_LOG_LOCAL_ACTIONS","VAR_TCP_UPSTREAM",
1168"VAR_SSL_UPSTREAM","VAR_TCP_AUTH_QUERY_TIMEOUT","VAR_SSL_SERVICE_KEY",
1169"VAR_SSL_SERVICE_PEM","VAR_SSL_PORT","VAR_FORWARD_FIRST",
1170"VAR_STUB_SSL_UPSTREAM","VAR_FORWARD_SSL_UPSTREAM","VAR_TLS_CERT_BUNDLE",
1171"VAR_HTTPS_PORT","VAR_HTTP_ENDPOINT","VAR_HTTP_MAX_STREAMS",
1172"VAR_HTTP_QUERY_BUFFER_SIZE","VAR_HTTP_RESPONSE_BUFFER_SIZE","VAR_HTTP_NODELAY",
1173"VAR_HTTP_NOTLS_DOWNSTREAM","VAR_STUB_FIRST","VAR_MINIMAL_RESPONSES",
1174"VAR_RRSET_ROUNDROBIN","VAR_MAX_UDP_SIZE","VAR_DELAY_CLOSE","VAR_UDP_CONNECT",
1175"VAR_UNBLOCK_LAN_ZONES","VAR_INSECURE_LAN_ZONES","VAR_INFRA_CACHE_MIN_RTT",
1176"VAR_INFRA_KEEP_PROBING","VAR_DNS64_PREFIX","VAR_DNS64_SYNTHALL",
1177"VAR_DNS64_IGNORE_AAAA","VAR_DNSTAP","VAR_DNSTAP_ENABLE",
1178"VAR_DNSTAP_SOCKET_PATH","VAR_DNSTAP_IP","VAR_DNSTAP_TLS",
1179"VAR_DNSTAP_TLS_SERVER_NAME","VAR_DNSTAP_TLS_CERT_BUNDLE",
1180"VAR_DNSTAP_TLS_CLIENT_KEY_FILE","VAR_DNSTAP_TLS_CLIENT_CERT_FILE",
1181"VAR_DNSTAP_SEND_IDENTITY","VAR_DNSTAP_SEND_VERSION","VAR_DNSTAP_BIDIRECTIONAL",
1182"VAR_DNSTAP_IDENTITY","VAR_DNSTAP_VERSION",
1183"VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES",
1184"VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES",
1185"VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES",
1186"VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES",
1187"VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES",
1188"VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES","VAR_RESPONSE_IP_TAG",
1189"VAR_RESPONSE_IP","VAR_RESPONSE_IP_DATA","VAR_HARDEN_ALGO_DOWNGRADE",
1190"VAR_IP_TRANSPARENT","VAR_IP_DSCP","VAR_DISABLE_DNSSEC_LAME_CHECK",
1191"VAR_IP_RATELIMIT","VAR_IP_RATELIMIT_SLABS","VAR_IP_RATELIMIT_SIZE",
1192"VAR_RATELIMIT","VAR_RATELIMIT_SLABS","VAR_RATELIMIT_SIZE",
1193"VAR_RATELIMIT_FOR_DOMAIN","VAR_RATELIMIT_BELOW_DOMAIN",
1194"VAR_IP_RATELIMIT_FACTOR","VAR_RATELIMIT_FACTOR","VAR_SEND_CLIENT_SUBNET",
1195"VAR_CLIENT_SUBNET_ZONE","VAR_CLIENT_SUBNET_ALWAYS_FORWARD",
1196"VAR_CLIENT_SUBNET_OPCODE","VAR_MAX_CLIENT_SUBNET_IPV4",
1197"VAR_MAX_CLIENT_SUBNET_IPV6","VAR_MIN_CLIENT_SUBNET_IPV4",
1198"VAR_MIN_CLIENT_SUBNET_IPV6","VAR_MAX_ECS_TREE_SIZE_IPV4",
1199"VAR_MAX_ECS_TREE_SIZE_IPV6","VAR_CAPS_WHITELIST","VAR_CACHE_MAX_NEGATIVE_TTL",
1200"VAR_PERMIT_SMALL_HOLDDOWN","VAR_QNAME_MINIMISATION",
1201"VAR_QNAME_MINIMISATION_STRICT","VAR_IP_FREEBIND","VAR_DEFINE_TAG",
1202"VAR_LOCAL_ZONE_TAG","VAR_ACCESS_CONTROL_TAG","VAR_LOCAL_ZONE_OVERRIDE",
1203"VAR_ACCESS_CONTROL_TAG_ACTION","VAR_ACCESS_CONTROL_TAG_DATA","VAR_VIEW",
1204"VAR_ACCESS_CONTROL_VIEW","VAR_VIEW_FIRST","VAR_SERVE_EXPIRED",
1205"VAR_SERVE_EXPIRED_TTL","VAR_SERVE_EXPIRED_TTL_RESET",
1206"VAR_SERVE_EXPIRED_REPLY_TTL","VAR_SERVE_EXPIRED_CLIENT_TIMEOUT",
1207"VAR_SERVE_ORIGINAL_TTL","VAR_FAKE_DSA","VAR_FAKE_SHA1","VAR_LOG_IDENTITY",
1208"VAR_HIDE_TRUSTANCHOR","VAR_HIDE_HTTP_USER_AGENT","VAR_HTTP_USER_AGENT",
1209"VAR_TRUST_ANCHOR_SIGNALING","VAR_AGGRESSIVE_NSEC","VAR_USE_SYSTEMD",
1210"VAR_SHM_ENABLE","VAR_SHM_KEY","VAR_ROOT_KEY_SENTINEL","VAR_DNSCRYPT",
1211"VAR_DNSCRYPT_ENABLE","VAR_DNSCRYPT_PORT","VAR_DNSCRYPT_PROVIDER",
1212"VAR_DNSCRYPT_SECRET_KEY","VAR_DNSCRYPT_PROVIDER_CERT",
1213"VAR_DNSCRYPT_PROVIDER_CERT_ROTATED","VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE",
1214"VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS","VAR_DNSCRYPT_NONCE_CACHE_SIZE",
1215"VAR_DNSCRYPT_NONCE_CACHE_SLABS","VAR_PAD_RESPONSES",
1216"VAR_PAD_RESPONSES_BLOCK_SIZE","VAR_PAD_QUERIES","VAR_PAD_QUERIES_BLOCK_SIZE",
1217"VAR_IPSECMOD_ENABLED","VAR_IPSECMOD_HOOK","VAR_IPSECMOD_IGNORE_BOGUS",
1218"VAR_IPSECMOD_MAX_TTL","VAR_IPSECMOD_WHITELIST","VAR_IPSECMOD_STRICT",
1219"VAR_CACHEDB","VAR_CACHEDB_BACKEND","VAR_CACHEDB_SECRETSEED",
1220"VAR_CACHEDB_REDISHOST","VAR_CACHEDB_REDISPORT","VAR_CACHEDB_REDISTIMEOUT",
1221"VAR_CACHEDB_REDISEXPIRERECORDS","VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM",
1222"VAR_FOR_UPSTREAM","VAR_AUTH_ZONE","VAR_ZONEFILE","VAR_MASTER","VAR_URL",
1223"VAR_FOR_DOWNSTREAM","VAR_FALLBACK_ENABLED","VAR_TLS_ADDITIONAL_PORT",
1224"VAR_LOW_RTT","VAR_LOW_RTT_PERMIL","VAR_FAST_SERVER_PERMIL",
1225"VAR_FAST_SERVER_NUM","VAR_ALLOW_NOTIFY","VAR_TLS_WIN_CERT",
1226"VAR_TCP_CONNECTION_LIMIT","VAR_FORWARD_NO_CACHE","VAR_STUB_NO_CACHE",
1227"VAR_LOG_SERVFAIL","VAR_DENY_ANY","VAR_UNKNOWN_SERVER_TIME_LIMIT",
1228"VAR_LOG_TAG_QUERYREPLY","VAR_STREAM_WAIT_SIZE","VAR_TLS_CIPHERS",
1229"VAR_TLS_CIPHERSUITES","VAR_TLS_USE_SNI","VAR_IPSET","VAR_IPSET_NAME_V4",
1230"VAR_IPSET_NAME_V6","VAR_TLS_SESSION_TICKET_KEYS","VAR_RPZ","VAR_TAGS",
1231"VAR_RPZ_ACTION_OVERRIDE","VAR_RPZ_CNAME_OVERRIDE","VAR_RPZ_LOG",
1232"VAR_RPZ_LOG_NAME","VAR_DYNLIB","VAR_DYNLIB_FILE","VAR_EDNS_CLIENT_STRING",
1233"VAR_EDNS_CLIENT_STRING_OPCODE","VAR_NSID","VAR_ZONEMD_PERMISSIVE_MODE",
1234"VAR_ZONEMD_CHECK","VAR_ZONEMD_REJECT_ABSENCE",
1235};
1236const char * const yyruleub_c_yyrule[] =
1237 {"$accept : toplevelvars",
1238"toplevelvars :",
1239"toplevelvars : toplevelvars toplevelvar",
1240"toplevelvar : serverstart contents_server",
1241"toplevelvar : stubstart contents_stub",
1242"toplevelvar : forwardstart contents_forward",
1243"toplevelvar : pythonstart contents_py",
1244"toplevelvar : rcstart contents_rc",
1245"toplevelvar : dtstart contents_dt",
1246"toplevelvar : viewstart contents_view",
1247"toplevelvar : dnscstart contents_dnsc",
1248"toplevelvar : cachedbstart contents_cachedb",
1249"toplevelvar : ipsetstart contents_ipset",
1250"toplevelvar : authstart contents_auth",
1251"toplevelvar : rpzstart contents_rpz",
1252"toplevelvar : dynlibstart contents_dl",
1253"toplevelvar : force_toplevel",
1254"force_toplevel : VAR_FORCE_TOPLEVEL",
1255"serverstart : VAR_SERVER",
1256"contents_server : contents_server content_server",
1257"contents_server :",
1258"content_server : server_num_threads",
1259"content_server : server_verbosity",
1260"content_server : server_port",
1261"content_server : server_outgoing_range",
1262"content_server : server_do_ip4",
1263"content_server : server_do_ip6",
1264"content_server : server_prefer_ip4",
1265"content_server : server_prefer_ip6",
1266"content_server : server_do_udp",
1267"content_server : server_do_tcp",
1268"content_server : server_tcp_mss",
1269"content_server : server_outgoing_tcp_mss",
1270"content_server : server_tcp_idle_timeout",
1271"content_server : server_tcp_keepalive",
1272"content_server : server_tcp_keepalive_timeout",
1273"content_server : server_interface",
1274"content_server : server_chroot",
1275"content_server : server_username",
1276"content_server : server_directory",
1277"content_server : server_logfile",
1278"content_server : server_pidfile",
1279"content_server : server_msg_cache_size",
1280"content_server : server_msg_cache_slabs",
1281"content_server : server_num_queries_per_thread",
1282"content_server : server_rrset_cache_size",
1283"content_server : server_rrset_cache_slabs",
1284"content_server : server_outgoing_num_tcp",
1285"content_server : server_infra_host_ttl",
1286"content_server : server_infra_lame_ttl",
1287"content_server : server_infra_cache_slabs",
1288"content_server : server_infra_cache_numhosts",
1289"content_server : server_infra_cache_lame_size",
1290"content_server : server_target_fetch_policy",
1291"content_server : server_harden_short_bufsize",
1292"content_server : server_harden_large_queries",
1293"content_server : server_do_not_query_address",
1294"content_server : server_hide_identity",
1295"content_server : server_hide_version",
1296"content_server : server_identity",
1297"content_server : server_version",
1298"content_server : server_hide_http_user_agent",
1299"content_server : server_http_user_agent",
1300"content_server : server_harden_glue",
1301"content_server : server_module_conf",
1302"content_server : server_trust_anchor_file",
1303"content_server : server_trust_anchor",
1304"content_server : server_val_override_date",
1305"content_server : server_bogus_ttl",
1306"content_server : server_val_clean_additional",
1307"content_server : server_val_permissive_mode",
1308"content_server : server_incoming_num_tcp",
1309"content_server : server_msg_buffer_size",
1310"content_server : server_key_cache_size",
1311"content_server : server_key_cache_slabs",
1312"content_server : server_trusted_keys_file",
1313"content_server : server_val_nsec3_keysize_iterations",
1314"content_server : server_use_syslog",
1315"content_server : server_outgoing_interface",
1316"content_server : server_root_hints",
1317"content_server : server_do_not_query_localhost",
1318"content_server : server_cache_max_ttl",
1319"content_server : server_harden_dnssec_stripped",
1320"content_server : server_access_control",
1321"content_server : server_local_zone",
1322"content_server : server_local_data",
1323"content_server : server_interface_automatic",
1324"content_server : server_statistics_interval",
1325"content_server : server_do_daemonize",
1326"content_server : server_use_caps_for_id",
1327"content_server : server_statistics_cumulative",
1328"content_server : server_outgoing_port_permit",
1329"content_server : server_outgoing_port_avoid",
1330"content_server : server_dlv_anchor_file",
1331"content_server : server_dlv_anchor",
1332"content_server : server_neg_cache_size",
1333"content_server : server_harden_referral_path",
1334"content_server : server_private_address",
1335"content_server : server_private_domain",
1336"content_server : server_extended_statistics",
1337"content_server : server_local_data_ptr",
1338"content_server : server_jostle_timeout",
1339"content_server : server_unwanted_reply_threshold",
1340"content_server : server_log_time_ascii",
1341"content_server : server_domain_insecure",
1342"content_server : server_val_sig_skew_min",
1343"content_server : server_val_sig_skew_max",
1344"content_server : server_val_max_restart",
1345"content_server : server_cache_min_ttl",
1346"content_server : server_val_log_level",
1347"content_server : server_auto_trust_anchor_file",
1348"content_server : server_add_holddown",
1349"content_server : server_del_holddown",
1350"content_server : server_keep_missing",
1351"content_server : server_so_rcvbuf",
1352"content_server : server_edns_buffer_size",
1353"content_server : server_prefetch",
1354"content_server : server_prefetch_key",
1355"content_server : server_so_sndbuf",
1356"content_server : server_harden_below_nxdomain",
1357"content_server : server_ignore_cd_flag",
1358"content_server : server_log_queries",
1359"content_server : server_log_replies",
1360"content_server : server_tcp_upstream",
1361"content_server : server_ssl_upstream",
1362"content_server : server_log_local_actions",
1363"content_server : server_ssl_service_key",
1364"content_server : server_ssl_service_pem",
1365"content_server : server_ssl_port",
1366"content_server : server_https_port",
1367"content_server : server_http_endpoint",
1368"content_server : server_http_max_streams",
1369"content_server : server_http_query_buffer_size",
1370"content_server : server_http_response_buffer_size",
1371"content_server : server_http_nodelay",
1372"content_server : server_http_notls_downstream",
1373"content_server : server_minimal_responses",
1374"content_server : server_rrset_roundrobin",
1375"content_server : server_max_udp_size",
1376"content_server : server_so_reuseport",
1377"content_server : server_delay_close",
1378"content_server : server_udp_connect",
1379"content_server : server_unblock_lan_zones",
1380"content_server : server_insecure_lan_zones",
1381"content_server : server_dns64_prefix",
1382"content_server : server_dns64_synthall",
1383"content_server : server_dns64_ignore_aaaa",
1384"content_server : server_infra_cache_min_rtt",
1385"content_server : server_harden_algo_downgrade",
1386"content_server : server_ip_transparent",
1387"content_server : server_ip_ratelimit",
1388"content_server : server_ratelimit",
1389"content_server : server_ip_dscp",
1390"content_server : server_infra_keep_probing",
1391"content_server : server_ip_ratelimit_slabs",
1392"content_server : server_ratelimit_slabs",
1393"content_server : server_ip_ratelimit_size",
1394"content_server : server_ratelimit_size",
1395"content_server : server_ratelimit_for_domain",
1396"content_server : server_ratelimit_below_domain",
1397"content_server : server_ratelimit_factor",
1398"content_server : server_ip_ratelimit_factor",
1399"content_server : server_send_client_subnet",
1400"content_server : server_client_subnet_zone",
1401"content_server : server_client_subnet_always_forward",
1402"content_server : server_client_subnet_opcode",
1403"content_server : server_max_client_subnet_ipv4",
1404"content_server : server_max_client_subnet_ipv6",
1405"content_server : server_min_client_subnet_ipv4",
1406"content_server : server_min_client_subnet_ipv6",
1407"content_server : server_max_ecs_tree_size_ipv4",
1408"content_server : server_max_ecs_tree_size_ipv6",
1409"content_server : server_caps_whitelist",
1410"content_server : server_cache_max_negative_ttl",
1411"content_server : server_permit_small_holddown",
1412"content_server : server_qname_minimisation",
1413"content_server : server_ip_freebind",
1414"content_server : server_define_tag",
1415"content_server : server_local_zone_tag",
1416"content_server : server_disable_dnssec_lame_check",
1417"content_server : server_access_control_tag",
1418"content_server : server_local_zone_override",
1419"content_server : server_access_control_tag_action",
1420"content_server : server_access_control_tag_data",
1421"content_server : server_access_control_view",
1422"content_server : server_qname_minimisation_strict",
1423"content_server : server_pad_responses",
1424"content_server : server_pad_responses_block_size",
1425"content_server : server_pad_queries",
1426"content_server : server_pad_queries_block_size",
1427"content_server : server_serve_expired",
1428"content_server : server_serve_expired_ttl",
1429"content_server : server_serve_expired_ttl_reset",
1430"content_server : server_serve_expired_reply_ttl",
1431"content_server : server_serve_expired_client_timeout",
1432"content_server : server_serve_original_ttl",
1433"content_server : server_fake_dsa",
1434"content_server : server_log_identity",
1435"content_server : server_use_systemd",
1436"content_server : server_response_ip_tag",
1437"content_server : server_response_ip",
1438"content_server : server_response_ip_data",
1439"content_server : server_shm_enable",
1440"content_server : server_shm_key",
1441"content_server : server_fake_sha1",
1442"content_server : server_hide_trustanchor",
1443"content_server : server_trust_anchor_signaling",
1444"content_server : server_root_key_sentinel",
1445"content_server : server_ipsecmod_enabled",
1446"content_server : server_ipsecmod_hook",
1447"content_server : server_ipsecmod_ignore_bogus",
1448"content_server : server_ipsecmod_max_ttl",
1449"content_server : server_ipsecmod_whitelist",
1450"content_server : server_ipsecmod_strict",
1451"content_server : server_udp_upstream_without_downstream",
1452"content_server : server_aggressive_nsec",
1453"content_server : server_tls_cert_bundle",
1454"content_server : server_tls_additional_port",
1455"content_server : server_low_rtt",
1456"content_server : server_fast_server_permil",
1457"content_server : server_fast_server_num",
1458"content_server : server_tls_win_cert",
1459"content_server : server_tcp_connection_limit",
1460"content_server : server_log_servfail",
1461"content_server : server_deny_any",
1462"content_server : server_unknown_server_time_limit",
1463"content_server : server_log_tag_queryreply",
1464"content_server : server_stream_wait_size",
1465"content_server : server_tls_ciphers",
1466"content_server : server_tls_ciphersuites",
1467"content_server : server_tls_session_ticket_keys",
1468"content_server : server_tls_use_sni",
1469"content_server : server_edns_client_string",
1470"content_server : server_edns_client_string_opcode",
1471"content_server : server_nsid",
1472"content_server : server_zonemd_permissive_mode",
1473"content_server : server_max_reuse_tcp_queries",
1474"content_server : server_tcp_reuse_timeout",
1475"content_server : server_tcp_auth_query_timeout",
1476"stubstart : VAR_STUB_ZONE",
1477"contents_stub : contents_stub content_stub",
1478"contents_stub :",
1479"content_stub : stub_name",
1480"content_stub : stub_host",
1481"content_stub : stub_addr",
1482"content_stub : stub_prime",
1483"content_stub : stub_first",
1484"content_stub : stub_no_cache",
1485"content_stub : stub_ssl_upstream",
1486"forwardstart : VAR_FORWARD_ZONE",
1487"contents_forward : contents_forward content_forward",
1488"contents_forward :",
1489"content_forward : forward_name",
1490"content_forward : forward_host",
1491"content_forward : forward_addr",
1492"content_forward : forward_first",
1493"content_forward : forward_no_cache",
1494"content_forward : forward_ssl_upstream",
1495"viewstart : VAR_VIEW",
1496"contents_view : contents_view content_view",
1497"contents_view :",
1498"content_view : view_name",
1499"content_view : view_local_zone",
1500"content_view : view_local_data",
1501"content_view : view_first",
1502"content_view : view_response_ip",
1503"content_view : view_response_ip_data",
1504"content_view : view_local_data_ptr",
1505"authstart : VAR_AUTH_ZONE",
1506"contents_auth : contents_auth content_auth",
1507"contents_auth :",
1508"content_auth : auth_name",
1509"content_auth : auth_zonefile",
1510"content_auth : auth_master",
1511"content_auth : auth_url",
1512"content_auth : auth_for_downstream",
1513"content_auth : auth_for_upstream",
1514"content_auth : auth_fallback_enabled",
1515"content_auth : auth_allow_notify",
1516"content_auth : auth_zonemd_check",
1517"content_auth : auth_zonemd_reject_absence",
1518"rpz_tag : VAR_TAGS STRING_ARG",
1519"rpz_action_override : VAR_RPZ_ACTION_OVERRIDE STRING_ARG",
1520"rpz_cname_override : VAR_RPZ_CNAME_OVERRIDE STRING_ARG",
1521"rpz_log : VAR_RPZ_LOG STRING_ARG",
1522"rpz_log_name : VAR_RPZ_LOG_NAME STRING_ARG",
1523"rpzstart : VAR_RPZ",
1524"contents_rpz : contents_rpz content_rpz",
1525"contents_rpz :",
1526"content_rpz : auth_name",
1527"content_rpz : auth_zonefile",
1528"content_rpz : rpz_tag",
1529"content_rpz : auth_master",
1530"content_rpz : auth_url",
1531"content_rpz : auth_allow_notify",
1532"content_rpz : rpz_action_override",
1533"content_rpz : rpz_cname_override",
1534"content_rpz : rpz_log",
1535"content_rpz : rpz_log_name",
1536"server_num_threads : VAR_NUM_THREADS STRING_ARG",
1537"server_verbosity : VAR_VERBOSITY STRING_ARG",
1538"server_statistics_interval : VAR_STATISTICS_INTERVAL STRING_ARG",
1539"server_statistics_cumulative : VAR_STATISTICS_CUMULATIVE STRING_ARG",
1540"server_extended_statistics : VAR_EXTENDED_STATISTICS STRING_ARG",
1541"server_shm_enable : VAR_SHM_ENABLE STRING_ARG",
1542"server_shm_key : VAR_SHM_KEY STRING_ARG",
1543"server_port : VAR_PORT STRING_ARG",
1544"server_send_client_subnet : VAR_SEND_CLIENT_SUBNET STRING_ARG",
1545"server_client_subnet_zone : VAR_CLIENT_SUBNET_ZONE STRING_ARG",
1546"server_client_subnet_always_forward : VAR_CLIENT_SUBNET_ALWAYS_FORWARD STRING_ARG",
1547"server_client_subnet_opcode : VAR_CLIENT_SUBNET_OPCODE STRING_ARG",
1548"server_max_client_subnet_ipv4 : VAR_MAX_CLIENT_SUBNET_IPV4 STRING_ARG",
1549"server_max_client_subnet_ipv6 : VAR_MAX_CLIENT_SUBNET_IPV6 STRING_ARG",
1550"server_min_client_subnet_ipv4 : VAR_MIN_CLIENT_SUBNET_IPV4 STRING_ARG",
1551"server_min_client_subnet_ipv6 : VAR_MIN_CLIENT_SUBNET_IPV6 STRING_ARG",
1552"server_max_ecs_tree_size_ipv4 : VAR_MAX_ECS_TREE_SIZE_IPV4 STRING_ARG",
1553"server_max_ecs_tree_size_ipv6 : VAR_MAX_ECS_TREE_SIZE_IPV6 STRING_ARG",
1554"server_interface : VAR_INTERFACE STRING_ARG",
1555"server_outgoing_interface : VAR_OUTGOING_INTERFACE STRING_ARG",
1556"server_outgoing_range : VAR_OUTGOING_RANGE STRING_ARG",
1557"server_outgoing_port_permit : VAR_OUTGOING_PORT_PERMIT STRING_ARG",
1558"server_outgoing_port_avoid : VAR_OUTGOING_PORT_AVOID STRING_ARG",
1559"server_outgoing_num_tcp : VAR_OUTGOING_NUM_TCP STRING_ARG",
1560"server_incoming_num_tcp : VAR_INCOMING_NUM_TCP STRING_ARG",
1561"server_interface_automatic : VAR_INTERFACE_AUTOMATIC STRING_ARG",
1562"server_do_ip4 : VAR_DO_IP4 STRING_ARG",
1563"server_do_ip6 : VAR_DO_IP6 STRING_ARG",
1564"server_do_udp : VAR_DO_UDP STRING_ARG",
1565"server_do_tcp : VAR_DO_TCP STRING_ARG",
1566"server_prefer_ip4 : VAR_PREFER_IP4 STRING_ARG",
1567"server_prefer_ip6 : VAR_PREFER_IP6 STRING_ARG",
1568"server_tcp_mss : VAR_TCP_MSS STRING_ARG",
1569"server_outgoing_tcp_mss : VAR_OUTGOING_TCP_MSS STRING_ARG",
1570"server_tcp_idle_timeout : VAR_TCP_IDLE_TIMEOUT STRING_ARG",
1571"server_max_reuse_tcp_queries : VAR_MAX_REUSE_TCP_QUERIES STRING_ARG",
1572"server_tcp_reuse_timeout : VAR_TCP_REUSE_TIMEOUT STRING_ARG",
1573"server_tcp_auth_query_timeout : VAR_TCP_AUTH_QUERY_TIMEOUT STRING_ARG",
1574"server_tcp_keepalive : VAR_EDNS_TCP_KEEPALIVE STRING_ARG",
1575"server_tcp_keepalive_timeout : VAR_EDNS_TCP_KEEPALIVE_TIMEOUT STRING_ARG",
1576"server_tcp_upstream : VAR_TCP_UPSTREAM STRING_ARG",
1577"server_udp_upstream_without_downstream : VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM STRING_ARG",
1578"server_ssl_upstream : VAR_SSL_UPSTREAM STRING_ARG",
1579"server_ssl_service_key : VAR_SSL_SERVICE_KEY STRING_ARG",
1580"server_ssl_service_pem : VAR_SSL_SERVICE_PEM STRING_ARG",
1581"server_ssl_port : VAR_SSL_PORT STRING_ARG",
1582"server_tls_cert_bundle : VAR_TLS_CERT_BUNDLE STRING_ARG",
1583"server_tls_win_cert : VAR_TLS_WIN_CERT STRING_ARG",
1584"server_tls_additional_port : VAR_TLS_ADDITIONAL_PORT STRING_ARG",
1585"server_tls_ciphers : VAR_TLS_CIPHERS STRING_ARG",
1586"server_tls_ciphersuites : VAR_TLS_CIPHERSUITES STRING_ARG",
1587"server_tls_session_ticket_keys : VAR_TLS_SESSION_TICKET_KEYS STRING_ARG",
1588"server_tls_use_sni : VAR_TLS_USE_SNI STRING_ARG",
1589"server_https_port : VAR_HTTPS_PORT STRING_ARG",
1590"server_http_endpoint : VAR_HTTP_ENDPOINT STRING_ARG",
1591"server_http_max_streams : VAR_HTTP_MAX_STREAMS STRING_ARG",
1592"server_http_query_buffer_size : VAR_HTTP_QUERY_BUFFER_SIZE STRING_ARG",
1593"server_http_response_buffer_size : VAR_HTTP_RESPONSE_BUFFER_SIZE STRING_ARG",
1594"server_http_nodelay : VAR_HTTP_NODELAY STRING_ARG",
1595"server_http_notls_downstream : VAR_HTTP_NOTLS_DOWNSTREAM STRING_ARG",
1596"server_use_systemd : VAR_USE_SYSTEMD STRING_ARG",
1597"server_do_daemonize : VAR_DO_DAEMONIZE STRING_ARG",
1598"server_use_syslog : VAR_USE_SYSLOG STRING_ARG",
1599"server_log_time_ascii : VAR_LOG_TIME_ASCII STRING_ARG",
1600"server_log_queries : VAR_LOG_QUERIES STRING_ARG",
1601"server_log_replies : VAR_LOG_REPLIES STRING_ARG",
1602"server_log_tag_queryreply : VAR_LOG_TAG_QUERYREPLY STRING_ARG",
1603"server_log_servfail : VAR_LOG_SERVFAIL STRING_ARG",
1604"server_log_local_actions : VAR_LOG_LOCAL_ACTIONS STRING_ARG",
1605"server_chroot : VAR_CHROOT STRING_ARG",
1606"server_username : VAR_USERNAME STRING_ARG",
1607"server_directory : VAR_DIRECTORY STRING_ARG",
1608"server_logfile : VAR_LOGFILE STRING_ARG",
1609"server_pidfile : VAR_PIDFILE STRING_ARG",
1610"server_root_hints : VAR_ROOT_HINTS STRING_ARG",
1611"server_dlv_anchor_file : VAR_DLV_ANCHOR_FILE STRING_ARG",
1612"server_dlv_anchor : VAR_DLV_ANCHOR STRING_ARG",
1613"server_auto_trust_anchor_file : VAR_AUTO_TRUST_ANCHOR_FILE STRING_ARG",
1614"server_trust_anchor_file : VAR_TRUST_ANCHOR_FILE STRING_ARG",
1615"server_trusted_keys_file : VAR_TRUSTED_KEYS_FILE STRING_ARG",
1616"server_trust_anchor : VAR_TRUST_ANCHOR STRING_ARG",
1617"server_trust_anchor_signaling : VAR_TRUST_ANCHOR_SIGNALING STRING_ARG",
1618"server_root_key_sentinel : VAR_ROOT_KEY_SENTINEL STRING_ARG",
1619"server_domain_insecure : VAR_DOMAIN_INSECURE STRING_ARG",
1620"server_hide_identity : VAR_HIDE_IDENTITY STRING_ARG",
1621"server_hide_version : VAR_HIDE_VERSION STRING_ARG",
1622"server_hide_trustanchor : VAR_HIDE_TRUSTANCHOR STRING_ARG",
1623"server_hide_http_user_agent : VAR_HIDE_HTTP_USER_AGENT STRING_ARG",
1624"server_identity : VAR_IDENTITY STRING_ARG",
1625"server_version : VAR_VERSION STRING_ARG",
1626"server_http_user_agent : VAR_HTTP_USER_AGENT STRING_ARG",
1627"server_nsid : VAR_NSID STRING_ARG",
1628"server_so_rcvbuf : VAR_SO_RCVBUF STRING_ARG",
1629"server_so_sndbuf : VAR_SO_SNDBUF STRING_ARG",
1630"server_so_reuseport : VAR_SO_REUSEPORT STRING_ARG",
1631"server_ip_transparent : VAR_IP_TRANSPARENT STRING_ARG",
1632"server_ip_freebind : VAR_IP_FREEBIND STRING_ARG",
1633"server_ip_dscp : VAR_IP_DSCP STRING_ARG",
1634"server_stream_wait_size : VAR_STREAM_WAIT_SIZE STRING_ARG",
1635"server_edns_buffer_size : VAR_EDNS_BUFFER_SIZE STRING_ARG",
1636"server_msg_buffer_size : VAR_MSG_BUFFER_SIZE STRING_ARG",
1637"server_msg_cache_size : VAR_MSG_CACHE_SIZE STRING_ARG",
1638"server_msg_cache_slabs : VAR_MSG_CACHE_SLABS STRING_ARG",
1639"server_num_queries_per_thread : VAR_NUM_QUERIES_PER_THREAD STRING_ARG",
1640"server_jostle_timeout : VAR_JOSTLE_TIMEOUT STRING_ARG",
1641"server_delay_close : VAR_DELAY_CLOSE STRING_ARG",
1642"server_udp_connect : VAR_UDP_CONNECT STRING_ARG",
1643"server_unblock_lan_zones : VAR_UNBLOCK_LAN_ZONES STRING_ARG",
1644"server_insecure_lan_zones : VAR_INSECURE_LAN_ZONES STRING_ARG",
1645"server_rrset_cache_size : VAR_RRSET_CACHE_SIZE STRING_ARG",
1646"server_rrset_cache_slabs : VAR_RRSET_CACHE_SLABS STRING_ARG",
1647"server_infra_host_ttl : VAR_INFRA_HOST_TTL STRING_ARG",
1648"server_infra_lame_ttl : VAR_INFRA_LAME_TTL STRING_ARG",
1649"server_infra_cache_numhosts : VAR_INFRA_CACHE_NUMHOSTS STRING_ARG",
1650"server_infra_cache_lame_size : VAR_INFRA_CACHE_LAME_SIZE STRING_ARG",
1651"server_infra_cache_slabs : VAR_INFRA_CACHE_SLABS STRING_ARG",
1652"server_infra_cache_min_rtt : VAR_INFRA_CACHE_MIN_RTT STRING_ARG",
1653"server_infra_keep_probing : VAR_INFRA_KEEP_PROBING STRING_ARG",
1654"server_target_fetch_policy : VAR_TARGET_FETCH_POLICY STRING_ARG",
1655"server_harden_short_bufsize : VAR_HARDEN_SHORT_BUFSIZE STRING_ARG",
1656"server_harden_large_queries : VAR_HARDEN_LARGE_QUERIES STRING_ARG",
1657"server_harden_glue : VAR_HARDEN_GLUE STRING_ARG",
1658"server_harden_dnssec_stripped : VAR_HARDEN_DNSSEC_STRIPPED STRING_ARG",
1659"server_harden_below_nxdomain : VAR_HARDEN_BELOW_NXDOMAIN STRING_ARG",
1660"server_harden_referral_path : VAR_HARDEN_REFERRAL_PATH STRING_ARG",
1661"server_harden_algo_downgrade : VAR_HARDEN_ALGO_DOWNGRADE STRING_ARG",
1662"server_use_caps_for_id : VAR_USE_CAPS_FOR_ID STRING_ARG",
1663"server_caps_whitelist : VAR_CAPS_WHITELIST STRING_ARG",
1664"server_private_address : VAR_PRIVATE_ADDRESS STRING_ARG",
1665"server_private_domain : VAR_PRIVATE_DOMAIN STRING_ARG",
1666"server_prefetch : VAR_PREFETCH STRING_ARG",
1667"server_prefetch_key : VAR_PREFETCH_KEY STRING_ARG",
1668"server_deny_any : VAR_DENY_ANY STRING_ARG",
1669"server_unwanted_reply_threshold : VAR_UNWANTED_REPLY_THRESHOLD STRING_ARG",
1670"server_do_not_query_address : VAR_DO_NOT_QUERY_ADDRESS STRING_ARG",
1671"server_do_not_query_localhost : VAR_DO_NOT_QUERY_LOCALHOST STRING_ARG",
1672"server_access_control : VAR_ACCESS_CONTROL STRING_ARG STRING_ARG",
1673"server_module_conf : VAR_MODULE_CONF STRING_ARG",
1674"server_val_override_date : VAR_VAL_OVERRIDE_DATE STRING_ARG",
1675"server_val_sig_skew_min : VAR_VAL_SIG_SKEW_MIN STRING_ARG",
1676"server_val_sig_skew_max : VAR_VAL_SIG_SKEW_MAX STRING_ARG",
1677"server_val_max_restart : VAR_VAL_MAX_RESTART STRING_ARG",
1678"server_cache_max_ttl : VAR_CACHE_MAX_TTL STRING_ARG",
1679"server_cache_max_negative_ttl : VAR_CACHE_MAX_NEGATIVE_TTL STRING_ARG",
1680"server_cache_min_ttl : VAR_CACHE_MIN_TTL STRING_ARG",
1681"server_bogus_ttl : VAR_BOGUS_TTL STRING_ARG",
1682"server_val_clean_additional : VAR_VAL_CLEAN_ADDITIONAL STRING_ARG",
1683"server_val_permissive_mode : VAR_VAL_PERMISSIVE_MODE STRING_ARG",
1684"server_aggressive_nsec : VAR_AGGRESSIVE_NSEC STRING_ARG",
1685"server_ignore_cd_flag : VAR_IGNORE_CD_FLAG STRING_ARG",
1686"server_serve_expired : VAR_SERVE_EXPIRED STRING_ARG",
1687"server_serve_expired_ttl : VAR_SERVE_EXPIRED_TTL STRING_ARG",
1688"server_serve_expired_ttl_reset : VAR_SERVE_EXPIRED_TTL_RESET STRING_ARG",
1689"server_serve_expired_reply_ttl : VAR_SERVE_EXPIRED_REPLY_TTL STRING_ARG",
1690"server_serve_expired_client_timeout : VAR_SERVE_EXPIRED_CLIENT_TIMEOUT STRING_ARG",
1691"server_serve_original_ttl : VAR_SERVE_ORIGINAL_TTL STRING_ARG",
1692"server_fake_dsa : VAR_FAKE_DSA STRING_ARG",
1693"server_fake_sha1 : VAR_FAKE_SHA1 STRING_ARG",
1694"server_val_log_level : VAR_VAL_LOG_LEVEL STRING_ARG",
1695"server_val_nsec3_keysize_iterations : VAR_VAL_NSEC3_KEYSIZE_ITERATIONS STRING_ARG",
1696"server_zonemd_permissive_mode : VAR_ZONEMD_PERMISSIVE_MODE STRING_ARG",
1697"server_add_holddown : VAR_ADD_HOLDDOWN STRING_ARG",
1698"server_del_holddown : VAR_DEL_HOLDDOWN STRING_ARG",
1699"server_keep_missing : VAR_KEEP_MISSING STRING_ARG",
1700"server_permit_small_holddown : VAR_PERMIT_SMALL_HOLDDOWN STRING_ARG",
1701"server_key_cache_size : VAR_KEY_CACHE_SIZE STRING_ARG",
1702"server_key_cache_slabs : VAR_KEY_CACHE_SLABS STRING_ARG",
1703"server_neg_cache_size : VAR_NEG_CACHE_SIZE STRING_ARG",
1704"server_local_zone : VAR_LOCAL_ZONE STRING_ARG STRING_ARG",
1705"server_local_data : VAR_LOCAL_DATA STRING_ARG",
1706"server_local_data_ptr : VAR_LOCAL_DATA_PTR STRING_ARG",
1707"server_minimal_responses : VAR_MINIMAL_RESPONSES STRING_ARG",
1708"server_rrset_roundrobin : VAR_RRSET_ROUNDROBIN STRING_ARG",
1709"server_unknown_server_time_limit : VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG",
1710"server_max_udp_size : VAR_MAX_UDP_SIZE STRING_ARG",
1711"server_dns64_prefix : VAR_DNS64_PREFIX STRING_ARG",
1712"server_dns64_synthall : VAR_DNS64_SYNTHALL STRING_ARG",
1713"server_dns64_ignore_aaaa : VAR_DNS64_IGNORE_AAAA STRING_ARG",
1714"server_define_tag : VAR_DEFINE_TAG STRING_ARG",
1715"server_local_zone_tag : VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG",
1716"server_access_control_tag : VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG",
1717"server_access_control_tag_action : VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG",
1718"server_access_control_tag_data : VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG",
1719"server_local_zone_override : VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG",
1720"server_access_control_view : VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG",
1721"server_response_ip_tag : VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG",
1722"server_ip_ratelimit : VAR_IP_RATELIMIT STRING_ARG",
1723"server_ratelimit : VAR_RATELIMIT STRING_ARG",
1724"server_ip_ratelimit_size : VAR_IP_RATELIMIT_SIZE STRING_ARG",
1725"server_ratelimit_size : VAR_RATELIMIT_SIZE STRING_ARG",
1726"server_ip_ratelimit_slabs : VAR_IP_RATELIMIT_SLABS STRING_ARG",
1727"server_ratelimit_slabs : VAR_RATELIMIT_SLABS STRING_ARG",
1728"server_ratelimit_for_domain : VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG",
1729"server_ratelimit_below_domain : VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG",
1730"server_ip_ratelimit_factor : VAR_IP_RATELIMIT_FACTOR STRING_ARG",
1731"server_ratelimit_factor : VAR_RATELIMIT_FACTOR STRING_ARG",
1732"server_low_rtt : VAR_LOW_RTT STRING_ARG",
1733"server_fast_server_num : VAR_FAST_SERVER_NUM STRING_ARG",
1734"server_fast_server_permil : VAR_FAST_SERVER_PERMIL STRING_ARG",
1735"server_qname_minimisation : VAR_QNAME_MINIMISATION STRING_ARG",
1736"server_qname_minimisation_strict : VAR_QNAME_MINIMISATION_STRICT STRING_ARG",
1737"server_pad_responses : VAR_PAD_RESPONSES STRING_ARG",
1738"server_pad_responses_block_size : VAR_PAD_RESPONSES_BLOCK_SIZE STRING_ARG",
1739"server_pad_queries : VAR_PAD_QUERIES STRING_ARG",
1740"server_pad_queries_block_size : VAR_PAD_QUERIES_BLOCK_SIZE STRING_ARG",
1741"server_ipsecmod_enabled : VAR_IPSECMOD_ENABLED STRING_ARG",
1742"server_ipsecmod_ignore_bogus : VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG",
1743"server_ipsecmod_hook : VAR_IPSECMOD_HOOK STRING_ARG",
1744"server_ipsecmod_max_ttl : VAR_IPSECMOD_MAX_TTL STRING_ARG",
1745"server_ipsecmod_whitelist : VAR_IPSECMOD_WHITELIST STRING_ARG",
1746"server_ipsecmod_strict : VAR_IPSECMOD_STRICT STRING_ARG",
1747"server_edns_client_string : VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG",
1748"server_edns_client_string_opcode : VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG",
1749"stub_name : VAR_NAME STRING_ARG",
1750"stub_host : VAR_STUB_HOST STRING_ARG",
1751"stub_addr : VAR_STUB_ADDR STRING_ARG",
1752"stub_first : VAR_STUB_FIRST STRING_ARG",
1753"stub_no_cache : VAR_STUB_NO_CACHE STRING_ARG",
1754"stub_ssl_upstream : VAR_STUB_SSL_UPSTREAM STRING_ARG",
1755"stub_prime : VAR_STUB_PRIME STRING_ARG",
1756"forward_name : VAR_NAME STRING_ARG",
1757"forward_host : VAR_FORWARD_HOST STRING_ARG",
1758"forward_addr : VAR_FORWARD_ADDR STRING_ARG",
1759"forward_first : VAR_FORWARD_FIRST STRING_ARG",
1760"forward_no_cache : VAR_FORWARD_NO_CACHE STRING_ARG",
1761"forward_ssl_upstream : VAR_FORWARD_SSL_UPSTREAM STRING_ARG",
1762"auth_name : VAR_NAME STRING_ARG",
1763"auth_zonefile : VAR_ZONEFILE STRING_ARG",
1764"auth_master : VAR_MASTER STRING_ARG",
1765"auth_url : VAR_URL STRING_ARG",
1766"auth_allow_notify : VAR_ALLOW_NOTIFY STRING_ARG",
1767"auth_zonemd_check : VAR_ZONEMD_CHECK STRING_ARG",
1768"auth_zonemd_reject_absence : VAR_ZONEMD_REJECT_ABSENCE STRING_ARG",
1769"auth_for_downstream : VAR_FOR_DOWNSTREAM STRING_ARG",
1770"auth_for_upstream : VAR_FOR_UPSTREAM STRING_ARG",
1771"auth_fallback_enabled : VAR_FALLBACK_ENABLED STRING_ARG",
1772"view_name : VAR_NAME STRING_ARG",
1773"view_local_zone : VAR_LOCAL_ZONE STRING_ARG STRING_ARG",
1774"view_response_ip : VAR_RESPONSE_IP STRING_ARG STRING_ARG",
1775"view_response_ip_data : VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG",
1776"view_local_data : VAR_LOCAL_DATA STRING_ARG",
1777"view_local_data_ptr : VAR_LOCAL_DATA_PTR STRING_ARG",
1778"view_first : VAR_VIEW_FIRST STRING_ARG",
1779"rcstart : VAR_REMOTE_CONTROL",
1780"contents_rc : contents_rc content_rc",
1781"contents_rc :",
1782"content_rc : rc_control_enable",
1783"content_rc : rc_control_interface",
1784"content_rc : rc_control_port",
1785"content_rc : rc_server_key_file",
1786"content_rc : rc_server_cert_file",
1787"content_rc : rc_control_key_file",
1788"content_rc : rc_control_cert_file",
1789"content_rc : rc_control_use_cert",
1790"rc_control_enable : VAR_CONTROL_ENABLE STRING_ARG",
1791"rc_control_port : VAR_CONTROL_PORT STRING_ARG",
1792"rc_control_interface : VAR_CONTROL_INTERFACE STRING_ARG",
1793"rc_control_use_cert : VAR_CONTROL_USE_CERT STRING_ARG",
1794"rc_server_key_file : VAR_SERVER_KEY_FILE STRING_ARG",
1795"rc_server_cert_file : VAR_SERVER_CERT_FILE STRING_ARG",
1796"rc_control_key_file : VAR_CONTROL_KEY_FILE STRING_ARG",
1797"rc_control_cert_file : VAR_CONTROL_CERT_FILE STRING_ARG",
1798"dtstart : VAR_DNSTAP",
1799"contents_dt : contents_dt content_dt",
1800"contents_dt :",
1801"content_dt : dt_dnstap_enable",
1802"content_dt : dt_dnstap_socket_path",
1803"content_dt : dt_dnstap_bidirectional",
1804"content_dt : dt_dnstap_ip",
1805"content_dt : dt_dnstap_tls",
1806"content_dt : dt_dnstap_tls_server_name",
1807"content_dt : dt_dnstap_tls_cert_bundle",
1808"content_dt : dt_dnstap_tls_client_key_file",
1809"content_dt : dt_dnstap_tls_client_cert_file",
1810"content_dt : dt_dnstap_send_identity",
1811"content_dt : dt_dnstap_send_version",
1812"content_dt : dt_dnstap_identity",
1813"content_dt : dt_dnstap_version",
1814"content_dt : dt_dnstap_log_resolver_query_messages",
1815"content_dt : dt_dnstap_log_resolver_response_messages",
1816"content_dt : dt_dnstap_log_client_query_messages",
1817"content_dt : dt_dnstap_log_client_response_messages",
1818"content_dt : dt_dnstap_log_forwarder_query_messages",
1819"content_dt : dt_dnstap_log_forwarder_response_messages",
1820"dt_dnstap_enable : VAR_DNSTAP_ENABLE STRING_ARG",
1821"dt_dnstap_bidirectional : VAR_DNSTAP_BIDIRECTIONAL STRING_ARG",
1822"dt_dnstap_socket_path : VAR_DNSTAP_SOCKET_PATH STRING_ARG",
1823"dt_dnstap_ip : VAR_DNSTAP_IP STRING_ARG",
1824"dt_dnstap_tls : VAR_DNSTAP_TLS STRING_ARG",
1825"dt_dnstap_tls_server_name : VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG",
1826"dt_dnstap_tls_cert_bundle : VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG",
1827"dt_dnstap_tls_client_key_file : VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG",
1828"dt_dnstap_tls_client_cert_file : VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG",
1829"dt_dnstap_send_identity : VAR_DNSTAP_SEND_IDENTITY STRING_ARG",
1830"dt_dnstap_send_version : VAR_DNSTAP_SEND_VERSION STRING_ARG",
1831"dt_dnstap_identity : VAR_DNSTAP_IDENTITY STRING_ARG",
1832"dt_dnstap_version : VAR_DNSTAP_VERSION STRING_ARG",
1833"dt_dnstap_log_resolver_query_messages : VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG",
1834"dt_dnstap_log_resolver_response_messages : VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG",
1835"dt_dnstap_log_client_query_messages : VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG",
1836"dt_dnstap_log_client_response_messages : VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG",
1837"dt_dnstap_log_forwarder_query_messages : VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG",
1838"dt_dnstap_log_forwarder_response_messages : VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG",
1839"pythonstart : VAR_PYTHON",
1840"contents_py : contents_py content_py",
1841"contents_py :",
1842"content_py : py_script",
1843"py_script : VAR_PYTHON_SCRIPT STRING_ARG",
1844"dynlibstart : VAR_DYNLIB",
1845"contents_dl : contents_dl content_dl",
1846"contents_dl :",
1847"content_dl : dl_file",
1848"dl_file : VAR_DYNLIB_FILE STRING_ARG",
1849"server_disable_dnssec_lame_check : VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG",
1850"server_log_identity : VAR_LOG_IDENTITY STRING_ARG",
1851"server_response_ip : VAR_RESPONSE_IP STRING_ARG STRING_ARG",
1852"server_response_ip_data : VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG",
1853"dnscstart : VAR_DNSCRYPT",
1854"contents_dnsc : contents_dnsc content_dnsc",
1855"contents_dnsc :",
1856"content_dnsc : dnsc_dnscrypt_enable",
1857"content_dnsc : dnsc_dnscrypt_port",
1858"content_dnsc : dnsc_dnscrypt_provider",
1859"content_dnsc : dnsc_dnscrypt_secret_key",
1860"content_dnsc : dnsc_dnscrypt_provider_cert",
1861"content_dnsc : dnsc_dnscrypt_provider_cert_rotated",
1862"content_dnsc : dnsc_dnscrypt_shared_secret_cache_size",
1863"content_dnsc : dnsc_dnscrypt_shared_secret_cache_slabs",
1864"content_dnsc : dnsc_dnscrypt_nonce_cache_size",
1865"content_dnsc : dnsc_dnscrypt_nonce_cache_slabs",
1866"dnsc_dnscrypt_enable : VAR_DNSCRYPT_ENABLE STRING_ARG",
1867"dnsc_dnscrypt_port : VAR_DNSCRYPT_PORT STRING_ARG",
1868"dnsc_dnscrypt_provider : VAR_DNSCRYPT_PROVIDER STRING_ARG",
1869"dnsc_dnscrypt_provider_cert : VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG",
1870"dnsc_dnscrypt_provider_cert_rotated : VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG",
1871"dnsc_dnscrypt_secret_key : VAR_DNSCRYPT_SECRET_KEY STRING_ARG",
1872"dnsc_dnscrypt_shared_secret_cache_size : VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG",
1873"dnsc_dnscrypt_shared_secret_cache_slabs : VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG",
1874"dnsc_dnscrypt_nonce_cache_size : VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG",
1875"dnsc_dnscrypt_nonce_cache_slabs : VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG",
1876"cachedbstart : VAR_CACHEDB",
1877"contents_cachedb : contents_cachedb content_cachedb",
1878"contents_cachedb :",
1879"content_cachedb : cachedb_backend_name",
1880"content_cachedb : cachedb_secret_seed",
1881"content_cachedb : redis_server_host",
1882"content_cachedb : redis_server_port",
1883"content_cachedb : redis_timeout",
1884"content_cachedb : redis_expire_records",
1885"cachedb_backend_name : VAR_CACHEDB_BACKEND STRING_ARG",
1886"cachedb_secret_seed : VAR_CACHEDB_SECRETSEED STRING_ARG",
1887"redis_server_host : VAR_CACHEDB_REDISHOST STRING_ARG",
1888"redis_server_port : VAR_CACHEDB_REDISPORT STRING_ARG",
1889"redis_timeout : VAR_CACHEDB_REDISTIMEOUT STRING_ARG",
1890"redis_expire_records : VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG",
1891"server_tcp_connection_limit : VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG",
1892"ipsetstart : VAR_IPSET",
1893"contents_ipset : contents_ipset content_ipset",
1894"contents_ipset :",
1895"content_ipset : ipset_name_v4",
1896"content_ipset : ipset_name_v6",
1897"ipset_name_v4 : VAR_IPSET_NAME_V4 STRING_ARG",
1898"ipset_name_v6 : VAR_IPSET_NAME_V6 STRING_ARG",
1899};
1900#endif
1901#ifdef YYSTACKSIZE10000
1902#undef YYMAXDEPTH10000
1903#define YYMAXDEPTH10000 YYSTACKSIZE10000
1904#else
1905#ifdef YYMAXDEPTH10000
1906#define YYSTACKSIZE10000 YYMAXDEPTH10000
1907#else
1908#define YYSTACKSIZE10000 10000
1909#define YYMAXDEPTH10000 10000
1910#endif
1911#endif
1912#define YYINITSTACKSIZE200 200
1913/* LINTUSED */
1914int yydebugub_c_debug;
1915int yynerrsub_c_nerrs;
1916int yyerrflagub_c_errflag;
1917int yycharub_c_char;
1918short *yysspub_c_ssp;
1919YYSTYPE *yyvspub_c_vsp;
1920YYSTYPE yyvalub_c_val;
1921YYSTYPE yylvalub_c_lval;
1922short *yyssub_c_ss;
1923short *yysslimub_c_sslim;
1924YYSTYPE *yyvsub_c_vs;
1925unsigned int yystacksizeub_c_stacksize;
1926int yyparseub_c_parse(void);
1927#line 3547 "/usr/src/usr.sbin/unbound/util/configparser.y"
1928
1929/* parse helper routines could be here */
1930static void
1931validate_respip_action(const char* action)
1932{
1933 if(strcmp(action, "deny")!=0 &&
1934 strcmp(action, "redirect")!=0 &&
1935 strcmp(action, "inform")!=0 &&
1936 strcmp(action, "inform_deny")!=0 &&
1937 strcmp(action, "always_transparent")!=0 &&
1938 strcmp(action, "always_refuse")!=0 &&
1939 strcmp(action, "always_nxdomain")!=0)
1940 {
1941 yyerrorub_c_error("response-ip action: expected deny, redirect, "
1942 "inform, inform_deny, always_transparent, "
1943 "always_refuse or always_nxdomain");
1944 }
1945}
1946
1947
1948#line 1941 "util/configparser.c"
1949/* allocate initial stack or double stack size, up to YYMAXDEPTH */
1950static int yygrowstack(void)
1951{
1952 unsigned int newsize;
1953 long sslen;
1954 short *newss;
1955 YYSTYPE *newvs;
1956
1957 if ((newsize = yystacksizeub_c_stacksize) == 0)
32
Assuming the condition is false
33
Taking false branch
1958 newsize = YYINITSTACKSIZE200;
1959 else if (newsize >= YYMAXDEPTH10000)
34
Assuming 'newsize' is < YYMAXDEPTH
35
Taking false branch
1960 return -1;
1961 else if ((newsize *= 2) > YYMAXDEPTH10000)
36
Assuming the condition is false
37
Taking false branch
1962 newsize = YYMAXDEPTH10000;
1963 sslen = yysspub_c_ssp - yyssub_c_ss;
1964#ifdef SIZE_MAX0xffffffffffffffffUL
1965#define YY_SIZE_MAX0xffffffffffffffffUL SIZE_MAX0xffffffffffffffffUL
1966#else
1967#define YY_SIZE_MAX0xffffffffffffffffUL 0xffffffffU
1968#endif
1969 if (newsize && YY_SIZE_MAX0xffffffffffffffffUL / newsize < sizeof *newss)
38
Assuming 'newsize' is 0
1970 goto bail;
1971 newss = (short *)realloc(yyssub_c_ss, newsize * sizeof *newss);
1972 if (newss == NULL((void*)0))
39
Assuming 'newss' is not equal to NULL
40
Taking false branch
1973 goto bail;
1974 yyssub_c_ss = newss;
1975 yysspub_c_ssp = newss + sslen;
1976 if (newsize
40.1
'newsize' is 0
&& YY_SIZE_MAX0xffffffffffffffffUL / newsize < sizeof *newvs)
1977 goto bail;
1978 newvs = (YYSTYPE *)realloc(yyvsub_c_vs, newsize * sizeof *newvs);
1979 if (newvs == NULL((void*)0))
41
Assuming 'newvs' is not equal to NULL
42
Taking false branch
1980 goto bail;
1981 yyvsub_c_vs = newvs;
1982 yyvspub_c_vsp = newvs + sslen;
1983 yystacksizeub_c_stacksize = newsize;
1984 yysslimub_c_sslim = yyssub_c_ss + newsize - 1;
1985 return 0;
1986bail:
1987 if (yyssub_c_ss)
1988 free(yyssub_c_ss);
1989 if (yyvsub_c_vs)
1990 free(yyvsub_c_vs);
1991 yyssub_c_ss = yysspub_c_ssp = NULL((void*)0);
1992 yyvsub_c_vs = yyvspub_c_vsp = NULL((void*)0);
1993 yystacksizeub_c_stacksize = 0;
1994 return -1;
1995}
1996
1997#define YYABORTgoto yyabort goto yyabort
1998#define YYREJECTgoto yyabort goto yyabort
1999#define YYACCEPTgoto yyaccept goto yyaccept
2000#define YYERRORgoto yyerrlab goto yyerrlab
2001int
2002yyparseub_c_parse(void)
2003{
2004 int yym, yyn, yystateub_c_state;
2005#if YYDEBUG0
2006 const char *yysub_c_s;
2007
2008 if ((yysub_c_s = getenv("YYDEBUG")))
2009 {
2010 yyn = *yysub_c_s;
2011 if (yyn >= '0' && yyn <= '9')
2012 yydebugub_c_debug = yyn - '0';
2013 }
2014#endif /* YYDEBUG */
2015
2016 yynerrsub_c_nerrs = 0;
2017 yyerrflagub_c_errflag = 0;
2018 yycharub_c_char = (-1);
2019
2020 if (yyssub_c_ss == NULL((void*)0) && yygrowstack()) goto yyoverflow;
1
Assuming 'ub_c_ss' is not equal to NULL
2021 yysspub_c_ssp = yyssub_c_ss;
2022 yyvspub_c_vsp = yyvsub_c_vs;
2023 *yysspub_c_ssp = yystateub_c_state = 0;
2024
2025yyloop:
2026 if ((yyn = yydefredub_c_yydefred[yystateub_c_state]) != 0) goto yyreduce;
2
Taking true branch
3
Control jumps to line 2133
13
Taking false branch
2027 if (yycharub_c_char < 0)
14
Taking false branch
2028 {
2029 if ((yycharub_c_char = yylexub_c_lex()) < 0) yycharub_c_char = 0;
2030#if YYDEBUG0
2031 if (yydebugub_c_debug)
2032 {
2033 yysub_c_s = 0;
2034 if (yycharub_c_char <= YYMAXTOKEN571) yysub_c_s = yynameub_c_yyname[yycharub_c_char];
2035 if (!yysub_c_s) yysub_c_s = "illegal-symbol";
2036 printf("%sdebug: state %d, reading %d (%s)\n",
2037 YYPREFIX"yy", yystateub_c_state, yycharub_c_char, yysub_c_s);
2038 }
2039#endif
2040 }
2041 if ((yyn = yysindexub_c_yysindex[yystateub_c_state]) && (yyn += yycharub_c_char) >= 0 &&
15
Assuming 'yyn' is not equal to 0
16
Assuming the condition is false
2042 yyn <= YYTABLESIZE1112 && yycheckub_c_yycheck[yyn] == yycharub_c_char)
2043 {
2044#if YYDEBUG0
2045 if (yydebugub_c_debug)
2046 printf("%sdebug: state %d, shifting to state %d\n",
2047 YYPREFIX"yy", yystateub_c_state, yytableub_c_yytable[yyn]);
2048#endif
2049 if (yysspub_c_ssp >= yysslimub_c_sslim && yygrowstack())
2050 {
2051 goto yyoverflow;
2052 }
2053 *++yysspub_c_ssp = yystateub_c_state = yytableub_c_yytable[yyn];
2054 *++yyvspub_c_vsp = yylvalub_c_lval;
2055 yycharub_c_char = (-1);
2056 if (yyerrflagub_c_errflag > 0) --yyerrflagub_c_errflag;
2057 goto yyloop;
2058 }
2059 if ((yyn = yyrindexub_c_yyrindex[yystateub_c_state]) && (yyn += yycharub_c_char) >= 0 &&
17
Assuming 'yyn' is 0
2060 yyn <= YYTABLESIZE1112 && yycheckub_c_yycheck[yyn] == yycharub_c_char)
2061 {
2062 yyn = yytableub_c_yytable[yyn];
2063 goto yyreduce;
2064 }
2065 if (yyerrflagub_c_errflag) goto yyinrecovery;
18
Assuming 'ub_c_errflag' is 0
19
Taking false branch
2066#if defined(__GNUC__4)
2067 goto yynewerror;
20
Control jumps to line 2070
2068#endif
2069yynewerror:
2070 yyerrorub_c_error("syntax error");
2071#if defined(__GNUC__4)
2072 goto yyerrlab;
21
Control jumps to line 2075
2073#endif
2074yyerrlab:
2075 ++yynerrsub_c_nerrs;
2076yyinrecovery:
2077 if (yyerrflagub_c_errflag < 3)
22
Assuming 'ub_c_errflag' is < 3
23
Taking true branch
2078 {
2079 yyerrflagub_c_errflag = 3;
2080 for (;;)
24
Loop condition is true. Entering loop body
2081 {
2082 if ((yyn = yysindexub_c_yysindex[*yysspub_c_ssp]) && (yyn += YYERRCODE256) >= 0 &&
25
Assuming 'yyn' is not equal to 0
26
Assuming the condition is true
29
Taking true branch
2083 yyn <= YYTABLESIZE1112 && yycheckub_c_yycheck[yyn] == YYERRCODE256)
27
Assuming 'yyn' is <= YYTABLESIZE
28
Assuming the condition is true
2084 {
2085#if YYDEBUG0
2086 if (yydebugub_c_debug)
2087 printf("%sdebug: state %d, error recovery shifting\
2088 to state %d\n", YYPREFIX"yy", *yysspub_c_ssp, yytableub_c_yytable[yyn]);
2089#endif
2090 if (yysspub_c_ssp >= yysslimub_c_sslim && yygrowstack())
30
Assuming 'ub_c_ssp' is >= 'ub_c_sslim'
31
Calling 'yygrowstack'
43
Returning from 'yygrowstack'
44
Taking false branch
2091 {
2092 goto yyoverflow;
2093 }
2094 *++yysspub_c_ssp = yystateub_c_state = yytableub_c_yytable[yyn];
45
Use of zero-allocated memory
2095 *++yyvspub_c_vsp = yylvalub_c_lval;
2096 goto yyloop;
2097 }
2098 else
2099 {
2100#if YYDEBUG0
2101 if (yydebugub_c_debug)
2102 printf("%sdebug: error recovery discarding state %d\n",
2103 YYPREFIX"yy", *yysspub_c_ssp);
2104#endif
2105 if (yysspub_c_ssp <= yyssub_c_ss) goto yyabort;
2106 --yysspub_c_ssp;
2107 --yyvspub_c_vsp;
2108 }
2109 }
2110 }
2111 else
2112 {
2113 if (yycharub_c_char == 0) goto yyabort;
2114#if YYDEBUG0
2115 if (yydebugub_c_debug)
2116 {
2117 yysub_c_s = 0;
2118 if (yycharub_c_char <= YYMAXTOKEN571) yysub_c_s = yynameub_c_yyname[yycharub_c_char];
2119 if (!yysub_c_s) yysub_c_s = "illegal-symbol";
2120 printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
2121 YYPREFIX"yy", yystateub_c_state, yycharub_c_char, yysub_c_s);
2122 }
2123#endif
2124 yycharub_c_char = (-1);
2125 goto yyloop;
2126 }
2127yyreduce:
2128#if YYDEBUG0
2129 if (yydebugub_c_debug)
2130 printf("%sdebug: state %d, reducing by rule %d (%s)\n",
2131 YYPREFIX"yy", yystateub_c_state, yyn, yyruleub_c_yyrule[yyn]);
2132#endif
2133 yym = yylenub_c_yylen[yyn];
2134 if (yym
3.1
'yym' is 0
)
4
Taking false branch
2135 yyvalub_c_val = yyvspub_c_vsp[1-yym];
2136 else
2137 memset(&yyvalub_c_val, 0, sizeof yyvalub_c_val);
2138 switch (yyn)
5
'Default' branch taken. Execution continues on line 5624
2139 {
2140case 17:
2141#line 200 "/usr/src/usr.sbin/unbound/util/configparser.y"
2142{
2143 OUTYY(("\nP(force-toplevel)\n"));
2144 }
2145break;
2146case 18:
2147#line 206 "/usr/src/usr.sbin/unbound/util/configparser.y"
2148{
2149 OUTYY(("\nP(server:)\n"));
2150 }
2151break;
2152case 239:
2153#line 313 "/usr/src/usr.sbin/unbound/util/configparser.y"
2154{
2155 struct config_stub* s;
2156 OUTYY(("\nP(stub_zone:)\n"));
2157 s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
2158 if(s) {
2159 s->next = cfg_parser->cfg->stubs;
2160 cfg_parser->cfg->stubs = s;
2161 } else
2162 yyerrorub_c_error("out of memory");
2163 }
2164break;
2165case 249:
2166#line 330 "/usr/src/usr.sbin/unbound/util/configparser.y"
2167{
2168 struct config_stub* s;
2169 OUTYY(("\nP(forward_zone:)\n"));
2170 s = (struct config_stub*)calloc(1, sizeof(struct config_stub));
2171 if(s) {
2172 s->next = cfg_parser->cfg->forwards;
2173 cfg_parser->cfg->forwards = s;
2174 } else
2175 yyerrorub_c_error("out of memory");
2176 }
2177break;
2178case 258:
2179#line 347 "/usr/src/usr.sbin/unbound/util/configparser.y"
2180{
2181 struct config_view* s;
2182 OUTYY(("\nP(view:)\n"));
2183 s = (struct config_view*)calloc(1, sizeof(struct config_view));
2184 if(s) {
2185 s->next = cfg_parser->cfg->views;
2186 if(s->next && !s->next->name)
2187 yyerrorub_c_error("view without name");
2188 cfg_parser->cfg->views = s;
2189 } else
2190 yyerrorub_c_error("out of memory");
2191 }
2192break;
2193case 268:
2194#line 366 "/usr/src/usr.sbin/unbound/util/configparser.y"
2195{
2196 struct config_auth* s;
2197 OUTYY(("\nP(auth_zone:)\n"));
2198 s = (struct config_auth*)calloc(1, sizeof(struct config_auth));
2199 if(s) {
2200 s->next = cfg_parser->cfg->auths;
2201 cfg_parser->cfg->auths = s;
2202 /* defaults for auth zone */
2203 s->for_downstream = 1;
2204 s->for_upstream = 1;
2205 s->fallback_enabled = 0;
2206 s->zonemd_check = 0;
2207 s->zonemd_reject_absence = 0;
2208 s->isrpz = 0;
2209 } else
2210 yyerrorub_c_error("out of memory");
2211 }
2212break;
2213case 281:
2214#line 392 "/usr/src/usr.sbin/unbound/util/configparser.y"
2215{
2216 uint8_t* bitlist;
2217 size_t len = 0;
2218 OUTYY(("P(server_local_zone_tag:%s)\n", yyvsp[0].str));
2219 bitlist = config_parse_taglist(cfg_parser->cfg, yyvspub_c_vsp[0].str,
2220 &len);
2221 free(yyvspub_c_vsp[0].str);
2222 if(!bitlist) {
2223 yyerrorub_c_error("could not parse tags, (define-tag them first)");
2224 }
2225 if(bitlist) {
2226 cfg_parser->cfg->auths->rpz_taglist = bitlist;
2227 cfg_parser->cfg->auths->rpz_taglistlen = len;
2228
2229 }
2230 }
2231break;
2232case 282:
2233#line 411 "/usr/src/usr.sbin/unbound/util/configparser.y"
2234{
2235 OUTYY(("P(rpz_action_override:%s)\n", yyvsp[0].str));
2236 if(strcmp(yyvspub_c_vsp[0].str, "nxdomain")!=0 && strcmp(yyvspub_c_vsp[0].str, "nodata")!=0 &&
2237 strcmp(yyvspub_c_vsp[0].str, "passthru")!=0 && strcmp(yyvspub_c_vsp[0].str, "drop")!=0 &&
2238 strcmp(yyvspub_c_vsp[0].str, "cname")!=0 && strcmp(yyvspub_c_vsp[0].str, "disabled")!=0) {
2239 yyerrorub_c_error("rpz-action-override action: expected nxdomain, "
2240 "nodata, passthru, drop, cname or disabled");
2241 free(yyvspub_c_vsp[0].str);
2242 cfg_parser->cfg->auths->rpz_action_override = NULL((void*)0);
2243 }
2244 else {
2245 cfg_parser->cfg->auths->rpz_action_override = yyvspub_c_vsp[0].str;
2246 }
2247 }
2248break;
2249case 283:
2250#line 428 "/usr/src/usr.sbin/unbound/util/configparser.y"
2251{
2252 OUTYY(("P(rpz_cname_override:%s)\n", yyvsp[0].str));
2253 free(cfg_parser->cfg->auths->rpz_cname);
2254 cfg_parser->cfg->auths->rpz_cname = yyvspub_c_vsp[0].str;
2255 }
2256break;
2257case 284:
2258#line 436 "/usr/src/usr.sbin/unbound/util/configparser.y"
2259{
2260 OUTYY(("P(rpz_log:%s)\n", yyvsp[0].str));
2261 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2262 yyerrorub_c_error("expected yes or no.");
2263 else cfg_parser->cfg->auths->rpz_log = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2264 free(yyvspub_c_vsp[0].str);
2265 }
2266break;
2267case 285:
2268#line 446 "/usr/src/usr.sbin/unbound/util/configparser.y"
2269{
2270 OUTYY(("P(rpz_log_name:%s)\n", yyvsp[0].str));
2271 free(cfg_parser->cfg->auths->rpz_log_name);
2272 cfg_parser->cfg->auths->rpz_log_name = yyvspub_c_vsp[0].str;
2273 }
2274break;
2275case 286:
2276#line 454 "/usr/src/usr.sbin/unbound/util/configparser.y"
2277{
2278 struct config_auth* s;
2279 OUTYY(("\nP(rpz:)\n"));
2280 s = (struct config_auth*)calloc(1, sizeof(struct config_auth));
2281 if(s) {
2282 s->next = cfg_parser->cfg->auths;
2283 cfg_parser->cfg->auths = s;
2284 /* defaults for RPZ auth zone */
2285 s->for_downstream = 0;
2286 s->for_upstream = 0;
2287 s->fallback_enabled = 0;
2288 s->isrpz = 1;
2289 } else
2290 yyerrorub_c_error("out of memory");
2291 }
2292break;
2293case 299:
2294#line 477 "/usr/src/usr.sbin/unbound/util/configparser.y"
2295{
2296 OUTYY(("P(server_num_threads:%s)\n", yyvsp[0].str));
2297 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2298 yyerrorub_c_error("number expected");
2299 else cfg_parser->cfg->num_threads = atoi(yyvspub_c_vsp[0].str);
2300 free(yyvspub_c_vsp[0].str);
2301 }
2302break;
2303case 300:
2304#line 486 "/usr/src/usr.sbin/unbound/util/configparser.y"
2305{
2306 OUTYY(("P(server_verbosity:%s)\n", yyvsp[0].str));
2307 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2308 yyerrorub_c_error("number expected");
2309 else cfg_parser->cfg->verbosity = atoi(yyvspub_c_vsp[0].str);
2310 free(yyvspub_c_vsp[0].str);
2311 }
2312break;
2313case 301:
2314#line 495 "/usr/src/usr.sbin/unbound/util/configparser.y"
2315{
2316 OUTYY(("P(server_statistics_interval:%s)\n", yyvsp[0].str));
2317 if(strcmp(yyvspub_c_vsp[0].str, "") == 0 || strcmp(yyvspub_c_vsp[0].str, "0") == 0)
2318 cfg_parser->cfg->stat_interval = 0;
2319 else if(atoi(yyvspub_c_vsp[0].str) == 0)
2320 yyerrorub_c_error("number expected");
2321 else cfg_parser->cfg->stat_interval = atoi(yyvspub_c_vsp[0].str);
2322 free(yyvspub_c_vsp[0].str);
2323 }
2324break;
2325case 302:
2326#line 506 "/usr/src/usr.sbin/unbound/util/configparser.y"
2327{
2328 OUTYY(("P(server_statistics_cumulative:%s)\n", yyvsp[0].str));
2329 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2330 yyerrorub_c_error("expected yes or no.");
2331 else cfg_parser->cfg->stat_cumulative = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2332 free(yyvspub_c_vsp[0].str);
2333 }
2334break;
2335case 303:
2336#line 515 "/usr/src/usr.sbin/unbound/util/configparser.y"
2337{
2338 OUTYY(("P(server_extended_statistics:%s)\n", yyvsp[0].str));
2339 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2340 yyerrorub_c_error("expected yes or no.");
2341 else cfg_parser->cfg->stat_extended = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2342 free(yyvspub_c_vsp[0].str);
2343 }
2344break;
2345case 304:
2346#line 524 "/usr/src/usr.sbin/unbound/util/configparser.y"
2347{
2348 OUTYY(("P(server_shm_enable:%s)\n", yyvsp[0].str));
2349 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2350 yyerrorub_c_error("expected yes or no.");
2351 else cfg_parser->cfg->shm_enable = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2352 free(yyvspub_c_vsp[0].str);
2353 }
2354break;
2355case 305:
2356#line 533 "/usr/src/usr.sbin/unbound/util/configparser.y"
2357{
2358 OUTYY(("P(server_shm_key:%s)\n", yyvsp[0].str));
2359 if(strcmp(yyvspub_c_vsp[0].str, "") == 0 || strcmp(yyvspub_c_vsp[0].str, "0") == 0)
2360 cfg_parser->cfg->shm_key = 0;
2361 else if(atoi(yyvspub_c_vsp[0].str) == 0)
2362 yyerrorub_c_error("number expected");
2363 else cfg_parser->cfg->shm_key = atoi(yyvspub_c_vsp[0].str);
2364 free(yyvspub_c_vsp[0].str);
2365 }
2366break;
2367case 306:
2368#line 544 "/usr/src/usr.sbin/unbound/util/configparser.y"
2369{
2370 OUTYY(("P(server_port:%s)\n", yyvsp[0].str));
2371 if(atoi(yyvspub_c_vsp[0].str) == 0)
2372 yyerrorub_c_error("port number expected");
2373 else cfg_parser->cfg->port = atoi(yyvspub_c_vsp[0].str);
2374 free(yyvspub_c_vsp[0].str);
2375 }
2376break;
2377case 307:
2378#line 553 "/usr/src/usr.sbin/unbound/util/configparser.y"
2379{
2380 #ifdef CLIENT_SUBNET
2381 OUTYY(("P(server_send_client_subnet:%s)\n", yyvsp[0].str));
2382 if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, yyvspub_c_vsp[0].str))
2383 fatal_exit("out of memory adding client-subnet");
2384 #else
2385 OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
2386 free(yyvspub_c_vsp[0].str);
2387 #endif
2388 }
2389break;
2390case 308:
2391#line 565 "/usr/src/usr.sbin/unbound/util/configparser.y"
2392{
2393 #ifdef CLIENT_SUBNET
2394 OUTYY(("P(server_client_subnet_zone:%s)\n", yyvsp[0].str));
2395 if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone,
2396 yyvspub_c_vsp[0].str))
2397 fatal_exit("out of memory adding client-subnet-zone");
2398 #else
2399 OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
2400 free(yyvspub_c_vsp[0].str);
2401 #endif
2402 }
2403break;
2404case 309:
2405#line 579 "/usr/src/usr.sbin/unbound/util/configparser.y"
2406{
2407 #ifdef CLIENT_SUBNET
2408 OUTYY(("P(server_client_subnet_always_forward:%s)\n", yyvsp[0].str));
2409 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2410 yyerrorub_c_error("expected yes or no.");
2411 else
2412 cfg_parser->cfg->client_subnet_always_forward =
2413 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2414 #else
2415 OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
2416 #endif
2417 free(yyvspub_c_vsp[0].str);
2418 }
2419break;
2420case 310:
2421#line 594 "/usr/src/usr.sbin/unbound/util/configparser.y"
2422{
2423 #ifdef CLIENT_SUBNET
2424 OUTYY(("P(client_subnet_opcode:%s)\n", yyvsp[0].str));
2425 OUTYY(("P(Deprecated option, ignoring)\n"));
2426 #else
2427 OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
2428 #endif
2429 free(yyvspub_c_vsp[0].str);
2430 }
2431break;
2432case 311:
2433#line 605 "/usr/src/usr.sbin/unbound/util/configparser.y"
2434{
2435 #ifdef CLIENT_SUBNET
2436 OUTYY(("P(max_client_subnet_ipv4:%s)\n", yyvsp[0].str));
2437 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2438 yyerrorub_c_error("IPv4 subnet length expected");
2439 else if (atoi(yyvspub_c_vsp[0].str) > 32)
2440 cfg_parser->cfg->max_client_subnet_ipv4 = 32;
2441 else if (atoi(yyvspub_c_vsp[0].str) < 0)
2442 cfg_parser->cfg->max_client_subnet_ipv4 = 0;
2443 else cfg_parser->cfg->max_client_subnet_ipv4 = (uint8_t)atoi(yyvspub_c_vsp[0].str);
2444 #else
2445 OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
2446 #endif
2447 free(yyvspub_c_vsp[0].str);
2448 }
2449break;
2450case 312:
2451#line 622 "/usr/src/usr.sbin/unbound/util/configparser.y"
2452{
2453 #ifdef CLIENT_SUBNET
2454 OUTYY(("P(max_client_subnet_ipv6:%s)\n", yyvsp[0].str));
2455 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2456 yyerrorub_c_error("Ipv6 subnet length expected");
2457 else if (atoi(yyvspub_c_vsp[0].str) > 128)
2458 cfg_parser->cfg->max_client_subnet_ipv6 = 128;
2459 else if (atoi(yyvspub_c_vsp[0].str) < 0)
2460 cfg_parser->cfg->max_client_subnet_ipv6 = 0;
2461 else cfg_parser->cfg->max_client_subnet_ipv6 = (uint8_t)atoi(yyvspub_c_vsp[0].str);
2462 #else
2463 OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
2464 #endif
2465 free(yyvspub_c_vsp[0].str);
2466 }
2467break;
2468case 313:
2469#line 639 "/usr/src/usr.sbin/unbound/util/configparser.y"
2470{
2471 #ifdef CLIENT_SUBNET
2472 OUTYY(("P(min_client_subnet_ipv4:%s)\n", yyvsp[0].str));
2473 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2474 yyerrorub_c_error("IPv4 subnet length expected");
2475 else if (atoi(yyvspub_c_vsp[0].str) > 32)
2476 cfg_parser->cfg->min_client_subnet_ipv4 = 32;
2477 else if (atoi(yyvspub_c_vsp[0].str) < 0)
2478 cfg_parser->cfg->min_client_subnet_ipv4 = 0;
2479 else cfg_parser->cfg->min_client_subnet_ipv4 = (uint8_t)atoi(yyvspub_c_vsp[0].str);
2480 #else
2481 OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
2482 #endif
2483 free(yyvspub_c_vsp[0].str);
2484 }
2485break;
2486case 314:
2487#line 656 "/usr/src/usr.sbin/unbound/util/configparser.y"
2488{
2489 #ifdef CLIENT_SUBNET
2490 OUTYY(("P(min_client_subnet_ipv6:%s)\n", yyvsp[0].str));
2491 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2492 yyerrorub_c_error("Ipv6 subnet length expected");
2493 else if (atoi(yyvspub_c_vsp[0].str) > 128)
2494 cfg_parser->cfg->min_client_subnet_ipv6 = 128;
2495 else if (atoi(yyvspub_c_vsp[0].str) < 0)
2496 cfg_parser->cfg->min_client_subnet_ipv6 = 0;
2497 else cfg_parser->cfg->min_client_subnet_ipv6 = (uint8_t)atoi(yyvspub_c_vsp[0].str);
2498 #else
2499 OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
2500 #endif
2501 free(yyvspub_c_vsp[0].str);
2502 }
2503break;
2504case 315:
2505#line 673 "/usr/src/usr.sbin/unbound/util/configparser.y"
2506{
2507 #ifdef CLIENT_SUBNET
2508 OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", yyvsp[0].str));
2509 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2510 yyerrorub_c_error("IPv4 ECS tree size expected");
2511 else if (atoi(yyvspub_c_vsp[0].str) < 0)
2512 cfg_parser->cfg->max_ecs_tree_size_ipv4 = 0;
2513 else cfg_parser->cfg->max_ecs_tree_size_ipv4 = (uint32_t)atoi(yyvspub_c_vsp[0].str);
2514 #else
2515 OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
2516 #endif
2517 free(yyvspub_c_vsp[0].str);
2518 }
2519break;
2520case 316:
2521#line 688 "/usr/src/usr.sbin/unbound/util/configparser.y"
2522{
2523 #ifdef CLIENT_SUBNET
2524 OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", yyvsp[0].str));
2525 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2526 yyerrorub_c_error("IPv6 ECS tree size expected");
2527 else if (atoi(yyvspub_c_vsp[0].str) < 0)
2528 cfg_parser->cfg->max_ecs_tree_size_ipv6 = 0;
2529 else cfg_parser->cfg->max_ecs_tree_size_ipv6 = (uint32_t)atoi(yyvspub_c_vsp[0].str);
2530 #else
2531 OUTYY(("P(Compiled without edns subnet option, ignoring)\n"));
2532 #endif
2533 free(yyvspub_c_vsp[0].str);
2534 }
2535break;
2536case 317:
2537#line 703 "/usr/src/usr.sbin/unbound/util/configparser.y"
2538{
2539 OUTYY(("P(server_interface:%s)\n", yyvsp[0].str));
2540 if(cfg_parser->cfg->num_ifs == 0)
2541 cfg_parser->cfg->ifs = calloc(1, sizeof(char*));
2542 else cfg_parser->cfg->ifs = realloc(cfg_parser->cfg->ifs,
2543 (cfg_parser->cfg->num_ifs+1)*sizeof(char*));
2544 if(!cfg_parser->cfg->ifs)
2545 yyerrorub_c_error("out of memory");
2546 else
2547 cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = yyvspub_c_vsp[0].str;
2548 }
2549break;
2550case 318:
2551#line 716 "/usr/src/usr.sbin/unbound/util/configparser.y"
2552{
2553 OUTYY(("P(server_outgoing_interface:%s)\n", yyvsp[0].str));
2554 if(cfg_parser->cfg->num_out_ifs == 0)
2555 cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*));
2556 else cfg_parser->cfg->out_ifs = realloc(
2557 cfg_parser->cfg->out_ifs,
2558 (cfg_parser->cfg->num_out_ifs+1)*sizeof(char*));
2559 if(!cfg_parser->cfg->out_ifs)
2560 yyerrorub_c_error("out of memory");
2561 else
2562 cfg_parser->cfg->out_ifs[
2563 cfg_parser->cfg->num_out_ifs++] = yyvspub_c_vsp[0].str;
2564 }
2565break;
2566case 319:
2567#line 731 "/usr/src/usr.sbin/unbound/util/configparser.y"
2568{
2569 OUTYY(("P(server_outgoing_range:%s)\n", yyvsp[0].str));
2570 if(atoi(yyvspub_c_vsp[0].str) == 0)
2571 yyerrorub_c_error("number expected");
2572 else cfg_parser->cfg->outgoing_num_ports = atoi(yyvspub_c_vsp[0].str);
2573 free(yyvspub_c_vsp[0].str);
2574 }
2575break;
2576case 320:
2577#line 740 "/usr/src/usr.sbin/unbound/util/configparser.y"
2578{
2579 OUTYY(("P(server_outgoing_port_permit:%s)\n", yyvsp[0].str));
2580 if(!cfg_mark_ports(yyvspub_c_vsp[0].str, 1,
2581 cfg_parser->cfg->outgoing_avail_ports, 65536))
2582 yyerrorub_c_error("port number or range (\"low-high\") expected");
2583 free(yyvspub_c_vsp[0].str);
2584 }
2585break;
2586case 321:
2587#line 749 "/usr/src/usr.sbin/unbound/util/configparser.y"
2588{
2589 OUTYY(("P(server_outgoing_port_avoid:%s)\n", yyvsp[0].str));
2590 if(!cfg_mark_ports(yyvspub_c_vsp[0].str, 0,
2591 cfg_parser->cfg->outgoing_avail_ports, 65536))
2592 yyerrorub_c_error("port number or range (\"low-high\") expected");
2593 free(yyvspub_c_vsp[0].str);
2594 }
2595break;
2596case 322:
2597#line 758 "/usr/src/usr.sbin/unbound/util/configparser.y"
2598{
2599 OUTYY(("P(server_outgoing_num_tcp:%s)\n", yyvsp[0].str));
2600 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2601 yyerrorub_c_error("number expected");
2602 else cfg_parser->cfg->outgoing_num_tcp = atoi(yyvspub_c_vsp[0].str);
2603 free(yyvspub_c_vsp[0].str);
2604 }
2605break;
2606case 323:
2607#line 767 "/usr/src/usr.sbin/unbound/util/configparser.y"
2608{
2609 OUTYY(("P(server_incoming_num_tcp:%s)\n", yyvsp[0].str));
2610 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2611 yyerrorub_c_error("number expected");
2612 else cfg_parser->cfg->incoming_num_tcp = atoi(yyvspub_c_vsp[0].str);
2613 free(yyvspub_c_vsp[0].str);
2614 }
2615break;
2616case 324:
2617#line 776 "/usr/src/usr.sbin/unbound/util/configparser.y"
2618{
2619 OUTYY(("P(server_interface_automatic:%s)\n", yyvsp[0].str));
2620 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2621 yyerrorub_c_error("expected yes or no.");
2622 else cfg_parser->cfg->if_automatic = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2623 free(yyvspub_c_vsp[0].str);
2624 }
2625break;
2626case 325:
2627#line 785 "/usr/src/usr.sbin/unbound/util/configparser.y"
2628{
2629 OUTYY(("P(server_do_ip4:%s)\n", yyvsp[0].str));
2630 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2631 yyerrorub_c_error("expected yes or no.");
2632 else cfg_parser->cfg->do_ip4 = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2633 free(yyvspub_c_vsp[0].str);
2634 }
2635break;
2636case 326:
2637#line 794 "/usr/src/usr.sbin/unbound/util/configparser.y"
2638{
2639 OUTYY(("P(server_do_ip6:%s)\n", yyvsp[0].str));
2640 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2641 yyerrorub_c_error("expected yes or no.");
2642 else cfg_parser->cfg->do_ip6 = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2643 free(yyvspub_c_vsp[0].str);
2644 }
2645break;
2646case 327:
2647#line 803 "/usr/src/usr.sbin/unbound/util/configparser.y"
2648{
2649 OUTYY(("P(server_do_udp:%s)\n", yyvsp[0].str));
2650 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2651 yyerrorub_c_error("expected yes or no.");
2652 else cfg_parser->cfg->do_udp = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2653 free(yyvspub_c_vsp[0].str);
2654 }
2655break;
2656case 328:
2657#line 812 "/usr/src/usr.sbin/unbound/util/configparser.y"
2658{
2659 OUTYY(("P(server_do_tcp:%s)\n", yyvsp[0].str));
2660 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2661 yyerrorub_c_error("expected yes or no.");
2662 else cfg_parser->cfg->do_tcp = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2663 free(yyvspub_c_vsp[0].str);
2664 }
2665break;
2666case 329:
2667#line 821 "/usr/src/usr.sbin/unbound/util/configparser.y"
2668{
2669 OUTYY(("P(server_prefer_ip4:%s)\n", yyvsp[0].str));
2670 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2671 yyerrorub_c_error("expected yes or no.");
2672 else cfg_parser->cfg->prefer_ip4 = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2673 free(yyvspub_c_vsp[0].str);
2674 }
2675break;
2676case 330:
2677#line 830 "/usr/src/usr.sbin/unbound/util/configparser.y"
2678{
2679 OUTYY(("P(server_prefer_ip6:%s)\n", yyvsp[0].str));
2680 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2681 yyerrorub_c_error("expected yes or no.");
2682 else cfg_parser->cfg->prefer_ip6 = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2683 free(yyvspub_c_vsp[0].str);
2684 }
2685break;
2686case 331:
2687#line 839 "/usr/src/usr.sbin/unbound/util/configparser.y"
2688{
2689 OUTYY(("P(server_tcp_mss:%s)\n", yyvsp[0].str));
2690 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2691 yyerrorub_c_error("number expected");
2692 else cfg_parser->cfg->tcp_mss = atoi(yyvspub_c_vsp[0].str);
2693 free(yyvspub_c_vsp[0].str);
2694 }
2695break;
2696case 332:
2697#line 848 "/usr/src/usr.sbin/unbound/util/configparser.y"
2698{
2699 OUTYY(("P(server_outgoing_tcp_mss:%s)\n", yyvsp[0].str));
2700 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2701 yyerrorub_c_error("number expected");
2702 else cfg_parser->cfg->outgoing_tcp_mss = atoi(yyvspub_c_vsp[0].str);
2703 free(yyvspub_c_vsp[0].str);
2704 }
2705break;
2706case 333:
2707#line 857 "/usr/src/usr.sbin/unbound/util/configparser.y"
2708{
2709 OUTYY(("P(server_tcp_idle_timeout:%s)\n", yyvsp[0].str));
2710 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2711 yyerrorub_c_error("number expected");
2712 else if (atoi(yyvspub_c_vsp[0].str) > 120000)
2713 cfg_parser->cfg->tcp_idle_timeout = 120000;
2714 else if (atoi(yyvspub_c_vsp[0].str) < 1)
2715 cfg_parser->cfg->tcp_idle_timeout = 1;
2716 else cfg_parser->cfg->tcp_idle_timeout = atoi(yyvspub_c_vsp[0].str);
2717 free(yyvspub_c_vsp[0].str);
2718 }
2719break;
2720case 334:
2721#line 870 "/usr/src/usr.sbin/unbound/util/configparser.y"
2722{
2723 OUTYY(("P(server_max_reuse_tcp_queries:%s)\n", yyvsp[0].str));
2724 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2725 yyerrorub_c_error("number expected");
2726 else if (atoi(yyvspub_c_vsp[0].str) < 1)
2727 cfg_parser->cfg->max_reuse_tcp_queries = 0;
2728 else cfg_parser->cfg->max_reuse_tcp_queries = atoi(yyvspub_c_vsp[0].str);
2729 free(yyvspub_c_vsp[0].str);
2730 }
2731break;
2732case 335:
2733#line 881 "/usr/src/usr.sbin/unbound/util/configparser.y"
2734{
2735 OUTYY(("P(server_tcp_reuse_timeout:%s)\n", yyvsp[0].str));
2736 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2737 yyerrorub_c_error("number expected");
2738 else if (atoi(yyvspub_c_vsp[0].str) < 1)
2739 cfg_parser->cfg->tcp_reuse_timeout = 0;
2740 else cfg_parser->cfg->tcp_reuse_timeout = atoi(yyvspub_c_vsp[0].str);
2741 free(yyvspub_c_vsp[0].str);
2742 }
2743break;
2744case 336:
2745#line 892 "/usr/src/usr.sbin/unbound/util/configparser.y"
2746{
2747 OUTYY(("P(server_tcp_auth_query_timeout:%s)\n", yyvsp[0].str));
2748 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2749 yyerrorub_c_error("number expected");
2750 else if (atoi(yyvspub_c_vsp[0].str) < 1)
2751 cfg_parser->cfg->tcp_auth_query_timeout = 0;
2752 else cfg_parser->cfg->tcp_auth_query_timeout = atoi(yyvspub_c_vsp[0].str);
2753 free(yyvspub_c_vsp[0].str);
2754 }
2755break;
2756case 337:
2757#line 903 "/usr/src/usr.sbin/unbound/util/configparser.y"
2758{
2759 OUTYY(("P(server_tcp_keepalive:%s)\n", yyvsp[0].str));
2760 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2761 yyerrorub_c_error("expected yes or no.");
2762 else cfg_parser->cfg->do_tcp_keepalive = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2763 free(yyvspub_c_vsp[0].str);
2764 }
2765break;
2766case 338:
2767#line 912 "/usr/src/usr.sbin/unbound/util/configparser.y"
2768{
2769 OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", yyvsp[0].str));
2770 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2771 yyerrorub_c_error("number expected");
2772 else if (atoi(yyvspub_c_vsp[0].str) > 6553500)
2773 cfg_parser->cfg->tcp_keepalive_timeout = 6553500;
2774 else if (atoi(yyvspub_c_vsp[0].str) < 1)
2775 cfg_parser->cfg->tcp_keepalive_timeout = 0;
2776 else cfg_parser->cfg->tcp_keepalive_timeout = atoi(yyvspub_c_vsp[0].str);
2777 free(yyvspub_c_vsp[0].str);
2778 }
2779break;
2780case 339:
2781#line 925 "/usr/src/usr.sbin/unbound/util/configparser.y"
2782{
2783 OUTYY(("P(server_tcp_upstream:%s)\n", yyvsp[0].str));
2784 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2785 yyerrorub_c_error("expected yes or no.");
2786 else cfg_parser->cfg->tcp_upstream = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2787 free(yyvspub_c_vsp[0].str);
2788 }
2789break;
2790case 340:
2791#line 934 "/usr/src/usr.sbin/unbound/util/configparser.y"
2792{
2793 OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", yyvsp[0].str));
2794 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2795 yyerrorub_c_error("expected yes or no.");
2796 else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2797 free(yyvspub_c_vsp[0].str);
2798 }
2799break;
2800case 341:
2801#line 943 "/usr/src/usr.sbin/unbound/util/configparser.y"
2802{
2803 OUTYY(("P(server_ssl_upstream:%s)\n", yyvsp[0].str));
2804 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2805 yyerrorub_c_error("expected yes or no.");
2806 else cfg_parser->cfg->ssl_upstream = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2807 free(yyvspub_c_vsp[0].str);
2808 }
2809break;
2810case 342:
2811#line 952 "/usr/src/usr.sbin/unbound/util/configparser.y"
2812{
2813 OUTYY(("P(server_ssl_service_key:%s)\n", yyvsp[0].str));
2814 free(cfg_parser->cfg->ssl_service_key);
2815 cfg_parser->cfg->ssl_service_key = yyvspub_c_vsp[0].str;
2816 }
2817break;
2818case 343:
2819#line 959 "/usr/src/usr.sbin/unbound/util/configparser.y"
2820{
2821 OUTYY(("P(server_ssl_service_pem:%s)\n", yyvsp[0].str));
2822 free(cfg_parser->cfg->ssl_service_pem);
2823 cfg_parser->cfg->ssl_service_pem = yyvspub_c_vsp[0].str;
2824 }
2825break;
2826case 344:
2827#line 966 "/usr/src/usr.sbin/unbound/util/configparser.y"
2828{
2829 OUTYY(("P(server_ssl_port:%s)\n", yyvsp[0].str));
2830 if(atoi(yyvspub_c_vsp[0].str) == 0)
2831 yyerrorub_c_error("port number expected");
2832 else cfg_parser->cfg->ssl_port = atoi(yyvspub_c_vsp[0].str);
2833 free(yyvspub_c_vsp[0].str);
2834 }
2835break;
2836case 345:
2837#line 975 "/usr/src/usr.sbin/unbound/util/configparser.y"
2838{
2839 OUTYY(("P(server_tls_cert_bundle:%s)\n", yyvsp[0].str));
2840 free(cfg_parser->cfg->tls_cert_bundle);
2841 cfg_parser->cfg->tls_cert_bundle = yyvspub_c_vsp[0].str;
2842 }
2843break;
2844case 346:
2845#line 982 "/usr/src/usr.sbin/unbound/util/configparser.y"
2846{
2847 OUTYY(("P(server_tls_win_cert:%s)\n", yyvsp[0].str));
2848 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2849 yyerrorub_c_error("expected yes or no.");
2850 else cfg_parser->cfg->tls_win_cert = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2851 free(yyvspub_c_vsp[0].str);
2852 }
2853break;
2854case 347:
2855#line 991 "/usr/src/usr.sbin/unbound/util/configparser.y"
2856{
2857 OUTYY(("P(server_tls_additional_port:%s)\n", yyvsp[0].str));
2858 if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port,
2859 yyvspub_c_vsp[0].str))
2860 yyerrorub_c_error("out of memory");
2861 }
2862break;
2863case 348:
2864#line 999 "/usr/src/usr.sbin/unbound/util/configparser.y"
2865{
2866 OUTYY(("P(server_tls_ciphers:%s)\n", yyvsp[0].str));
2867 free(cfg_parser->cfg->tls_ciphers);
2868 cfg_parser->cfg->tls_ciphers = yyvspub_c_vsp[0].str;
2869 }
2870break;
2871case 349:
2872#line 1006 "/usr/src/usr.sbin/unbound/util/configparser.y"
2873{
2874 OUTYY(("P(server_tls_ciphersuites:%s)\n", yyvsp[0].str));
2875 free(cfg_parser->cfg->tls_ciphersuites);
2876 cfg_parser->cfg->tls_ciphersuites = yyvspub_c_vsp[0].str;
2877 }
2878break;
2879case 350:
2880#line 1013 "/usr/src/usr.sbin/unbound/util/configparser.y"
2881{
2882 OUTYY(("P(server_tls_session_ticket_keys:%s)\n", yyvsp[0].str));
2883 if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys,
2884 yyvspub_c_vsp[0].str))
2885 yyerrorub_c_error("out of memory");
2886 }
2887break;
2888case 351:
2889#line 1021 "/usr/src/usr.sbin/unbound/util/configparser.y"
2890{
2891 OUTYY(("P(server_tls_use_sni:%s)\n", yyvsp[0].str));
2892 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2893 yyerrorub_c_error("expected yes or no.");
2894 else cfg_parser->cfg->tls_use_sni = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2895 free(yyvspub_c_vsp[0].str);
2896 }
2897break;
2898case 352:
2899#line 1030 "/usr/src/usr.sbin/unbound/util/configparser.y"
2900{
2901 OUTYY(("P(server_https_port:%s)\n", yyvsp[0].str));
2902 if(atoi(yyvspub_c_vsp[0].str) == 0)
2903 yyerrorub_c_error("port number expected");
2904 else cfg_parser->cfg->https_port = atoi(yyvspub_c_vsp[0].str);
2905 free(yyvspub_c_vsp[0].str);
2906 }
2907break;
2908case 353:
2909#line 1038 "/usr/src/usr.sbin/unbound/util/configparser.y"
2910{
2911 OUTYY(("P(server_http_endpoint:%s)\n", yyvsp[0].str));
2912 free(cfg_parser->cfg->http_endpoint);
2913 if(yyvspub_c_vsp[0].str && yyvspub_c_vsp[0].str[0] != '/') {
2914 cfg_parser->cfg->http_endpoint = malloc(strlen(yyvspub_c_vsp[0].str)+2);
2915 if(!cfg_parser->cfg->http_endpoint)
2916 yyerrorub_c_error("out of memory");
2917 cfg_parser->cfg->http_endpoint[0] = '/';
2918 memmove(cfg_parser->cfg->http_endpoint+1, yyvspub_c_vsp[0].str,
2919 strlen(yyvspub_c_vsp[0].str)+1);
2920 free(yyvspub_c_vsp[0].str);
2921 } else {
2922 cfg_parser->cfg->http_endpoint = yyvspub_c_vsp[0].str;
2923 }
2924 }
2925break;
2926case 354:
2927#line 1054 "/usr/src/usr.sbin/unbound/util/configparser.y"
2928{
2929 OUTYY(("P(server_http_max_streams:%s)\n", yyvsp[0].str));
2930 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
2931 yyerrorub_c_error("number expected");
2932 else cfg_parser->cfg->http_max_streams = atoi(yyvspub_c_vsp[0].str);
2933 free(yyvspub_c_vsp[0].str);
2934 }
2935break;
2936case 355:
2937#line 1062 "/usr/src/usr.sbin/unbound/util/configparser.y"
2938{
2939 OUTYY(("P(server_http_query_buffer_size:%s)\n", yyvsp[0].str));
2940 if(!cfg_parse_memsize(yyvspub_c_vsp[0].str,
2941 &cfg_parser->cfg->http_query_buffer_size))
2942 yyerrorub_c_error("memory size expected");
2943 free(yyvspub_c_vsp[0].str);
2944 }
2945break;
2946case 356:
2947#line 1070 "/usr/src/usr.sbin/unbound/util/configparser.y"
2948{
2949 OUTYY(("P(server_http_response_buffer_size:%s)\n", yyvsp[0].str));
2950 if(!cfg_parse_memsize(yyvspub_c_vsp[0].str,
2951 &cfg_parser->cfg->http_response_buffer_size))
2952 yyerrorub_c_error("memory size expected");
2953 free(yyvspub_c_vsp[0].str);
2954 }
2955break;
2956case 357:
2957#line 1078 "/usr/src/usr.sbin/unbound/util/configparser.y"
2958{
2959 OUTYY(("P(server_http_nodelay:%s)\n", yyvsp[0].str));
2960 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2961 yyerrorub_c_error("expected yes or no.");
2962 else cfg_parser->cfg->http_nodelay = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2963 free(yyvspub_c_vsp[0].str);
2964 }
2965break;
2966case 358:
2967#line 1086 "/usr/src/usr.sbin/unbound/util/configparser.y"
2968{
2969 OUTYY(("P(server_http_notls_downstream:%s)\n", yyvsp[0].str));
2970 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2971 yyerrorub_c_error("expected yes or no.");
2972 else cfg_parser->cfg->http_notls_downstream = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2973 free(yyvspub_c_vsp[0].str);
2974 }
2975break;
2976case 359:
2977#line 1094 "/usr/src/usr.sbin/unbound/util/configparser.y"
2978{
2979 OUTYY(("P(server_use_systemd:%s)\n", yyvsp[0].str));
2980 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2981 yyerrorub_c_error("expected yes or no.");
2982 else cfg_parser->cfg->use_systemd = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2983 free(yyvspub_c_vsp[0].str);
2984 }
2985break;
2986case 360:
2987#line 1103 "/usr/src/usr.sbin/unbound/util/configparser.y"
2988{
2989 OUTYY(("P(server_do_daemonize:%s)\n", yyvsp[0].str));
2990 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
2991 yyerrorub_c_error("expected yes or no.");
2992 else cfg_parser->cfg->do_daemonize = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
2993 free(yyvspub_c_vsp[0].str);
2994 }
2995break;
2996case 361:
2997#line 1112 "/usr/src/usr.sbin/unbound/util/configparser.y"
2998{
2999 OUTYY(("P(server_use_syslog:%s)\n", yyvsp[0].str));
3000 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3001 yyerrorub_c_error("expected yes or no.");
3002 else cfg_parser->cfg->use_syslog = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3003#if !defined(HAVE_SYSLOG_H1) && !defined(UB_ON_WINDOWS)
3004 if(strcmp(yyvspub_c_vsp[0].str, "yes") == 0)
3005 yyerrorub_c_error("no syslog services are available. "
3006 "(reconfigure and compile to add)");
3007#endif
3008 free(yyvspub_c_vsp[0].str);
3009 }
3010break;
3011case 362:
3012#line 1126 "/usr/src/usr.sbin/unbound/util/configparser.y"
3013{
3014 OUTYY(("P(server_log_time_ascii:%s)\n", yyvsp[0].str));
3015 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3016 yyerrorub_c_error("expected yes or no.");
3017 else cfg_parser->cfg->log_time_ascii = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3018 free(yyvspub_c_vsp[0].str);
3019 }
3020break;
3021case 363:
3022#line 1135 "/usr/src/usr.sbin/unbound/util/configparser.y"
3023{
3024 OUTYY(("P(server_log_queries:%s)\n", yyvsp[0].str));
3025 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3026 yyerrorub_c_error("expected yes or no.");
3027 else cfg_parser->cfg->log_queries = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3028 free(yyvspub_c_vsp[0].str);
3029 }
3030break;
3031case 364:
3032#line 1144 "/usr/src/usr.sbin/unbound/util/configparser.y"
3033{
3034 OUTYY(("P(server_log_replies:%s)\n", yyvsp[0].str));
3035 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3036 yyerrorub_c_error("expected yes or no.");
3037 else cfg_parser->cfg->log_replies = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3038 free(yyvspub_c_vsp[0].str);
3039 }
3040break;
3041case 365:
3042#line 1153 "/usr/src/usr.sbin/unbound/util/configparser.y"
3043{
3044 OUTYY(("P(server_log_tag_queryreply:%s)\n", yyvsp[0].str));
3045 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3046 yyerrorub_c_error("expected yes or no.");
3047 else cfg_parser->cfg->log_tag_queryreply = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3048 free(yyvspub_c_vsp[0].str);
3049 }
3050break;
3051case 366:
3052#line 1162 "/usr/src/usr.sbin/unbound/util/configparser.y"
3053{
3054 OUTYY(("P(server_log_servfail:%s)\n", yyvsp[0].str));
3055 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3056 yyerrorub_c_error("expected yes or no.");
3057 else cfg_parser->cfg->log_servfail = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3058 free(yyvspub_c_vsp[0].str);
3059 }
3060break;
3061case 367:
3062#line 1171 "/usr/src/usr.sbin/unbound/util/configparser.y"
3063{
3064 OUTYY(("P(server_log_local_actions:%s)\n", yyvsp[0].str));
3065 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3066 yyerrorub_c_error("expected yes or no.");
3067 else cfg_parser->cfg->log_local_actions = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3068 free(yyvspub_c_vsp[0].str);
3069 }
3070break;
3071case 368:
3072#line 1180 "/usr/src/usr.sbin/unbound/util/configparser.y"
3073{
3074 OUTYY(("P(server_chroot:%s)\n", yyvsp[0].str));
3075 free(cfg_parser->cfg->chrootdir);
3076 cfg_parser->cfg->chrootdir = yyvspub_c_vsp[0].str;
3077 }
3078break;
3079case 369:
3080#line 1187 "/usr/src/usr.sbin/unbound/util/configparser.y"
3081{
3082 OUTYY(("P(server_username:%s)\n", yyvsp[0].str));
3083 free(cfg_parser->cfg->username);
3084 cfg_parser->cfg->username = yyvspub_c_vsp[0].str;
3085 }
3086break;
3087case 370:
3088#line 1194 "/usr/src/usr.sbin/unbound/util/configparser.y"
3089{
3090 OUTYY(("P(server_directory:%s)\n", yyvsp[0].str));
3091 free(cfg_parser->cfg->directory);
3092 cfg_parser->cfg->directory = yyvspub_c_vsp[0].str;
3093 /* change there right away for includes relative to this */
3094 if(yyvspub_c_vsp[0].str[0]) {
3095 char* d;
3096#ifdef UB_ON_WINDOWS
3097 w_config_adjust_directory(cfg_parser->cfg);
3098#endif
3099 d = cfg_parser->cfg->directory;
3100 /* adjust directory if we have already chroot,
3101 * like, we reread after sighup */
3102 if(cfg_parser->chroot && cfg_parser->chroot[0] &&
3103 strncmp(d, cfg_parser->chroot, strlen(
3104 cfg_parser->chroot)) == 0)
3105 d += strlen(cfg_parser->chroot);
3106 if(d[0]) {
3107 if(chdir(d))
3108 log_err("cannot chdir to directory: %s (%s)",
3109 d, strerror(errno(*__errno())));
3110 }
3111 }
3112 }
3113break;
3114case 371:
3115#line 1220 "/usr/src/usr.sbin/unbound/util/configparser.y"
3116{
3117 OUTYY(("P(server_logfile:%s)\n", yyvsp[0].str));
3118 free(cfg_parser->cfg->logfile);
3119 cfg_parser->cfg->logfile = yyvspub_c_vsp[0].str;
3120 cfg_parser->cfg->use_syslog = 0;
3121 }
3122break;
3123case 372:
3124#line 1228 "/usr/src/usr.sbin/unbound/util/configparser.y"
3125{
3126 OUTYY(("P(server_pidfile:%s)\n", yyvsp[0].str));
3127 free(cfg_parser->cfg->pidfile);
3128 cfg_parser->cfg->pidfile = yyvspub_c_vsp[0].str;
3129 }
3130break;
3131case 373:
3132#line 1235 "/usr/src/usr.sbin/unbound/util/configparser.y"
3133{
3134 OUTYY(("P(server_root_hints:%s)\n", yyvsp[0].str));
3135 if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, yyvspub_c_vsp[0].str))
3136 yyerrorub_c_error("out of memory");
3137 }
3138break;
3139case 374:
3140#line 1242 "/usr/src/usr.sbin/unbound/util/configparser.y"
3141{
3142 OUTYY(("P(server_dlv_anchor_file:%s)\n", yyvsp[0].str));
3143 log_warn("option dlv-anchor-file ignored: DLV is decommissioned");
3144 free(yyvspub_c_vsp[0].str);
3145 }
3146break;
3147case 375:
3148#line 1249 "/usr/src/usr.sbin/unbound/util/configparser.y"
3149{
3150 OUTYY(("P(server_dlv_anchor:%s)\n", yyvsp[0].str));
3151 log_warn("option dlv-anchor ignored: DLV is decommissioned");
3152 free(yyvspub_c_vsp[0].str);
3153 }
3154break;
3155case 376:
3156#line 1256 "/usr/src/usr.sbin/unbound/util/configparser.y"
3157{
3158 OUTYY(("P(server_auto_trust_anchor_file:%s)\n", yyvsp[0].str));
3159 if(!cfg_strlist_insert(&cfg_parser->cfg->
3160 auto_trust_anchor_file_list, yyvspub_c_vsp[0].str))
3161 yyerrorub_c_error("out of memory");
3162 }
3163break;
3164case 377:
3165#line 1264 "/usr/src/usr.sbin/unbound/util/configparser.y"
3166{
3167 OUTYY(("P(server_trust_anchor_file:%s)\n", yyvsp[0].str));
3168 if(!cfg_strlist_insert(&cfg_parser->cfg->
3169 trust_anchor_file_list, yyvspub_c_vsp[0].str))
3170 yyerrorub_c_error("out of memory");
3171 }
3172break;
3173case 378:
3174#line 1272 "/usr/src/usr.sbin/unbound/util/configparser.y"
3175{
3176 OUTYY(("P(server_trusted_keys_file:%s)\n", yyvsp[0].str));
3177 if(!cfg_strlist_insert(&cfg_parser->cfg->
3178 trusted_keys_file_list, yyvspub_c_vsp[0].str))
3179 yyerrorub_c_error("out of memory");
3180 }
3181break;
3182case 379:
3183#line 1280 "/usr/src/usr.sbin/unbound/util/configparser.y"
3184{
3185 OUTYY(("P(server_trust_anchor:%s)\n", yyvsp[0].str));
3186 if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, yyvspub_c_vsp[0].str))
3187 yyerrorub_c_error("out of memory");
3188 }
3189break;
3190case 380:
3191#line 1287 "/usr/src/usr.sbin/unbound/util/configparser.y"
3192{
3193 OUTYY(("P(server_trust_anchor_signaling:%s)\n", yyvsp[0].str));
3194 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3195 yyerrorub_c_error("expected yes or no.");
3196 else
3197 cfg_parser->cfg->trust_anchor_signaling =
3198 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3199 free(yyvspub_c_vsp[0].str);
3200 }
3201break;
3202case 381:
3203#line 1298 "/usr/src/usr.sbin/unbound/util/configparser.y"
3204{
3205 OUTYY(("P(server_root_key_sentinel:%s)\n", yyvsp[0].str));
3206 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3207 yyerrorub_c_error("expected yes or no.");
3208 else
3209 cfg_parser->cfg->root_key_sentinel =
3210 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3211 free(yyvspub_c_vsp[0].str);
3212 }
3213break;
3214case 382:
3215#line 1309 "/usr/src/usr.sbin/unbound/util/configparser.y"
3216{
3217 OUTYY(("P(server_domain_insecure:%s)\n", yyvsp[0].str));
3218 if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, yyvspub_c_vsp[0].str))
3219 yyerrorub_c_error("out of memory");
3220 }
3221break;
3222case 383:
3223#line 1316 "/usr/src/usr.sbin/unbound/util/configparser.y"
3224{
3225 OUTYY(("P(server_hide_identity:%s)\n", yyvsp[0].str));
3226 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3227 yyerrorub_c_error("expected yes or no.");
3228 else cfg_parser->cfg->hide_identity = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3229 free(yyvspub_c_vsp[0].str);
3230 }
3231break;
3232case 384:
3233#line 1325 "/usr/src/usr.sbin/unbound/util/configparser.y"
3234{
3235 OUTYY(("P(server_hide_version:%s)\n", yyvsp[0].str));
3236 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3237 yyerrorub_c_error("expected yes or no.");
3238 else cfg_parser->cfg->hide_version = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3239 free(yyvspub_c_vsp[0].str);
3240 }
3241break;
3242case 385:
3243#line 1334 "/usr/src/usr.sbin/unbound/util/configparser.y"
3244{
3245 OUTYY(("P(server_hide_trustanchor:%s)\n", yyvsp[0].str));
3246 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3247 yyerrorub_c_error("expected yes or no.");
3248 else cfg_parser->cfg->hide_trustanchor = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3249 free(yyvspub_c_vsp[0].str);
3250 }
3251break;
3252case 386:
3253#line 1343 "/usr/src/usr.sbin/unbound/util/configparser.y"
3254{
3255 OUTYY(("P(server_hide_user_agent:%s)\n", yyvsp[0].str));
3256 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3257 yyerrorub_c_error("expected yes or no.");
3258 else cfg_parser->cfg->hide_http_user_agent = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3259 free(yyvspub_c_vsp[0].str);
3260 }
3261break;
3262case 387:
3263#line 1352 "/usr/src/usr.sbin/unbound/util/configparser.y"
3264{
3265 OUTYY(("P(server_identity:%s)\n", yyvsp[0].str));
3266 free(cfg_parser->cfg->identity);
3267 cfg_parser->cfg->identity = yyvspub_c_vsp[0].str;
3268 }
3269break;
3270case 388:
3271#line 1359 "/usr/src/usr.sbin/unbound/util/configparser.y"
3272{
3273 OUTYY(("P(server_version:%s)\n", yyvsp[0].str));
3274 free(cfg_parser->cfg->version);
3275 cfg_parser->cfg->version = yyvspub_c_vsp[0].str;
3276 }
3277break;
3278case 389:
3279#line 1366 "/usr/src/usr.sbin/unbound/util/configparser.y"
3280{
3281 OUTYY(("P(server_http_user_agent:%s)\n", yyvsp[0].str));
3282 free(cfg_parser->cfg->http_user_agent);
3283 cfg_parser->cfg->http_user_agent = yyvspub_c_vsp[0].str;
3284 }
3285break;
3286case 390:
3287#line 1373 "/usr/src/usr.sbin/unbound/util/configparser.y"
3288{
3289 OUTYY(("P(server_nsid:%s)\n", yyvsp[0].str));
3290 free(cfg_parser->cfg->nsid_cfg_str);
3291 cfg_parser->cfg->nsid_cfg_str = yyvspub_c_vsp[0].str;
3292 free(cfg_parser->cfg->nsid);
3293 cfg_parser->cfg->nsid = NULL((void*)0);
3294 cfg_parser->cfg->nsid_len = 0;
3295 if (*yyvspub_c_vsp[0].str == 0)
3296 ; /* pass; empty string is not setting nsid */
3297 else if (!(cfg_parser->cfg->nsid = cfg_parse_nsid(
3298 yyvspub_c_vsp[0].str, &cfg_parser->cfg->nsid_len)))
3299 yyerrorub_c_error("the NSID must be either a hex string or an "
3300 "ascii character string prepended with ascii_.");
3301 }
3302break;
3303case 391:
3304#line 1389 "/usr/src/usr.sbin/unbound/util/configparser.y"
3305{
3306 OUTYY(("P(server_so_rcvbuf:%s)\n", yyvsp[0].str));
3307 if(!cfg_parse_memsize(yyvspub_c_vsp[0].str, &cfg_parser->cfg->so_rcvbuf))
3308 yyerrorub_c_error("buffer size expected");
3309 free(yyvspub_c_vsp[0].str);
3310 }
3311break;
3312case 392:
3313#line 1397 "/usr/src/usr.sbin/unbound/util/configparser.y"
3314{
3315 OUTYY(("P(server_so_sndbuf:%s)\n", yyvsp[0].str));
3316 if(!cfg_parse_memsize(yyvspub_c_vsp[0].str, &cfg_parser->cfg->so_sndbuf))
3317 yyerrorub_c_error("buffer size expected");
3318 free(yyvspub_c_vsp[0].str);
3319 }
3320break;
3321case 393:
3322#line 1405 "/usr/src/usr.sbin/unbound/util/configparser.y"
3323{
3324 OUTYY(("P(server_so_reuseport:%s)\n", yyvsp[0].str));
3325 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3326 yyerrorub_c_error("expected yes or no.");
3327 else cfg_parser->cfg->so_reuseport =
3328 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3329 free(yyvspub_c_vsp[0].str);
3330 }
3331break;
3332case 394:
3333#line 1415 "/usr/src/usr.sbin/unbound/util/configparser.y"
3334{
3335 OUTYY(("P(server_ip_transparent:%s)\n", yyvsp[0].str));
3336 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3337 yyerrorub_c_error("expected yes or no.");
3338 else cfg_parser->cfg->ip_transparent =
3339 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3340 free(yyvspub_c_vsp[0].str);
3341 }
3342break;
3343case 395:
3344#line 1425 "/usr/src/usr.sbin/unbound/util/configparser.y"
3345{
3346 OUTYY(("P(server_ip_freebind:%s)\n", yyvsp[0].str));
3347 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3348 yyerrorub_c_error("expected yes or no.");
3349 else cfg_parser->cfg->ip_freebind =
3350 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3351 free(yyvspub_c_vsp[0].str);
3352 }
3353break;
3354case 396:
3355#line 1435 "/usr/src/usr.sbin/unbound/util/configparser.y"
3356{
3357 OUTYY(("P(server_ip_dscp:%s)\n", yyvsp[0].str));
3358 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
3359 yyerrorub_c_error("number expected");
3360 else if (atoi(yyvspub_c_vsp[0].str) > 63)
3361 yyerrorub_c_error("value too large (max 63)");
3362 else if (atoi(yyvspub_c_vsp[0].str) < 0)
3363 yyerrorub_c_error("value too small (min 0)");
3364 else
3365 cfg_parser->cfg->ip_dscp = atoi(yyvspub_c_vsp[0].str);
3366 free(yyvspub_c_vsp[0].str);
3367 }
3368break;
3369case 397:
3370#line 1449 "/usr/src/usr.sbin/unbound/util/configparser.y"
3371{
3372 OUTYY(("P(server_stream_wait_size:%s)\n", yyvsp[0].str));
3373 if(!cfg_parse_memsize(yyvspub_c_vsp[0].str, &cfg_parser->cfg->stream_wait_size))
3374 yyerrorub_c_error("memory size expected");
3375 free(yyvspub_c_vsp[0].str);
3376 }
3377break;
3378case 398:
3379#line 1457 "/usr/src/usr.sbin/unbound/util/configparser.y"
3380{
3381 OUTYY(("P(server_edns_buffer_size:%s)\n", yyvsp[0].str));
3382 if(atoi(yyvspub_c_vsp[0].str) == 0)
3383 yyerrorub_c_error("number expected");
3384 else if (atoi(yyvspub_c_vsp[0].str) < 12)
3385 yyerrorub_c_error("edns buffer size too small");
3386 else if (atoi(yyvspub_c_vsp[0].str) > 65535)
3387 cfg_parser->cfg->edns_buffer_size = 65535;
3388 else cfg_parser->cfg->edns_buffer_size = atoi(yyvspub_c_vsp[0].str);
3389 free(yyvspub_c_vsp[0].str);
3390 }
3391break;
3392case 399:
3393#line 1470 "/usr/src/usr.sbin/unbound/util/configparser.y"
3394{
3395 OUTYY(("P(server_msg_buffer_size:%s)\n", yyvsp[0].str));
3396 if(atoi(yyvspub_c_vsp[0].str) == 0)
3397 yyerrorub_c_error("number expected");
3398 else if (atoi(yyvspub_c_vsp[0].str) < 4096)
3399 yyerrorub_c_error("message buffer size too small (use 4096)");
3400 else cfg_parser->cfg->msg_buffer_size = atoi(yyvspub_c_vsp[0].str);
3401 free(yyvspub_c_vsp[0].str);
3402 }
3403break;
3404case 400:
3405#line 1481 "/usr/src/usr.sbin/unbound/util/configparser.y"
3406{
3407 OUTYY(("P(server_msg_cache_size:%s)\n", yyvsp[0].str));
3408 if(!cfg_parse_memsize(yyvspub_c_vsp[0].str, &cfg_parser->cfg->msg_cache_size))
3409 yyerrorub_c_error("memory size expected");
3410 free(yyvspub_c_vsp[0].str);
3411 }
3412break;
3413case 401:
3414#line 1489 "/usr/src/usr.sbin/unbound/util/configparser.y"
3415{
3416 OUTYY(("P(server_msg_cache_slabs:%s)\n", yyvsp[0].str));
3417 if(atoi(yyvspub_c_vsp[0].str) == 0)
3418 yyerrorub_c_error("number expected");
3419 else {
3420 cfg_parser->cfg->msg_cache_slabs = atoi(yyvspub_c_vsp[0].str);
3421 if(!is_pow2(cfg_parser->cfg->msg_cache_slabs))
3422 yyerrorub_c_error("must be a power of 2");
3423 }
3424 free(yyvspub_c_vsp[0].str);
3425 }
3426break;
3427case 402:
3428#line 1502 "/usr/src/usr.sbin/unbound/util/configparser.y"
3429{
3430 OUTYY(("P(server_num_queries_per_thread:%s)\n", yyvsp[0].str));
3431 if(atoi(yyvspub_c_vsp[0].str) == 0)
3432 yyerrorub_c_error("number expected");
3433 else cfg_parser->cfg->num_queries_per_thread = atoi(yyvspub_c_vsp[0].str);
3434 free(yyvspub_c_vsp[0].str);
3435 }
3436break;
3437case 403:
3438#line 1511 "/usr/src/usr.sbin/unbound/util/configparser.y"
3439{
3440 OUTYY(("P(server_jostle_timeout:%s)\n", yyvsp[0].str));
3441 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
3442 yyerrorub_c_error("number expected");
3443 else cfg_parser->cfg->jostle_time = atoi(yyvspub_c_vsp[0].str);
3444 free(yyvspub_c_vsp[0].str);
3445 }
3446break;
3447case 404:
3448#line 1520 "/usr/src/usr.sbin/unbound/util/configparser.y"
3449{
3450 OUTYY(("P(server_delay_close:%s)\n", yyvsp[0].str));
3451 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
3452 yyerrorub_c_error("number expected");
3453 else cfg_parser->cfg->delay_close = atoi(yyvspub_c_vsp[0].str);
3454 free(yyvspub_c_vsp[0].str);
3455 }
3456break;
3457case 405:
3458#line 1529 "/usr/src/usr.sbin/unbound/util/configparser.y"
3459{
3460 OUTYY(("P(server_udp_connect:%s)\n", yyvsp[0].str));
3461 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3462 yyerrorub_c_error("expected yes or no.");
3463 else cfg_parser->cfg->udp_connect = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3464 free(yyvspub_c_vsp[0].str);
3465 }
3466break;
3467case 406:
3468#line 1538 "/usr/src/usr.sbin/unbound/util/configparser.y"
3469{
3470 OUTYY(("P(server_unblock_lan_zones:%s)\n", yyvsp[0].str));
3471 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3472 yyerrorub_c_error("expected yes or no.");
3473 else cfg_parser->cfg->unblock_lan_zones =
3474 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3475 free(yyvspub_c_vsp[0].str);
3476 }
3477break;
3478case 407:
3479#line 1548 "/usr/src/usr.sbin/unbound/util/configparser.y"
3480{
3481 OUTYY(("P(server_insecure_lan_zones:%s)\n", yyvsp[0].str));
3482 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3483 yyerrorub_c_error("expected yes or no.");
3484 else cfg_parser->cfg->insecure_lan_zones =
3485 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3486 free(yyvspub_c_vsp[0].str);
3487 }
3488break;
3489case 408:
3490#line 1558 "/usr/src/usr.sbin/unbound/util/configparser.y"
3491{
3492 OUTYY(("P(server_rrset_cache_size:%s)\n", yyvsp[0].str));
3493 if(!cfg_parse_memsize(yyvspub_c_vsp[0].str, &cfg_parser->cfg->rrset_cache_size))
3494 yyerrorub_c_error("memory size expected");
3495 free(yyvspub_c_vsp[0].str);
3496 }
3497break;
3498case 409:
3499#line 1566 "/usr/src/usr.sbin/unbound/util/configparser.y"
3500{
3501 OUTYY(("P(server_rrset_cache_slabs:%s)\n", yyvsp[0].str));
3502 if(atoi(yyvspub_c_vsp[0].str) == 0)
3503 yyerrorub_c_error("number expected");
3504 else {
3505 cfg_parser->cfg->rrset_cache_slabs = atoi(yyvspub_c_vsp[0].str);
3506 if(!is_pow2(cfg_parser->cfg->rrset_cache_slabs))
3507 yyerrorub_c_error("must be a power of 2");
3508 }
3509 free(yyvspub_c_vsp[0].str);
3510 }
3511break;
3512case 410:
3513#line 1579 "/usr/src/usr.sbin/unbound/util/configparser.y"
3514{
3515 OUTYY(("P(server_infra_host_ttl:%s)\n", yyvsp[0].str));
3516 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
3517 yyerrorub_c_error("number expected");
3518 else cfg_parser->cfg->host_ttl = atoi(yyvspub_c_vsp[0].str);
3519 free(yyvspub_c_vsp[0].str);
3520 }
3521break;
3522case 411:
3523#line 1588 "/usr/src/usr.sbin/unbound/util/configparser.y"
3524{
3525 OUTYY(("P(server_infra_lame_ttl:%s)\n", yyvsp[0].str));
3526 verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option "
3527 "removed, use infra-host-ttl)", yyvspub_c_vsp[0].str);
3528 free(yyvspub_c_vsp[0].str);
3529 }
3530break;
3531case 412:
3532#line 1596 "/usr/src/usr.sbin/unbound/util/configparser.y"
3533{
3534 OUTYY(("P(server_infra_cache_numhosts:%s)\n", yyvsp[0].str));
3535 if(atoi(yyvspub_c_vsp[0].str) == 0)
3536 yyerrorub_c_error("number expected");
3537 else cfg_parser->cfg->infra_cache_numhosts = atoi(yyvspub_c_vsp[0].str);
3538 free(yyvspub_c_vsp[0].str);
3539 }
3540break;
3541case 413:
3542#line 1605 "/usr/src/usr.sbin/unbound/util/configparser.y"
3543{
3544 OUTYY(("P(server_infra_cache_lame_size:%s)\n", yyvsp[0].str));
3545 verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s "
3546 "(option removed, use infra-cache-numhosts)", yyvspub_c_vsp[0].str);
3547 free(yyvspub_c_vsp[0].str);
3548 }
3549break;
3550case 414:
3551#line 1613 "/usr/src/usr.sbin/unbound/util/configparser.y"
3552{
3553 OUTYY(("P(server_infra_cache_slabs:%s)\n", yyvsp[0].str));
3554 if(atoi(yyvspub_c_vsp[0].str) == 0)
3555 yyerrorub_c_error("number expected");
3556 else {
3557 cfg_parser->cfg->infra_cache_slabs = atoi(yyvspub_c_vsp[0].str);
3558 if(!is_pow2(cfg_parser->cfg->infra_cache_slabs))
3559 yyerrorub_c_error("must be a power of 2");
3560 }
3561 free(yyvspub_c_vsp[0].str);
3562 }
3563break;
3564case 415:
3565#line 1626 "/usr/src/usr.sbin/unbound/util/configparser.y"
3566{
3567 OUTYY(("P(server_infra_cache_min_rtt:%s)\n", yyvsp[0].str));
3568 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
3569 yyerrorub_c_error("number expected");
3570 else cfg_parser->cfg->infra_cache_min_rtt = atoi(yyvspub_c_vsp[0].str);
3571 free(yyvspub_c_vsp[0].str);
3572 }
3573break;
3574case 416:
3575#line 1635 "/usr/src/usr.sbin/unbound/util/configparser.y"
3576{
3577 OUTYY(("P(server_infra_keep_probing:%s)\n", yyvsp[0].str));
3578 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3579 yyerrorub_c_error("expected yes or no.");
3580 else cfg_parser->cfg->infra_keep_probing =
3581 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3582 free(yyvspub_c_vsp[0].str);
3583 }
3584break;
3585case 417:
3586#line 1645 "/usr/src/usr.sbin/unbound/util/configparser.y"
3587{
3588 OUTYY(("P(server_target_fetch_policy:%s)\n", yyvsp[0].str));
3589 free(cfg_parser->cfg->target_fetch_policy);
3590 cfg_parser->cfg->target_fetch_policy = yyvspub_c_vsp[0].str;
3591 }
3592break;
3593case 418:
3594#line 1652 "/usr/src/usr.sbin/unbound/util/configparser.y"
3595{
3596 OUTYY(("P(server_harden_short_bufsize:%s)\n", yyvsp[0].str));
3597 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3598 yyerrorub_c_error("expected yes or no.");
3599 else cfg_parser->cfg->harden_short_bufsize =
3600 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3601 free(yyvspub_c_vsp[0].str);
3602 }
3603break;
3604case 419:
3605#line 1662 "/usr/src/usr.sbin/unbound/util/configparser.y"
3606{
3607 OUTYY(("P(server_harden_large_queries:%s)\n", yyvsp[0].str));
3608 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3609 yyerrorub_c_error("expected yes or no.");
3610 else cfg_parser->cfg->harden_large_queries =
3611 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3612 free(yyvspub_c_vsp[0].str);
3613 }
3614break;
3615case 420:
3616#line 1672 "/usr/src/usr.sbin/unbound/util/configparser.y"
3617{
3618 OUTYY(("P(server_harden_glue:%s)\n", yyvsp[0].str));
3619 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3620 yyerrorub_c_error("expected yes or no.");
3621 else cfg_parser->cfg->harden_glue =
3622 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3623 free(yyvspub_c_vsp[0].str);
3624 }
3625break;
3626case 421:
3627#line 1682 "/usr/src/usr.sbin/unbound/util/configparser.y"
3628{
3629 OUTYY(("P(server_harden_dnssec_stripped:%s)\n", yyvsp[0].str));
3630 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3631 yyerrorub_c_error("expected yes or no.");
3632 else cfg_parser->cfg->harden_dnssec_stripped =
3633 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3634 free(yyvspub_c_vsp[0].str);
3635 }
3636break;
3637case 422:
3638#line 1692 "/usr/src/usr.sbin/unbound/util/configparser.y"
3639{
3640 OUTYY(("P(server_harden_below_nxdomain:%s)\n", yyvsp[0].str));
3641 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3642 yyerrorub_c_error("expected yes or no.");
3643 else cfg_parser->cfg->harden_below_nxdomain =
3644 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3645 free(yyvspub_c_vsp[0].str);
3646 }
3647break;
3648case 423:
3649#line 1702 "/usr/src/usr.sbin/unbound/util/configparser.y"
3650{
3651 OUTYY(("P(server_harden_referral_path:%s)\n", yyvsp[0].str));
3652 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3653 yyerrorub_c_error("expected yes or no.");
3654 else cfg_parser->cfg->harden_referral_path =
3655 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3656 free(yyvspub_c_vsp[0].str);
3657 }
3658break;
3659case 424:
3660#line 1712 "/usr/src/usr.sbin/unbound/util/configparser.y"
3661{
3662 OUTYY(("P(server_harden_algo_downgrade:%s)\n", yyvsp[0].str));
3663 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3664 yyerrorub_c_error("expected yes or no.");
3665 else cfg_parser->cfg->harden_algo_downgrade =
3666 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3667 free(yyvspub_c_vsp[0].str);
3668 }
3669break;
3670case 425:
3671#line 1722 "/usr/src/usr.sbin/unbound/util/configparser.y"
3672{
3673 OUTYY(("P(server_use_caps_for_id:%s)\n", yyvsp[0].str));
3674 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3675 yyerrorub_c_error("expected yes or no.");
3676 else cfg_parser->cfg->use_caps_bits_for_id =
3677 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3678 free(yyvspub_c_vsp[0].str);
3679 }
3680break;
3681case 426:
3682#line 1732 "/usr/src/usr.sbin/unbound/util/configparser.y"
3683{
3684 OUTYY(("P(server_caps_whitelist:%s)\n", yyvsp[0].str));
3685 if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, yyvspub_c_vsp[0].str))
3686 yyerrorub_c_error("out of memory");
3687 }
3688break;
3689case 427:
3690#line 1739 "/usr/src/usr.sbin/unbound/util/configparser.y"
3691{
3692 OUTYY(("P(server_private_address:%s)\n", yyvsp[0].str));
3693 if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, yyvspub_c_vsp[0].str))
3694 yyerrorub_c_error("out of memory");
3695 }
3696break;
3697case 428:
3698#line 1746 "/usr/src/usr.sbin/unbound/util/configparser.y"
3699{
3700 OUTYY(("P(server_private_domain:%s)\n", yyvsp[0].str));
3701 if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, yyvspub_c_vsp[0].str))
3702 yyerrorub_c_error("out of memory");
3703 }
3704break;
3705case 429:
3706#line 1753 "/usr/src/usr.sbin/unbound/util/configparser.y"
3707{
3708 OUTYY(("P(server_prefetch:%s)\n", yyvsp[0].str));
3709 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3710 yyerrorub_c_error("expected yes or no.");
3711 else cfg_parser->cfg->prefetch = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3712 free(yyvspub_c_vsp[0].str);
3713 }
3714break;
3715case 430:
3716#line 1762 "/usr/src/usr.sbin/unbound/util/configparser.y"
3717{
3718 OUTYY(("P(server_prefetch_key:%s)\n", yyvsp[0].str));
3719 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3720 yyerrorub_c_error("expected yes or no.");
3721 else cfg_parser->cfg->prefetch_key = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3722 free(yyvspub_c_vsp[0].str);
3723 }
3724break;
3725case 431:
3726#line 1771 "/usr/src/usr.sbin/unbound/util/configparser.y"
3727{
3728 OUTYY(("P(server_deny_any:%s)\n", yyvsp[0].str));
3729 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3730 yyerrorub_c_error("expected yes or no.");
3731 else cfg_parser->cfg->deny_any = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3732 free(yyvspub_c_vsp[0].str);
3733 }
3734break;
3735case 432:
3736#line 1780 "/usr/src/usr.sbin/unbound/util/configparser.y"
3737{
3738 OUTYY(("P(server_unwanted_reply_threshold:%s)\n", yyvsp[0].str));
3739 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
3740 yyerrorub_c_error("number expected");
3741 else cfg_parser->cfg->unwanted_threshold = atoi(yyvspub_c_vsp[0].str);
3742 free(yyvspub_c_vsp[0].str);
3743 }
3744break;
3745case 433:
3746#line 1789 "/usr/src/usr.sbin/unbound/util/configparser.y"
3747{
3748 OUTYY(("P(server_do_not_query_address:%s)\n", yyvsp[0].str));
3749 if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, yyvspub_c_vsp[0].str))
3750 yyerrorub_c_error("out of memory");
3751 }
3752break;
3753case 434:
3754#line 1796 "/usr/src/usr.sbin/unbound/util/configparser.y"
3755{
3756 OUTYY(("P(server_do_not_query_localhost:%s)\n", yyvsp[0].str));
3757 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3758 yyerrorub_c_error("expected yes or no.");
3759 else cfg_parser->cfg->donotquery_localhost =
3760 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3761 free(yyvspub_c_vsp[0].str);
3762 }
3763break;
3764case 435:
3765#line 1806 "/usr/src/usr.sbin/unbound/util/configparser.y"
3766{
3767 OUTYY(("P(server_access_control:%s %s)\n", yyvsp[-1].str, yyvsp[0].str));
3768 if(strcmp(yyvspub_c_vsp[0].str, "deny")!=0 && strcmp(yyvspub_c_vsp[0].str, "refuse")!=0 &&
3769 strcmp(yyvspub_c_vsp[0].str, "deny_non_local")!=0 &&
3770 strcmp(yyvspub_c_vsp[0].str, "refuse_non_local")!=0 &&
3771 strcmp(yyvspub_c_vsp[0].str, "allow_setrd")!=0 &&
3772 strcmp(yyvspub_c_vsp[0].str, "allow")!=0 &&
3773 strcmp(yyvspub_c_vsp[0].str, "allow_snoop")!=0) {
3774 yyerrorub_c_error("expected deny, refuse, deny_non_local, "
3775 "refuse_non_local, allow, allow_setrd or "
3776 "allow_snoop in access control action");
3777 free(yyvspub_c_vsp[-1].str);
3778 free(yyvspub_c_vsp[0].str);
3779 } else {
3780 if(!cfg_str2list_insert(&cfg_parser->cfg->acls, yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str))
3781 fatal_exit("out of memory adding acl");
3782 }
3783 }
3784break;
3785case 436:
3786#line 1826 "/usr/src/usr.sbin/unbound/util/configparser.y"
3787{
3788 OUTYY(("P(server_module_conf:%s)\n", yyvsp[0].str));
3789 free(cfg_parser->cfg->module_conf);
3790 cfg_parser->cfg->module_conf = yyvspub_c_vsp[0].str;
3791 }
3792break;
3793case 437:
3794#line 1833 "/usr/src/usr.sbin/unbound/util/configparser.y"
3795{
3796 OUTYY(("P(server_val_override_date:%s)\n", yyvsp[0].str));
3797 if(*yyvspub_c_vsp[0].str == '\0' || strcmp(yyvspub_c_vsp[0].str, "0") == 0) {
3798 cfg_parser->cfg->val_date_override = 0;
3799 } else if(strlen(yyvspub_c_vsp[0].str) == 14) {
3800 cfg_parser->cfg->val_date_override =
3801 cfg_convert_timeval(yyvspub_c_vsp[0].str);
3802 if(!cfg_parser->cfg->val_date_override)
3803 yyerrorub_c_error("bad date/time specification");
3804 } else {
3805 if(atoi(yyvspub_c_vsp[0].str) == 0)
3806 yyerrorub_c_error("number expected");
3807 cfg_parser->cfg->val_date_override = atoi(yyvspub_c_vsp[0].str);
3808 }
3809 free(yyvspub_c_vsp[0].str);
3810 }
3811break;
3812case 438:
3813#line 1851 "/usr/src/usr.sbin/unbound/util/configparser.y"
3814{
3815 OUTYY(("P(server_val_sig_skew_min:%s)\n", yyvsp[0].str));
3816 if(*yyvspub_c_vsp[0].str == '\0' || strcmp(yyvspub_c_vsp[0].str, "0") == 0) {
3817 cfg_parser->cfg->val_sig_skew_min = 0;
3818 } else {
3819 cfg_parser->cfg->val_sig_skew_min = atoi(yyvspub_c_vsp[0].str);
3820 if(!cfg_parser->cfg->val_sig_skew_min)
3821 yyerrorub_c_error("number expected");
3822 }
3823 free(yyvspub_c_vsp[0].str);
3824 }
3825break;
3826case 439:
3827#line 1864 "/usr/src/usr.sbin/unbound/util/configparser.y"
3828{
3829 OUTYY(("P(server_val_sig_skew_max:%s)\n", yyvsp[0].str));
3830 if(*yyvspub_c_vsp[0].str == '\0' || strcmp(yyvspub_c_vsp[0].str, "0") == 0) {
3831 cfg_parser->cfg->val_sig_skew_max = 0;
3832 } else {
3833 cfg_parser->cfg->val_sig_skew_max = atoi(yyvspub_c_vsp[0].str);
3834 if(!cfg_parser->cfg->val_sig_skew_max)
3835 yyerrorub_c_error("number expected");
3836 }
3837 free(yyvspub_c_vsp[0].str);
3838 }
3839break;
3840case 440:
3841#line 1877 "/usr/src/usr.sbin/unbound/util/configparser.y"
3842{
3843 OUTYY(("P(server_val_max_restart:%s)\n", yyvsp[0].str));
3844 if(*yyvspub_c_vsp[0].str == '\0' || strcmp(yyvspub_c_vsp[0].str, "0") == 0) {
3845 cfg_parser->cfg->val_max_restart = 0;
3846 } else {
3847 cfg_parser->cfg->val_max_restart = atoi(yyvspub_c_vsp[0].str);
3848 if(!cfg_parser->cfg->val_max_restart)
3849 yyerrorub_c_error("number expected");
3850 }
3851 free(yyvspub_c_vsp[0].str);
3852 }
3853break;
3854case 441:
3855#line 1890 "/usr/src/usr.sbin/unbound/util/configparser.y"
3856{
3857 OUTYY(("P(server_cache_max_ttl:%s)\n", yyvsp[0].str));
3858 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
3859 yyerrorub_c_error("number expected");
3860 else cfg_parser->cfg->max_ttl = atoi(yyvspub_c_vsp[0].str);
3861 free(yyvspub_c_vsp[0].str);
3862 }
3863break;
3864case 442:
3865#line 1899 "/usr/src/usr.sbin/unbound/util/configparser.y"
3866{
3867 OUTYY(("P(server_cache_max_negative_ttl:%s)\n", yyvsp[0].str));
3868 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
3869 yyerrorub_c_error("number expected");
3870 else cfg_parser->cfg->max_negative_ttl = atoi(yyvspub_c_vsp[0].str);
3871 free(yyvspub_c_vsp[0].str);
3872 }
3873break;
3874case 443:
3875#line 1908 "/usr/src/usr.sbin/unbound/util/configparser.y"
3876{
3877 OUTYY(("P(server_cache_min_ttl:%s)\n", yyvsp[0].str));
3878 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
3879 yyerrorub_c_error("number expected");
3880 else cfg_parser->cfg->min_ttl = atoi(yyvspub_c_vsp[0].str);
3881 free(yyvspub_c_vsp[0].str);
3882 }
3883break;
3884case 444:
3885#line 1917 "/usr/src/usr.sbin/unbound/util/configparser.y"
3886{
3887 OUTYY(("P(server_bogus_ttl:%s)\n", yyvsp[0].str));
3888 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
3889 yyerrorub_c_error("number expected");
3890 else cfg_parser->cfg->bogus_ttl = atoi(yyvspub_c_vsp[0].str);
3891 free(yyvspub_c_vsp[0].str);
3892 }
3893break;
3894case 445:
3895#line 1926 "/usr/src/usr.sbin/unbound/util/configparser.y"
3896{
3897 OUTYY(("P(server_val_clean_additional:%s)\n", yyvsp[0].str));
3898 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3899 yyerrorub_c_error("expected yes or no.");
3900 else cfg_parser->cfg->val_clean_additional =
3901 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3902 free(yyvspub_c_vsp[0].str);
3903 }
3904break;
3905case 446:
3906#line 1936 "/usr/src/usr.sbin/unbound/util/configparser.y"
3907{
3908 OUTYY(("P(server_val_permissive_mode:%s)\n", yyvsp[0].str));
3909 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3910 yyerrorub_c_error("expected yes or no.");
3911 else cfg_parser->cfg->val_permissive_mode =
3912 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3913 free(yyvspub_c_vsp[0].str);
3914 }
3915break;
3916case 447:
3917#line 1946 "/usr/src/usr.sbin/unbound/util/configparser.y"
3918{
3919 OUTYY(("P(server_aggressive_nsec:%s)\n", yyvsp[0].str));
3920 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3921 yyerrorub_c_error("expected yes or no.");
3922 else
3923 cfg_parser->cfg->aggressive_nsec =
3924 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3925 free(yyvspub_c_vsp[0].str);
3926 }
3927break;
3928case 448:
3929#line 1957 "/usr/src/usr.sbin/unbound/util/configparser.y"
3930{
3931 OUTYY(("P(server_ignore_cd_flag:%s)\n", yyvsp[0].str));
3932 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3933 yyerrorub_c_error("expected yes or no.");
3934 else cfg_parser->cfg->ignore_cd = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3935 free(yyvspub_c_vsp[0].str);
3936 }
3937break;
3938case 449:
3939#line 1966 "/usr/src/usr.sbin/unbound/util/configparser.y"
3940{
3941 OUTYY(("P(server_serve_expired:%s)\n", yyvsp[0].str));
3942 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3943 yyerrorub_c_error("expected yes or no.");
3944 else cfg_parser->cfg->serve_expired = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3945 free(yyvspub_c_vsp[0].str);
3946 }
3947break;
3948case 450:
3949#line 1975 "/usr/src/usr.sbin/unbound/util/configparser.y"
3950{
3951 OUTYY(("P(server_serve_expired_ttl:%s)\n", yyvsp[0].str));
3952 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
3953 yyerrorub_c_error("number expected");
3954 else cfg_parser->cfg->serve_expired_ttl = atoi(yyvspub_c_vsp[0].str);
3955 free(yyvspub_c_vsp[0].str);
3956 }
3957break;
3958case 451:
3959#line 1984 "/usr/src/usr.sbin/unbound/util/configparser.y"
3960{
3961 OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", yyvsp[0].str));
3962 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3963 yyerrorub_c_error("expected yes or no.");
3964 else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3965 free(yyvspub_c_vsp[0].str);
3966 }
3967break;
3968case 452:
3969#line 1993 "/usr/src/usr.sbin/unbound/util/configparser.y"
3970{
3971 OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", yyvsp[0].str));
3972 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
3973 yyerrorub_c_error("number expected");
3974 else cfg_parser->cfg->serve_expired_reply_ttl = atoi(yyvspub_c_vsp[0].str);
3975 free(yyvspub_c_vsp[0].str);
3976 }
3977break;
3978case 453:
3979#line 2002 "/usr/src/usr.sbin/unbound/util/configparser.y"
3980{
3981 OUTYY(("P(server_serve_expired_client_timeout:%s)\n", yyvsp[0].str));
3982 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
3983 yyerrorub_c_error("number expected");
3984 else cfg_parser->cfg->serve_expired_client_timeout = atoi(yyvspub_c_vsp[0].str);
3985 free(yyvspub_c_vsp[0].str);
3986 }
3987break;
3988case 454:
3989#line 2011 "/usr/src/usr.sbin/unbound/util/configparser.y"
3990{
3991 OUTYY(("P(server_serve_original_ttl:%s)\n", yyvsp[0].str));
3992 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
3993 yyerrorub_c_error("expected yes or no.");
3994 else cfg_parser->cfg->serve_original_ttl = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
3995 free(yyvspub_c_vsp[0].str);
3996 }
3997break;
3998case 455:
3999#line 2020 "/usr/src/usr.sbin/unbound/util/configparser.y"
4000{
4001 OUTYY(("P(server_fake_dsa:%s)\n", yyvsp[0].str));
4002 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4003 yyerrorub_c_error("expected yes or no.");
4004#if defined(HAVE_SSL) || defined(HAVE_NETTLE)
4005 else fake_dsa = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4006 if(fake_dsa)
4007 log_warn("test option fake_dsa is enabled");
4008#endif
4009 free(yyvspub_c_vsp[0].str);
4010 }
4011break;
4012case 456:
4013#line 2033 "/usr/src/usr.sbin/unbound/util/configparser.y"
4014{
4015 OUTYY(("P(server_fake_sha1:%s)\n", yyvsp[0].str));
4016 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4017 yyerrorub_c_error("expected yes or no.");
4018#if defined(HAVE_SSL) || defined(HAVE_NETTLE)
4019 else fake_sha1 = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4020 if(fake_sha1)
4021 log_warn("test option fake_sha1 is enabled");
4022#endif
4023 free(yyvspub_c_vsp[0].str);
4024 }
4025break;
4026case 457:
4027#line 2046 "/usr/src/usr.sbin/unbound/util/configparser.y"
4028{
4029 OUTYY(("P(server_val_log_level:%s)\n", yyvsp[0].str));
4030 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
4031 yyerrorub_c_error("number expected");
4032 else cfg_parser->cfg->val_log_level = atoi(yyvspub_c_vsp[0].str);
4033 free(yyvspub_c_vsp[0].str);
4034 }
4035break;
4036case 458:
4037#line 2055 "/usr/src/usr.sbin/unbound/util/configparser.y"
4038{
4039 OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", yyvsp[0].str));
4040 free(cfg_parser->cfg->val_nsec3_key_iterations);
4041 cfg_parser->cfg->val_nsec3_key_iterations = yyvspub_c_vsp[0].str;
4042 }
4043break;
4044case 459:
4045#line 2062 "/usr/src/usr.sbin/unbound/util/configparser.y"
4046{
4047 OUTYY(("P(server_zonemd_permissive_mode:%s)\n", yyvsp[0].str));
4048 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4049 yyerrorub_c_error("expected yes or no.");
4050 else cfg_parser->cfg->zonemd_permissive_mode = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4051 free(yyvspub_c_vsp[0].str);
4052 }
4053break;
4054case 460:
4055#line 2071 "/usr/src/usr.sbin/unbound/util/configparser.y"
4056{
4057 OUTYY(("P(server_add_holddown:%s)\n", yyvsp[0].str));
4058 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
4059 yyerrorub_c_error("number expected");
4060 else cfg_parser->cfg->add_holddown = atoi(yyvspub_c_vsp[0].str);
4061 free(yyvspub_c_vsp[0].str);
4062 }
4063break;
4064case 461:
4065#line 2080 "/usr/src/usr.sbin/unbound/util/configparser.y"
4066{
4067 OUTYY(("P(server_del_holddown:%s)\n", yyvsp[0].str));
4068 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
4069 yyerrorub_c_error("number expected");
4070 else cfg_parser->cfg->del_holddown = atoi(yyvspub_c_vsp[0].str);
4071 free(yyvspub_c_vsp[0].str);
4072 }
4073break;
4074case 462:
4075#line 2089 "/usr/src/usr.sbin/unbound/util/configparser.y"
4076{
4077 OUTYY(("P(server_keep_missing:%s)\n", yyvsp[0].str));
4078 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
4079 yyerrorub_c_error("number expected");
4080 else cfg_parser->cfg->keep_missing = atoi(yyvspub_c_vsp[0].str);
4081 free(yyvspub_c_vsp[0].str);
4082 }
4083break;
4084case 463:
4085#line 2098 "/usr/src/usr.sbin/unbound/util/configparser.y"
4086{
4087 OUTYY(("P(server_permit_small_holddown:%s)\n", yyvsp[0].str));
4088 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4089 yyerrorub_c_error("expected yes or no.");
4090 else cfg_parser->cfg->permit_small_holddown =
4091 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4092 free(yyvspub_c_vsp[0].str);
4093 }
4094break;
4095case 464:
4096#line 2107 "/usr/src/usr.sbin/unbound/util/configparser.y"
4097{
4098 OUTYY(("P(server_key_cache_size:%s)\n", yyvsp[0].str));
4099 if(!cfg_parse_memsize(yyvspub_c_vsp[0].str, &cfg_parser->cfg->key_cache_size))
4100 yyerrorub_c_error("memory size expected");
4101 free(yyvspub_c_vsp[0].str);
4102 }
4103break;
4104case 465:
4105#line 2115 "/usr/src/usr.sbin/unbound/util/configparser.y"
4106{
4107 OUTYY(("P(server_key_cache_slabs:%s)\n", yyvsp[0].str));
4108 if(atoi(yyvspub_c_vsp[0].str) == 0)
4109 yyerrorub_c_error("number expected");
4110 else {
4111 cfg_parser->cfg->key_cache_slabs = atoi(yyvspub_c_vsp[0].str);
4112 if(!is_pow2(cfg_parser->cfg->key_cache_slabs))
4113 yyerrorub_c_error("must be a power of 2");
4114 }
4115 free(yyvspub_c_vsp[0].str);
4116 }
4117break;
4118case 466:
4119#line 2128 "/usr/src/usr.sbin/unbound/util/configparser.y"
4120{
4121 OUTYY(("P(server_neg_cache_size:%s)\n", yyvsp[0].str));
4122 if(!cfg_parse_memsize(yyvspub_c_vsp[0].str, &cfg_parser->cfg->neg_cache_size))
4123 yyerrorub_c_error("memory size expected");
4124 free(yyvspub_c_vsp[0].str);
4125 }
4126break;
4127case 467:
4128#line 2136 "/usr/src/usr.sbin/unbound/util/configparser.y"
4129{
4130 OUTYY(("P(server_local_zone:%s %s)\n", yyvsp[-1].str, yyvsp[0].str));
4131 if(strcmp(yyvspub_c_vsp[0].str, "static")!=0 && strcmp(yyvspub_c_vsp[0].str, "deny")!=0 &&
4132 strcmp(yyvspub_c_vsp[0].str, "refuse")!=0 && strcmp(yyvspub_c_vsp[0].str, "redirect")!=0 &&
4133 strcmp(yyvspub_c_vsp[0].str, "transparent")!=0 && strcmp(yyvspub_c_vsp[0].str, "nodefault")!=0
4134 && strcmp(yyvspub_c_vsp[0].str, "typetransparent")!=0
4135 && strcmp(yyvspub_c_vsp[0].str, "always_transparent")!=0
4136 && strcmp(yyvspub_c_vsp[0].str, "always_refuse")!=0
4137 && strcmp(yyvspub_c_vsp[0].str, "always_nxdomain")!=0
4138 && strcmp(yyvspub_c_vsp[0].str, "always_nodata")!=0
4139 && strcmp(yyvspub_c_vsp[0].str, "always_deny")!=0
4140 && strcmp(yyvspub_c_vsp[0].str, "always_null")!=0
4141 && strcmp(yyvspub_c_vsp[0].str, "noview")!=0
4142 && strcmp(yyvspub_c_vsp[0].str, "inform")!=0 && strcmp(yyvspub_c_vsp[0].str, "inform_deny")!=0
4143 && strcmp(yyvspub_c_vsp[0].str, "inform_redirect") != 0
4144 && strcmp(yyvspub_c_vsp[0].str, "ipset") != 0) {
4145 yyerrorub_c_error("local-zone type: expected static, deny, "
4146 "refuse, redirect, transparent, "
4147 "typetransparent, inform, inform_deny, "
4148 "inform_redirect, always_transparent, "
4149 "always_refuse, always_nxdomain, "
4150 "always_nodata, always_deny, always_null, "
4151 "noview, nodefault or ipset");
4152 free(yyvspub_c_vsp[-1].str);
4153 free(yyvspub_c_vsp[0].str);
4154 } else if(strcmp(yyvspub_c_vsp[0].str, "nodefault")==0) {
4155 if(!cfg_strlist_insert(&cfg_parser->cfg->
4156 local_zones_nodefault, yyvspub_c_vsp[-1].str))
4157 fatal_exit("out of memory adding local-zone");
4158 free(yyvspub_c_vsp[0].str);
4159#ifdef USE_IPSET
4160 } else if(strcmp(yyvspub_c_vsp[0].str, "ipset")==0) {
4161 if(!cfg_strlist_insert(&cfg_parser->cfg->
4162 local_zones_ipset, yyvspub_c_vsp[-1].str))
4163 fatal_exit("out of memory adding local-zone");
4164 free(yyvspub_c_vsp[0].str);
4165#endif
4166 } else {
4167 if(!cfg_str2list_insert(&cfg_parser->cfg->local_zones,
4168 yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str))
4169 fatal_exit("out of memory adding local-zone");
4170 }
4171 }
4172break;
4173case 468:
4174#line 2181 "/usr/src/usr.sbin/unbound/util/configparser.y"
4175{
4176 OUTYY(("P(server_local_data:%s)\n", yyvsp[0].str));
4177 if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, yyvspub_c_vsp[0].str))
4178 fatal_exit("out of memory adding local-data");
4179 }
4180break;
4181case 469:
4182#line 2188 "/usr/src/usr.sbin/unbound/util/configparser.y"
4183{
4184 char* ptr;
4185 OUTYY(("P(server_local_data_ptr:%s)\n", yyvsp[0].str));
4186 ptr = cfg_ptr_reverse(yyvspub_c_vsp[0].str);
4187 free(yyvspub_c_vsp[0].str);
4188 if(ptr) {
4189 if(!cfg_strlist_insert(&cfg_parser->cfg->
4190 local_data, ptr))
4191 fatal_exit("out of memory adding local-data");
4192 } else {
4193 yyerrorub_c_error("local-data-ptr could not be reversed");
4194 }
4195 }
4196break;
4197case 470:
4198#line 2203 "/usr/src/usr.sbin/unbound/util/configparser.y"
4199{
4200 OUTYY(("P(server_minimal_responses:%s)\n", yyvsp[0].str));
4201 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4202 yyerrorub_c_error("expected yes or no.");
4203 else cfg_parser->cfg->minimal_responses =
4204 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4205 free(yyvspub_c_vsp[0].str);
4206 }
4207break;
4208case 471:
4209#line 2213 "/usr/src/usr.sbin/unbound/util/configparser.y"
4210{
4211 OUTYY(("P(server_rrset_roundrobin:%s)\n", yyvsp[0].str));
4212 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4213 yyerrorub_c_error("expected yes or no.");
4214 else cfg_parser->cfg->rrset_roundrobin =
4215 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4216 free(yyvspub_c_vsp[0].str);
4217 }
4218break;
4219case 472:
4220#line 2223 "/usr/src/usr.sbin/unbound/util/configparser.y"
4221{
4222 OUTYY(("P(server_unknown_server_time_limit:%s)\n", yyvsp[0].str));
4223 cfg_parser->cfg->unknown_server_time_limit = atoi(yyvspub_c_vsp[0].str);
4224 free(yyvspub_c_vsp[0].str);
4225 }
4226break;
4227case 473:
4228#line 2230 "/usr/src/usr.sbin/unbound/util/configparser.y"
4229{
4230 OUTYY(("P(server_max_udp_size:%s)\n", yyvsp[0].str));
4231 cfg_parser->cfg->max_udp_size = atoi(yyvspub_c_vsp[0].str);
4232 free(yyvspub_c_vsp[0].str);
4233 }
4234break;
4235case 474:
4236#line 2237 "/usr/src/usr.sbin/unbound/util/configparser.y"
4237{
4238 OUTYY(("P(dns64_prefix:%s)\n", yyvsp[0].str));
4239 free(cfg_parser->cfg->dns64_prefix);
4240 cfg_parser->cfg->dns64_prefix = yyvspub_c_vsp[0].str;
4241 }
4242break;
4243case 475:
4244#line 2244 "/usr/src/usr.sbin/unbound/util/configparser.y"
4245{
4246 OUTYY(("P(server_dns64_synthall:%s)\n", yyvsp[0].str));
4247 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4248 yyerrorub_c_error("expected yes or no.");
4249 else cfg_parser->cfg->dns64_synthall = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4250 free(yyvspub_c_vsp[0].str);
4251 }
4252break;
4253case 476:
4254#line 2253 "/usr/src/usr.sbin/unbound/util/configparser.y"
4255{
4256 OUTYY(("P(dns64_ignore_aaaa:%s)\n", yyvsp[0].str));
4257 if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa,
4258 yyvspub_c_vsp[0].str))
4259 fatal_exit("out of memory adding dns64-ignore-aaaa");
4260 }
4261break;
4262case 477:
4263#line 2261 "/usr/src/usr.sbin/unbound/util/configparser.y"
4264{
4265 char* p, *s = yyvspub_c_vsp[0].str;
4266 OUTYY(("P(server_define_tag:%s)\n", yyvsp[0].str));
4267 while((p=strsep(&s, " \t\n")) != NULL((void*)0)) {
4268 if(*p) {
4269 if(!config_add_tag(cfg_parser->cfg, p))
4270 yyerrorub_c_error("could not define-tag, "
4271 "out of memory");
4272 }
4273 }
4274 free(yyvspub_c_vsp[0].str);
4275 }
4276break;
4277case 478:
4278#line 2275 "/usr/src/usr.sbin/unbound/util/configparser.y"
4279{
4280 size_t len = 0;
4281 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, yyvspub_c_vsp[0].str,
4282 &len);
4283 free(yyvspub_c_vsp[0].str);
4284 OUTYY(("P(server_local_zone_tag:%s)\n", yyvsp[-1].str));
4285 if(!bitlist) {
4286 yyerrorub_c_error("could not parse tags, (define-tag them first)");
4287 free(yyvspub_c_vsp[-1].str);
4288 }
4289 if(bitlist) {
4290 if(!cfg_strbytelist_insert(
4291 &cfg_parser->cfg->local_zone_tags,
4292 yyvspub_c_vsp[-1].str, bitlist, len)) {
4293 yyerrorub_c_error("out of memory");
4294 free(yyvspub_c_vsp[-1].str);
4295 }
4296 }
4297 }
4298break;
4299case 479:
4300#line 2296 "/usr/src/usr.sbin/unbound/util/configparser.y"
4301{
4302 size_t len = 0;
4303 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, yyvspub_c_vsp[0].str,
4304 &len);
4305 free(yyvspub_c_vsp[0].str);
4306 OUTYY(("P(server_access_control_tag:%s)\n", yyvsp[-1].str));
4307 if(!bitlist) {
4308 yyerrorub_c_error("could not parse tags, (define-tag them first)");
4309 free(yyvspub_c_vsp[-1].str);
4310 }
4311 if(bitlist) {
4312 if(!cfg_strbytelist_insert(
4313 &cfg_parser->cfg->acl_tags,
4314 yyvspub_c_vsp[-1].str, bitlist, len)) {
4315 yyerrorub_c_error("out of memory");
4316 free(yyvspub_c_vsp[-1].str);
4317 }
4318 }
4319 }
4320break;
4321case 480:
4322#line 2317 "/usr/src/usr.sbin/unbound/util/configparser.y"
4323{
4324 OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str));
4325 if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions,
4326 yyvspub_c_vsp[-2].str, yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str)) {
4327 yyerrorub_c_error("out of memory");
4328 free(yyvspub_c_vsp[-2].str);
4329 free(yyvspub_c_vsp[-1].str);
4330 free(yyvspub_c_vsp[0].str);
4331 }
4332 }
4333break;
4334case 481:
4335#line 2329 "/usr/src/usr.sbin/unbound/util/configparser.y"
4336{
4337 OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str));
4338 if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas,
4339 yyvspub_c_vsp[-2].str, yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str)) {
4340 yyerrorub_c_error("out of memory");
4341 free(yyvspub_c_vsp[-2].str);
4342 free(yyvspub_c_vsp[-1].str);
4343 free(yyvspub_c_vsp[0].str);
4344 }
4345 }
4346break;
4347case 482:
4348#line 2341 "/usr/src/usr.sbin/unbound/util/configparser.y"
4349{
4350 OUTYY(("P(server_local_zone_override:%s %s %s)\n", yyvsp[-2].str, yyvsp[-1].str, yyvsp[0].str));
4351 if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides,
4352 yyvspub_c_vsp[-2].str, yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str)) {
4353 yyerrorub_c_error("out of memory");
4354 free(yyvspub_c_vsp[-2].str);
4355 free(yyvspub_c_vsp[-1].str);
4356 free(yyvspub_c_vsp[0].str);
4357 }
4358 }
4359break;
4360case 483:
4361#line 2353 "/usr/src/usr.sbin/unbound/util/configparser.y"
4362{
4363 OUTYY(("P(server_access_control_view:%s %s)\n", yyvsp[-1].str, yyvsp[0].str));
4364 if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view,
4365 yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str)) {
4366 yyerrorub_c_error("out of memory");
4367 }
4368 }
4369break;
4370case 484:
4371#line 2362 "/usr/src/usr.sbin/unbound/util/configparser.y"
4372{
4373 size_t len = 0;
4374 uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, yyvspub_c_vsp[0].str,
4375 &len);
4376 free(yyvspub_c_vsp[0].str);
4377 OUTYY(("P(response_ip_tag:%s)\n", yyvsp[-1].str));
4378 if(!bitlist) {
4379 yyerrorub_c_error("could not parse tags, (define-tag them first)");
4380 free(yyvspub_c_vsp[-1].str);
4381 }
4382 if(bitlist) {
4383 if(!cfg_strbytelist_insert(
4384 &cfg_parser->cfg->respip_tags,
4385 yyvspub_c_vsp[-1].str, bitlist, len)) {
4386 yyerrorub_c_error("out of memory");
4387 free(yyvspub_c_vsp[-1].str);
4388 }
4389 }
4390 }
4391break;
4392case 485:
4393#line 2383 "/usr/src/usr.sbin/unbound/util/configparser.y"
4394{
4395 OUTYY(("P(server_ip_ratelimit:%s)\n", yyvsp[0].str));
4396 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
4397 yyerrorub_c_error("number expected");
4398 else cfg_parser->cfg->ip_ratelimit = atoi(yyvspub_c_vsp[0].str);
4399 free(yyvspub_c_vsp[0].str);
4400 }
4401break;
4402case 486:
4403#line 2393 "/usr/src/usr.sbin/unbound/util/configparser.y"
4404{
4405 OUTYY(("P(server_ratelimit:%s)\n", yyvsp[0].str));
4406 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
4407 yyerrorub_c_error("number expected");
4408 else cfg_parser->cfg->ratelimit = atoi(yyvspub_c_vsp[0].str);
4409 free(yyvspub_c_vsp[0].str);
4410 }
4411break;
4412case 487:
4413#line 2402 "/usr/src/usr.sbin/unbound/util/configparser.y"
4414{
4415 OUTYY(("P(server_ip_ratelimit_size:%s)\n", yyvsp[0].str));
4416 if(!cfg_parse_memsize(yyvspub_c_vsp[0].str, &cfg_parser->cfg->ip_ratelimit_size))
4417 yyerrorub_c_error("memory size expected");
4418 free(yyvspub_c_vsp[0].str);
4419 }
4420break;
4421case 488:
4422#line 2410 "/usr/src/usr.sbin/unbound/util/configparser.y"
4423{
4424 OUTYY(("P(server_ratelimit_size:%s)\n", yyvsp[0].str));
4425 if(!cfg_parse_memsize(yyvspub_c_vsp[0].str, &cfg_parser->cfg->ratelimit_size))
4426 yyerrorub_c_error("memory size expected");
4427 free(yyvspub_c_vsp[0].str);
4428 }
4429break;
4430case 489:
4431#line 2418 "/usr/src/usr.sbin/unbound/util/configparser.y"
4432{
4433 OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", yyvsp[0].str));
4434 if(atoi(yyvspub_c_vsp[0].str) == 0)
4435 yyerrorub_c_error("number expected");
4436 else {
4437 cfg_parser->cfg->ip_ratelimit_slabs = atoi(yyvspub_c_vsp[0].str);
4438 if(!is_pow2(cfg_parser->cfg->ip_ratelimit_slabs))
4439 yyerrorub_c_error("must be a power of 2");
4440 }
4441 free(yyvspub_c_vsp[0].str);
4442 }
4443break;
4444case 490:
4445#line 2431 "/usr/src/usr.sbin/unbound/util/configparser.y"
4446{
4447 OUTYY(("P(server_ratelimit_slabs:%s)\n", yyvsp[0].str));
4448 if(atoi(yyvspub_c_vsp[0].str) == 0)
4449 yyerrorub_c_error("number expected");
4450 else {
4451 cfg_parser->cfg->ratelimit_slabs = atoi(yyvspub_c_vsp[0].str);
4452 if(!is_pow2(cfg_parser->cfg->ratelimit_slabs))
4453 yyerrorub_c_error("must be a power of 2");
4454 }
4455 free(yyvspub_c_vsp[0].str);
4456 }
4457break;
4458case 491:
4459#line 2444 "/usr/src/usr.sbin/unbound/util/configparser.y"
4460{
4461 OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", yyvsp[-1].str, yyvsp[0].str));
4462 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0) {
4463 yyerrorub_c_error("number expected");
4464 free(yyvspub_c_vsp[-1].str);
4465 free(yyvspub_c_vsp[0].str);
4466 } else {
4467 if(!cfg_str2list_insert(&cfg_parser->cfg->
4468 ratelimit_for_domain, yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str))
4469 fatal_exit("out of memory adding "
4470 "ratelimit-for-domain");
4471 }
4472 }
4473break;
4474case 492:
4475#line 2459 "/usr/src/usr.sbin/unbound/util/configparser.y"
4476{
4477 OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", yyvsp[-1].str, yyvsp[0].str));
4478 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0) {
4479 yyerrorub_c_error("number expected");
4480 free(yyvspub_c_vsp[-1].str);
4481 free(yyvspub_c_vsp[0].str);
4482 } else {
4483 if(!cfg_str2list_insert(&cfg_parser->cfg->
4484 ratelimit_below_domain, yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str))
4485 fatal_exit("out of memory adding "
4486 "ratelimit-below-domain");
4487 }
4488 }
4489break;
4490case 493:
4491#line 2474 "/usr/src/usr.sbin/unbound/util/configparser.y"
4492{
4493 OUTYY(("P(server_ip_ratelimit_factor:%s)\n", yyvsp[0].str));
4494 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
4495 yyerrorub_c_error("number expected");
4496 else cfg_parser->cfg->ip_ratelimit_factor = atoi(yyvspub_c_vsp[0].str);
4497 free(yyvspub_c_vsp[0].str);
4498 }
4499break;
4500case 494:
4501#line 2483 "/usr/src/usr.sbin/unbound/util/configparser.y"
4502{
4503 OUTYY(("P(server_ratelimit_factor:%s)\n", yyvsp[0].str));
4504 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
4505 yyerrorub_c_error("number expected");
4506 else cfg_parser->cfg->ratelimit_factor = atoi(yyvspub_c_vsp[0].str);
4507 free(yyvspub_c_vsp[0].str);
4508 }
4509break;
4510case 495:
4511#line 2492 "/usr/src/usr.sbin/unbound/util/configparser.y"
4512{
4513 OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n"));
4514 free(yyvspub_c_vsp[0].str);
4515 }
4516break;
4517case 496:
4518#line 2498 "/usr/src/usr.sbin/unbound/util/configparser.y"
4519{
4520 OUTYY(("P(server_fast_server_num:%s)\n", yyvsp[0].str));
4521 if(atoi(yyvspub_c_vsp[0].str) <= 0)
4522 yyerrorub_c_error("number expected");
4523 else cfg_parser->cfg->fast_server_num = atoi(yyvspub_c_vsp[0].str);
4524 free(yyvspub_c_vsp[0].str);
4525 }
4526break;
4527case 497:
4528#line 2507 "/usr/src/usr.sbin/unbound/util/configparser.y"
4529{
4530 OUTYY(("P(server_fast_server_permil:%s)\n", yyvsp[0].str));
4531 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
4532 yyerrorub_c_error("number expected");
4533 else cfg_parser->cfg->fast_server_permil = atoi(yyvspub_c_vsp[0].str);
4534 free(yyvspub_c_vsp[0].str);
4535 }
4536break;
4537case 498:
4538#line 2516 "/usr/src/usr.sbin/unbound/util/configparser.y"
4539{
4540 OUTYY(("P(server_qname_minimisation:%s)\n", yyvsp[0].str));
4541 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4542 yyerrorub_c_error("expected yes or no.");
4543 else cfg_parser->cfg->qname_minimisation =
4544 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4545 free(yyvspub_c_vsp[0].str);
4546 }
4547break;
4548case 499:
4549#line 2526 "/usr/src/usr.sbin/unbound/util/configparser.y"
4550{
4551 OUTYY(("P(server_qname_minimisation_strict:%s)\n", yyvsp[0].str));
4552 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4553 yyerrorub_c_error("expected yes or no.");
4554 else cfg_parser->cfg->qname_minimisation_strict =
4555 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4556 free(yyvspub_c_vsp[0].str);
4557 }
4558break;
4559case 500:
4560#line 2536 "/usr/src/usr.sbin/unbound/util/configparser.y"
4561{
4562 OUTYY(("P(server_pad_responses:%s)\n", yyvsp[0].str));
4563 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4564 yyerrorub_c_error("expected yes or no.");
4565 else cfg_parser->cfg->pad_responses =
4566 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4567 free(yyvspub_c_vsp[0].str);
4568 }
4569break;
4570case 501:
4571#line 2546 "/usr/src/usr.sbin/unbound/util/configparser.y"
4572{
4573 OUTYY(("P(server_pad_responses_block_size:%s)\n", yyvsp[0].str));
4574 if(atoi(yyvspub_c_vsp[0].str) == 0)
4575 yyerrorub_c_error("number expected");
4576 else cfg_parser->cfg->pad_responses_block_size = atoi(yyvspub_c_vsp[0].str);
4577 free(yyvspub_c_vsp[0].str);
4578 }
4579break;
4580case 502:
4581#line 2555 "/usr/src/usr.sbin/unbound/util/configparser.y"
4582{
4583 OUTYY(("P(server_pad_queries:%s)\n", yyvsp[0].str));
4584 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4585 yyerrorub_c_error("expected yes or no.");
4586 else cfg_parser->cfg->pad_queries =
4587 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4588 free(yyvspub_c_vsp[0].str);
4589 }
4590break;
4591case 503:
4592#line 2565 "/usr/src/usr.sbin/unbound/util/configparser.y"
4593{
4594 OUTYY(("P(server_pad_queries_block_size:%s)\n", yyvsp[0].str));
4595 if(atoi(yyvspub_c_vsp[0].str) == 0)
4596 yyerrorub_c_error("number expected");
4597 else cfg_parser->cfg->pad_queries_block_size = atoi(yyvspub_c_vsp[0].str);
4598 free(yyvspub_c_vsp[0].str);
4599 }
4600break;
4601case 504:
4602#line 2574 "/usr/src/usr.sbin/unbound/util/configparser.y"
4603{
4604 #ifdef USE_IPSECMOD
4605 OUTYY(("P(server_ipsecmod_enabled:%s)\n", yyvsp[0].str));
4606 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4607 yyerrorub_c_error("expected yes or no.");
4608 else cfg_parser->cfg->ipsecmod_enabled = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4609 #else
4610 OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
4611 #endif
4612 free(yyvspub_c_vsp[0].str);
4613 }
4614break;
4615case 505:
4616#line 2587 "/usr/src/usr.sbin/unbound/util/configparser.y"
4617{
4618 #ifdef USE_IPSECMOD
4619 OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", yyvsp[0].str));
4620 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4621 yyerrorub_c_error("expected yes or no.");
4622 else cfg_parser->cfg->ipsecmod_ignore_bogus = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4623 #else
4624 OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
4625 #endif
4626 free(yyvspub_c_vsp[0].str);
4627 }
4628break;
4629case 506:
4630#line 2600 "/usr/src/usr.sbin/unbound/util/configparser.y"
4631{
4632 #ifdef USE_IPSECMOD
4633 OUTYY(("P(server_ipsecmod_hook:%s)\n", yyvsp[0].str));
4634 free(cfg_parser->cfg->ipsecmod_hook);
4635 cfg_parser->cfg->ipsecmod_hook = yyvspub_c_vsp[0].str;
4636 #else
4637 OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
4638 free(yyvspub_c_vsp[0].str);
4639 #endif
4640 }
4641break;
4642case 507:
4643#line 2612 "/usr/src/usr.sbin/unbound/util/configparser.y"
4644{
4645 #ifdef USE_IPSECMOD
4646 OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", yyvsp[0].str));
4647 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
4648 yyerrorub_c_error("number expected");
4649 else cfg_parser->cfg->ipsecmod_max_ttl = atoi(yyvspub_c_vsp[0].str);
4650 free(yyvspub_c_vsp[0].str);
4651 #else
4652 OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
4653 free(yyvspub_c_vsp[0].str);
4654 #endif
4655 }
4656break;
4657case 508:
4658#line 2626 "/usr/src/usr.sbin/unbound/util/configparser.y"
4659{
4660 #ifdef USE_IPSECMOD
4661 OUTYY(("P(server_ipsecmod_whitelist:%s)\n", yyvsp[0].str));
4662 if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, yyvspub_c_vsp[0].str))
4663 yyerrorub_c_error("out of memory");
4664 #else
4665 OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
4666 free(yyvspub_c_vsp[0].str);
4667 #endif
4668 }
4669break;
4670case 509:
4671#line 2638 "/usr/src/usr.sbin/unbound/util/configparser.y"
4672{
4673 #ifdef USE_IPSECMOD
4674 OUTYY(("P(server_ipsecmod_strict:%s)\n", yyvsp[0].str));
4675 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4676 yyerrorub_c_error("expected yes or no.");
4677 else cfg_parser->cfg->ipsecmod_strict = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4678 free(yyvspub_c_vsp[0].str);
4679 #else
4680 OUTYY(("P(Compiled without IPsec module, ignoring)\n"));
4681 free(yyvspub_c_vsp[0].str);
4682 #endif
4683 }
4684break;
4685case 510:
4686#line 2652 "/usr/src/usr.sbin/unbound/util/configparser.y"
4687{
4688 OUTYY(("P(server_edns_client_string:%s %s)\n", yyvsp[-1].str, yyvsp[0].str));
4689 if(!cfg_str2list_insert(
4690 &cfg_parser->cfg->edns_client_strings, yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str))
4691 fatal_exit("out of memory adding "
4692 "edns-client-string");
4693 }
4694break;
4695case 511:
4696#line 2661 "/usr/src/usr.sbin/unbound/util/configparser.y"
4697{
4698 OUTYY(("P(edns_client_string_opcode:%s)\n", yyvsp[0].str));
4699 if(atoi(yyvspub_c_vsp[0].str) == 0 && strcmp(yyvspub_c_vsp[0].str, "0") != 0)
4700 yyerrorub_c_error("option code expected");
4701 else if(atoi(yyvspub_c_vsp[0].str) > 65535 || atoi(yyvspub_c_vsp[0].str) < 0)
4702 yyerrorub_c_error("option code must be in interval [0, 65535]");
4703 else cfg_parser->cfg->edns_client_string_opcode = atoi(yyvspub_c_vsp[0].str);
4704 free(yyvspub_c_vsp[0].str);
4705
4706 }
4707break;
4708case 512:
4709#line 2673 "/usr/src/usr.sbin/unbound/util/configparser.y"
4710{
4711 OUTYY(("P(name:%s)\n", yyvsp[0].str));
4712 if(cfg_parser->cfg->stubs->name)
4713 yyerrorub_c_error("stub name override, there must be one name "
4714 "for one stub-zone");
4715 free(cfg_parser->cfg->stubs->name);
4716 cfg_parser->cfg->stubs->name = yyvspub_c_vsp[0].str;
4717 }
4718break;
4719case 513:
4720#line 2683 "/usr/src/usr.sbin/unbound/util/configparser.y"
4721{
4722 OUTYY(("P(stub-host:%s)\n", yyvsp[0].str));
4723 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, yyvspub_c_vsp[0].str))
4724 yyerrorub_c_error("out of memory");
4725 }
4726break;
4727case 514:
4728#line 2690 "/usr/src/usr.sbin/unbound/util/configparser.y"
4729{
4730 OUTYY(("P(stub-addr:%s)\n", yyvsp[0].str));
4731 if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, yyvspub_c_vsp[0].str))
4732 yyerrorub_c_error("out of memory");
4733 }
4734break;
4735case 515:
4736#line 2697 "/usr/src/usr.sbin/unbound/util/configparser.y"
4737{
4738 OUTYY(("P(stub-first:%s)\n", yyvsp[0].str));
4739 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4740 yyerrorub_c_error("expected yes or no.");
4741 else cfg_parser->cfg->stubs->isfirst=(strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4742 free(yyvspub_c_vsp[0].str);
4743 }
4744break;
4745case 516:
4746#line 2706 "/usr/src/usr.sbin/unbound/util/configparser.y"
4747{
4748 OUTYY(("P(stub-no-cache:%s)\n", yyvsp[0].str));
4749 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4750 yyerrorub_c_error("expected yes or no.");
4751 else cfg_parser->cfg->stubs->no_cache=(strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4752 free(yyvspub_c_vsp[0].str);
4753 }
4754break;
4755case 517:
4756#line 2715 "/usr/src/usr.sbin/unbound/util/configparser.y"
4757{
4758 OUTYY(("P(stub-ssl-upstream:%s)\n", yyvsp[0].str));
4759 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4760 yyerrorub_c_error("expected yes or no.");
4761 else cfg_parser->cfg->stubs->ssl_upstream =
4762 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4763 free(yyvspub_c_vsp[0].str);
4764 }
4765break;
4766case 518:
4767#line 2725 "/usr/src/usr.sbin/unbound/util/configparser.y"
4768{
4769 OUTYY(("P(stub-prime:%s)\n", yyvsp[0].str));
4770 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4771 yyerrorub_c_error("expected yes or no.");
4772 else cfg_parser->cfg->stubs->isprime =
4773 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4774 free(yyvspub_c_vsp[0].str);
4775 }
4776break;
4777case 519:
4778#line 2735 "/usr/src/usr.sbin/unbound/util/configparser.y"
4779{
4780 OUTYY(("P(name:%s)\n", yyvsp[0].str));
4781 if(cfg_parser->cfg->forwards->name)
4782 yyerrorub_c_error("forward name override, there must be one "
4783 "name for one forward-zone");
4784 free(cfg_parser->cfg->forwards->name);
4785 cfg_parser->cfg->forwards->name = yyvspub_c_vsp[0].str;
4786 }
4787break;
4788case 520:
4789#line 2745 "/usr/src/usr.sbin/unbound/util/configparser.y"
4790{
4791 OUTYY(("P(forward-host:%s)\n", yyvsp[0].str));
4792 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, yyvspub_c_vsp[0].str))
4793 yyerrorub_c_error("out of memory");
4794 }
4795break;
4796case 521:
4797#line 2752 "/usr/src/usr.sbin/unbound/util/configparser.y"
4798{
4799 OUTYY(("P(forward-addr:%s)\n", yyvsp[0].str));
4800 if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, yyvspub_c_vsp[0].str))
4801 yyerrorub_c_error("out of memory");
4802 }
4803break;
4804case 522:
4805#line 2759 "/usr/src/usr.sbin/unbound/util/configparser.y"
4806{
4807 OUTYY(("P(forward-first:%s)\n", yyvsp[0].str));
4808 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4809 yyerrorub_c_error("expected yes or no.");
4810 else cfg_parser->cfg->forwards->isfirst=(strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4811 free(yyvspub_c_vsp[0].str);
4812 }
4813break;
4814case 523:
4815#line 2768 "/usr/src/usr.sbin/unbound/util/configparser.y"
4816{
4817 OUTYY(("P(forward-no-cache:%s)\n", yyvsp[0].str));
4818 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4819 yyerrorub_c_error("expected yes or no.");
4820 else cfg_parser->cfg->forwards->no_cache=(strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4821 free(yyvspub_c_vsp[0].str);
4822 }
4823break;
4824case 524:
4825#line 2777 "/usr/src/usr.sbin/unbound/util/configparser.y"
4826{
4827 OUTYY(("P(forward-ssl-upstream:%s)\n", yyvsp[0].str));
4828 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4829 yyerrorub_c_error("expected yes or no.");
4830 else cfg_parser->cfg->forwards->ssl_upstream =
4831 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4832 free(yyvspub_c_vsp[0].str);
4833 }
4834break;
4835case 525:
4836#line 2787 "/usr/src/usr.sbin/unbound/util/configparser.y"
4837{
4838 OUTYY(("P(name:%s)\n", yyvsp[0].str));
4839 if(cfg_parser->cfg->auths->name)
4840 yyerrorub_c_error("auth name override, there must be one name "
4841 "for one auth-zone");
4842 free(cfg_parser->cfg->auths->name);
4843 cfg_parser->cfg->auths->name = yyvspub_c_vsp[0].str;
4844 }
4845break;
4846case 526:
4847#line 2797 "/usr/src/usr.sbin/unbound/util/configparser.y"
4848{
4849 OUTYY(("P(zonefile:%s)\n", yyvsp[0].str));
4850 free(cfg_parser->cfg->auths->zonefile);
4851 cfg_parser->cfg->auths->zonefile = yyvspub_c_vsp[0].str;
4852 }
4853break;
4854case 527:
4855#line 2804 "/usr/src/usr.sbin/unbound/util/configparser.y"
4856{
4857 OUTYY(("P(master:%s)\n", yyvsp[0].str));
4858 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, yyvspub_c_vsp[0].str))
4859 yyerrorub_c_error("out of memory");
4860 }
4861break;
4862case 528:
4863#line 2811 "/usr/src/usr.sbin/unbound/util/configparser.y"
4864{
4865 OUTYY(("P(url:%s)\n", yyvsp[0].str));
4866 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, yyvspub_c_vsp[0].str))
4867 yyerrorub_c_error("out of memory");
4868 }
4869break;
4870case 529:
4871#line 2818 "/usr/src/usr.sbin/unbound/util/configparser.y"
4872{
4873 OUTYY(("P(allow-notify:%s)\n", yyvsp[0].str));
4874 if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify,
4875 yyvspub_c_vsp[0].str))
4876 yyerrorub_c_error("out of memory");
4877 }
4878break;
4879case 530:
4880#line 2826 "/usr/src/usr.sbin/unbound/util/configparser.y"
4881{
4882 OUTYY(("P(zonemd-check:%s)\n", yyvsp[0].str));
4883 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4884 yyerrorub_c_error("expected yes or no.");
4885 else cfg_parser->cfg->auths->zonemd_check =
4886 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4887 free(yyvspub_c_vsp[0].str);
4888 }
4889break;
4890case 531:
4891#line 2836 "/usr/src/usr.sbin/unbound/util/configparser.y"
4892{
4893 OUTYY(("P(zonemd-reject-absence:%s)\n", yyvsp[0].str));
4894 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4895 yyerrorub_c_error("expected yes or no.");
4896 else cfg_parser->cfg->auths->zonemd_reject_absence =
4897 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4898 free(yyvspub_c_vsp[0].str);
4899 }
4900break;
4901case 532:
4902#line 2846 "/usr/src/usr.sbin/unbound/util/configparser.y"
4903{
4904 OUTYY(("P(for-downstream:%s)\n", yyvsp[0].str));
4905 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4906 yyerrorub_c_error("expected yes or no.");
4907 else cfg_parser->cfg->auths->for_downstream =
4908 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4909 free(yyvspub_c_vsp[0].str);
4910 }
4911break;
4912case 533:
4913#line 2856 "/usr/src/usr.sbin/unbound/util/configparser.y"
4914{
4915 OUTYY(("P(for-upstream:%s)\n", yyvsp[0].str));
4916 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4917 yyerrorub_c_error("expected yes or no.");
4918 else cfg_parser->cfg->auths->for_upstream =
4919 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4920 free(yyvspub_c_vsp[0].str);
4921 }
4922break;
4923case 534:
4924#line 2866 "/usr/src/usr.sbin/unbound/util/configparser.y"
4925{
4926 OUTYY(("P(fallback-enabled:%s)\n", yyvsp[0].str));
4927 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
4928 yyerrorub_c_error("expected yes or no.");
4929 else cfg_parser->cfg->auths->fallback_enabled =
4930 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
4931 free(yyvspub_c_vsp[0].str);
4932 }
4933break;
4934case 535:
4935#line 2876 "/usr/src/usr.sbin/unbound/util/configparser.y"
4936{
4937 OUTYY(("P(name:%s)\n", yyvsp[0].str));
4938 if(cfg_parser->cfg->views->name)
4939 yyerrorub_c_error("view name override, there must be one "
4940 "name for one view");
4941 free(cfg_parser->cfg->views->name);
4942 cfg_parser->cfg->views->name = yyvspub_c_vsp[0].str;
4943 }
4944break;
4945case 536:
4946#line 2886 "/usr/src/usr.sbin/unbound/util/configparser.y"
4947{
4948 OUTYY(("P(view_local_zone:%s %s)\n", yyvsp[-1].str, yyvsp[0].str));
4949 if(strcmp(yyvspub_c_vsp[0].str, "static")!=0 && strcmp(yyvspub_c_vsp[0].str, "deny")!=0 &&
4950 strcmp(yyvspub_c_vsp[0].str, "refuse")!=0 && strcmp(yyvspub_c_vsp[0].str, "redirect")!=0 &&
4951 strcmp(yyvspub_c_vsp[0].str, "transparent")!=0 && strcmp(yyvspub_c_vsp[0].str, "nodefault")!=0
4952 && strcmp(yyvspub_c_vsp[0].str, "typetransparent")!=0
4953 && strcmp(yyvspub_c_vsp[0].str, "always_transparent")!=0
4954 && strcmp(yyvspub_c_vsp[0].str, "always_refuse")!=0
4955 && strcmp(yyvspub_c_vsp[0].str, "always_nxdomain")!=0
4956 && strcmp(yyvspub_c_vsp[0].str, "always_nodata")!=0
4957 && strcmp(yyvspub_c_vsp[0].str, "always_deny")!=0
4958 && strcmp(yyvspub_c_vsp[0].str, "always_null")!=0
4959 && strcmp(yyvspub_c_vsp[0].str, "noview")!=0
4960 && strcmp(yyvspub_c_vsp[0].str, "inform")!=0 && strcmp(yyvspub_c_vsp[0].str, "inform_deny")!=0
4961 && strcmp(yyvspub_c_vsp[0].str, "inform_redirect") != 0
4962 && strcmp(yyvspub_c_vsp[0].str, "ipset") != 0) {
4963 yyerrorub_c_error("local-zone type: expected static, deny, "
4964 "refuse, redirect, transparent, "
4965 "typetransparent, inform, inform_deny, "
4966 "inform_redirect, always_transparent, "
4967 "always_refuse, always_nxdomain, "
4968 "always_nodata, always_deny, always_null, "
4969 "noview, nodefault or ipset");
4970 free(yyvspub_c_vsp[-1].str);
4971 free(yyvspub_c_vsp[0].str);
4972 } else if(strcmp(yyvspub_c_vsp[0].str, "nodefault")==0) {
4973 if(!cfg_strlist_insert(&cfg_parser->cfg->views->
4974 local_zones_nodefault, yyvspub_c_vsp[-1].str))
4975 fatal_exit("out of memory adding local-zone");
4976 free(yyvspub_c_vsp[0].str);
4977#ifdef USE_IPSET
4978 } else if(strcmp(yyvspub_c_vsp[0].str, "ipset")==0) {
4979 if(!cfg_strlist_insert(&cfg_parser->cfg->views->
4980 local_zones_ipset, yyvspub_c_vsp[-1].str))
4981 fatal_exit("out of memory adding local-zone");
4982 free(yyvspub_c_vsp[0].str);
4983#endif
4984 } else {
4985 if(!cfg_str2list_insert(
4986 &cfg_parser->cfg->views->local_zones,
4987 yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str))
4988 fatal_exit("out of memory adding local-zone");
4989 }
4990 }
4991break;
4992case 537:
4993#line 2932 "/usr/src/usr.sbin/unbound/util/configparser.y"
4994{
4995 OUTYY(("P(view_response_ip:%s %s)\n", yyvsp[-1].str, yyvsp[0].str));
4996 validate_respip_action(yyvspub_c_vsp[0].str);
4997 if(!cfg_str2list_insert(
4998 &cfg_parser->cfg->views->respip_actions, yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str))
4999 fatal_exit("out of memory adding per-view "
5000 "response-ip action");
5001 }
5002break;
5003case 538:
5004#line 2942 "/usr/src/usr.sbin/unbound/util/configparser.y"
5005{
5006 OUTYY(("P(view_response_ip_data:%s)\n", yyvsp[-1].str));
5007 if(!cfg_str2list_insert(
5008 &cfg_parser->cfg->views->respip_data, yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str))
5009 fatal_exit("out of memory adding response-ip-data");
5010 }
5011break;
5012case 539:
5013#line 2950 "/usr/src/usr.sbin/unbound/util/configparser.y"
5014{
5015 OUTYY(("P(view_local_data:%s)\n", yyvsp[0].str));
5016 if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, yyvspub_c_vsp[0].str)) {
5017 fatal_exit("out of memory adding local-data");
5018 }
5019 }
5020break;
5021case 540:
5022#line 2958 "/usr/src/usr.sbin/unbound/util/configparser.y"
5023{
5024 char* ptr;
5025 OUTYY(("P(view_local_data_ptr:%s)\n", yyvsp[0].str));
5026 ptr = cfg_ptr_reverse(yyvspub_c_vsp[0].str);
5027 free(yyvspub_c_vsp[0].str);
5028 if(ptr) {
5029 if(!cfg_strlist_insert(&cfg_parser->cfg->views->
5030 local_data, ptr))
5031 fatal_exit("out of memory adding local-data");
5032 } else {
5033 yyerrorub_c_error("local-data-ptr could not be reversed");
5034 }
5035 }
5036break;
5037case 541:
5038#line 2973 "/usr/src/usr.sbin/unbound/util/configparser.y"
5039{
5040 OUTYY(("P(view-first:%s)\n", yyvsp[0].str));
5041 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5042 yyerrorub_c_error("expected yes or no.");
5043 else cfg_parser->cfg->views->isfirst=(strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5044 free(yyvspub_c_vsp[0].str);
5045 }
5046break;
5047case 542:
5048#line 2982 "/usr/src/usr.sbin/unbound/util/configparser.y"
5049{
5050 OUTYY(("\nP(remote-control:)\n"));
5051 }
5052break;
5053case 553:
5054#line 2993 "/usr/src/usr.sbin/unbound/util/configparser.y"
5055{
5056 OUTYY(("P(control_enable:%s)\n", yyvsp[0].str));
5057 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5058 yyerrorub_c_error("expected yes or no.");
5059 else cfg_parser->cfg->remote_control_enable =
5060 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5061 free(yyvspub_c_vsp[0].str);
5062 }
5063break;
5064case 554:
5065#line 3003 "/usr/src/usr.sbin/unbound/util/configparser.y"
5066{
5067 OUTYY(("P(control_port:%s)\n", yyvsp[0].str));
5068 if(atoi(yyvspub_c_vsp[0].str) == 0)
5069 yyerrorub_c_error("control port number expected");
5070 else cfg_parser->cfg->control_port = atoi(yyvspub_c_vsp[0].str);
5071 free(yyvspub_c_vsp[0].str);
5072 }
5073break;
5074case 555:
5075#line 3012 "/usr/src/usr.sbin/unbound/util/configparser.y"
5076{
5077 OUTYY(("P(control_interface:%s)\n", yyvsp[0].str));
5078 if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, yyvspub_c_vsp[0].str))
5079 yyerrorub_c_error("out of memory");
5080 }
5081break;
5082case 556:
5083#line 3019 "/usr/src/usr.sbin/unbound/util/configparser.y"
5084{
5085 OUTYY(("P(control_use_cert:%s)\n", yyvsp[0].str));
5086 cfg_parser->cfg->control_use_cert = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5087 free(yyvspub_c_vsp[0].str);
5088 }
5089break;
5090case 557:
5091#line 3026 "/usr/src/usr.sbin/unbound/util/configparser.y"
5092{
5093 OUTYY(("P(rc_server_key_file:%s)\n", yyvsp[0].str));
5094 free(cfg_parser->cfg->server_key_file);
5095 cfg_parser->cfg->server_key_file = yyvspub_c_vsp[0].str;
5096 }
5097break;
5098case 558:
5099#line 3033 "/usr/src/usr.sbin/unbound/util/configparser.y"
5100{
5101 OUTYY(("P(rc_server_cert_file:%s)\n", yyvsp[0].str));
5102 free(cfg_parser->cfg->server_cert_file);
5103 cfg_parser->cfg->server_cert_file = yyvspub_c_vsp[0].str;
5104 }
5105break;
5106case 559:
5107#line 3040 "/usr/src/usr.sbin/unbound/util/configparser.y"
5108{
5109 OUTYY(("P(rc_control_key_file:%s)\n", yyvsp[0].str));
5110 free(cfg_parser->cfg->control_key_file);
5111 cfg_parser->cfg->control_key_file = yyvspub_c_vsp[0].str;
5112 }
5113break;
5114case 560:
5115#line 3047 "/usr/src/usr.sbin/unbound/util/configparser.y"
5116{
5117 OUTYY(("P(rc_control_cert_file:%s)\n", yyvsp[0].str));
5118 free(cfg_parser->cfg->control_cert_file);
5119 cfg_parser->cfg->control_cert_file = yyvspub_c_vsp[0].str;
5120 }
5121break;
5122case 561:
5123#line 3054 "/usr/src/usr.sbin/unbound/util/configparser.y"
5124{
5125 OUTYY(("\nP(dnstap:)\n"));
5126 }
5127break;
5128case 583:
5129#line 3074 "/usr/src/usr.sbin/unbound/util/configparser.y"
5130{
5131 OUTYY(("P(dt_dnstap_enable:%s)\n", yyvsp[0].str));
5132 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5133 yyerrorub_c_error("expected yes or no.");
5134 else cfg_parser->cfg->dnstap = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5135 free(yyvspub_c_vsp[0].str);
5136 }
5137break;
5138case 584:
5139#line 3083 "/usr/src/usr.sbin/unbound/util/configparser.y"
5140{
5141 OUTYY(("P(dt_dnstap_bidirectional:%s)\n", yyvsp[0].str));
5142 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5143 yyerrorub_c_error("expected yes or no.");
5144 else cfg_parser->cfg->dnstap_bidirectional =
5145 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5146 free(yyvspub_c_vsp[0].str);
5147 }
5148break;
5149case 585:
5150#line 3093 "/usr/src/usr.sbin/unbound/util/configparser.y"
5151{
5152 OUTYY(("P(dt_dnstap_socket_path:%s)\n", yyvsp[0].str));
5153 free(cfg_parser->cfg->dnstap_socket_path);
5154 cfg_parser->cfg->dnstap_socket_path = yyvspub_c_vsp[0].str;
5155 }
5156break;
5157case 586:
5158#line 3100 "/usr/src/usr.sbin/unbound/util/configparser.y"
5159{
5160 OUTYY(("P(dt_dnstap_ip:%s)\n", yyvsp[0].str));
5161 free(cfg_parser->cfg->dnstap_ip);
5162 cfg_parser->cfg->dnstap_ip = yyvspub_c_vsp[0].str;
5163 }
5164break;
5165case 587:
5166#line 3107 "/usr/src/usr.sbin/unbound/util/configparser.y"
5167{
5168 OUTYY(("P(dt_dnstap_tls:%s)\n", yyvsp[0].str));
5169 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5170 yyerrorub_c_error("expected yes or no.");
5171 else cfg_parser->cfg->dnstap_tls = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5172 free(yyvspub_c_vsp[0].str);
5173 }
5174break;
5175case 588:
5176#line 3116 "/usr/src/usr.sbin/unbound/util/configparser.y"
5177{
5178 OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", yyvsp[0].str));
5179 free(cfg_parser->cfg->dnstap_tls_server_name);
5180 cfg_parser->cfg->dnstap_tls_server_name = yyvspub_c_vsp[0].str;
5181 }
5182break;
5183case 589:
5184#line 3123 "/usr/src/usr.sbin/unbound/util/configparser.y"
5185{
5186 OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", yyvsp[0].str));
5187 free(cfg_parser->cfg->dnstap_tls_cert_bundle);
5188 cfg_parser->cfg->dnstap_tls_cert_bundle = yyvspub_c_vsp[0].str;
5189 }
5190break;
5191case 590:
5192#line 3130 "/usr/src/usr.sbin/unbound/util/configparser.y"
5193{
5194 OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", yyvsp[0].str));
5195 free(cfg_parser->cfg->dnstap_tls_client_key_file);
5196 cfg_parser->cfg->dnstap_tls_client_key_file = yyvspub_c_vsp[0].str;
5197 }
5198break;
5199case 591:
5200#line 3137 "/usr/src/usr.sbin/unbound/util/configparser.y"
5201{
5202 OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", yyvsp[0].str));
5203 free(cfg_parser->cfg->dnstap_tls_client_cert_file);
5204 cfg_parser->cfg->dnstap_tls_client_cert_file = yyvspub_c_vsp[0].str;
5205 }
5206break;
5207case 592:
5208#line 3144 "/usr/src/usr.sbin/unbound/util/configparser.y"
5209{
5210 OUTYY(("P(dt_dnstap_send_identity:%s)\n", yyvsp[0].str));
5211 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5212 yyerrorub_c_error("expected yes or no.");
5213 else cfg_parser->cfg->dnstap_send_identity = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5214 free(yyvspub_c_vsp[0].str);
5215 }
5216break;
5217case 593:
5218#line 3153 "/usr/src/usr.sbin/unbound/util/configparser.y"
5219{
5220 OUTYY(("P(dt_dnstap_send_version:%s)\n", yyvsp[0].str));
5221 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5222 yyerrorub_c_error("expected yes or no.");
5223 else cfg_parser->cfg->dnstap_send_version = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5224 free(yyvspub_c_vsp[0].str);
5225 }
5226break;
5227case 594:
5228#line 3162 "/usr/src/usr.sbin/unbound/util/configparser.y"
5229{
5230 OUTYY(("P(dt_dnstap_identity:%s)\n", yyvsp[0].str));
5231 free(cfg_parser->cfg->dnstap_identity);
5232 cfg_parser->cfg->dnstap_identity = yyvspub_c_vsp[0].str;
5233 }
5234break;
5235case 595:
5236#line 3169 "/usr/src/usr.sbin/unbound/util/configparser.y"
5237{
5238 OUTYY(("P(dt_dnstap_version:%s)\n", yyvsp[0].str));
5239 free(cfg_parser->cfg->dnstap_version);
5240 cfg_parser->cfg->dnstap_version = yyvspub_c_vsp[0].str;
5241 }
5242break;
5243case 596:
5244#line 3176 "/usr/src/usr.sbin/unbound/util/configparser.y"
5245{
5246 OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", yyvsp[0].str));
5247 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5248 yyerrorub_c_error("expected yes or no.");
5249 else cfg_parser->cfg->dnstap_log_resolver_query_messages =
5250 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5251 free(yyvspub_c_vsp[0].str);
5252 }
5253break;
5254case 597:
5255#line 3186 "/usr/src/usr.sbin/unbound/util/configparser.y"
5256{
5257 OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", yyvsp[0].str));
5258 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5259 yyerrorub_c_error("expected yes or no.");
5260 else cfg_parser->cfg->dnstap_log_resolver_response_messages =
5261 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5262 free(yyvspub_c_vsp[0].str);
5263 }
5264break;
5265case 598:
5266#line 3196 "/usr/src/usr.sbin/unbound/util/configparser.y"
5267{
5268 OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", yyvsp[0].str));
5269 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5270 yyerrorub_c_error("expected yes or no.");
5271 else cfg_parser->cfg->dnstap_log_client_query_messages =
5272 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5273 free(yyvspub_c_vsp[0].str);
5274 }
5275break;
5276case 599:
5277#line 3206 "/usr/src/usr.sbin/unbound/util/configparser.y"
5278{
5279 OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", yyvsp[0].str));
5280 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5281 yyerrorub_c_error("expected yes or no.");
5282 else cfg_parser->cfg->dnstap_log_client_response_messages =
5283 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5284 free(yyvspub_c_vsp[0].str);
5285 }
5286break;
5287case 600:
5288#line 3216 "/usr/src/usr.sbin/unbound/util/configparser.y"
5289{
5290 OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", yyvsp[0].str));
5291 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5292 yyerrorub_c_error("expected yes or no.");
5293 else cfg_parser->cfg->dnstap_log_forwarder_query_messages =
5294 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5295 free(yyvspub_c_vsp[0].str);
5296 }
5297break;
5298case 601:
5299#line 3226 "/usr/src/usr.sbin/unbound/util/configparser.y"
5300{
5301 OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", yyvsp[0].str));
5302 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5303 yyerrorub_c_error("expected yes or no.");
5304 else cfg_parser->cfg->dnstap_log_forwarder_response_messages =
5305 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5306 free(yyvspub_c_vsp[0].str);
5307 }
5308break;
5309case 602:
5310#line 3236 "/usr/src/usr.sbin/unbound/util/configparser.y"
5311{
5312 OUTYY(("\nP(python:)\n"));
5313 }
5314break;
5315case 606:
5316#line 3245 "/usr/src/usr.sbin/unbound/util/configparser.y"
5317{
5318 OUTYY(("P(python-script:%s)\n", yyvsp[0].str));
5319 if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, yyvspub_c_vsp[0].str))
5320 yyerrorub_c_error("out of memory");
5321 }
5322break;
5323case 607:
5324#line 3251 "/usr/src/usr.sbin/unbound/util/configparser.y"
5325{
5326 OUTYY(("\nP(dynlib:)\n"));
5327 }
5328break;
5329case 611:
5330#line 3260 "/usr/src/usr.sbin/unbound/util/configparser.y"
5331{
5332 OUTYY(("P(dynlib-file:%s)\n", yyvsp[0].str));
5333 if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, yyvspub_c_vsp[0].str))
5334 yyerrorub_c_error("out of memory");
5335 }
5336break;
5337case 612:
5338#line 3266 "/usr/src/usr.sbin/unbound/util/configparser.y"
5339{
5340 OUTYY(("P(disable_dnssec_lame_check:%s)\n", yyvsp[0].str));
5341 if (strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5342 yyerrorub_c_error("expected yes or no.");
5343 else cfg_parser->cfg->disable_dnssec_lame_check =
5344 (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5345 free(yyvspub_c_vsp[0].str);
5346 }
5347break;
5348case 613:
5349#line 3276 "/usr/src/usr.sbin/unbound/util/configparser.y"
5350{
5351 OUTYY(("P(server_log_identity:%s)\n", yyvsp[0].str));
5352 free(cfg_parser->cfg->log_identity);
5353 cfg_parser->cfg->log_identity = yyvspub_c_vsp[0].str;
5354 }
5355break;
5356case 614:
5357#line 3283 "/usr/src/usr.sbin/unbound/util/configparser.y"
5358{
5359 OUTYY(("P(server_response_ip:%s %s)\n", yyvsp[-1].str, yyvsp[0].str));
5360 validate_respip_action(yyvspub_c_vsp[0].str);
5361 if(!cfg_str2list_insert(&cfg_parser->cfg->respip_actions,
5362 yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str))
5363 fatal_exit("out of memory adding response-ip");
5364 }
5365break;
5366case 615:
5367#line 3292 "/usr/src/usr.sbin/unbound/util/configparser.y"
5368{
5369 OUTYY(("P(server_response_ip_data:%s)\n", yyvsp[-1].str));
5370 if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data,
5371 yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str))
5372 fatal_exit("out of memory adding response-ip-data");
5373 }
5374break;
5375case 616:
5376#line 3300 "/usr/src/usr.sbin/unbound/util/configparser.y"
5377{
5378 OUTYY(("\nP(dnscrypt:)\n"));
5379 }
5380break;
5381case 629:
5382#line 3316 "/usr/src/usr.sbin/unbound/util/configparser.y"
5383{
5384 OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", yyvsp[0].str));
5385 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5386 yyerrorub_c_error("expected yes or no.");
5387 else cfg_parser->cfg->dnscrypt = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5388 free(yyvspub_c_vsp[0].str);
5389 }
5390break;
5391case 630:
5392#line 3326 "/usr/src/usr.sbin/unbound/util/configparser.y"
5393{
5394 OUTYY(("P(dnsc_dnscrypt_port:%s)\n", yyvsp[0].str));
5395 if(atoi(yyvspub_c_vsp[0].str) == 0)
5396 yyerrorub_c_error("port number expected");
5397 else cfg_parser->cfg->dnscrypt_port = atoi(yyvspub_c_vsp[0].str);
5398 free(yyvspub_c_vsp[0].str);
5399 }
5400break;
5401case 631:
5402#line 3335 "/usr/src/usr.sbin/unbound/util/configparser.y"
5403{
5404 OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", yyvsp[0].str));
5405 free(cfg_parser->cfg->dnscrypt_provider);
5406 cfg_parser->cfg->dnscrypt_provider = yyvspub_c_vsp[0].str;
5407 }
5408break;
5409case 632:
5410#line 3342 "/usr/src/usr.sbin/unbound/util/configparser.y"
5411{
5412 OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", yyvsp[0].str));
5413 if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, yyvspub_c_vsp[0].str))
5414 log_warn("dnscrypt-provider-cert %s is a duplicate", yyvspub_c_vsp[0].str);
5415 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, yyvspub_c_vsp[0].str))
5416 fatal_exit("out of memory adding dnscrypt-provider-cert");
5417 }
5418break;
5419case 633:
5420#line 3351 "/usr/src/usr.sbin/unbound/util/configparser.y"
5421{
5422 OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", yyvsp[0].str));
5423 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, yyvspub_c_vsp[0].str))
5424 fatal_exit("out of memory adding dnscrypt-provider-cert-rotated");
5425 }
5426break;
5427case 634:
5428#line 3358 "/usr/src/usr.sbin/unbound/util/configparser.y"
5429{
5430 OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", yyvsp[0].str));
5431 if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, yyvspub_c_vsp[0].str))
5432 log_warn("dnscrypt-secret-key: %s is a duplicate", yyvspub_c_vsp[0].str);
5433 if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, yyvspub_c_vsp[0].str))
5434 fatal_exit("out of memory adding dnscrypt-secret-key");
5435 }
5436break;
5437case 635:
5438#line 3367 "/usr/src/usr.sbin/unbound/util/configparser.y"
5439{
5440 OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", yyvsp[0].str));
5441 if(!cfg_parse_memsize(yyvspub_c_vsp[0].str, &cfg_parser->cfg->dnscrypt_shared_secret_cache_size))
5442 yyerrorub_c_error("memory size expected");
5443 free(yyvspub_c_vsp[0].str);
5444 }
5445break;
5446case 636:
5447#line 3375 "/usr/src/usr.sbin/unbound/util/configparser.y"
5448{
5449 OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", yyvsp[0].str));
5450 if(atoi(yyvspub_c_vsp[0].str) == 0)
5451 yyerrorub_c_error("number expected");
5452 else {
5453 cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs = atoi(yyvspub_c_vsp[0].str);
5454 if(!is_pow2(cfg_parser->cfg->dnscrypt_shared_secret_cache_slabs))
5455 yyerrorub_c_error("must be a power of 2");
5456 }
5457 free(yyvspub_c_vsp[0].str);
5458 }
5459break;
5460case 637:
5461#line 3388 "/usr/src/usr.sbin/unbound/util/configparser.y"
5462{
5463 OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", yyvsp[0].str));
5464 if(!cfg_parse_memsize(yyvspub_c_vsp[0].str, &cfg_parser->cfg->dnscrypt_nonce_cache_size))
5465 yyerrorub_c_error("memory size expected");
5466 free(yyvspub_c_vsp[0].str);
5467 }
5468break;
5469case 638:
5470#line 3396 "/usr/src/usr.sbin/unbound/util/configparser.y"
5471{
5472 OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", yyvsp[0].str));
5473 if(atoi(yyvspub_c_vsp[0].str) == 0)
5474 yyerrorub_c_error("number expected");
5475 else {
5476 cfg_parser->cfg->dnscrypt_nonce_cache_slabs = atoi(yyvspub_c_vsp[0].str);
5477 if(!is_pow2(cfg_parser->cfg->dnscrypt_nonce_cache_slabs))
5478 yyerrorub_c_error("must be a power of 2");
5479 }
5480 free(yyvspub_c_vsp[0].str);
5481 }
5482break;
5483case 639:
5484#line 3409 "/usr/src/usr.sbin/unbound/util/configparser.y"
5485{
5486 OUTYY(("\nP(cachedb:)\n"));
5487 }
5488break;
5489case 648:
5490#line 3420 "/usr/src/usr.sbin/unbound/util/configparser.y"
5491{
5492 #ifdef USE_CACHEDB
5493 OUTYY(("P(backend:%s)\n", yyvsp[0].str));
5494 free(cfg_parser->cfg->cachedb_backend);
5495 cfg_parser->cfg->cachedb_backend = yyvspub_c_vsp[0].str;
5496 #else
5497 OUTYY(("P(Compiled without cachedb, ignoring)\n"));
5498 free(yyvspub_c_vsp[0].str);
5499 #endif
5500 }
5501break;
5502case 649:
5503#line 3432 "/usr/src/usr.sbin/unbound/util/configparser.y"
5504{
5505 #ifdef USE_CACHEDB
5506 OUTYY(("P(secret-seed:%s)\n", yyvsp[0].str));
5507 free(cfg_parser->cfg->cachedb_secret);
5508 cfg_parser->cfg->cachedb_secret = yyvspub_c_vsp[0].str;
5509 #else
5510 OUTYY(("P(Compiled without cachedb, ignoring)\n"));
5511 free(yyvspub_c_vsp[0].str);
5512 #endif
5513 }
5514break;
5515case 650:
5516#line 3444 "/usr/src/usr.sbin/unbound/util/configparser.y"
5517{
5518 #if defined(USE_CACHEDB) && defined(USE_REDIS)
5519 OUTYY(("P(redis_server_host:%s)\n", yyvsp[0].str));
5520 free(cfg_parser->cfg->redis_server_host);
5521 cfg_parser->cfg->redis_server_host = yyvspub_c_vsp[0].str;
5522 #else
5523 OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
5524 free(yyvspub_c_vsp[0].str);
5525 #endif
5526 }
5527break;
5528case 651:
5529#line 3456 "/usr/src/usr.sbin/unbound/util/configparser.y"
5530{
5531 #if defined(USE_CACHEDB) && defined(USE_REDIS)
5532 int port;
5533 OUTYY(("P(redis_server_port:%s)\n", yyvsp[0].str));
5534 port = atoi(yyvspub_c_vsp[0].str);
5535 if(port == 0 || port < 0 || port > 65535)
5536 yyerrorub_c_error("valid redis server port number expected");
5537 else cfg_parser->cfg->redis_server_port = port;
5538 #else
5539 OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
5540 #endif
5541 free(yyvspub_c_vsp[0].str);
5542 }
5543break;
5544case 652:
5545#line 3471 "/usr/src/usr.sbin/unbound/util/configparser.y"
5546{
5547 #if defined(USE_CACHEDB) && defined(USE_REDIS)
5548 OUTYY(("P(redis_timeout:%s)\n", yyvsp[0].str));
5549 if(atoi(yyvspub_c_vsp[0].str) == 0)
5550 yyerrorub_c_error("redis timeout value expected");
5551 else cfg_parser->cfg->redis_timeout = atoi(yyvspub_c_vsp[0].str);
5552 #else
5553 OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
5554 #endif
5555 free(yyvspub_c_vsp[0].str);
5556 }
5557break;
5558case 653:
5559#line 3484 "/usr/src/usr.sbin/unbound/util/configparser.y"
5560{
5561 #if defined(USE_CACHEDB) && defined(USE_REDIS)
5562 OUTYY(("P(redis_expire_records:%s)\n", yyvsp[0].str));
5563 if(strcmp(yyvspub_c_vsp[0].str, "yes") != 0 && strcmp(yyvspub_c_vsp[0].str, "no") != 0)
5564 yyerrorub_c_error("expected yes or no.");
5565 else cfg_parser->cfg->redis_expire_records = (strcmp(yyvspub_c_vsp[0].str, "yes")==0);
5566 #else
5567 OUTYY(("P(Compiled without cachedb or redis, ignoring)\n"));
5568 #endif
5569 free(yyvspub_c_vsp[0].str);
5570 }
5571break;
5572case 654:
5573#line 3497 "/usr/src/usr.sbin/unbound/util/configparser.y"
5574{
5575 OUTYY(("P(server_tcp_connection_limit:%s %s)\n", yyvsp[-1].str, yyvsp[0].str));
5576 if (atoi(yyvspub_c_vsp[0].str) < 0)
5577 yyerrorub_c_error("positive number expected");
5578 else {
5579 if(!cfg_str2list_insert(&cfg_parser->cfg->tcp_connection_limits, yyvspub_c_vsp[-1].str, yyvspub_c_vsp[0].str))
5580 fatal_exit("out of memory adding tcp connection limit");
5581 }
5582 }
5583break;
5584case 655:
5585#line 3508 "/usr/src/usr.sbin/unbound/util/configparser.y"
5586{
5587 OUTYY(("\nP(ipset:)\n"));
5588 }
5589break;
5590case 660:
5591#line 3517 "/usr/src/usr.sbin/unbound/util/configparser.y"
5592{
5593 #ifdef USE_IPSET
5594 OUTYY(("P(name-v4:%s)\n", yyvsp[0].str));
5595 if(cfg_parser->cfg->ipset_name_v4)
5596 yyerrorub_c_error("ipset name v4 override, there must be one "
5597 "name for ip v4");
5598 free(cfg_parser->cfg->ipset_name_v4);
5599 cfg_parser->cfg->ipset_name_v4 = yyvspub_c_vsp[0].str;
5600 #else
5601 OUTYY(("P(Compiled without ipset, ignoring)\n"));
5602 free(yyvspub_c_vsp[0].str);
5603 #endif
5604 }
5605break;
5606case 661:
5607#line 3532 "/usr/src/usr.sbin/unbound/util/configparser.y"
5608{
5609 #ifdef USE_IPSET
5610 OUTYY(("P(name-v6:%s)\n", yyvsp[0].str));
5611 if(cfg_parser->cfg->ipset_name_v6)
5612 yyerrorub_c_error("ipset name v6 override, there must be one "
5613 "name for ip v6");
5614 free(cfg_parser->cfg->ipset_name_v6);
5615 cfg_parser->cfg->ipset_name_v6 = yyvspub_c_vsp[0].str;
5616 #else
5617 OUTYY(("P(Compiled without ipset, ignoring)\n"));
5618 free(yyvspub_c_vsp[0].str);
5619 #endif
5620 }
5621break;
5622#line 5615 "util/configparser.c"
5623 }
5624 yysspub_c_ssp -= yym;
5625 yystateub_c_state = *yysspub_c_ssp;
5626 yyvspub_c_vsp -= yym;
5627 yym = yylhsub_c_yylhs[yyn];
5628 if (yystateub_c_state == 0 && yym
5.2
'yym' is equal to 0
== 0)
6
Taking true branch
5629 {
5630#if YYDEBUG0
5631 if (yydebugub_c_debug)
5632 printf("%sdebug: after reduction, shifting from state 0 to\
5633 state %d\n", YYPREFIX"yy", YYFINAL1);
5634#endif
5635 yystateub_c_state = YYFINAL1;
5636 *++yysspub_c_ssp = YYFINAL1;
5637 *++yyvspub_c_vsp = yyvalub_c_val;
5638 if (yycharub_c_char < 0)
7
Taking true branch
5639 {
5640 if ((yycharub_c_char = yylexub_c_lex()) < 0) yycharub_c_char = 0;
8
Assuming the condition is false
9
Taking false branch
5641#if YYDEBUG0
5642 if (yydebugub_c_debug)
5643 {
5644 yysub_c_s = 0;
5645 if (yycharub_c_char <= YYMAXTOKEN571) yysub_c_s = yynameub_c_yyname[yycharub_c_char];
5646 if (!yysub_c_s) yysub_c_s = "illegal-symbol";
5647 printf("%sdebug: state %d, reading %d (%s)\n",
5648 YYPREFIX"yy", YYFINAL1, yycharub_c_char, yysub_c_s);
5649 }
5650#endif
5651 }
5652 if (yycharub_c_char == 0) goto yyaccept;
10
Assuming 'ub_c_char' is not equal to 0
11
Taking false branch
5653 goto yyloop;
12
Control jumps to line 2026
5654 }
5655 if ((yyn = yygindexub_c_yygindex[yym]) && (yyn += yystateub_c_state) >= 0 &&
5656 yyn <= YYTABLESIZE1112 && yycheckub_c_yycheck[yyn] == yystateub_c_state)
5657 yystateub_c_state = yytableub_c_yytable[yyn];
5658 else
5659 yystateub_c_state = yydgotoub_c_yydgoto[yym];
5660#if YYDEBUG0
5661 if (yydebugub_c_debug)
5662 printf("%sdebug: after reduction, shifting from state %d \
5663to state %d\n", YYPREFIX"yy", *yysspub_c_ssp, yystateub_c_state);
5664#endif
5665 if (yysspub_c_ssp >= yysslimub_c_sslim && yygrowstack())
5666 {
5667 goto yyoverflow;
5668 }
5669 *++yysspub_c_ssp = yystateub_c_state;
5670 *++yyvspub_c_vsp = yyvalub_c_val;
5671 goto yyloop;
5672yyoverflow:
5673 yyerrorub_c_error("yacc stack overflow");
5674yyabort:
5675 if (yyssub_c_ss)
5676 free(yyssub_c_ss);
5677 if (yyvsub_c_vs)
5678 free(yyvsub_c_vs);
5679 yyssub_c_ss = yysspub_c_ssp = NULL((void*)0);
5680 yyvsub_c_vs = yyvspub_c_vsp = NULL((void*)0);
5681 yystacksizeub_c_stacksize = 0;
5682 return (1);
5683yyaccept:
5684 if (yyssub_c_ss)
5685 free(yyssub_c_ss);
5686 if (yyvsub_c_vs)
5687 free(yyvsub_c_vs);
5688 yyssub_c_ss = yysspub_c_ssp = NULL((void*)0);
5689 yyvsub_c_vs = yyvspub_c_vsp = NULL((void*)0);
5690 yystacksizeub_c_stacksize = 0;
5691 return (0);
5692}