From: W.C.A. Wijngaards Date: Thu, 6 Aug 2020 12:20:42 +0000 (+0200) Subject: Merge branch 'master' into dlv-removal X-Git-Tag: release-1.12.0rc1~45^2~2^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2fade6f97079247d4cd2c22324ab761ed89aef8f;p=thirdparty%2Funbound.git Merge branch 'master' into dlv-removal --- 2fade6f97079247d4cd2c22324ab761ed89aef8f diff --cc util/configlexer.c index cd505dfda,46022f656..dfecfdd23 --- a/util/configlexer.c +++ b/util/configlexer.c @@@ -3023,7 -3032,7 +3032,7 @@@ static void config_end_include(void } #endif - #line 3024 "" -#line 3034 "" ++#line 3033 "" #define YY_NO_INPUT 1 #line 191 "./util/configlexer.lex" #ifndef YY_NO_UNPUT @@@ -3032,9 -3041,9 +3041,9 @@@ #ifndef YY_NO_INPUT #define YY_NO_INPUT 1 #endif - #line 3033 "" -#line 3043 "" ++#line 3042 "" - #line 3035 "" -#line 3045 "" ++#line 3044 "" #define INITIAL 0 #define quotedstring 1 @@@ -3258,7 -3267,7 +3267,7 @@@ YY_DEC { #line 211 "./util/configlexer.lex" - #line 3259 "" -#line 3269 "" ++#line 3268 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@@ -5069,12 -5083,12 +5083,12 @@@ YY_RULE_SETU ub_c_error_msg("stray '%s'", yytext); } YY_BREAK - case 323: + case 324: YY_RULE_SETUP - #line 651 "./util/configlexer.lex" + #line 652 "./util/configlexer.lex" ECHO; YY_BREAK - #line 5075 "" -#line 5090 "" ++#line 5089 "" case YY_END_OF_BUFFER: { diff --cc util/configparser.c index 63badad61,1d5be9fa0..eacfc518e --- a/util/configparser.c +++ b/util/configparser.c @@@ -724,7 -735,7 +726,7 @@@ union YYSTYP char* str; - #line 728 "util/configparser.c" -#line 739 "util/configparser.c" ++#line 730 "util/configparser.c" }; typedef union YYSTYPE YYSTYPE; @@@ -974,20 -1054,21 +976,20 @@@ union yyallo /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ - #define YYLAST 620 + #define YYLAST 622 /* YYNTOKENS -- Number of terminals. */ - #define YYNTOKENS 292 + #define YYNTOKENS 293 /* YYNNTS -- Number of nonterminals. */ - #define YYNNTS 317 + #define YYNNTS 318 /* YYNRULES -- Number of rules. */ - #define YYNRULES 610 + #define YYNRULES 612 /* YYNSTATES -- Number of states. */ - #define YYNSTATES 905 + #define YYNSTATES 909 #define YYUNDEFTOK 2 - #define YYMAXUTOK 546 + #define YYMAXUTOK 547 - /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ @@@ -1512,12 -1594,12 +1515,12 @@@ static const yytype_int16 yypact[] /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_int16 yydefact[] = +static const yytype_uint16 yydefact[] = { - 2, 0, 1, 18, 19, 216, 226, 491, 551, 510, - 235, 565, 588, 245, 604, 261, 556, 3, 17, 21, - 218, 228, 237, 247, 263, 493, 512, 553, 558, 567, - 590, 606, 4, 5, 6, 10, 14, 15, 8, 9, + 2, 0, 1, 18, 19, 217, 227, 493, 553, 512, + 236, 567, 590, 246, 606, 262, 558, 3, 17, 21, + 219, 229, 238, 248, 264, 495, 514, 555, 560, 569, + 592, 608, 4, 5, 6, 10, 14, 15, 8, 9, 7, 16, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@@ -1684,37 -1766,37 +1687,37 @@@ static const yytype_int16 yydefgoto[] /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_int16 yytable[] = +static const yytype_uint16 yytable[] = { - 2, 477, 462, 434, 566, 435, 436, 569, 449, 606, - 607, 3, 4, 611, 612, 613, 450, 451, 593, 594, - 595, 596, 597, 598, 477, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 614, 615, 616, 463, 464, - 617, 618, 619, 620, 621, 622, 5, 623, 624, 625, - 626, 627, 6, 628, 629, 630, 631, 632, 633, 634, - 635, 636, 637, 465, 638, 639, 437, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 510, 511, 512, 513, - 514, 515, 516, 517, 640, 641, 7, 438, 642, 643, - 439, 452, 644, 453, 645, 646, 647, 648, 649, 650, - 651, 652, 8, 653, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, - 670, 466, 467, 671, 672, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, - 688, 689, 690, 9, 691, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 707, 468, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, - 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, - 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, - 746, 747, 10, 479, 480, 481, 748, 749, 750, 751, - 752, 753, 754, 484, 755, 756, 757, 758, 759, 440, - 11, 760, 761, 454, 478, 762, 479, 480, 481, 482, - 483, 494, 495, 496, 497, 498, 484, 12, 763, 764, - 765, 766, 767, 768, 769, 770, 13, 771, 772, 773, - 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, - 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, - 14, 794, 795, 796, 15, 797, 798, 799, 0, 800, + 2, 479, 464, 436, 568, 437, 438, 571, 451, 608, + 609, 3, 4, 613, 614, 615, 452, 453, 595, 596, + 597, 598, 599, 600, 479, 574, 575, 576, 577, 578, + 579, 580, 581, 582, 583, 616, 617, 618, 465, 466, + 619, 620, 621, 622, 623, 624, 5, 625, 626, 627, + 628, 629, 6, 630, 631, 632, 633, 634, 635, 636, + 637, 638, 639, 467, 640, 641, 439, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 544, 545, 546, 547, 512, 513, 514, 515, + 516, 517, 518, 519, 642, 643, 7, 440, 644, 645, + 441, 454, 646, 455, 647, 648, 649, 650, 651, 652, + 653, 654, 8, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + 672, 468, 469, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, + 690, 691, 692, 9, 693, 694, 695, 696, 697, 698, + 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, + 709, 470, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, + 748, 749, 10, 481, 482, 483, 750, 751, 752, 753, + 754, 755, 756, 486, 757, 758, 759, 760, 761, 442, + 11, 762, 763, 456, 480, 764, 481, 482, 483, 484, + 485, 496, 497, 498, 499, 500, 486, 12, 765, 766, + 767, 768, 769, 770, 771, 772, 13, 773, 774, 775, + 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, + 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, + 14, 796, 797, 798, 15, 799, 800, 801, 0, 802, 16, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, @@@ -1820,13 -1902,13 +1823,13 @@@ static const yytype_int16 yycheck[] /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_int16 yystos[] = +static const yytype_uint16 yystos[] = { - 0, 293, 0, 11, 12, 46, 52, 96, 112, 153, - 212, 230, 247, 256, 280, 284, 290, 294, 295, 296, - 299, 302, 305, 308, 316, 536, 547, 569, 573, 581, - 594, 604, 297, 300, 303, 306, 309, 317, 537, 548, - 570, 574, 582, 595, 605, 13, 14, 15, 16, 17, + 0, 294, 0, 11, 12, 46, 52, 96, 112, 153, + 212, 230, 247, 256, 280, 284, 290, 295, 296, 297, + 300, 303, 306, 309, 317, 538, 549, 571, 575, 583, + 596, 606, 298, 301, 304, 307, 310, 318, 539, 550, + 572, 576, 584, 597, 607, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, @@@ -1916,36 -1998,36 +1919,36 @@@ }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_int16 yyr1[] = +static const yytype_uint16 yyr1[] = { - 0, 292, 293, 293, 294, 294, 294, 294, 294, 294, - 294, 294, 294, 294, 294, 294, 294, 294, 295, 296, - 297, 297, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 299, 300, 300, 301, - 301, 301, 301, 301, 301, 301, 302, 303, 303, 304, - 304, 304, 304, 304, 304, 305, 306, 306, 307, 307, - 307, 307, 307, 307, 307, 308, 309, 309, 310, 310, - 310, 310, 310, 310, 310, 310, 311, 312, 313, 314, - 315, 316, 317, 317, 318, 318, 318, 318, 318, 318, - 318, 318, 318, 318, 319, 320, 321, 322, 323, 324, + 0, 293, 294, 294, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 295, 296, 297, + 298, 298, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 300, 301, 301, + 302, 302, 302, 302, 302, 302, 302, 303, 304, 304, + 305, 305, 305, 305, 305, 305, 306, 307, 307, 308, + 308, 308, 308, 308, 308, 308, 309, 310, 310, 311, + 311, 311, 311, 311, 311, 311, 311, 312, 313, 314, + 315, 316, 317, 318, 318, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, @@@ -2732,23 -2825,23 +2735,23 @@@ yyreduce { case 18: #line 191 "./util/configparser.y" - { + { OUTYY(("\nP(force-toplevel)\n")); } - #line 2739 "util/configparser.c" -#line 2832 "util/configparser.c" ++#line 2742 "util/configparser.c" break; case 19: #line 197 "./util/configparser.y" - { + { OUTYY(("\nP(server:)\n")); } - #line 2747 "util/configparser.c" -#line 2840 "util/configparser.c" ++#line 2750 "util/configparser.c" break; - case 216: + case 217: #line 291 "./util/configparser.y" - { + { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); @@@ -2758,12 -2851,12 +2761,12 @@@ } else yyerror("out of memory"); } - #line 2762 "util/configparser.c" -#line 2855 "util/configparser.c" ++#line 2765 "util/configparser.c" break; - case 226: + case 227: #line 308 "./util/configparser.y" - { + { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); @@@ -2773,12 -2866,12 +2776,12 @@@ } else yyerror("out of memory"); } - #line 2777 "util/configparser.c" -#line 2870 "util/configparser.c" ++#line 2780 "util/configparser.c" break; - case 235: + case 236: #line 325 "./util/configparser.y" - { + { struct config_view* s; OUTYY(("\nP(view:)\n")); s = (struct config_view*)calloc(1, sizeof(struct config_view)); @@@ -2790,12 -2883,12 +2793,12 @@@ } else yyerror("out of memory"); } - #line 2794 "util/configparser.c" -#line 2887 "util/configparser.c" ++#line 2797 "util/configparser.c" break; - case 245: + case 246: #line 344 "./util/configparser.y" - { + { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); @@@ -2810,12 -2903,12 +2813,12 @@@ } else yyerror("out of memory"); } - #line 2814 "util/configparser.c" -#line 2907 "util/configparser.c" ++#line 2817 "util/configparser.c" break; - case 256: + case 257: #line 368 "./util/configparser.y" - { + { uint8_t* bitlist; size_t len = 0; OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[0].str))); @@@ -2831,12 -2924,12 +2834,12 @@@ } } - #line 2835 "util/configparser.c" -#line 2928 "util/configparser.c" ++#line 2838 "util/configparser.c" break; - case 257: + case 258: #line 387 "./util/configparser.y" - { + { OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && strcmp((yyvsp[0].str), "passthru")!=0 && strcmp((yyvsp[0].str), "drop")!=0 && @@@ -2850,44 -2943,44 +2853,44 @@@ cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } - #line 2854 "util/configparser.c" -#line 2947 "util/configparser.c" ++#line 2857 "util/configparser.c" break; - case 258: + case 259: #line 404 "./util/configparser.y" - { + { OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_cname); cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); } - #line 2864 "util/configparser.c" -#line 2957 "util/configparser.c" ++#line 2867 "util/configparser.c" break; - case 259: + case 260: #line 412 "./util/configparser.y" - { + { OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 2876 "util/configparser.c" -#line 2969 "util/configparser.c" ++#line 2879 "util/configparser.c" break; - case 260: + case 261: #line 422 "./util/configparser.y" - { + { OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_log_name); cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); } - #line 2886 "util/configparser.c" -#line 2979 "util/configparser.c" ++#line 2889 "util/configparser.c" break; - case 261: + case 262: #line 430 "./util/configparser.y" - { + { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); @@@ -2902,36 -2995,36 +2905,36 @@@ } else yyerror("out of memory"); } - #line 2906 "util/configparser.c" -#line 2999 "util/configparser.c" ++#line 2909 "util/configparser.c" break; - case 274: + case 275: #line 453 "./util/configparser.y" - { + { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 2918 "util/configparser.c" -#line 3011 "util/configparser.c" ++#line 2921 "util/configparser.c" break; - case 275: + case 276: #line 462 "./util/configparser.y" - { + { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 2930 "util/configparser.c" -#line 3023 "util/configparser.c" ++#line 2933 "util/configparser.c" break; - case 276: + case 277: #line 471 "./util/configparser.y" - { + { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) cfg_parser->cfg->stat_interval = 0; @@@ -2940,48 -3033,48 +2943,48 @@@ else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 2944 "util/configparser.c" -#line 3037 "util/configparser.c" ++#line 2947 "util/configparser.c" break; - case 277: + case 278: #line 482 "./util/configparser.y" - { + { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 2956 "util/configparser.c" -#line 3049 "util/configparser.c" ++#line 2959 "util/configparser.c" break; - case 278: + case 279: #line 491 "./util/configparser.y" - { + { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 2968 "util/configparser.c" -#line 3061 "util/configparser.c" ++#line 2971 "util/configparser.c" break; - case 279: + case 280: #line 500 "./util/configparser.y" - { + { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 2980 "util/configparser.c" -#line 3073 "util/configparser.c" ++#line 2983 "util/configparser.c" break; - case 280: + case 281: #line 509 "./util/configparser.y" - { + { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) cfg_parser->cfg->shm_key = 0; @@@ -2990,24 -3083,24 +2993,24 @@@ else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 2994 "util/configparser.c" -#line 3087 "util/configparser.c" ++#line 2997 "util/configparser.c" break; - case 281: + case 282: #line 520 "./util/configparser.y" - { + { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3006 "util/configparser.c" -#line 3099 "util/configparser.c" ++#line 3009 "util/configparser.c" break; - case 282: + case 283: #line 529 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[0].str))) @@@ -3017,12 -3110,12 +3020,12 @@@ free((yyvsp[0].str)); #endif } - #line 3021 "util/configparser.c" -#line 3114 "util/configparser.c" ++#line 3024 "util/configparser.c" break; - case 283: + case 284: #line 541 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone, @@@ -3033,12 -3126,12 +3036,12 @@@ free((yyvsp[0].str)); #endif } - #line 3037 "util/configparser.c" -#line 3130 "util/configparser.c" ++#line 3040 "util/configparser.c" break; - case 284: + case 285: #line 555 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@@ -3051,12 -3144,12 +3054,12 @@@ #endif free((yyvsp[0].str)); } - #line 3055 "util/configparser.c" -#line 3148 "util/configparser.c" ++#line 3058 "util/configparser.c" break; - case 285: + case 286: #line 570 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); OUTYY(("P(Deprecated option, ignoring)\n")); @@@ -3065,12 -3158,12 +3068,12 @@@ #endif free((yyvsp[0].str)); } - #line 3069 "util/configparser.c" -#line 3162 "util/configparser.c" ++#line 3072 "util/configparser.c" break; - case 286: + case 287: #line 581 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -3085,12 -3178,12 +3088,12 @@@ #endif free((yyvsp[0].str)); } - #line 3089 "util/configparser.c" -#line 3182 "util/configparser.c" ++#line 3092 "util/configparser.c" break; - case 287: + case 288: #line 598 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -3105,12 -3198,12 +3108,12 @@@ #endif free((yyvsp[0].str)); } - #line 3109 "util/configparser.c" -#line 3202 "util/configparser.c" ++#line 3112 "util/configparser.c" break; - case 288: + case 289: #line 615 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -3125,12 -3218,12 +3128,12 @@@ #endif free((yyvsp[0].str)); } - #line 3129 "util/configparser.c" -#line 3222 "util/configparser.c" ++#line 3132 "util/configparser.c" break; - case 289: + case 290: #line 632 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -3145,12 -3238,12 +3148,12 @@@ #endif free((yyvsp[0].str)); } - #line 3149 "util/configparser.c" -#line 3242 "util/configparser.c" ++#line 3152 "util/configparser.c" break; - case 290: + case 291: #line 649 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -3163,12 -3256,12 +3166,12 @@@ #endif free((yyvsp[0].str)); } - #line 3167 "util/configparser.c" -#line 3260 "util/configparser.c" ++#line 3170 "util/configparser.c" break; - case 291: + case 292: #line 664 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -3181,12 -3274,12 +3184,12 @@@ #endif free((yyvsp[0].str)); } - #line 3185 "util/configparser.c" -#line 3278 "util/configparser.c" ++#line 3188 "util/configparser.c" break; - case 292: + case 293: #line 679 "./util/configparser.y" - { + { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) cfg_parser->cfg->ifs = calloc(1, sizeof(char*)); @@@ -3197,12 -3290,12 +3200,12 @@@ else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } - #line 3201 "util/configparser.c" -#line 3294 "util/configparser.c" ++#line 3204 "util/configparser.c" break; - case 293: + case 294: #line 692 "./util/configparser.y" - { + { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*)); @@@ -3215,180 -3308,180 +3218,180 @@@ cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } - #line 3219 "util/configparser.c" -#line 3312 "util/configparser.c" ++#line 3222 "util/configparser.c" break; - case 294: + case 295: #line 707 "./util/configparser.y" - { + { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3231 "util/configparser.c" -#line 3324 "util/configparser.c" ++#line 3234 "util/configparser.c" break; - case 295: + case 296: #line 716 "./util/configparser.y" - { + { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, cfg_parser->cfg->outgoing_avail_ports, 65536)) yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } - #line 3243 "util/configparser.c" -#line 3336 "util/configparser.c" ++#line 3246 "util/configparser.c" break; - case 296: + case 297: #line 725 "./util/configparser.y" - { + { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, cfg_parser->cfg->outgoing_avail_ports, 65536)) yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } - #line 3255 "util/configparser.c" -#line 3348 "util/configparser.c" ++#line 3258 "util/configparser.c" break; - case 297: + case 298: #line 734 "./util/configparser.y" - { + { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3267 "util/configparser.c" -#line 3360 "util/configparser.c" ++#line 3270 "util/configparser.c" break; - case 298: + case 299: #line 743 "./util/configparser.y" - { + { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3279 "util/configparser.c" -#line 3372 "util/configparser.c" ++#line 3282 "util/configparser.c" break; - case 299: + case 300: #line 752 "./util/configparser.y" - { + { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3291 "util/configparser.c" -#line 3384 "util/configparser.c" ++#line 3294 "util/configparser.c" break; - case 300: + case 301: #line 761 "./util/configparser.y" - { + { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3303 "util/configparser.c" -#line 3396 "util/configparser.c" ++#line 3306 "util/configparser.c" break; - case 301: + case 302: #line 770 "./util/configparser.y" - { + { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3315 "util/configparser.c" -#line 3408 "util/configparser.c" ++#line 3318 "util/configparser.c" break; - case 302: + case 303: #line 779 "./util/configparser.y" - { + { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3327 "util/configparser.c" -#line 3420 "util/configparser.c" ++#line 3330 "util/configparser.c" break; - case 303: + case 304: #line 788 "./util/configparser.y" - { + { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3339 "util/configparser.c" -#line 3432 "util/configparser.c" ++#line 3342 "util/configparser.c" break; - case 304: + case 305: #line 797 "./util/configparser.y" - { + { OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3351 "util/configparser.c" -#line 3444 "util/configparser.c" ++#line 3354 "util/configparser.c" break; - case 305: + case 306: #line 806 "./util/configparser.y" - { + { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3363 "util/configparser.c" -#line 3456 "util/configparser.c" ++#line 3366 "util/configparser.c" break; - case 306: + case 307: #line 815 "./util/configparser.y" - { + { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3375 "util/configparser.c" -#line 3468 "util/configparser.c" ++#line 3378 "util/configparser.c" break; - case 307: + case 308: #line 824 "./util/configparser.y" - { + { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3387 "util/configparser.c" -#line 3480 "util/configparser.c" ++#line 3390 "util/configparser.c" break; - case 308: + case 309: #line 833 "./util/configparser.y" - { + { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); @@@ -3399,24 -3492,24 +3402,24 @@@ else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3403 "util/configparser.c" -#line 3496 "util/configparser.c" ++#line 3406 "util/configparser.c" break; - case 309: + case 310: #line 846 "./util/configparser.y" - { + { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3415 "util/configparser.c" -#line 3508 "util/configparser.c" ++#line 3418 "util/configparser.c" break; - case 310: + case 311: #line 855 "./util/configparser.y" - { + { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); @@@ -3427,180 -3520,180 +3430,180 @@@ else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3431 "util/configparser.c" -#line 3524 "util/configparser.c" ++#line 3434 "util/configparser.c" break; - case 311: + case 312: #line 868 "./util/configparser.y" - { + { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3443 "util/configparser.c" -#line 3536 "util/configparser.c" ++#line 3446 "util/configparser.c" break; - case 312: + case 313: #line 877 "./util/configparser.y" - { + { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3455 "util/configparser.c" -#line 3548 "util/configparser.c" ++#line 3458 "util/configparser.c" break; - case 313: + case 314: #line 886 "./util/configparser.y" - { + { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3467 "util/configparser.c" -#line 3560 "util/configparser.c" ++#line 3470 "util/configparser.c" break; - case 314: + case 315: #line 895 "./util/configparser.y" - { + { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } - #line 3477 "util/configparser.c" -#line 3570 "util/configparser.c" ++#line 3480 "util/configparser.c" break; - case 315: + case 316: #line 902 "./util/configparser.y" - { + { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } - #line 3487 "util/configparser.c" -#line 3580 "util/configparser.c" ++#line 3490 "util/configparser.c" break; - case 316: + case 317: #line 909 "./util/configparser.y" - { + { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 3499 "util/configparser.c" -#line 3592 "util/configparser.c" ++#line 3502 "util/configparser.c" break; - case 317: + case 318: #line 918 "./util/configparser.y" - { + { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } - #line 3509 "util/configparser.c" -#line 3602 "util/configparser.c" ++#line 3512 "util/configparser.c" break; - case 318: + case 319: #line 925 "./util/configparser.y" - { + { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3521 "util/configparser.c" -#line 3614 "util/configparser.c" ++#line 3524 "util/configparser.c" break; - case 319: + case 320: #line 934 "./util/configparser.y" - { + { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, (yyvsp[0].str))) yyerror("out of memory"); } - #line 3532 "util/configparser.c" -#line 3625 "util/configparser.c" ++#line 3535 "util/configparser.c" break; - case 320: + case 321: #line 942 "./util/configparser.y" - { + { OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphers); cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); } - #line 3542 "util/configparser.c" -#line 3635 "util/configparser.c" ++#line 3545 "util/configparser.c" break; - case 321: + case 322: #line 949 "./util/configparser.y" - { + { OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphersuites); cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); } - #line 3552 "util/configparser.c" -#line 3645 "util/configparser.c" ++#line 3555 "util/configparser.c" break; - case 322: + case 323: #line 956 "./util/configparser.y" - { + { OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, (yyvsp[0].str))) yyerror("out of memory"); } - #line 3563 "util/configparser.c" -#line 3656 "util/configparser.c" ++#line 3566 "util/configparser.c" break; - case 323: + case 324: #line 964 "./util/configparser.y" - { + { OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3575 "util/configparser.c" -#line 3668 "util/configparser.c" ++#line 3578 "util/configparser.c" break; - case 324: + case 325: #line 973 "./util/configparser.y" - { + { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3587 "util/configparser.c" -#line 3680 "util/configparser.c" ++#line 3590 "util/configparser.c" break; - case 325: + case 326: #line 982 "./util/configparser.y" - { + { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3599 "util/configparser.c" -#line 3692 "util/configparser.c" ++#line 3602 "util/configparser.c" break; - case 326: + case 327: #line 991 "./util/configparser.y" - { + { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -3612,104 -3705,104 +3615,104 @@@ #endif free((yyvsp[0].str)); } - #line 3616 "util/configparser.c" -#line 3709 "util/configparser.c" ++#line 3619 "util/configparser.c" break; - case 327: + case 328: #line 1005 "./util/configparser.y" - { + { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3628 "util/configparser.c" -#line 3721 "util/configparser.c" ++#line 3631 "util/configparser.c" break; - case 328: + case 329: #line 1014 "./util/configparser.y" - { + { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3640 "util/configparser.c" -#line 3733 "util/configparser.c" ++#line 3643 "util/configparser.c" break; - case 329: + case 330: #line 1023 "./util/configparser.y" - { + { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3652 "util/configparser.c" -#line 3745 "util/configparser.c" ++#line 3655 "util/configparser.c" break; - case 330: + case 331: #line 1032 "./util/configparser.y" - { + { OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3664 "util/configparser.c" -#line 3757 "util/configparser.c" ++#line 3667 "util/configparser.c" break; - case 331: + case 332: #line 1041 "./util/configparser.y" - { + { OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3676 "util/configparser.c" -#line 3769 "util/configparser.c" ++#line 3679 "util/configparser.c" break; - case 332: + case 333: #line 1050 "./util/configparser.y" - { + { OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3688 "util/configparser.c" -#line 3781 "util/configparser.c" ++#line 3691 "util/configparser.c" break; - case 333: + case 334: #line 1059 "./util/configparser.y" - { + { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } - #line 3698 "util/configparser.c" -#line 3791 "util/configparser.c" ++#line 3701 "util/configparser.c" break; - case 334: + case 335: #line 1066 "./util/configparser.y" - { + { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } - #line 3708 "util/configparser.c" -#line 3801 "util/configparser.c" ++#line 3711 "util/configparser.c" break; - case 335: + case 336: #line 1073 "./util/configparser.y" - { + { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); cfg_parser->cfg->directory = (yyvsp[0].str); @@@ -3733,106 -3826,106 +3736,106 @@@ } } } - #line 3737 "util/configparser.c" -#line 3830 "util/configparser.c" ++#line 3740 "util/configparser.c" break; - case 336: + case 337: #line 1099 "./util/configparser.y" - { + { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } - #line 3748 "util/configparser.c" -#line 3841 "util/configparser.c" ++#line 3751 "util/configparser.c" break; - case 337: + case 338: #line 1107 "./util/configparser.y" - { + { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } - #line 3758 "util/configparser.c" -#line 3851 "util/configparser.c" ++#line 3761 "util/configparser.c" break; - case 338: + case 339: #line 1114 "./util/configparser.y" - { + { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } - #line 3768 "util/configparser.c" -#line 3861 "util/configparser.c" ++#line 3771 "util/configparser.c" break; - case 339: + case 340: #line 1121 "./util/configparser.y" - { + { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); - free(cfg_parser->cfg->dlv_anchor_file); - cfg_parser->cfg->dlv_anchor_file = (yyvsp[0].str); + log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); + free((yyvsp[0].str)); } - #line 3778 "util/configparser.c" -#line 3871 "util/configparser.c" ++#line 3781 "util/configparser.c" break; - case 340: + case 341: #line 1128 "./util/configparser.y" - { + { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); - if(!cfg_strlist_insert(&cfg_parser->cfg->dlv_anchor_list, (yyvsp[0].str))) - yyerror("out of memory"); + log_warn("option dlv-anchor ignored: DLV is decommissioned"); + free((yyvsp[0].str)); } - #line 3788 "util/configparser.c" -#line 3881 "util/configparser.c" ++#line 3791 "util/configparser.c" break; - case 341: + case 342: #line 1135 "./util/configparser.y" - { + { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } - #line 3799 "util/configparser.c" -#line 3892 "util/configparser.c" ++#line 3802 "util/configparser.c" break; - case 342: + case 343: #line 1143 "./util/configparser.y" - { + { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } - #line 3810 "util/configparser.c" -#line 3903 "util/configparser.c" ++#line 3813 "util/configparser.c" break; - case 343: + case 344: #line 1151 "./util/configparser.y" - { + { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } - #line 3821 "util/configparser.c" -#line 3914 "util/configparser.c" ++#line 3824 "util/configparser.c" break; - case 344: + case 345: #line 1159 "./util/configparser.y" - { + { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } - #line 3831 "util/configparser.c" -#line 3924 "util/configparser.c" ++#line 3834 "util/configparser.c" break; - case 345: + case 346: #line 1166 "./util/configparser.y" - { + { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -3841,12 -3934,12 +3844,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3845 "util/configparser.c" -#line 3938 "util/configparser.c" ++#line 3848 "util/configparser.c" break; - case 346: + case 347: #line 1177 "./util/configparser.y" - { + { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -3855,98 -3948,98 +3858,98 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3859 "util/configparser.c" -#line 3952 "util/configparser.c" ++#line 3862 "util/configparser.c" break; - case 347: + case 348: #line 1188 "./util/configparser.y" - { + { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } - #line 3869 "util/configparser.c" -#line 3962 "util/configparser.c" ++#line 3872 "util/configparser.c" break; - case 348: + case 349: #line 1195 "./util/configparser.y" - { + { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3881 "util/configparser.c" -#line 3974 "util/configparser.c" ++#line 3884 "util/configparser.c" break; - case 349: + case 350: #line 1204 "./util/configparser.y" - { + { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3893 "util/configparser.c" -#line 3986 "util/configparser.c" ++#line 3896 "util/configparser.c" break; - case 350: + case 351: #line 1213 "./util/configparser.y" - { + { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3905 "util/configparser.c" -#line 3998 "util/configparser.c" ++#line 3908 "util/configparser.c" break; - case 351: + case 352: #line 1222 "./util/configparser.y" - { + { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } - #line 3915 "util/configparser.c" -#line 4008 "util/configparser.c" ++#line 3918 "util/configparser.c" break; - case 352: + case 353: #line 1229 "./util/configparser.y" - { + { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } - #line 3925 "util/configparser.c" -#line 4018 "util/configparser.c" ++#line 3928 "util/configparser.c" break; - case 353: + case 354: #line 1236 "./util/configparser.y" - { + { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } - #line 3936 "util/configparser.c" -#line 4029 "util/configparser.c" ++#line 3939 "util/configparser.c" break; - case 354: + case 355: #line 1244 "./util/configparser.y" - { + { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } - #line 3947 "util/configparser.c" -#line 4040 "util/configparser.c" ++#line 3950 "util/configparser.c" break; - case 355: + case 356: #line 1252 "./util/configparser.y" { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); @@@ -3956,10 -4049,10 +3959,10 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3960 "util/configparser.c" -#line 4053 "util/configparser.c" ++#line 3963 "util/configparser.c" break; - case 356: + case 357: #line 1262 "./util/configparser.y" { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); @@@ -3969,10 -4062,10 +3972,10 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3973 "util/configparser.c" -#line 4066 "util/configparser.c" ++#line 3976 "util/configparser.c" break; - case 357: + case 358: #line 1272 "./util/configparser.y" { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); @@@ -3982,12 -4075,12 +3985,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 3986 "util/configparser.c" -#line 4079 "util/configparser.c" ++#line 3989 "util/configparser.c" break; - case 358: + case 359: #line 1282 "./util/configparser.y" - { + { OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); @@@ -3999,23 -4092,23 +4002,23 @@@ cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4003 "util/configparser.c" -#line 4096 "util/configparser.c" ++#line 4006 "util/configparser.c" break; - case 359: + case 360: #line 1296 "./util/configparser.y" - { + { OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 4014 "util/configparser.c" -#line 4107 "util/configparser.c" ++#line 4017 "util/configparser.c" break; - case 360: + case 361: #line 1304 "./util/configparser.y" - { + { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -4026,12 -4119,12 +4029,12 @@@ else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4030 "util/configparser.c" -#line 4123 "util/configparser.c" ++#line 4033 "util/configparser.c" break; - case 361: + case 362: #line 1317 "./util/configparser.y" - { + { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -4040,23 -4133,23 +4043,23 @@@ else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4044 "util/configparser.c" -#line 4137 "util/configparser.c" ++#line 4047 "util/configparser.c" break; - case 362: + case 363: #line 1328 "./util/configparser.y" - { + { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 4055 "util/configparser.c" -#line 4148 "util/configparser.c" ++#line 4058 "util/configparser.c" break; - case 363: + case 364: #line 1336 "./util/configparser.y" - { + { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -4067,48 -4160,48 +4070,48 @@@ } free((yyvsp[0].str)); } - #line 4071 "util/configparser.c" -#line 4164 "util/configparser.c" ++#line 4074 "util/configparser.c" break; - case 364: + case 365: #line 1349 "./util/configparser.y" - { + { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4083 "util/configparser.c" -#line 4176 "util/configparser.c" ++#line 4086 "util/configparser.c" break; - case 365: + case 366: #line 1358 "./util/configparser.y" - { + { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4095 "util/configparser.c" -#line 4188 "util/configparser.c" ++#line 4098 "util/configparser.c" break; - case 366: + case 367: #line 1367 "./util/configparser.y" - { + { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4107 "util/configparser.c" -#line 4200 "util/configparser.c" ++#line 4110 "util/configparser.c" break; - case 367: + case 368: #line 1376 "./util/configparser.y" - { + { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4116,12 -4209,12 +4119,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4120 "util/configparser.c" -#line 4213 "util/configparser.c" ++#line 4123 "util/configparser.c" break; - case 368: + case 369: #line 1386 "./util/configparser.y" - { + { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4129,23 -4222,23 +4132,23 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4133 "util/configparser.c" -#line 4226 "util/configparser.c" ++#line 4136 "util/configparser.c" break; - case 369: + case 370: #line 1396 "./util/configparser.y" - { + { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 4144 "util/configparser.c" -#line 4237 "util/configparser.c" ++#line 4147 "util/configparser.c" break; - case 370: + case 371: #line 1404 "./util/configparser.y" - { + { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -4156,58 -4249,58 +4159,58 @@@ } free((yyvsp[0].str)); } - #line 4160 "util/configparser.c" -#line 4253 "util/configparser.c" ++#line 4163 "util/configparser.c" break; - case 371: + case 372: #line 1417 "./util/configparser.y" - { + { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4172 "util/configparser.c" -#line 4265 "util/configparser.c" ++#line 4175 "util/configparser.c" break; - case 372: + case 373: #line 1426 "./util/configparser.y" - { + { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4183 "util/configparser.c" -#line 4276 "util/configparser.c" ++#line 4186 "util/configparser.c" break; - case 373: + case 374: #line 1434 "./util/configparser.y" - { + { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4195 "util/configparser.c" -#line 4288 "util/configparser.c" ++#line 4198 "util/configparser.c" break; - case 374: + case 375: #line 1443 "./util/configparser.y" - { + { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4206 "util/configparser.c" -#line 4299 "util/configparser.c" ++#line 4209 "util/configparser.c" break; - case 375: + case 376: #line 1451 "./util/configparser.y" - { + { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -4218,34 -4311,34 +4221,34 @@@ } free((yyvsp[0].str)); } - #line 4222 "util/configparser.c" -#line 4315 "util/configparser.c" ++#line 4225 "util/configparser.c" break; - case 376: + case 377: #line 1464 "./util/configparser.y" - { + { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4234 "util/configparser.c" -#line 4327 "util/configparser.c" ++#line 4237 "util/configparser.c" break; - case 377: + case 378: #line 1473 "./util/configparser.y" - { + { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } - #line 4244 "util/configparser.c" -#line 4337 "util/configparser.c" ++#line 4247 "util/configparser.c" break; - case 378: + case 379: #line 1480 "./util/configparser.y" - { + { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4253,12 -4346,12 +4256,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4257 "util/configparser.c" -#line 4350 "util/configparser.c" ++#line 4260 "util/configparser.c" break; - case 379: + case 380: #line 1490 "./util/configparser.y" - { + { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4266,12 -4359,12 +4269,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4270 "util/configparser.c" -#line 4363 "util/configparser.c" ++#line 4273 "util/configparser.c" break; - case 380: + case 381: #line 1500 "./util/configparser.y" - { + { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4279,12 -4372,12 +4282,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4283 "util/configparser.c" -#line 4376 "util/configparser.c" ++#line 4286 "util/configparser.c" break; - case 381: + case 382: #line 1510 "./util/configparser.y" - { + { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4292,12 -4385,12 +4295,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4296 "util/configparser.c" -#line 4389 "util/configparser.c" ++#line 4299 "util/configparser.c" break; - case 382: + case 383: #line 1520 "./util/configparser.y" - { + { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4305,12 -4398,12 +4308,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4309 "util/configparser.c" -#line 4402 "util/configparser.c" ++#line 4312 "util/configparser.c" break; - case 383: + case 384: #line 1530 "./util/configparser.y" - { + { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4318,12 -4411,12 +4321,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4322 "util/configparser.c" -#line 4415 "util/configparser.c" ++#line 4325 "util/configparser.c" break; - case 384: + case 385: #line 1540 "./util/configparser.y" - { + { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4331,12 -4424,12 +4334,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4335 "util/configparser.c" -#line 4428 "util/configparser.c" ++#line 4338 "util/configparser.c" break; - case 385: + case 386: #line 1550 "./util/configparser.y" - { + { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4344,100 -4437,100 +4347,100 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4348 "util/configparser.c" -#line 4441 "util/configparser.c" ++#line 4351 "util/configparser.c" break; - case 386: + case 387: #line 1560 "./util/configparser.y" - { + { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } - #line 4358 "util/configparser.c" -#line 4451 "util/configparser.c" ++#line 4361 "util/configparser.c" break; - case 387: + case 388: #line 1567 "./util/configparser.y" - { + { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } - #line 4368 "util/configparser.c" -#line 4461 "util/configparser.c" ++#line 4371 "util/configparser.c" break; - case 388: + case 389: #line 1574 "./util/configparser.y" - { + { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } - #line 4378 "util/configparser.c" -#line 4471 "util/configparser.c" ++#line 4381 "util/configparser.c" break; - case 389: + case 390: #line 1581 "./util/configparser.y" - { + { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4390 "util/configparser.c" -#line 4483 "util/configparser.c" ++#line 4393 "util/configparser.c" break; - case 390: + case 391: #line 1590 "./util/configparser.y" - { + { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4402 "util/configparser.c" -#line 4495 "util/configparser.c" ++#line 4405 "util/configparser.c" break; - case 391: + case 392: #line 1599 "./util/configparser.y" - { + { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4414 "util/configparser.c" -#line 4507 "util/configparser.c" ++#line 4417 "util/configparser.c" break; - case 392: + case 393: #line 1608 "./util/configparser.y" - { + { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4426 "util/configparser.c" -#line 4519 "util/configparser.c" ++#line 4429 "util/configparser.c" break; - case 393: + case 394: #line 1617 "./util/configparser.y" - { + { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } - #line 4436 "util/configparser.c" -#line 4529 "util/configparser.c" ++#line 4439 "util/configparser.c" break; - case 394: + case 395: #line 1624 "./util/configparser.y" - { + { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4445,12 -4538,12 +4448,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4449 "util/configparser.c" -#line 4542 "util/configparser.c" ++#line 4452 "util/configparser.c" break; - case 395: + case 396: #line 1634 "./util/configparser.y" - { + { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "deny_non_local")!=0 && @@@ -4468,22 -4561,22 +4471,22 @@@ fatal_exit("out of memory adding acl"); } } - #line 4472 "util/configparser.c" -#line 4565 "util/configparser.c" ++#line 4475 "util/configparser.c" break; - case 396: + case 397: #line 1654 "./util/configparser.y" - { + { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } - #line 4482 "util/configparser.c" -#line 4575 "util/configparser.c" ++#line 4485 "util/configparser.c" break; - case 397: + case 398: #line 1661 "./util/configparser.y" - { + { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { cfg_parser->cfg->val_date_override = 0; @@@ -4499,12 -4592,12 +4502,12 @@@ } free((yyvsp[0].str)); } - #line 4503 "util/configparser.c" -#line 4596 "util/configparser.c" ++#line 4506 "util/configparser.c" break; - case 398: + case 399: #line 1679 "./util/configparser.y" - { + { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { cfg_parser->cfg->val_sig_skew_min = 0; @@@ -4515,12 -4608,12 +4518,12 @@@ } free((yyvsp[0].str)); } - #line 4519 "util/configparser.c" -#line 4612 "util/configparser.c" ++#line 4522 "util/configparser.c" break; - case 399: + case 400: #line 1692 "./util/configparser.y" - { + { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { cfg_parser->cfg->val_sig_skew_max = 0; @@@ -4531,60 -4624,60 +4534,60 @@@ } free((yyvsp[0].str)); } - #line 4535 "util/configparser.c" -#line 4628 "util/configparser.c" ++#line 4538 "util/configparser.c" break; - case 400: + case 401: #line 1705 "./util/configparser.y" - { + { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4547 "util/configparser.c" -#line 4640 "util/configparser.c" ++#line 4550 "util/configparser.c" break; - case 401: + case 402: #line 1714 "./util/configparser.y" - { + { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4559 "util/configparser.c" -#line 4652 "util/configparser.c" ++#line 4562 "util/configparser.c" break; - case 402: + case 403: #line 1723 "./util/configparser.y" - { + { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4571 "util/configparser.c" -#line 4664 "util/configparser.c" ++#line 4574 "util/configparser.c" break; - case 403: + case 404: #line 1732 "./util/configparser.y" - { + { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4583 "util/configparser.c" -#line 4676 "util/configparser.c" ++#line 4586 "util/configparser.c" break; - case 404: + case 405: #line 1741 "./util/configparser.y" - { + { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4592,12 -4685,12 +4595,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4596 "util/configparser.c" -#line 4689 "util/configparser.c" ++#line 4599 "util/configparser.c" break; - case 405: + case 406: #line 1751 "./util/configparser.y" - { + { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4605,12 -4698,12 +4608,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4609 "util/configparser.c" -#line 4702 "util/configparser.c" ++#line 4612 "util/configparser.c" break; - case 406: + case 407: #line 1761 "./util/configparser.y" - { + { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4619,84 -4712,84 +4622,84 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4623 "util/configparser.c" -#line 4716 "util/configparser.c" ++#line 4626 "util/configparser.c" break; - case 407: + case 408: #line 1772 "./util/configparser.y" - { + { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4635 "util/configparser.c" -#line 4728 "util/configparser.c" ++#line 4638 "util/configparser.c" break; - case 408: + case 409: #line 1781 "./util/configparser.y" - { + { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4647 "util/configparser.c" -#line 4740 "util/configparser.c" ++#line 4650 "util/configparser.c" break; - case 409: + case 410: #line 1790 "./util/configparser.y" - { + { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4659 "util/configparser.c" -#line 4752 "util/configparser.c" ++#line 4662 "util/configparser.c" break; - case 410: + case 411: #line 1799 "./util/configparser.y" - { + { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4671 "util/configparser.c" -#line 4764 "util/configparser.c" ++#line 4674 "util/configparser.c" break; - case 411: + case 412: #line 1808 "./util/configparser.y" - { + { OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4683 "util/configparser.c" -#line 4776 "util/configparser.c" ++#line 4686 "util/configparser.c" break; - case 412: + case 413: #line 1817 "./util/configparser.y" - { + { OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4695 "util/configparser.c" -#line 4788 "util/configparser.c" ++#line 4698 "util/configparser.c" break; - case 413: + case 414: #line 1826 "./util/configparser.y" - { + { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4707,12 -4800,12 +4710,12 @@@ #endif free((yyvsp[0].str)); } - #line 4711 "util/configparser.c" -#line 4804 "util/configparser.c" ++#line 4714 "util/configparser.c" break; - case 414: + case 415: #line 1839 "./util/configparser.y" - { + { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4723,70 -4816,70 +4726,70 @@@ #endif free((yyvsp[0].str)); } - #line 4727 "util/configparser.c" -#line 4820 "util/configparser.c" ++#line 4730 "util/configparser.c" break; - case 415: + case 416: #line 1852 "./util/configparser.y" - { + { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4739 "util/configparser.c" -#line 4832 "util/configparser.c" ++#line 4742 "util/configparser.c" break; - case 416: + case 417: #line 1861 "./util/configparser.y" - { + { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } - #line 4749 "util/configparser.c" -#line 4842 "util/configparser.c" ++#line 4752 "util/configparser.c" break; - case 417: + case 418: #line 1868 "./util/configparser.y" - { + { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4761 "util/configparser.c" -#line 4854 "util/configparser.c" ++#line 4764 "util/configparser.c" break; - case 418: + case 419: #line 1877 "./util/configparser.y" - { + { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4773 "util/configparser.c" -#line 4866 "util/configparser.c" ++#line 4776 "util/configparser.c" break; - case 419: + case 420: #line 1886 "./util/configparser.y" - { + { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4785 "util/configparser.c" -#line 4878 "util/configparser.c" ++#line 4788 "util/configparser.c" break; - case 420: + case 421: #line 1895 "./util/configparser.y" - { + { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4794,23 -4887,23 +4797,23 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4798 "util/configparser.c" -#line 4891 "util/configparser.c" ++#line 4801 "util/configparser.c" break; - case 421: + case 422: #line 1904 "./util/configparser.y" - { + { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 4809 "util/configparser.c" -#line 4902 "util/configparser.c" ++#line 4812 "util/configparser.c" break; - case 422: + case 423: #line 1912 "./util/configparser.y" - { + { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -4821,23 -4914,23 +4824,23 @@@ } free((yyvsp[0].str)); } - #line 4825 "util/configparser.c" -#line 4918 "util/configparser.c" ++#line 4828 "util/configparser.c" break; - case 423: + case 424: #line 1925 "./util/configparser.y" - { + { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 4836 "util/configparser.c" -#line 4929 "util/configparser.c" ++#line 4839 "util/configparser.c" break; - case 424: + case 425: #line 1933 "./util/configparser.y" - { + { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 && @@@ -4876,22 -4969,22 +4879,22 @@@ fatal_exit("out of memory adding local-zone"); } } - #line 4880 "util/configparser.c" -#line 4973 "util/configparser.c" ++#line 4883 "util/configparser.c" break; - case 425: + case 426: #line 1974 "./util/configparser.y" - { + { OUTYY(("P(server_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->local_data, (yyvsp[0].str))) fatal_exit("out of memory adding local-data"); } - #line 4890 "util/configparser.c" -#line 4983 "util/configparser.c" ++#line 4893 "util/configparser.c" break; - case 426: + case 427: #line 1981 "./util/configparser.y" - { + { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); ptr = cfg_ptr_reverse((yyvsp[0].str)); @@@ -4904,12 -4997,12 +4907,12 @@@ yyerror("local-data-ptr could not be reversed"); } } - #line 4908 "util/configparser.c" -#line 5001 "util/configparser.c" ++#line 4911 "util/configparser.c" break; - case 427: + case 428: #line 1996 "./util/configparser.y" - { + { OUTYY(("P(server_minimal_responses:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4917,12 -5010,12 +4920,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4921 "util/configparser.c" -#line 5014 "util/configparser.c" ++#line 4924 "util/configparser.c" break; - case 428: + case 429: #line 2006 "./util/configparser.y" - { + { OUTYY(("P(server_rrset_roundrobin:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -4930,65 -5023,65 +4933,65 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4934 "util/configparser.c" -#line 5027 "util/configparser.c" ++#line 4937 "util/configparser.c" break; - case 429: + case 430: #line 2016 "./util/configparser.y" - { + { OUTYY(("P(server_unknown_server_time_limit:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->unknown_server_time_limit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4944 "util/configparser.c" -#line 5037 "util/configparser.c" ++#line 4947 "util/configparser.c" break; - case 430: + case 431: #line 2023 "./util/configparser.y" - { + { OUTYY(("P(server_max_udp_size:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->max_udp_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 4954 "util/configparser.c" -#line 5047 "util/configparser.c" ++#line 4957 "util/configparser.c" break; - case 431: + case 432: #line 2030 "./util/configparser.y" - { + { OUTYY(("P(dns64_prefix:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dns64_prefix); cfg_parser->cfg->dns64_prefix = (yyvsp[0].str); } - #line 4964 "util/configparser.c" -#line 5057 "util/configparser.c" ++#line 4967 "util/configparser.c" break; - case 432: + case 433: #line 2037 "./util/configparser.y" - { + { OUTYY(("P(server_dns64_synthall:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4976 "util/configparser.c" -#line 5069 "util/configparser.c" ++#line 4979 "util/configparser.c" break; - case 433: + case 434: #line 2046 "./util/configparser.y" - { + { OUTYY(("P(dns64_ignore_aaaa:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dns64_ignore_aaaa, (yyvsp[0].str))) fatal_exit("out of memory adding dns64-ignore-aaaa"); } - #line 4987 "util/configparser.c" -#line 5080 "util/configparser.c" ++#line 4990 "util/configparser.c" break; - case 434: + case 435: #line 2054 "./util/configparser.y" - { + { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); while((p=strsep(&s, " \t\n")) != NULL) { @@@ -5000,12 -5093,12 +5003,12 @@@ } free((yyvsp[0].str)); } - #line 5004 "util/configparser.c" -#line 5097 "util/configparser.c" ++#line 5007 "util/configparser.c" break; - case 435: + case 436: #line 2068 "./util/configparser.y" - { + { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); @@@ -5024,12 -5117,12 +5027,12 @@@ } } } - #line 5028 "util/configparser.c" -#line 5121 "util/configparser.c" ++#line 5031 "util/configparser.c" break; - case 436: + case 437: #line 2089 "./util/configparser.y" - { + { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); @@@ -5048,12 -5141,12 +5051,12 @@@ } } } - #line 5052 "util/configparser.c" -#line 5145 "util/configparser.c" ++#line 5055 "util/configparser.c" break; - case 437: + case 438: #line 2110 "./util/configparser.y" - { + { OUTYY(("P(server_access_control_tag_action:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_actions, (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { @@@ -5063,12 -5156,12 +5066,12 @@@ free((yyvsp[0].str)); } } - #line 5067 "util/configparser.c" -#line 5160 "util/configparser.c" ++#line 5070 "util/configparser.c" break; - case 438: + case 439: #line 2122 "./util/configparser.y" - { + { OUTYY(("P(server_access_control_tag_data:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->acl_tag_datas, (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { @@@ -5078,12 -5171,12 +5081,12 @@@ free((yyvsp[0].str)); } } - #line 5082 "util/configparser.c" -#line 5175 "util/configparser.c" ++#line 5085 "util/configparser.c" break; - case 439: + case 440: #line 2134 "./util/configparser.y" - { + { OUTYY(("P(server_local_zone_override:%s %s %s)\n", (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str3list_insert(&cfg_parser->cfg->local_zone_overrides, (yyvsp[-2].str), (yyvsp[-1].str), (yyvsp[0].str))) { @@@ -5093,24 -5186,24 +5096,24 @@@ free((yyvsp[0].str)); } } - #line 5097 "util/configparser.c" -#line 5190 "util/configparser.c" ++#line 5100 "util/configparser.c" break; - case 440: + case 441: #line 2146 "./util/configparser.y" - { + { OUTYY(("P(server_access_control_view:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->acl_view, (yyvsp[-1].str), (yyvsp[0].str))) { yyerror("out of memory"); } } - #line 5109 "util/configparser.c" -#line 5202 "util/configparser.c" ++#line 5112 "util/configparser.c" break; - case 441: + case 442: #line 2155 "./util/configparser.y" - { + { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); @@@ -5129,58 -5222,58 +5132,58 @@@ } } } - #line 5133 "util/configparser.c" -#line 5226 "util/configparser.c" ++#line 5136 "util/configparser.c" break; - case 442: + case 443: #line 2176 "./util/configparser.y" - { + { OUTYY(("P(server_ip_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5145 "util/configparser.c" -#line 5238 "util/configparser.c" ++#line 5148 "util/configparser.c" break; - case 443: + case 444: #line 2186 "./util/configparser.y" - { + { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5157 "util/configparser.c" -#line 5250 "util/configparser.c" ++#line 5160 "util/configparser.c" break; - case 444: + case 445: #line 2195 "./util/configparser.y" - { + { OUTYY(("P(server_ip_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ip_ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 5168 "util/configparser.c" -#line 5261 "util/configparser.c" ++#line 5171 "util/configparser.c" break; - case 445: + case 446: #line 2203 "./util/configparser.y" - { + { OUTYY(("P(server_ratelimit_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->ratelimit_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 5179 "util/configparser.c" -#line 5272 "util/configparser.c" ++#line 5182 "util/configparser.c" break; - case 446: + case 447: #line 2211 "./util/configparser.y" - { + { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -5191,12 -5284,12 +5194,12 @@@ } free((yyvsp[0].str)); } - #line 5195 "util/configparser.c" -#line 5288 "util/configparser.c" ++#line 5198 "util/configparser.c" break; - case 447: + case 448: #line 2224 "./util/configparser.y" - { + { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -5207,12 -5300,12 +5210,12 @@@ } free((yyvsp[0].str)); } - #line 5211 "util/configparser.c" -#line 5304 "util/configparser.c" ++#line 5214 "util/configparser.c" break; - case 448: + case 449: #line 2237 "./util/configparser.y" - { + { OUTYY(("P(server_ratelimit_for_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { yyerror("number expected"); @@@ -5225,12 -5318,12 +5228,12 @@@ "ratelimit-for-domain"); } } - #line 5229 "util/configparser.c" -#line 5322 "util/configparser.c" ++#line 5232 "util/configparser.c" break; - case 449: + case 450: #line 2252 "./util/configparser.y" - { + { OUTYY(("P(server_ratelimit_below_domain:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) { yyerror("number expected"); @@@ -5243,69 -5336,69 +5246,69 @@@ "ratelimit-below-domain"); } } - #line 5247 "util/configparser.c" -#line 5340 "util/configparser.c" ++#line 5250 "util/configparser.c" break; - case 450: + case 451: #line 2267 "./util/configparser.y" - { + { OUTYY(("P(server_ip_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5259 "util/configparser.c" -#line 5352 "util/configparser.c" ++#line 5262 "util/configparser.c" break; - case 451: + case 452: #line 2276 "./util/configparser.y" - { + { OUTYY(("P(server_ratelimit_factor:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5271 "util/configparser.c" -#line 5364 "util/configparser.c" ++#line 5274 "util/configparser.c" break; - case 452: + case 453: #line 2285 "./util/configparser.y" - { + { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } - #line 5280 "util/configparser.c" -#line 5373 "util/configparser.c" ++#line 5283 "util/configparser.c" break; - case 453: + case 454: #line 2291 "./util/configparser.y" - { + { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) yyerror("number expected"); else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5292 "util/configparser.c" -#line 5385 "util/configparser.c" ++#line 5295 "util/configparser.c" break; - case 454: + case 455: #line 2300 "./util/configparser.y" - { + { OUTYY(("P(server_fast_server_permil:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5304 "util/configparser.c" -#line 5397 "util/configparser.c" ++#line 5307 "util/configparser.c" break; - case 455: + case 456: #line 2309 "./util/configparser.y" - { + { OUTYY(("P(server_qname_minimisation:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5313,12 -5406,12 +5316,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5317 "util/configparser.c" -#line 5410 "util/configparser.c" ++#line 5320 "util/configparser.c" break; - case 456: + case 457: #line 2319 "./util/configparser.y" - { + { OUTYY(("P(server_qname_minimisation_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5326,12 -5419,12 +5329,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5330 "util/configparser.c" -#line 5423 "util/configparser.c" ++#line 5333 "util/configparser.c" break; - case 457: + case 458: #line 2329 "./util/configparser.y" - { + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@@ -5342,12 -5435,12 +5345,12 @@@ #endif free((yyvsp[0].str)); } - #line 5346 "util/configparser.c" -#line 5439 "util/configparser.c" ++#line 5349 "util/configparser.c" break; - case 458: + case 459: #line 2342 "./util/configparser.y" - { + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@@ -5358,12 -5451,12 +5361,12 @@@ #endif free((yyvsp[0].str)); } - #line 5362 "util/configparser.c" -#line 5455 "util/configparser.c" ++#line 5365 "util/configparser.c" break; - case 459: + case 460: #line 2355 "./util/configparser.y" - { + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ipsecmod_hook); @@@ -5373,12 -5466,12 +5376,12 @@@ free((yyvsp[0].str)); #endif } - #line 5377 "util/configparser.c" -#line 5470 "util/configparser.c" ++#line 5380 "util/configparser.c" break; - case 460: + case 461: #line 2367 "./util/configparser.y" - { + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@@ -5390,12 -5483,12 +5393,12 @@@ free((yyvsp[0].str)); #endif } - #line 5394 "util/configparser.c" -#line 5487 "util/configparser.c" ++#line 5397 "util/configparser.c" break; - case 461: + case 462: #line 2381 "./util/configparser.y" - { + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->ipsecmod_whitelist, (yyvsp[0].str))) @@@ -5405,12 -5498,12 +5408,12 @@@ free((yyvsp[0].str)); #endif } - #line 5409 "util/configparser.c" -#line 5502 "util/configparser.c" ++#line 5412 "util/configparser.c" break; - case 462: + case 463: #line 2393 "./util/configparser.y" - { + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@@ -5422,12 -5515,30 +5425,30 @@@ free((yyvsp[0].str)); #endif } - #line 5426 "util/configparser.c" -#line 5519 "util/configparser.c" ++#line 5429 "util/configparser.c" break; - case 463: + case 464: #line 2407 "./util/configparser.y" - { ++ { + int tag_data; + OUTYY(("P(server_edns_client_tag:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); + tag_data = atoi((yyvsp[0].str)); + if(tag_data > 65535 || tag_data < 0 || + (tag_data == 0 && (strlen((yyvsp[0].str)) != 1 || (yyvsp[0].str)[0] != '0'))) + yyerror("edns-client-tag data invalid, needs to be a " + "number from 0 to 65535"); + if(!cfg_str2list_insert( + &cfg_parser->cfg->edns_client_tags, (yyvsp[-1].str), (yyvsp[0].str))) + fatal_exit("out of memory adding " + "edns-client-tag"); + } -#line 5537 "util/configparser.c" ++#line 5447 "util/configparser.c" + break; + + case 465: + #line 2422 "./util/configparser.y" - { + { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) yyerror("stub name override, there must be one name " @@@ -5435,56 -5546,56 +5456,56 @@@ free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } - #line 5439 "util/configparser.c" -#line 5550 "util/configparser.c" ++#line 5460 "util/configparser.c" break; - case 464: - #line 2417 "./util/configparser.y" + case 466: + #line 2432 "./util/configparser.y" - { + { OUTYY(("P(stub-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->hosts, (yyvsp[0].str))) yyerror("out of memory"); } - #line 5449 "util/configparser.c" -#line 5560 "util/configparser.c" ++#line 5470 "util/configparser.c" break; - case 465: - #line 2424 "./util/configparser.y" + case 467: + #line 2439 "./util/configparser.y" - { + { OUTYY(("P(stub-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->stubs->addrs, (yyvsp[0].str))) yyerror("out of memory"); } - #line 5459 "util/configparser.c" -#line 5570 "util/configparser.c" ++#line 5480 "util/configparser.c" break; - case 466: - #line 2431 "./util/configparser.y" + case 468: + #line 2446 "./util/configparser.y" - { + { OUTYY(("P(stub-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5471 "util/configparser.c" -#line 5582 "util/configparser.c" ++#line 5492 "util/configparser.c" break; - case 467: - #line 2440 "./util/configparser.y" + case 469: + #line 2455 "./util/configparser.y" - { + { OUTYY(("P(stub-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5483 "util/configparser.c" -#line 5594 "util/configparser.c" ++#line 5504 "util/configparser.c" break; - case 468: - #line 2449 "./util/configparser.y" + case 470: + #line 2464 "./util/configparser.y" - { + { OUTYY(("P(stub-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5492,12 -5603,12 +5513,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5496 "util/configparser.c" -#line 5607 "util/configparser.c" ++#line 5517 "util/configparser.c" break; - case 469: - #line 2459 "./util/configparser.y" + case 471: + #line 2474 "./util/configparser.y" - { + { OUTYY(("P(stub-prime:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5505,12 -5616,12 +5526,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5509 "util/configparser.c" -#line 5620 "util/configparser.c" ++#line 5530 "util/configparser.c" break; - case 470: - #line 2469 "./util/configparser.y" + case 472: + #line 2484 "./util/configparser.y" - { + { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) yyerror("forward name override, there must be one " @@@ -5518,56 -5629,56 +5539,56 @@@ free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } - #line 5522 "util/configparser.c" -#line 5633 "util/configparser.c" ++#line 5543 "util/configparser.c" break; - case 471: - #line 2479 "./util/configparser.y" + case 473: + #line 2494 "./util/configparser.y" - { + { OUTYY(("P(forward-host:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->hosts, (yyvsp[0].str))) yyerror("out of memory"); } - #line 5532 "util/configparser.c" -#line 5643 "util/configparser.c" ++#line 5553 "util/configparser.c" break; - case 472: - #line 2486 "./util/configparser.y" + case 474: + #line 2501 "./util/configparser.y" - { + { OUTYY(("P(forward-addr:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->forwards->addrs, (yyvsp[0].str))) yyerror("out of memory"); } - #line 5542 "util/configparser.c" -#line 5653 "util/configparser.c" ++#line 5563 "util/configparser.c" break; - case 473: - #line 2493 "./util/configparser.y" + case 475: + #line 2508 "./util/configparser.y" - { + { OUTYY(("P(forward-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5554 "util/configparser.c" -#line 5665 "util/configparser.c" ++#line 5575 "util/configparser.c" break; - case 474: - #line 2502 "./util/configparser.y" + case 476: + #line 2517 "./util/configparser.y" - { + { OUTYY(("P(forward-no-cache:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5566 "util/configparser.c" -#line 5677 "util/configparser.c" ++#line 5587 "util/configparser.c" break; - case 475: - #line 2511 "./util/configparser.y" + case 477: + #line 2526 "./util/configparser.y" - { + { OUTYY(("P(forward-ssl-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5575,12 -5686,12 +5596,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5579 "util/configparser.c" -#line 5690 "util/configparser.c" ++#line 5600 "util/configparser.c" break; - case 476: - #line 2521 "./util/configparser.y" + case 478: + #line 2536 "./util/configparser.y" - { + { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) yyerror("auth name override, there must be one name " @@@ -5588,53 -5699,53 +5609,53 @@@ free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } - #line 5592 "util/configparser.c" -#line 5703 "util/configparser.c" ++#line 5613 "util/configparser.c" break; - case 477: - #line 2531 "./util/configparser.y" + case 479: + #line 2546 "./util/configparser.y" - { + { OUTYY(("P(zonefile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->zonefile); cfg_parser->cfg->auths->zonefile = (yyvsp[0].str); } - #line 5602 "util/configparser.c" -#line 5713 "util/configparser.c" ++#line 5623 "util/configparser.c" break; - case 478: - #line 2538 "./util/configparser.y" + case 480: + #line 2553 "./util/configparser.y" - { + { OUTYY(("P(master:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->masters, (yyvsp[0].str))) yyerror("out of memory"); } - #line 5612 "util/configparser.c" -#line 5723 "util/configparser.c" ++#line 5633 "util/configparser.c" break; - case 479: - #line 2545 "./util/configparser.y" + case 481: + #line 2560 "./util/configparser.y" - { + { OUTYY(("P(url:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->urls, (yyvsp[0].str))) yyerror("out of memory"); } - #line 5622 "util/configparser.c" -#line 5733 "util/configparser.c" ++#line 5643 "util/configparser.c" break; - case 480: - #line 2552 "./util/configparser.y" + case 482: + #line 2567 "./util/configparser.y" - { + { OUTYY(("P(allow-notify:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->auths->allow_notify, (yyvsp[0].str))) yyerror("out of memory"); } - #line 5633 "util/configparser.c" -#line 5744 "util/configparser.c" ++#line 5654 "util/configparser.c" break; - case 481: - #line 2560 "./util/configparser.y" + case 483: + #line 2575 "./util/configparser.y" - { + { OUTYY(("P(for-downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5642,12 -5753,12 +5663,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5646 "util/configparser.c" -#line 5757 "util/configparser.c" ++#line 5667 "util/configparser.c" break; - case 482: - #line 2570 "./util/configparser.y" + case 484: + #line 2585 "./util/configparser.y" - { + { OUTYY(("P(for-upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5655,12 -5766,12 +5676,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5659 "util/configparser.c" -#line 5770 "util/configparser.c" ++#line 5680 "util/configparser.c" break; - case 483: - #line 2580 "./util/configparser.y" + case 485: + #line 2595 "./util/configparser.y" - { + { OUTYY(("P(fallback-enabled:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5668,12 -5779,12 +5689,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5672 "util/configparser.c" -#line 5783 "util/configparser.c" ++#line 5693 "util/configparser.c" break; - case 484: - #line 2590 "./util/configparser.y" + case 486: + #line 2605 "./util/configparser.y" - { + { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) yyerror("view name override, there must be one " @@@ -5681,12 -5792,12 +5702,12 @@@ free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } - #line 5685 "util/configparser.c" -#line 5796 "util/configparser.c" ++#line 5706 "util/configparser.c" break; - case 485: - #line 2600 "./util/configparser.y" + case 487: + #line 2615 "./util/configparser.y" - { + { OUTYY(("P(view_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 && @@@ -5723,12 -5834,12 +5744,12 @@@ fatal_exit("out of memory adding local-zone"); } } - #line 5727 "util/configparser.c" -#line 5838 "util/configparser.c" ++#line 5748 "util/configparser.c" break; - case 486: - #line 2639 "./util/configparser.y" + case 488: + #line 2654 "./util/configparser.y" - { + { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); if(!cfg_str2list_insert( @@@ -5736,34 -5847,34 +5757,34 @@@ fatal_exit("out of memory adding per-view " "response-ip action"); } - #line 5740 "util/configparser.c" -#line 5851 "util/configparser.c" ++#line 5761 "util/configparser.c" break; - case 487: - #line 2649 "./util/configparser.y" + case 489: + #line 2664 "./util/configparser.y" - { + { OUTYY(("P(view_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->views->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } - #line 5751 "util/configparser.c" -#line 5862 "util/configparser.c" ++#line 5772 "util/configparser.c" break; - case 488: - #line 2657 "./util/configparser.y" + case 490: + #line 2672 "./util/configparser.y" - { + { OUTYY(("P(view_local_data:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->views->local_data, (yyvsp[0].str))) { fatal_exit("out of memory adding local-data"); } } - #line 5762 "util/configparser.c" -#line 5873 "util/configparser.c" ++#line 5783 "util/configparser.c" break; - case 489: - #line 2665 "./util/configparser.y" + case 491: + #line 2680 "./util/configparser.y" - { + { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); ptr = cfg_ptr_reverse((yyvsp[0].str)); @@@ -5776,32 -5887,32 +5797,32 @@@ yyerror("local-data-ptr could not be reversed"); } } - #line 5780 "util/configparser.c" -#line 5891 "util/configparser.c" ++#line 5801 "util/configparser.c" break; - case 490: - #line 2680 "./util/configparser.y" + case 492: + #line 2695 "./util/configparser.y" - { + { OUTYY(("P(view-first:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5792 "util/configparser.c" -#line 5903 "util/configparser.c" ++#line 5813 "util/configparser.c" break; - case 491: - #line 2689 "./util/configparser.y" + case 493: + #line 2704 "./util/configparser.y" - { + { OUTYY(("\nP(remote-control:)\n")); } - #line 5800 "util/configparser.c" -#line 5911 "util/configparser.c" ++#line 5821 "util/configparser.c" break; - case 502: - #line 2700 "./util/configparser.y" + case 504: + #line 2715 "./util/configparser.y" - { + { OUTYY(("P(control_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5809,104 -5920,104 +5830,104 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5813 "util/configparser.c" -#line 5924 "util/configparser.c" ++#line 5834 "util/configparser.c" break; - case 503: - #line 2710 "./util/configparser.y" + case 505: + #line 2725 "./util/configparser.y" - { + { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("control port number expected"); else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 5825 "util/configparser.c" -#line 5936 "util/configparser.c" ++#line 5846 "util/configparser.c" break; - case 504: - #line 2719 "./util/configparser.y" + case 506: + #line 2734 "./util/configparser.y" - { + { OUTYY(("P(control_interface:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->control_ifs, (yyvsp[0].str))) yyerror("out of memory"); } - #line 5835 "util/configparser.c" -#line 5946 "util/configparser.c" ++#line 5856 "util/configparser.c" break; - case 505: - #line 2726 "./util/configparser.y" + case 507: + #line 2741 "./util/configparser.y" - { + { OUTYY(("P(control_use_cert:%s)\n", (yyvsp[0].str))); cfg_parser->cfg->control_use_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5845 "util/configparser.c" -#line 5956 "util/configparser.c" ++#line 5866 "util/configparser.c" break; - case 506: - #line 2733 "./util/configparser.y" + case 508: + #line 2748 "./util/configparser.y" - { + { OUTYY(("P(rc_server_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_key_file); cfg_parser->cfg->server_key_file = (yyvsp[0].str); } - #line 5855 "util/configparser.c" -#line 5966 "util/configparser.c" ++#line 5876 "util/configparser.c" break; - case 507: - #line 2740 "./util/configparser.y" + case 509: + #line 2755 "./util/configparser.y" - { + { OUTYY(("P(rc_server_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->server_cert_file); cfg_parser->cfg->server_cert_file = (yyvsp[0].str); } - #line 5865 "util/configparser.c" -#line 5976 "util/configparser.c" ++#line 5886 "util/configparser.c" break; - case 508: - #line 2747 "./util/configparser.y" + case 510: + #line 2762 "./util/configparser.y" - { + { OUTYY(("P(rc_control_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_key_file); cfg_parser->cfg->control_key_file = (yyvsp[0].str); } - #line 5875 "util/configparser.c" -#line 5986 "util/configparser.c" ++#line 5896 "util/configparser.c" break; - case 509: - #line 2754 "./util/configparser.y" + case 511: + #line 2769 "./util/configparser.y" - { + { OUTYY(("P(rc_control_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->control_cert_file); cfg_parser->cfg->control_cert_file = (yyvsp[0].str); } - #line 5885 "util/configparser.c" -#line 5996 "util/configparser.c" ++#line 5906 "util/configparser.c" break; - case 510: - #line 2761 "./util/configparser.y" + case 512: + #line 2776 "./util/configparser.y" - { + { OUTYY(("\nP(dnstap:)\n")); } - #line 5893 "util/configparser.c" -#line 6004 "util/configparser.c" ++#line 5914 "util/configparser.c" break; - case 532: - #line 2781 "./util/configparser.y" + case 534: + #line 2796 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5905 "util/configparser.c" -#line 6016 "util/configparser.c" ++#line 5926 "util/configparser.c" break; - case 533: - #line 2790 "./util/configparser.y" + case 535: + #line 2805 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_bidirectional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -5914,128 -6025,128 +5935,128 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5918 "util/configparser.c" -#line 6029 "util/configparser.c" ++#line 5939 "util/configparser.c" break; - case 534: - #line 2800 "./util/configparser.y" + case 536: + #line 2815 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_socket_path:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_socket_path); cfg_parser->cfg->dnstap_socket_path = (yyvsp[0].str); } - #line 5928 "util/configparser.c" -#line 6039 "util/configparser.c" ++#line 5949 "util/configparser.c" break; - case 535: - #line 2807 "./util/configparser.y" + case 537: + #line 2822 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_ip:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_ip); cfg_parser->cfg->dnstap_ip = (yyvsp[0].str); } - #line 5938 "util/configparser.c" -#line 6049 "util/configparser.c" ++#line 5959 "util/configparser.c" break; - case 536: - #line 2814 "./util/configparser.y" + case 538: + #line 2829 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_tls:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5950 "util/configparser.c" -#line 6061 "util/configparser.c" ++#line 5971 "util/configparser.c" break; - case 537: - #line 2823 "./util/configparser.y" + case 539: + #line 2838 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_tls_server_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_server_name); cfg_parser->cfg->dnstap_tls_server_name = (yyvsp[0].str); } - #line 5960 "util/configparser.c" -#line 6071 "util/configparser.c" ++#line 5981 "util/configparser.c" break; - case 538: - #line 2830 "./util/configparser.y" + case 540: + #line 2845 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_cert_bundle); cfg_parser->cfg->dnstap_tls_cert_bundle = (yyvsp[0].str); } - #line 5970 "util/configparser.c" -#line 6081 "util/configparser.c" ++#line 5991 "util/configparser.c" break; - case 539: - #line 2837 "./util/configparser.y" + case 541: + #line 2852 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_tls_client_key_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_key_file); cfg_parser->cfg->dnstap_tls_client_key_file = (yyvsp[0].str); } - #line 5980 "util/configparser.c" -#line 6091 "util/configparser.c" ++#line 6001 "util/configparser.c" break; - case 540: - #line 2844 "./util/configparser.y" + case 542: + #line 2859 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_tls_client_cert_file:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_tls_client_cert_file); cfg_parser->cfg->dnstap_tls_client_cert_file = (yyvsp[0].str); } - #line 5990 "util/configparser.c" -#line 6101 "util/configparser.c" ++#line 6011 "util/configparser.c" break; - case 541: - #line 2851 "./util/configparser.y" + case 543: + #line 2866 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_send_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6002 "util/configparser.c" -#line 6113 "util/configparser.c" ++#line 6023 "util/configparser.c" break; - case 542: - #line 2860 "./util/configparser.y" + case 544: + #line 2875 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_send_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6014 "util/configparser.c" -#line 6125 "util/configparser.c" ++#line 6035 "util/configparser.c" break; - case 543: - #line 2869 "./util/configparser.y" + case 545: + #line 2884 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_identity); cfg_parser->cfg->dnstap_identity = (yyvsp[0].str); } - #line 6024 "util/configparser.c" -#line 6135 "util/configparser.c" ++#line 6045 "util/configparser.c" break; - case 544: - #line 2876 "./util/configparser.y" + case 546: + #line 2891 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnstap_version); cfg_parser->cfg->dnstap_version = (yyvsp[0].str); } - #line 6034 "util/configparser.c" -#line 6145 "util/configparser.c" ++#line 6055 "util/configparser.c" break; - case 545: - #line 2883 "./util/configparser.y" + case 547: + #line 2898 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_log_resolver_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6043,12 -6154,12 +6064,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6047 "util/configparser.c" -#line 6158 "util/configparser.c" ++#line 6068 "util/configparser.c" break; - case 546: - #line 2893 "./util/configparser.y" + case 548: + #line 2908 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_log_resolver_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6056,12 -6167,12 +6077,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6060 "util/configparser.c" -#line 6171 "util/configparser.c" ++#line 6081 "util/configparser.c" break; - case 547: - #line 2903 "./util/configparser.y" + case 549: + #line 2918 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_log_client_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6069,12 -6180,12 +6090,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6073 "util/configparser.c" -#line 6184 "util/configparser.c" ++#line 6094 "util/configparser.c" break; - case 548: - #line 2913 "./util/configparser.y" + case 550: + #line 2928 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_log_client_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6082,12 -6193,12 +6103,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6086 "util/configparser.c" -#line 6197 "util/configparser.c" ++#line 6107 "util/configparser.c" break; - case 549: - #line 2923 "./util/configparser.y" + case 551: + #line 2938 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_log_forwarder_query_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6095,12 -6206,12 +6116,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6099 "util/configparser.c" -#line 6210 "util/configparser.c" ++#line 6120 "util/configparser.c" break; - case 550: - #line 2933 "./util/configparser.y" + case 552: + #line 2948 "./util/configparser.y" - { + { OUTYY(("P(dt_dnstap_log_forwarder_response_messages:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6108,48 -6219,48 +6129,48 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6112 "util/configparser.c" -#line 6223 "util/configparser.c" ++#line 6133 "util/configparser.c" break; - case 551: - #line 2943 "./util/configparser.y" + case 553: + #line 2958 "./util/configparser.y" - { + { OUTYY(("\nP(python:)\n")); } - #line 6120 "util/configparser.c" -#line 6231 "util/configparser.c" ++#line 6141 "util/configparser.c" break; - case 555: - #line 2952 "./util/configparser.y" + case 557: + #line 2967 "./util/configparser.y" - { + { OUTYY(("P(python-script:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->python_script, (yyvsp[0].str))) yyerror("out of memory"); } - #line 6130 "util/configparser.c" -#line 6241 "util/configparser.c" ++#line 6151 "util/configparser.c" break; - case 556: - #line 2958 "./util/configparser.y" + case 558: + #line 2973 "./util/configparser.y" - { + { OUTYY(("\nP(dynlib:)\n")); } - #line 6138 "util/configparser.c" -#line 6249 "util/configparser.c" ++#line 6159 "util/configparser.c" break; - case 560: - #line 2967 "./util/configparser.y" + case 562: + #line 2982 "./util/configparser.y" - { + { OUTYY(("P(dynlib-file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append_ex(&cfg_parser->cfg->dynlib_file, (yyvsp[0].str))) yyerror("out of memory"); } - #line 6148 "util/configparser.c" -#line 6259 "util/configparser.c" ++#line 6169 "util/configparser.c" break; - case 561: - #line 2973 "./util/configparser.y" + case 563: + #line 2988 "./util/configparser.y" - { + { OUTYY(("P(disable_dnssec_lame_check:%s)\n", (yyvsp[0].str))); if (strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@@ -6157,132 -6268,132 +6178,132 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6161 "util/configparser.c" -#line 6272 "util/configparser.c" ++#line 6182 "util/configparser.c" break; - case 562: - #line 2983 "./util/configparser.y" + case 564: + #line 2998 "./util/configparser.y" - { + { OUTYY(("P(server_log_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->log_identity); cfg_parser->cfg->log_identity = (yyvsp[0].str); } - #line 6171 "util/configparser.c" -#line 6282 "util/configparser.c" ++#line 6192 "util/configparser.c" break; - case 563: - #line 2990 "./util/configparser.y" + case 565: + #line 3005 "./util/configparser.y" - { + { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_actions, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } - #line 6183 "util/configparser.c" -#line 6294 "util/configparser.c" ++#line 6204 "util/configparser.c" break; - case 564: - #line 2999 "./util/configparser.y" + case 566: + #line 3014 "./util/configparser.y" - { + { OUTYY(("P(server_response_ip_data:%s)\n", (yyvsp[-1].str))); if(!cfg_str2list_insert(&cfg_parser->cfg->respip_data, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip-data"); } - #line 6194 "util/configparser.c" -#line 6305 "util/configparser.c" ++#line 6215 "util/configparser.c" break; - case 565: - #line 3007 "./util/configparser.y" + case 567: + #line 3022 "./util/configparser.y" - { + { OUTYY(("\nP(dnscrypt:)\n")); } - #line 6202 "util/configparser.c" -#line 6313 "util/configparser.c" ++#line 6223 "util/configparser.c" break; - case 578: - #line 3023 "./util/configparser.y" + case 580: + #line 3038 "./util/configparser.y" - { + { OUTYY(("P(dnsc_dnscrypt_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6214 "util/configparser.c" -#line 6325 "util/configparser.c" ++#line 6235 "util/configparser.c" break; - case 579: - #line 3033 "./util/configparser.y" + case 581: + #line 3048 "./util/configparser.y" - { + { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } - #line 6226 "util/configparser.c" -#line 6337 "util/configparser.c" ++#line 6247 "util/configparser.c" break; - case 580: - #line 3042 "./util/configparser.y" + case 582: + #line 3057 "./util/configparser.y" - { + { OUTYY(("P(dnsc_dnscrypt_provider:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->dnscrypt_provider); cfg_parser->cfg->dnscrypt_provider = (yyvsp[0].str); } - #line 6236 "util/configparser.c" -#line 6347 "util/configparser.c" ++#line 6257 "util/configparser.c" break; - case 581: - #line 3049 "./util/configparser.y" + case 583: + #line 3064 "./util/configparser.y" - { + { OUTYY(("P(dnsc_dnscrypt_provider_cert:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) log_warn("dnscrypt-provider-cert %s is a duplicate", (yyvsp[0].str)); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } - #line 6248 "util/configparser.c" -#line 6359 "util/configparser.c" ++#line 6269 "util/configparser.c" break; - case 582: - #line 3058 "./util/configparser.y" + case 584: + #line 3073 "./util/configparser.y" - { + { OUTYY(("P(dnsc_dnscrypt_provider_cert_rotated:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert_rotated, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert-rotated"); } - #line 6258 "util/configparser.c" -#line 6369 "util/configparser.c" ++#line 6279 "util/configparser.c" break; - case 583: - #line 3065 "./util/configparser.y" + case 585: + #line 3080 "./util/configparser.y" - { + { OUTYY(("P(dnsc_dnscrypt_secret_key:%s)\n", (yyvsp[0].str))); if(cfg_strlist_find(cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) log_warn("dnscrypt-secret-key: %s is a duplicate", (yyvsp[0].str)); if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } - #line 6270 "util/configparser.c" -#line 6381 "util/configparser.c" ++#line 6291 "util/configparser.c" break; - case 584: - #line 3074 "./util/configparser.y" + case 586: + #line 3089 "./util/configparser.y" - { + { OUTYY(("P(dnscrypt_shared_secret_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_shared_secret_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 6281 "util/configparser.c" -#line 6392 "util/configparser.c" ++#line 6302 "util/configparser.c" break; - case 585: - #line 3082 "./util/configparser.y" + case 587: + #line 3097 "./util/configparser.y" - { + { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -6293,23 -6404,23 +6314,23 @@@ } free((yyvsp[0].str)); } - #line 6297 "util/configparser.c" -#line 6408 "util/configparser.c" ++#line 6318 "util/configparser.c" break; - case 586: - #line 3095 "./util/configparser.y" + case 588: + #line 3110 "./util/configparser.y" - { + { OUTYY(("P(dnscrypt_nonce_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->dnscrypt_nonce_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } - #line 6308 "util/configparser.c" -#line 6419 "util/configparser.c" ++#line 6329 "util/configparser.c" break; - case 587: - #line 3103 "./util/configparser.y" + case 589: + #line 3118 "./util/configparser.y" - { + { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -6320,20 -6431,20 +6341,20 @@@ } free((yyvsp[0].str)); } - #line 6324 "util/configparser.c" -#line 6435 "util/configparser.c" ++#line 6345 "util/configparser.c" break; - case 588: - #line 3116 "./util/configparser.y" + case 590: + #line 3131 "./util/configparser.y" - { + { OUTYY(("\nP(cachedb:)\n")); } - #line 6332 "util/configparser.c" -#line 6443 "util/configparser.c" ++#line 6353 "util/configparser.c" break; - case 597: - #line 3127 "./util/configparser.y" + case 599: + #line 3142 "./util/configparser.y" - { + { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->cachedb_backend); @@@ -6343,12 -6454,12 +6364,12 @@@ free((yyvsp[0].str)); #endif } - #line 6347 "util/configparser.c" -#line 6458 "util/configparser.c" ++#line 6368 "util/configparser.c" break; - case 598: - #line 3139 "./util/configparser.y" + case 600: + #line 3154 "./util/configparser.y" - { + { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->cachedb_secret); @@@ -6358,12 -6469,12 +6379,12 @@@ free((yyvsp[0].str)); #endif } - #line 6362 "util/configparser.c" -#line 6473 "util/configparser.c" ++#line 6383 "util/configparser.c" break; - case 599: - #line 3151 "./util/configparser.y" + case 601: + #line 3166 "./util/configparser.y" - { + { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->redis_server_host); @@@ -6373,12 -6484,12 +6394,12 @@@ free((yyvsp[0].str)); #endif } - #line 6377 "util/configparser.c" -#line 6488 "util/configparser.c" ++#line 6398 "util/configparser.c" break; - case 600: - #line 3163 "./util/configparser.y" + case 602: + #line 3178 "./util/configparser.y" - { + { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; OUTYY(("P(redis_server_port:%s)\n", (yyvsp[0].str))); @@@ -6391,12 -6502,12 +6412,12 @@@ #endif free((yyvsp[0].str)); } - #line 6395 "util/configparser.c" -#line 6506 "util/configparser.c" ++#line 6416 "util/configparser.c" break; - case 601: - #line 3178 "./util/configparser.y" + case 603: + #line 3193 "./util/configparser.y" - { + { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@@ -6407,12 -6518,12 +6428,12 @@@ #endif free((yyvsp[0].str)); } - #line 6411 "util/configparser.c" -#line 6522 "util/configparser.c" ++#line 6432 "util/configparser.c" break; - case 602: - #line 3191 "./util/configparser.y" + case 604: + #line 3206 "./util/configparser.y" - { + { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@@ -6423,12 -6534,12 +6444,12 @@@ #endif free((yyvsp[0].str)); } - #line 6427 "util/configparser.c" -#line 6538 "util/configparser.c" ++#line 6448 "util/configparser.c" break; - case 603: - #line 3204 "./util/configparser.y" + case 605: + #line 3219 "./util/configparser.y" - { + { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) yyerror("positive number expected"); @@@ -6437,20 -6548,20 +6458,20 @@@ fatal_exit("out of memory adding tcp connection limit"); } } - #line 6441 "util/configparser.c" -#line 6552 "util/configparser.c" ++#line 6462 "util/configparser.c" break; - case 604: - #line 3215 "./util/configparser.y" + case 606: + #line 3230 "./util/configparser.y" - { + { OUTYY(("\nP(ipset:)\n")); } - #line 6449 "util/configparser.c" -#line 6560 "util/configparser.c" ++#line 6470 "util/configparser.c" break; - case 609: - #line 3224 "./util/configparser.y" + case 611: + #line 3239 "./util/configparser.y" - { + { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->ipset_name_v4) @@@ -6463,12 -6574,12 +6484,12 @@@ free((yyvsp[0].str)); #endif } - #line 6467 "util/configparser.c" -#line 6578 "util/configparser.c" ++#line 6488 "util/configparser.c" break; - case 610: - #line 3239 "./util/configparser.y" + case 612: + #line 3254 "./util/configparser.y" - { + { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->ipset_name_v6) @@@ -6481,11 -6592,11 +6502,11 @@@ free((yyvsp[0].str)); #endif } - #line 6485 "util/configparser.c" -#line 6596 "util/configparser.c" ++#line 6506 "util/configparser.c" break; - #line 6489 "util/configparser.c" -#line 6600 "util/configparser.c" ++#line 6510 "util/configparser.c" default: break; }