From: Willem Toorop Date: Tue, 19 Jan 2021 13:21:18 +0000 (+0100) Subject: Merge branch 'master' into features/nsid X-Git-Tag: release-1.13.1rc1~14^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a152c7f907f05272d710abc94ced112051b7068c;p=thirdparty%2Funbound.git Merge branch 'master' into features/nsid --- a152c7f907f05272d710abc94ced112051b7068c diff --cc doc/Changelog index e13a560f7,f50f294af..b9774cf32 --- a/doc/Changelog +++ b/doc/Changelog @@@ -7,7 -69,12 +69,16 @@@ connections fail, in that case we print a hint that this is happening with the error in the logs. - Fix #356: deadlock when listening tcp. + - Fix unbound-dnstap-socket to not use log routine from interrupt + handler and not print so frequently when invoked in sequence. + - Fix on windows to ignore connection failure on UDP, unless verbose. + - Fix for #283: fix stream reuse and tcp fast open. + - Fix update, with write event check with streamreuse and fastopen. + ++2 December 2020: Willem ++ - Support for RFC5001: DNS Name Server Identifier (NSID) Option ++ with the nsid: option in unbound.conf + 1 December 2020: Wouter - Fix #358: Squelch udp connect 'no route to host' errors on low verbosity. diff --cc util/configparser.c index 76ef9b877,c8ea478ea..f1d96b0eb --- a/util/configparser.c +++ b/util/configparser.c @@@ -1176,48 -1103,48 +1176,48 @@@ static const yytype_int16 yyrline[] 280, 280, 281, 281, 281, 282, 282, 282, 283, 283, 284, 285, 285, 286, 286, 287, 287, 288, 288, 289, 289, 289, 290, 290, 290, 291, 291, 291, 292, 292, - 293, 293, 294, 294, 295, 295, 296, 298, 310, 311, - 312, 312, 312, 312, 312, 313, 313, 315, 327, 328, - 329, 329, 329, 329, 330, 330, 332, 346, 347, 348, - 348, 348, 348, 349, 349, 349, 351, 368, 369, 370, - 370, 370, 370, 371, 371, 371, 372, 375, 394, 411, - 419, 429, 437, 454, 455, 456, 456, 456, 456, 456, - 457, 457, 457, 458, 458, 460, 469, 478, 489, 498, - 507, 516, 527, 536, 548, 562, 577, 588, 605, 622, - 639, 656, 671, 686, 699, 714, 723, 732, 741, 750, - 759, 768, 777, 786, 795, 804, 813, 822, 831, 840, - 853, 862, 875, 884, 893, 902, 909, 916, 925, 932, - 941, 949, 956, 963, 971, 980, 988, 1004, 1012, 1020, - 1028, 1036, 1044, 1053, 1062, 1076, 1085, 1094, 1103, 1112, - 1121, 1130, 1137, 1144, 1170, 1178, 1185, 1192, 1199, 1206, - 1214, 1222, 1230, 1237, 1248, 1259, 1266, 1275, 1284, 1293, - 1300, 1307, 1315, 1323, 1333, 1343, 1353, 1367, 1375, 1388, - 1399, 1407, 1420, 1429, 1438, 1447, 1456, 1466, 1476, 1484, - 1497, 1506, 1514, 1523, 1531, 1544, 1553, 1563, 1570, 1580, - 1590, 1600, 1610, 1620, 1630, 1640, 1650, 1657, 1664, 1671, - 1680, 1689, 1698, 1707, 1714, 1724, 1744, 1751, 1769, 1782, - 1795, 1804, 1813, 1822, 1831, 1841, 1851, 1862, 1871, 1880, - 1889, 1898, 1907, 1916, 1929, 1942, 1951, 1958, 1967, 1976, - 1985, 1994, 2002, 2015, 2023, 2068, 2075, 2090, 2100, 2110, - 2117, 2124, 2131, 2140, 2148, 2162, 2183, 2204, 2216, 2228, - 2240, 2249, 2270, 2280, 2289, 2297, 2305, 2318, 2331, 2346, - 2361, 2370, 2379, 2385, 2394, 2403, 2413, 2423, 2436, 2449, - 2461, 2475, 2487, 2501, 2510, 2522, 2532, 2539, 2546, 2555, - 2564, 2574, 2584, 2594, 2601, 2608, 2617, 2626, 2636, 2646, - 2653, 2660, 2667, 2675, 2685, 2695, 2705, 2715, 2754, 2764, - 2772, 2780, 2795, 2804, 2809, 2810, 2811, 2811, 2811, 2812, - 2812, 2812, 2813, 2813, 2815, 2825, 2834, 2841, 2848, 2855, - 2862, 2869, 2876, 2881, 2882, 2883, 2883, 2883, 2884, 2884, - 2884, 2885, 2886, 2886, 2887, 2887, 2888, 2888, 2889, 2890, - 2891, 2892, 2893, 2894, 2896, 2905, 2915, 2922, 2929, 2938, - 2945, 2952, 2959, 2966, 2975, 2984, 2991, 2998, 3008, 3018, - 3028, 3038, 3048, 3058, 3063, 3064, 3065, 3067, 3073, 3078, - 3079, 3080, 3082, 3088, 3098, 3105, 3114, 3122, 3127, 3128, - 3130, 3130, 3130, 3131, 3131, 3132, 3133, 3134, 3135, 3136, - 3138, 3148, 3157, 3164, 3173, 3180, 3189, 3197, 3210, 3218, - 3231, 3236, 3237, 3238, 3238, 3239, 3239, 3239, 3240, 3242, - 3254, 3266, 3278, 3293, 3306, 3319, 3330, 3335, 3336, 3337, - 3337, 3339, 3354 + 293, 293, 294, 294, 295, 295, 296, 296, 298, 310, + 311, 312, 312, 312, 312, 312, 313, 313, 315, 327, + 328, 329, 329, 329, 329, 330, 330, 332, 346, 347, + 348, 348, 348, 348, 349, 349, 349, 351, 368, 369, + 370, 370, 370, 370, 371, 371, 371, 372, 375, 394, + 411, 419, 429, 437, 454, 455, 456, 456, 456, 456, + 456, 457, 457, 457, 458, 458, 460, 469, 478, 489, + 498, 507, 516, 527, 536, 548, 562, 577, 588, 605, + 622, 639, 656, 671, 686, 699, 714, 723, 732, 741, + 750, 759, 768, 777, 786, 795, 804, 813, 822, 831, + 840, 853, 862, 875, 884, 893, 902, 909, 916, 925, + 932, 941, 949, 956, 963, 971, 980, 988, 1004, 1012, + 1020, 1028, 1036, 1044, 1053, 1062, 1076, 1085, 1094, 1103, + 1112, 1121, 1130, 1137, 1144, 1170, 1178, 1185, 1192, 1199, + 1206, 1214, 1222, 1230, 1237, 1248, 1259, 1266, 1275, 1284, + 1293, 1300, 1307, 1323, 1331, 1339, 1349, 1359, 1369, 1383, + 1391, 1404, 1415, 1423, 1436, 1445, 1454, 1463, 1472, 1482, + 1492, 1500, 1513, 1522, 1530, 1539, 1547, 1560, 1569, 1579, + 1586, 1596, 1606, 1616, 1626, 1636, 1646, 1656, 1666, 1673, + 1680, 1687, 1696, 1705, 1714, 1723, 1730, 1740, 1760, 1767, + 1785, 1798, 1811, 1820, 1829, 1838, 1847, 1857, 1867, 1878, + 1887, 1896, 1905, 1914, 1923, 1932, 1945, 1958, 1967, 1974, - 1983, 1992, 2001, 2010, 2018, 2031, 2039, 2080, 2087, 2102, - 2112, 2122, 2129, 2136, 2143, 2152, 2160, 2174, 2195, 2216, - 2228, 2240, 2252, 2261, 2282, 2292, 2301, 2309, 2317, 2330, - 2343, 2358, 2373, 2382, 2391, 2397, 2406, 2415, 2425, 2435, - 2448, 2461, 2473, 2487, 2499, 2513, 2522, 2534, 2544, 2551, - 2558, 2567, 2576, 2586, 2596, 2606, 2613, 2620, 2629, 2638, - 2648, 2658, 2665, 2672, 2679, 2687, 2697, 2707, 2717, 2727, - 2766, 2776, 2784, 2792, 2807, 2816, 2821, 2822, 2823, 2823, - 2823, 2824, 2824, 2824, 2825, 2825, 2827, 2837, 2846, 2853, - 2860, 2867, 2874, 2881, 2888, 2893, 2894, 2895, 2895, 2895, - 2896, 2896, 2896, 2897, 2898, 2898, 2899, 2899, 2900, 2900, - 2901, 2902, 2903, 2904, 2905, 2906, 2908, 2917, 2927, 2934, - 2941, 2950, 2957, 2964, 2971, 2978, 2987, 2996, 3003, 3010, - 3020, 3030, 3040, 3050, 3060, 3070, 3075, 3076, 3077, 3079, - 3085, 3090, 3091, 3092, 3094, 3100, 3110, 3117, 3126, 3134, - 3139, 3140, 3142, 3142, 3142, 3143, 3143, 3144, 3145, 3146, - 3147, 3148, 3150, 3160, 3169, 3176, 3185, 3192, 3201, 3209, - 3222, 3230, 3243, 3248, 3249, 3250, 3250, 3251, 3251, 3251, - 3252, 3254, 3266, 3278, 3290, 3305, 3318, 3331, 3342, 3347, - 3348, 3349, 3349, 3351, 3366 ++ 1983, 1992, 2001, 2010, 2018, 2031, 2039, 2084, 2091, 2106, ++ 2116, 2126, 2133, 2140, 2147, 2156, 2164, 2178, 2199, 2220, ++ 2232, 2244, 2256, 2265, 2286, 2296, 2305, 2313, 2321, 2334, ++ 2347, 2362, 2377, 2386, 2395, 2401, 2410, 2419, 2429, 2439, ++ 2452, 2465, 2477, 2491, 2503, 2517, 2526, 2538, 2548, 2555, ++ 2562, 2571, 2580, 2590, 2600, 2610, 2617, 2624, 2633, 2642, ++ 2652, 2662, 2669, 2676, 2683, 2691, 2701, 2711, 2721, 2731, ++ 2770, 2780, 2788, 2796, 2811, 2820, 2825, 2826, 2827, 2827, ++ 2827, 2828, 2828, 2828, 2829, 2829, 2831, 2841, 2850, 2857, ++ 2864, 2871, 2878, 2885, 2892, 2897, 2898, 2899, 2899, 2899, ++ 2900, 2900, 2900, 2901, 2902, 2902, 2903, 2903, 2904, 2904, ++ 2905, 2906, 2907, 2908, 2909, 2910, 2912, 2921, 2931, 2938, ++ 2945, 2954, 2961, 2968, 2975, 2982, 2991, 3000, 3007, 3014, ++ 3024, 3034, 3044, 3054, 3064, 3074, 3079, 3080, 3081, 3083, ++ 3089, 3094, 3095, 3096, 3098, 3104, 3114, 3121, 3130, 3138, ++ 3143, 3144, 3146, 3146, 3146, 3147, 3147, 3148, 3149, 3150, ++ 3151, 3152, 3154, 3164, 3173, 3180, 3189, 3196, 3205, 3213, ++ 3226, 3234, 3247, 3252, 3253, 3254, 3254, 3255, 3255, 3255, ++ 3256, 3258, 3270, 3282, 3294, 3309, 3322, 3335, 3346, 3351, ++ 3352, 3353, 3353, 3355, 3370 }; #endif @@@ -4940,22 -5053,22 +4944,22 @@@ yyreduce fatal_exit("out of memory adding local-zone"); } } - #line 4944 "util/configparser.c" -#line 5057 "util/configparser.c" ++#line 4948 "util/configparser.c" break; - case 445: -#line 2069 "./util/configparser.y" - { + case 447: /* server_local_data: VAR_LOCAL_DATA STRING_ARG */ - #line 2081 "./util/configparser.y" ++#line 2085 "./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 4954 "util/configparser.c" -#line 5067 "util/configparser.c" ++#line 4958 "util/configparser.c" break; - case 446: -#line 2076 "./util/configparser.y" - { + case 448: /* server_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ - #line 2088 "./util/configparser.y" ++#line 2092 "./util/configparser.y" + { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); ptr = cfg_ptr_reverse((yyvsp[0].str)); @@@ -4968,12 -5081,12 +4972,12 @@@ yyerror("local-data-ptr could not be reversed"); } } - #line 4972 "util/configparser.c" -#line 5085 "util/configparser.c" ++#line 4976 "util/configparser.c" break; - case 447: -#line 2091 "./util/configparser.y" - { + case 449: /* server_minimal_responses: VAR_MINIMAL_RESPONSES STRING_ARG */ - #line 2103 "./util/configparser.y" ++#line 2107 "./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."); @@@ -4981,12 -5094,12 +4985,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4985 "util/configparser.c" -#line 5098 "util/configparser.c" ++#line 4989 "util/configparser.c" break; - case 448: -#line 2101 "./util/configparser.y" - { + case 450: /* server_rrset_roundrobin: VAR_RRSET_ROUNDROBIN STRING_ARG */ - #line 2113 "./util/configparser.y" ++#line 2117 "./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."); @@@ -4994,65 -5107,65 +4998,65 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 4998 "util/configparser.c" -#line 5111 "util/configparser.c" ++#line 5002 "util/configparser.c" break; - case 449: -#line 2111 "./util/configparser.y" - { + case 451: /* server_unknown_server_time_limit: VAR_UNKNOWN_SERVER_TIME_LIMIT STRING_ARG */ - #line 2123 "./util/configparser.y" ++#line 2127 "./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 5008 "util/configparser.c" -#line 5121 "util/configparser.c" ++#line 5012 "util/configparser.c" break; - case 450: -#line 2118 "./util/configparser.y" - { + case 452: /* server_max_udp_size: VAR_MAX_UDP_SIZE STRING_ARG */ - #line 2130 "./util/configparser.y" ++#line 2134 "./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 5018 "util/configparser.c" -#line 5131 "util/configparser.c" ++#line 5022 "util/configparser.c" break; - case 451: -#line 2125 "./util/configparser.y" - { + case 453: /* server_dns64_prefix: VAR_DNS64_PREFIX STRING_ARG */ - #line 2137 "./util/configparser.y" ++#line 2141 "./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 5028 "util/configparser.c" -#line 5141 "util/configparser.c" ++#line 5032 "util/configparser.c" break; - case 452: -#line 2132 "./util/configparser.y" - { + case 454: /* server_dns64_synthall: VAR_DNS64_SYNTHALL STRING_ARG */ - #line 2144 "./util/configparser.y" ++#line 2148 "./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 5040 "util/configparser.c" -#line 5153 "util/configparser.c" ++#line 5044 "util/configparser.c" break; - case 453: -#line 2141 "./util/configparser.y" - { + case 455: /* server_dns64_ignore_aaaa: VAR_DNS64_IGNORE_AAAA STRING_ARG */ - #line 2153 "./util/configparser.y" ++#line 2157 "./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 5051 "util/configparser.c" -#line 5164 "util/configparser.c" ++#line 5055 "util/configparser.c" break; - case 454: -#line 2149 "./util/configparser.y" - { + case 456: /* server_define_tag: VAR_DEFINE_TAG STRING_ARG */ - #line 2161 "./util/configparser.y" ++#line 2165 "./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) { @@@ -5064,12 -5177,12 +5068,12 @@@ } free((yyvsp[0].str)); } - #line 5068 "util/configparser.c" -#line 5181 "util/configparser.c" ++#line 5072 "util/configparser.c" break; - case 455: -#line 2163 "./util/configparser.y" - { + case 457: /* server_local_zone_tag: VAR_LOCAL_ZONE_TAG STRING_ARG STRING_ARG */ - #line 2175 "./util/configparser.y" ++#line 2179 "./util/configparser.y" + { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); @@@ -5088,12 -5201,12 +5092,12 @@@ } } } - #line 5092 "util/configparser.c" -#line 5205 "util/configparser.c" ++#line 5096 "util/configparser.c" break; - case 456: -#line 2184 "./util/configparser.y" - { + case 458: /* server_access_control_tag: VAR_ACCESS_CONTROL_TAG STRING_ARG STRING_ARG */ - #line 2196 "./util/configparser.y" ++#line 2200 "./util/configparser.y" + { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); @@@ -5112,12 -5225,12 +5116,12 @@@ } } } - #line 5116 "util/configparser.c" -#line 5229 "util/configparser.c" ++#line 5120 "util/configparser.c" break; - case 457: -#line 2205 "./util/configparser.y" - { + case 459: /* server_access_control_tag_action: VAR_ACCESS_CONTROL_TAG_ACTION STRING_ARG STRING_ARG STRING_ARG */ - #line 2217 "./util/configparser.y" ++#line 2221 "./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))) { @@@ -5127,12 -5240,12 +5131,12 @@@ free((yyvsp[0].str)); } } - #line 5131 "util/configparser.c" -#line 5244 "util/configparser.c" ++#line 5135 "util/configparser.c" break; - case 458: -#line 2217 "./util/configparser.y" - { + case 460: /* server_access_control_tag_data: VAR_ACCESS_CONTROL_TAG_DATA STRING_ARG STRING_ARG STRING_ARG */ - #line 2229 "./util/configparser.y" ++#line 2233 "./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))) { @@@ -5142,12 -5255,12 +5146,12 @@@ free((yyvsp[0].str)); } } - #line 5146 "util/configparser.c" -#line 5259 "util/configparser.c" ++#line 5150 "util/configparser.c" break; - case 459: -#line 2229 "./util/configparser.y" - { + case 461: /* server_local_zone_override: VAR_LOCAL_ZONE_OVERRIDE STRING_ARG STRING_ARG STRING_ARG */ - #line 2241 "./util/configparser.y" ++#line 2245 "./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))) { @@@ -5157,24 -5270,24 +5161,24 @@@ free((yyvsp[0].str)); } } - #line 5161 "util/configparser.c" -#line 5274 "util/configparser.c" ++#line 5165 "util/configparser.c" break; - case 460: -#line 2241 "./util/configparser.y" - { + case 462: /* server_access_control_view: VAR_ACCESS_CONTROL_VIEW STRING_ARG STRING_ARG */ - #line 2253 "./util/configparser.y" ++#line 2257 "./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 5173 "util/configparser.c" -#line 5286 "util/configparser.c" ++#line 5177 "util/configparser.c" break; - case 461: -#line 2250 "./util/configparser.y" - { + case 463: /* server_response_ip_tag: VAR_RESPONSE_IP_TAG STRING_ARG STRING_ARG */ - #line 2262 "./util/configparser.y" ++#line 2266 "./util/configparser.y" + { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); @@@ -5193,58 -5306,58 +5197,58 @@@ } } } - #line 5197 "util/configparser.c" -#line 5310 "util/configparser.c" ++#line 5201 "util/configparser.c" break; - case 462: -#line 2271 "./util/configparser.y" - { + case 464: /* server_ip_ratelimit: VAR_IP_RATELIMIT STRING_ARG */ - #line 2283 "./util/configparser.y" ++#line 2287 "./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 5209 "util/configparser.c" -#line 5322 "util/configparser.c" ++#line 5213 "util/configparser.c" break; - case 463: -#line 2281 "./util/configparser.y" - { + case 465: /* server_ratelimit: VAR_RATELIMIT STRING_ARG */ - #line 2293 "./util/configparser.y" ++#line 2297 "./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 5221 "util/configparser.c" -#line 5334 "util/configparser.c" ++#line 5225 "util/configparser.c" break; - case 464: -#line 2290 "./util/configparser.y" - { + case 466: /* server_ip_ratelimit_size: VAR_IP_RATELIMIT_SIZE STRING_ARG */ - #line 2302 "./util/configparser.y" ++#line 2306 "./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 5232 "util/configparser.c" -#line 5345 "util/configparser.c" ++#line 5236 "util/configparser.c" break; - case 465: -#line 2298 "./util/configparser.y" - { + case 467: /* server_ratelimit_size: VAR_RATELIMIT_SIZE STRING_ARG */ - #line 2310 "./util/configparser.y" ++#line 2314 "./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 5243 "util/configparser.c" -#line 5356 "util/configparser.c" ++#line 5247 "util/configparser.c" break; - case 466: -#line 2306 "./util/configparser.y" - { + case 468: /* server_ip_ratelimit_slabs: VAR_IP_RATELIMIT_SLABS STRING_ARG */ - #line 2318 "./util/configparser.y" ++#line 2322 "./util/configparser.y" + { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -5255,12 -5368,12 +5259,12 @@@ } free((yyvsp[0].str)); } - #line 5259 "util/configparser.c" -#line 5372 "util/configparser.c" ++#line 5263 "util/configparser.c" break; - case 467: -#line 2319 "./util/configparser.y" - { + case 469: /* server_ratelimit_slabs: VAR_RATELIMIT_SLABS STRING_ARG */ - #line 2331 "./util/configparser.y" ++#line 2335 "./util/configparser.y" + { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -5271,12 -5384,12 +5275,12 @@@ } free((yyvsp[0].str)); } - #line 5275 "util/configparser.c" -#line 5388 "util/configparser.c" ++#line 5279 "util/configparser.c" break; - case 468: -#line 2332 "./util/configparser.y" - { + case 470: /* server_ratelimit_for_domain: VAR_RATELIMIT_FOR_DOMAIN STRING_ARG STRING_ARG */ - #line 2344 "./util/configparser.y" ++#line 2348 "./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"); @@@ -5289,12 -5402,12 +5293,12 @@@ "ratelimit-for-domain"); } } - #line 5293 "util/configparser.c" -#line 5406 "util/configparser.c" ++#line 5297 "util/configparser.c" break; - case 469: -#line 2347 "./util/configparser.y" - { + case 471: /* server_ratelimit_below_domain: VAR_RATELIMIT_BELOW_DOMAIN STRING_ARG STRING_ARG */ - #line 2359 "./util/configparser.y" ++#line 2363 "./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"); @@@ -5307,69 -5420,69 +5311,69 @@@ "ratelimit-below-domain"); } } - #line 5311 "util/configparser.c" -#line 5424 "util/configparser.c" ++#line 5315 "util/configparser.c" break; - case 470: -#line 2362 "./util/configparser.y" - { + case 472: /* server_ip_ratelimit_factor: VAR_IP_RATELIMIT_FACTOR STRING_ARG */ - #line 2374 "./util/configparser.y" ++#line 2378 "./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 5323 "util/configparser.c" -#line 5436 "util/configparser.c" ++#line 5327 "util/configparser.c" break; - case 471: -#line 2371 "./util/configparser.y" - { + case 473: /* server_ratelimit_factor: VAR_RATELIMIT_FACTOR STRING_ARG */ - #line 2383 "./util/configparser.y" ++#line 2387 "./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 5335 "util/configparser.c" -#line 5448 "util/configparser.c" ++#line 5339 "util/configparser.c" break; - case 472: -#line 2380 "./util/configparser.y" - { + case 474: /* server_low_rtt: VAR_LOW_RTT STRING_ARG */ - #line 2392 "./util/configparser.y" ++#line 2396 "./util/configparser.y" + { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } - #line 5344 "util/configparser.c" -#line 5457 "util/configparser.c" ++#line 5348 "util/configparser.c" break; - case 473: -#line 2386 "./util/configparser.y" - { + case 475: /* server_fast_server_num: VAR_FAST_SERVER_NUM STRING_ARG */ - #line 2398 "./util/configparser.y" ++#line 2402 "./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 5356 "util/configparser.c" -#line 5469 "util/configparser.c" ++#line 5360 "util/configparser.c" break; - case 474: -#line 2395 "./util/configparser.y" - { + case 476: /* server_fast_server_permil: VAR_FAST_SERVER_PERMIL STRING_ARG */ - #line 2407 "./util/configparser.y" ++#line 2411 "./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 5368 "util/configparser.c" -#line 5481 "util/configparser.c" ++#line 5372 "util/configparser.c" break; - case 475: -#line 2404 "./util/configparser.y" - { + case 477: /* server_qname_minimisation: VAR_QNAME_MINIMISATION STRING_ARG */ - #line 2416 "./util/configparser.y" ++#line 2420 "./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."); @@@ -5377,12 -5490,12 +5381,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5381 "util/configparser.c" -#line 5494 "util/configparser.c" ++#line 5385 "util/configparser.c" break; - case 476: -#line 2414 "./util/configparser.y" - { + case 478: /* server_qname_minimisation_strict: VAR_QNAME_MINIMISATION_STRICT STRING_ARG */ - #line 2426 "./util/configparser.y" ++#line 2430 "./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."); @@@ -5390,12 -5503,12 +5394,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5394 "util/configparser.c" -#line 5507 "util/configparser.c" ++#line 5398 "util/configparser.c" break; - case 477: -#line 2424 "./util/configparser.y" - { + case 479: /* server_ipsecmod_enabled: VAR_IPSECMOD_ENABLED STRING_ARG */ - #line 2436 "./util/configparser.y" ++#line 2440 "./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) @@@ -5406,12 -5519,12 +5410,12 @@@ #endif free((yyvsp[0].str)); } - #line 5410 "util/configparser.c" -#line 5523 "util/configparser.c" ++#line 5414 "util/configparser.c" break; - case 478: -#line 2437 "./util/configparser.y" - { + case 480: /* server_ipsecmod_ignore_bogus: VAR_IPSECMOD_IGNORE_BOGUS STRING_ARG */ - #line 2449 "./util/configparser.y" ++#line 2453 "./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) @@@ -5422,12 -5535,12 +5426,12 @@@ #endif free((yyvsp[0].str)); } - #line 5426 "util/configparser.c" -#line 5539 "util/configparser.c" ++#line 5430 "util/configparser.c" break; - case 479: -#line 2450 "./util/configparser.y" - { + case 481: /* server_ipsecmod_hook: VAR_IPSECMOD_HOOK STRING_ARG */ - #line 2462 "./util/configparser.y" ++#line 2466 "./util/configparser.y" + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ipsecmod_hook); @@@ -5437,12 -5550,12 +5441,12 @@@ free((yyvsp[0].str)); #endif } - #line 5441 "util/configparser.c" -#line 5554 "util/configparser.c" ++#line 5445 "util/configparser.c" break; - case 480: -#line 2462 "./util/configparser.y" - { + case 482: /* server_ipsecmod_max_ttl: VAR_IPSECMOD_MAX_TTL STRING_ARG */ - #line 2474 "./util/configparser.y" ++#line 2478 "./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) @@@ -5454,12 -5567,12 +5458,12 @@@ free((yyvsp[0].str)); #endif } - #line 5458 "util/configparser.c" -#line 5571 "util/configparser.c" ++#line 5462 "util/configparser.c" break; - case 481: -#line 2476 "./util/configparser.y" - { + case 483: /* server_ipsecmod_whitelist: VAR_IPSECMOD_WHITELIST STRING_ARG */ - #line 2488 "./util/configparser.y" ++#line 2492 "./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))) @@@ -5469,12 -5582,12 +5473,12 @@@ free((yyvsp[0].str)); #endif } - #line 5473 "util/configparser.c" -#line 5586 "util/configparser.c" ++#line 5477 "util/configparser.c" break; - case 482: -#line 2488 "./util/configparser.y" - { + case 484: /* server_ipsecmod_strict: VAR_IPSECMOD_STRICT STRING_ARG */ - #line 2500 "./util/configparser.y" ++#line 2504 "./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) @@@ -5486,24 -5599,24 +5490,24 @@@ free((yyvsp[0].str)); #endif } - #line 5490 "util/configparser.c" -#line 5603 "util/configparser.c" ++#line 5494 "util/configparser.c" break; - case 483: -#line 2502 "./util/configparser.y" - { + case 485: /* server_edns_client_string: VAR_EDNS_CLIENT_STRING STRING_ARG STRING_ARG */ - #line 2514 "./util/configparser.y" ++#line 2518 "./util/configparser.y" + { OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert( &cfg_parser->cfg->edns_client_strings, (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding " "edns-client-string"); } - #line 5502 "util/configparser.c" -#line 5615 "util/configparser.c" ++#line 5506 "util/configparser.c" break; - case 484: -#line 2511 "./util/configparser.y" - { + case 486: /* server_edns_client_string_opcode: VAR_EDNS_CLIENT_STRING_OPCODE STRING_ARG */ - #line 2523 "./util/configparser.y" ++#line 2527 "./util/configparser.y" + { OUTYY(("P(edns_client_string_opcode:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("option code expected"); @@@ -5513,12 -5626,12 +5517,12 @@@ free((yyvsp[0].str)); } - #line 5517 "util/configparser.c" -#line 5630 "util/configparser.c" ++#line 5521 "util/configparser.c" break; - case 485: -#line 2523 "./util/configparser.y" - { + case 487: /* stub_name: VAR_NAME STRING_ARG */ - #line 2535 "./util/configparser.y" ++#line 2539 "./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 " @@@ -5526,56 -5639,56 +5530,56 @@@ free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } - #line 5530 "util/configparser.c" -#line 5643 "util/configparser.c" ++#line 5534 "util/configparser.c" break; - case 486: -#line 2533 "./util/configparser.y" - { + case 488: /* stub_host: VAR_STUB_HOST STRING_ARG */ - #line 2545 "./util/configparser.y" ++#line 2549 "./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 5540 "util/configparser.c" -#line 5653 "util/configparser.c" ++#line 5544 "util/configparser.c" break; - case 487: -#line 2540 "./util/configparser.y" - { + case 489: /* stub_addr: VAR_STUB_ADDR STRING_ARG */ - #line 2552 "./util/configparser.y" ++#line 2556 "./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 5550 "util/configparser.c" -#line 5663 "util/configparser.c" ++#line 5554 "util/configparser.c" break; - case 488: -#line 2547 "./util/configparser.y" - { + case 490: /* stub_first: VAR_STUB_FIRST STRING_ARG */ - #line 2559 "./util/configparser.y" ++#line 2563 "./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 5562 "util/configparser.c" -#line 5675 "util/configparser.c" ++#line 5566 "util/configparser.c" break; - case 489: -#line 2556 "./util/configparser.y" - { + case 491: /* stub_no_cache: VAR_STUB_NO_CACHE STRING_ARG */ - #line 2568 "./util/configparser.y" ++#line 2572 "./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 5574 "util/configparser.c" -#line 5687 "util/configparser.c" ++#line 5578 "util/configparser.c" break; - case 490: -#line 2565 "./util/configparser.y" - { + case 492: /* stub_ssl_upstream: VAR_STUB_SSL_UPSTREAM STRING_ARG */ - #line 2577 "./util/configparser.y" ++#line 2581 "./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."); @@@ -5583,12 -5696,12 +5587,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5587 "util/configparser.c" -#line 5700 "util/configparser.c" ++#line 5591 "util/configparser.c" break; - case 491: -#line 2575 "./util/configparser.y" - { + case 493: /* stub_prime: VAR_STUB_PRIME STRING_ARG */ - #line 2587 "./util/configparser.y" ++#line 2591 "./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."); @@@ -5596,12 -5709,12 +5600,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5600 "util/configparser.c" -#line 5713 "util/configparser.c" ++#line 5604 "util/configparser.c" break; - case 492: -#line 2585 "./util/configparser.y" - { + case 494: /* forward_name: VAR_NAME STRING_ARG */ - #line 2597 "./util/configparser.y" ++#line 2601 "./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 " @@@ -5609,56 -5722,56 +5613,56 @@@ free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } - #line 5613 "util/configparser.c" -#line 5726 "util/configparser.c" ++#line 5617 "util/configparser.c" break; - case 493: -#line 2595 "./util/configparser.y" - { + case 495: /* forward_host: VAR_FORWARD_HOST STRING_ARG */ - #line 2607 "./util/configparser.y" ++#line 2611 "./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 5623 "util/configparser.c" -#line 5736 "util/configparser.c" ++#line 5627 "util/configparser.c" break; - case 494: -#line 2602 "./util/configparser.y" - { + case 496: /* forward_addr: VAR_FORWARD_ADDR STRING_ARG */ - #line 2614 "./util/configparser.y" ++#line 2618 "./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 5633 "util/configparser.c" -#line 5746 "util/configparser.c" ++#line 5637 "util/configparser.c" break; - case 495: -#line 2609 "./util/configparser.y" - { + case 497: /* forward_first: VAR_FORWARD_FIRST STRING_ARG */ - #line 2621 "./util/configparser.y" ++#line 2625 "./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 5645 "util/configparser.c" -#line 5758 "util/configparser.c" ++#line 5649 "util/configparser.c" break; - case 496: -#line 2618 "./util/configparser.y" - { + case 498: /* forward_no_cache: VAR_FORWARD_NO_CACHE STRING_ARG */ - #line 2630 "./util/configparser.y" ++#line 2634 "./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 5657 "util/configparser.c" -#line 5770 "util/configparser.c" ++#line 5661 "util/configparser.c" break; - case 497: -#line 2627 "./util/configparser.y" - { + case 499: /* forward_ssl_upstream: VAR_FORWARD_SSL_UPSTREAM STRING_ARG */ - #line 2639 "./util/configparser.y" ++#line 2643 "./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."); @@@ -5666,12 -5779,12 +5670,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5670 "util/configparser.c" -#line 5783 "util/configparser.c" ++#line 5674 "util/configparser.c" break; - case 498: -#line 2637 "./util/configparser.y" - { + case 500: /* auth_name: VAR_NAME STRING_ARG */ - #line 2649 "./util/configparser.y" ++#line 2653 "./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 " @@@ -5679,53 -5792,53 +5683,53 @@@ free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } - #line 5683 "util/configparser.c" -#line 5796 "util/configparser.c" ++#line 5687 "util/configparser.c" break; - case 499: -#line 2647 "./util/configparser.y" - { + case 501: /* auth_zonefile: VAR_ZONEFILE STRING_ARG */ - #line 2659 "./util/configparser.y" ++#line 2663 "./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 5693 "util/configparser.c" -#line 5806 "util/configparser.c" ++#line 5697 "util/configparser.c" break; - case 500: -#line 2654 "./util/configparser.y" - { + case 502: /* auth_master: VAR_MASTER STRING_ARG */ - #line 2666 "./util/configparser.y" ++#line 2670 "./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 5703 "util/configparser.c" -#line 5816 "util/configparser.c" ++#line 5707 "util/configparser.c" break; - case 501: -#line 2661 "./util/configparser.y" - { + case 503: /* auth_url: VAR_URL STRING_ARG */ - #line 2673 "./util/configparser.y" ++#line 2677 "./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 5713 "util/configparser.c" -#line 5826 "util/configparser.c" ++#line 5717 "util/configparser.c" break; - case 502: -#line 2668 "./util/configparser.y" - { + case 504: /* auth_allow_notify: VAR_ALLOW_NOTIFY STRING_ARG */ - #line 2680 "./util/configparser.y" ++#line 2684 "./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 5724 "util/configparser.c" -#line 5837 "util/configparser.c" ++#line 5728 "util/configparser.c" break; - case 503: -#line 2676 "./util/configparser.y" - { + case 505: /* auth_for_downstream: VAR_FOR_DOWNSTREAM STRING_ARG */ - #line 2688 "./util/configparser.y" ++#line 2692 "./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."); @@@ -5733,12 -5846,12 +5737,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5737 "util/configparser.c" -#line 5850 "util/configparser.c" ++#line 5741 "util/configparser.c" break; - case 504: -#line 2686 "./util/configparser.y" - { + case 506: /* auth_for_upstream: VAR_FOR_UPSTREAM STRING_ARG */ - #line 2698 "./util/configparser.y" ++#line 2702 "./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."); @@@ -5746,12 -5859,12 +5750,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5750 "util/configparser.c" -#line 5863 "util/configparser.c" ++#line 5754 "util/configparser.c" break; - case 505: -#line 2696 "./util/configparser.y" - { + case 507: /* auth_fallback_enabled: VAR_FALLBACK_ENABLED STRING_ARG */ - #line 2708 "./util/configparser.y" ++#line 2712 "./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."); @@@ -5759,12 -5872,12 +5763,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5763 "util/configparser.c" -#line 5876 "util/configparser.c" ++#line 5767 "util/configparser.c" break; - case 506: -#line 2706 "./util/configparser.y" - { + case 508: /* view_name: VAR_NAME STRING_ARG */ - #line 2718 "./util/configparser.y" ++#line 2722 "./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 " @@@ -5772,12 -5885,12 +5776,12 @@@ free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } - #line 5776 "util/configparser.c" -#line 5889 "util/configparser.c" ++#line 5780 "util/configparser.c" break; - case 507: -#line 2716 "./util/configparser.y" - { + case 509: /* view_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG */ - #line 2728 "./util/configparser.y" ++#line 2732 "./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 && @@@ -5814,12 -5927,12 +5818,12 @@@ fatal_exit("out of memory adding local-zone"); } } - #line 5818 "util/configparser.c" -#line 5931 "util/configparser.c" ++#line 5822 "util/configparser.c" break; - case 508: -#line 2755 "./util/configparser.y" - { + case 510: /* view_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ - #line 2767 "./util/configparser.y" ++#line 2771 "./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( @@@ -5827,34 -5940,34 +5831,34 @@@ fatal_exit("out of memory adding per-view " "response-ip action"); } - #line 5831 "util/configparser.c" -#line 5944 "util/configparser.c" ++#line 5835 "util/configparser.c" break; - case 509: -#line 2765 "./util/configparser.y" - { + case 511: /* view_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ - #line 2777 "./util/configparser.y" ++#line 2781 "./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 5842 "util/configparser.c" -#line 5955 "util/configparser.c" ++#line 5846 "util/configparser.c" break; - case 510: -#line 2773 "./util/configparser.y" - { + case 512: /* view_local_data: VAR_LOCAL_DATA STRING_ARG */ - #line 2785 "./util/configparser.y" ++#line 2789 "./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 5853 "util/configparser.c" -#line 5966 "util/configparser.c" ++#line 5857 "util/configparser.c" break; - case 511: -#line 2781 "./util/configparser.y" - { + case 513: /* view_local_data_ptr: VAR_LOCAL_DATA_PTR STRING_ARG */ - #line 2793 "./util/configparser.y" ++#line 2797 "./util/configparser.y" + { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); ptr = cfg_ptr_reverse((yyvsp[0].str)); @@@ -5867,32 -5980,32 +5871,32 @@@ yyerror("local-data-ptr could not be reversed"); } } - #line 5871 "util/configparser.c" -#line 5984 "util/configparser.c" ++#line 5875 "util/configparser.c" break; - case 512: -#line 2796 "./util/configparser.y" - { + case 514: /* view_first: VAR_VIEW_FIRST STRING_ARG */ - #line 2808 "./util/configparser.y" ++#line 2812 "./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 5883 "util/configparser.c" -#line 5996 "util/configparser.c" ++#line 5887 "util/configparser.c" break; - case 513: -#line 2805 "./util/configparser.y" - { + case 515: /* rcstart: VAR_REMOTE_CONTROL */ - #line 2817 "./util/configparser.y" ++#line 2821 "./util/configparser.y" + { OUTYY(("\nP(remote-control:)\n")); } - #line 5891 "util/configparser.c" -#line 6004 "util/configparser.c" ++#line 5895 "util/configparser.c" break; - case 524: -#line 2816 "./util/configparser.y" - { + case 526: /* rc_control_enable: VAR_CONTROL_ENABLE STRING_ARG */ - #line 2828 "./util/configparser.y" ++#line 2832 "./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."); @@@ -5900,104 -6013,104 +5904,104 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 5904 "util/configparser.c" -#line 6017 "util/configparser.c" ++#line 5908 "util/configparser.c" break; - case 525: -#line 2826 "./util/configparser.y" - { + case 527: /* rc_control_port: VAR_CONTROL_PORT STRING_ARG */ - #line 2838 "./util/configparser.y" ++#line 2842 "./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 5916 "util/configparser.c" -#line 6029 "util/configparser.c" ++#line 5920 "util/configparser.c" break; - case 526: -#line 2835 "./util/configparser.y" - { + case 528: /* rc_control_interface: VAR_CONTROL_INTERFACE STRING_ARG */ - #line 2847 "./util/configparser.y" ++#line 2851 "./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 5926 "util/configparser.c" -#line 6039 "util/configparser.c" ++#line 5930 "util/configparser.c" break; - case 527: -#line 2842 "./util/configparser.y" - { + case 529: /* rc_control_use_cert: VAR_CONTROL_USE_CERT STRING_ARG */ - #line 2854 "./util/configparser.y" ++#line 2858 "./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 5936 "util/configparser.c" -#line 6049 "util/configparser.c" ++#line 5940 "util/configparser.c" break; - case 528: -#line 2849 "./util/configparser.y" - { + case 530: /* rc_server_key_file: VAR_SERVER_KEY_FILE STRING_ARG */ - #line 2861 "./util/configparser.y" ++#line 2865 "./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 5946 "util/configparser.c" -#line 6059 "util/configparser.c" ++#line 5950 "util/configparser.c" break; - case 529: -#line 2856 "./util/configparser.y" - { + case 531: /* rc_server_cert_file: VAR_SERVER_CERT_FILE STRING_ARG */ - #line 2868 "./util/configparser.y" ++#line 2872 "./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 5956 "util/configparser.c" -#line 6069 "util/configparser.c" ++#line 5960 "util/configparser.c" break; - case 530: -#line 2863 "./util/configparser.y" - { + case 532: /* rc_control_key_file: VAR_CONTROL_KEY_FILE STRING_ARG */ - #line 2875 "./util/configparser.y" ++#line 2879 "./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 5966 "util/configparser.c" -#line 6079 "util/configparser.c" ++#line 5970 "util/configparser.c" break; - case 531: -#line 2870 "./util/configparser.y" - { + case 533: /* rc_control_cert_file: VAR_CONTROL_CERT_FILE STRING_ARG */ - #line 2882 "./util/configparser.y" ++#line 2886 "./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 5976 "util/configparser.c" -#line 6089 "util/configparser.c" ++#line 5980 "util/configparser.c" break; - case 532: -#line 2877 "./util/configparser.y" - { + case 534: /* dtstart: VAR_DNSTAP */ - #line 2889 "./util/configparser.y" ++#line 2893 "./util/configparser.y" + { OUTYY(("\nP(dnstap:)\n")); } - #line 5984 "util/configparser.c" -#line 6097 "util/configparser.c" ++#line 5988 "util/configparser.c" break; - case 554: -#line 2897 "./util/configparser.y" - { + case 556: /* dt_dnstap_enable: VAR_DNSTAP_ENABLE STRING_ARG */ - #line 2909 "./util/configparser.y" ++#line 2913 "./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 5996 "util/configparser.c" -#line 6109 "util/configparser.c" ++#line 6000 "util/configparser.c" break; - case 555: -#line 2906 "./util/configparser.y" - { + case 557: /* dt_dnstap_bidirectional: VAR_DNSTAP_BIDIRECTIONAL STRING_ARG */ - #line 2918 "./util/configparser.y" ++#line 2922 "./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."); @@@ -6005,128 -6118,128 +6009,128 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6009 "util/configparser.c" -#line 6122 "util/configparser.c" ++#line 6013 "util/configparser.c" break; - case 556: -#line 2916 "./util/configparser.y" - { + case 558: /* dt_dnstap_socket_path: VAR_DNSTAP_SOCKET_PATH STRING_ARG */ - #line 2928 "./util/configparser.y" ++#line 2932 "./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 6019 "util/configparser.c" -#line 6132 "util/configparser.c" ++#line 6023 "util/configparser.c" break; - case 557: -#line 2923 "./util/configparser.y" - { + case 559: /* dt_dnstap_ip: VAR_DNSTAP_IP STRING_ARG */ - #line 2935 "./util/configparser.y" ++#line 2939 "./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 6029 "util/configparser.c" -#line 6142 "util/configparser.c" ++#line 6033 "util/configparser.c" break; - case 558: -#line 2930 "./util/configparser.y" - { + case 560: /* dt_dnstap_tls: VAR_DNSTAP_TLS STRING_ARG */ - #line 2942 "./util/configparser.y" ++#line 2946 "./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 6041 "util/configparser.c" -#line 6154 "util/configparser.c" ++#line 6045 "util/configparser.c" break; - case 559: -#line 2939 "./util/configparser.y" - { + case 561: /* dt_dnstap_tls_server_name: VAR_DNSTAP_TLS_SERVER_NAME STRING_ARG */ - #line 2951 "./util/configparser.y" ++#line 2955 "./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 6051 "util/configparser.c" -#line 6164 "util/configparser.c" ++#line 6055 "util/configparser.c" break; - case 560: -#line 2946 "./util/configparser.y" - { + case 562: /* dt_dnstap_tls_cert_bundle: VAR_DNSTAP_TLS_CERT_BUNDLE STRING_ARG */ - #line 2958 "./util/configparser.y" ++#line 2962 "./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 6061 "util/configparser.c" -#line 6174 "util/configparser.c" ++#line 6065 "util/configparser.c" break; - case 561: -#line 2953 "./util/configparser.y" - { + case 563: /* dt_dnstap_tls_client_key_file: VAR_DNSTAP_TLS_CLIENT_KEY_FILE STRING_ARG */ - #line 2965 "./util/configparser.y" ++#line 2969 "./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 6071 "util/configparser.c" -#line 6184 "util/configparser.c" ++#line 6075 "util/configparser.c" break; - case 562: -#line 2960 "./util/configparser.y" - { + case 564: /* dt_dnstap_tls_client_cert_file: VAR_DNSTAP_TLS_CLIENT_CERT_FILE STRING_ARG */ - #line 2972 "./util/configparser.y" ++#line 2976 "./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 6081 "util/configparser.c" -#line 6194 "util/configparser.c" ++#line 6085 "util/configparser.c" break; - case 563: -#line 2967 "./util/configparser.y" - { + case 565: /* dt_dnstap_send_identity: VAR_DNSTAP_SEND_IDENTITY STRING_ARG */ - #line 2979 "./util/configparser.y" ++#line 2983 "./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 6093 "util/configparser.c" -#line 6206 "util/configparser.c" ++#line 6097 "util/configparser.c" break; - case 564: -#line 2976 "./util/configparser.y" - { + case 566: /* dt_dnstap_send_version: VAR_DNSTAP_SEND_VERSION STRING_ARG */ - #line 2988 "./util/configparser.y" ++#line 2992 "./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 6105 "util/configparser.c" -#line 6218 "util/configparser.c" ++#line 6109 "util/configparser.c" break; - case 565: -#line 2985 "./util/configparser.y" - { + case 567: /* dt_dnstap_identity: VAR_DNSTAP_IDENTITY STRING_ARG */ - #line 2997 "./util/configparser.y" ++#line 3001 "./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 6115 "util/configparser.c" -#line 6228 "util/configparser.c" ++#line 6119 "util/configparser.c" break; - case 566: -#line 2992 "./util/configparser.y" - { + case 568: /* dt_dnstap_version: VAR_DNSTAP_VERSION STRING_ARG */ - #line 3004 "./util/configparser.y" ++#line 3008 "./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 6125 "util/configparser.c" -#line 6238 "util/configparser.c" ++#line 6129 "util/configparser.c" break; - case 567: -#line 2999 "./util/configparser.y" - { + case 569: /* dt_dnstap_log_resolver_query_messages: VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES STRING_ARG */ - #line 3011 "./util/configparser.y" ++#line 3015 "./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."); @@@ -6134,12 -6247,12 +6138,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6138 "util/configparser.c" -#line 6251 "util/configparser.c" ++#line 6142 "util/configparser.c" break; - case 568: -#line 3009 "./util/configparser.y" - { + case 570: /* dt_dnstap_log_resolver_response_messages: VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES STRING_ARG */ - #line 3021 "./util/configparser.y" ++#line 3025 "./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."); @@@ -6147,12 -6260,12 +6151,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6151 "util/configparser.c" -#line 6264 "util/configparser.c" ++#line 6155 "util/configparser.c" break; - case 569: -#line 3019 "./util/configparser.y" - { + case 571: /* dt_dnstap_log_client_query_messages: VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES STRING_ARG */ - #line 3031 "./util/configparser.y" ++#line 3035 "./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."); @@@ -6160,12 -6273,12 +6164,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6164 "util/configparser.c" -#line 6277 "util/configparser.c" ++#line 6168 "util/configparser.c" break; - case 570: -#line 3029 "./util/configparser.y" - { + case 572: /* dt_dnstap_log_client_response_messages: VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES STRING_ARG */ - #line 3041 "./util/configparser.y" ++#line 3045 "./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."); @@@ -6173,12 -6286,12 +6177,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6177 "util/configparser.c" -#line 6290 "util/configparser.c" ++#line 6181 "util/configparser.c" break; - case 571: -#line 3039 "./util/configparser.y" - { + case 573: /* dt_dnstap_log_forwarder_query_messages: VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES STRING_ARG */ - #line 3051 "./util/configparser.y" ++#line 3055 "./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."); @@@ -6186,12 -6299,12 +6190,12 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6190 "util/configparser.c" -#line 6303 "util/configparser.c" ++#line 6194 "util/configparser.c" break; - case 572: -#line 3049 "./util/configparser.y" - { + case 574: /* dt_dnstap_log_forwarder_response_messages: VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES STRING_ARG */ - #line 3061 "./util/configparser.y" ++#line 3065 "./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."); @@@ -6199,48 -6312,48 +6203,48 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6203 "util/configparser.c" -#line 6316 "util/configparser.c" ++#line 6207 "util/configparser.c" break; - case 573: -#line 3059 "./util/configparser.y" - { + case 575: /* pythonstart: VAR_PYTHON */ - #line 3071 "./util/configparser.y" ++#line 3075 "./util/configparser.y" + { OUTYY(("\nP(python:)\n")); } - #line 6211 "util/configparser.c" -#line 6324 "util/configparser.c" ++#line 6215 "util/configparser.c" break; - case 577: -#line 3068 "./util/configparser.y" - { + case 579: /* py_script: VAR_PYTHON_SCRIPT STRING_ARG */ - #line 3080 "./util/configparser.y" ++#line 3084 "./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 6221 "util/configparser.c" -#line 6334 "util/configparser.c" ++#line 6225 "util/configparser.c" break; - case 578: -#line 3074 "./util/configparser.y" - { + case 580: /* dynlibstart: VAR_DYNLIB */ - #line 3086 "./util/configparser.y" ++#line 3090 "./util/configparser.y" + { OUTYY(("\nP(dynlib:)\n")); } - #line 6229 "util/configparser.c" -#line 6342 "util/configparser.c" ++#line 6233 "util/configparser.c" break; - case 582: -#line 3083 "./util/configparser.y" - { + case 584: /* dl_file: VAR_DYNLIB_FILE STRING_ARG */ - #line 3095 "./util/configparser.y" ++#line 3099 "./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 6239 "util/configparser.c" -#line 6352 "util/configparser.c" ++#line 6243 "util/configparser.c" break; - case 583: -#line 3089 "./util/configparser.y" - { + case 585: /* server_disable_dnssec_lame_check: VAR_DISABLE_DNSSEC_LAME_CHECK STRING_ARG */ - #line 3101 "./util/configparser.y" ++#line 3105 "./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."); @@@ -6248,132 -6361,132 +6252,132 @@@ (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } - #line 6252 "util/configparser.c" -#line 6365 "util/configparser.c" ++#line 6256 "util/configparser.c" break; - case 584: -#line 3099 "./util/configparser.y" - { + case 586: /* server_log_identity: VAR_LOG_IDENTITY STRING_ARG */ - #line 3111 "./util/configparser.y" ++#line 3115 "./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 6262 "util/configparser.c" -#line 6375 "util/configparser.c" ++#line 6266 "util/configparser.c" break; - case 585: -#line 3106 "./util/configparser.y" - { + case 587: /* server_response_ip: VAR_RESPONSE_IP STRING_ARG STRING_ARG */ - #line 3118 "./util/configparser.y" ++#line 3122 "./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 6274 "util/configparser.c" -#line 6387 "util/configparser.c" ++#line 6278 "util/configparser.c" break; - case 586: -#line 3115 "./util/configparser.y" - { + case 588: /* server_response_ip_data: VAR_RESPONSE_IP_DATA STRING_ARG STRING_ARG */ - #line 3127 "./util/configparser.y" ++#line 3131 "./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 6285 "util/configparser.c" -#line 6398 "util/configparser.c" ++#line 6289 "util/configparser.c" break; - case 587: -#line 3123 "./util/configparser.y" - { + case 589: /* dnscstart: VAR_DNSCRYPT */ - #line 3135 "./util/configparser.y" ++#line 3139 "./util/configparser.y" + { OUTYY(("\nP(dnscrypt:)\n")); } - #line 6293 "util/configparser.c" -#line 6406 "util/configparser.c" ++#line 6297 "util/configparser.c" break; - case 600: -#line 3139 "./util/configparser.y" - { + case 602: /* dnsc_dnscrypt_enable: VAR_DNSCRYPT_ENABLE STRING_ARG */ - #line 3151 "./util/configparser.y" ++#line 3155 "./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 6305 "util/configparser.c" -#line 6418 "util/configparser.c" ++#line 6309 "util/configparser.c" break; - case 601: -#line 3149 "./util/configparser.y" - { + case 603: /* dnsc_dnscrypt_port: VAR_DNSCRYPT_PORT STRING_ARG */ - #line 3161 "./util/configparser.y" ++#line 3165 "./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 6317 "util/configparser.c" -#line 6430 "util/configparser.c" ++#line 6321 "util/configparser.c" break; - case 602: -#line 3158 "./util/configparser.y" - { + case 604: /* dnsc_dnscrypt_provider: VAR_DNSCRYPT_PROVIDER STRING_ARG */ - #line 3170 "./util/configparser.y" ++#line 3174 "./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 6327 "util/configparser.c" -#line 6440 "util/configparser.c" ++#line 6331 "util/configparser.c" break; - case 603: -#line 3165 "./util/configparser.y" - { + case 605: /* dnsc_dnscrypt_provider_cert: VAR_DNSCRYPT_PROVIDER_CERT STRING_ARG */ - #line 3177 "./util/configparser.y" ++#line 3181 "./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 6339 "util/configparser.c" -#line 6452 "util/configparser.c" ++#line 6343 "util/configparser.c" break; - case 604: -#line 3174 "./util/configparser.y" - { + case 606: /* dnsc_dnscrypt_provider_cert_rotated: VAR_DNSCRYPT_PROVIDER_CERT_ROTATED STRING_ARG */ - #line 3186 "./util/configparser.y" ++#line 3190 "./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 6349 "util/configparser.c" -#line 6462 "util/configparser.c" ++#line 6353 "util/configparser.c" break; - case 605: -#line 3181 "./util/configparser.y" - { + case 607: /* dnsc_dnscrypt_secret_key: VAR_DNSCRYPT_SECRET_KEY STRING_ARG */ - #line 3193 "./util/configparser.y" ++#line 3197 "./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 6361 "util/configparser.c" -#line 6474 "util/configparser.c" ++#line 6365 "util/configparser.c" break; - case 606: -#line 3190 "./util/configparser.y" - { + case 608: /* dnsc_dnscrypt_shared_secret_cache_size: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE STRING_ARG */ - #line 3202 "./util/configparser.y" ++#line 3206 "./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 6372 "util/configparser.c" -#line 6485 "util/configparser.c" ++#line 6376 "util/configparser.c" break; - case 607: -#line 3198 "./util/configparser.y" - { + case 609: /* dnsc_dnscrypt_shared_secret_cache_slabs: VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS STRING_ARG */ - #line 3210 "./util/configparser.y" ++#line 3214 "./util/configparser.y" + { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -6384,23 -6497,23 +6388,23 @@@ } free((yyvsp[0].str)); } - #line 6388 "util/configparser.c" -#line 6501 "util/configparser.c" ++#line 6392 "util/configparser.c" break; - case 608: -#line 3211 "./util/configparser.y" - { + case 610: /* dnsc_dnscrypt_nonce_cache_size: VAR_DNSCRYPT_NONCE_CACHE_SIZE STRING_ARG */ - #line 3223 "./util/configparser.y" ++#line 3227 "./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 6399 "util/configparser.c" -#line 6512 "util/configparser.c" ++#line 6403 "util/configparser.c" break; - case 609: -#line 3219 "./util/configparser.y" - { + case 611: /* dnsc_dnscrypt_nonce_cache_slabs: VAR_DNSCRYPT_NONCE_CACHE_SLABS STRING_ARG */ - #line 3231 "./util/configparser.y" ++#line 3235 "./util/configparser.y" + { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@@ -6411,20 -6524,20 +6415,20 @@@ } free((yyvsp[0].str)); } - #line 6415 "util/configparser.c" -#line 6528 "util/configparser.c" ++#line 6419 "util/configparser.c" break; - case 610: -#line 3232 "./util/configparser.y" - { + case 612: /* cachedbstart: VAR_CACHEDB */ - #line 3244 "./util/configparser.y" ++#line 3248 "./util/configparser.y" + { OUTYY(("\nP(cachedb:)\n")); } - #line 6423 "util/configparser.c" -#line 6536 "util/configparser.c" ++#line 6427 "util/configparser.c" break; - case 619: -#line 3243 "./util/configparser.y" - { + case 621: /* cachedb_backend_name: VAR_CACHEDB_BACKEND STRING_ARG */ - #line 3255 "./util/configparser.y" ++#line 3259 "./util/configparser.y" + { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->cachedb_backend); @@@ -6434,12 -6547,12 +6438,12 @@@ free((yyvsp[0].str)); #endif } - #line 6438 "util/configparser.c" -#line 6551 "util/configparser.c" ++#line 6442 "util/configparser.c" break; - case 620: -#line 3255 "./util/configparser.y" - { + case 622: /* cachedb_secret_seed: VAR_CACHEDB_SECRETSEED STRING_ARG */ - #line 3267 "./util/configparser.y" ++#line 3271 "./util/configparser.y" + { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->cachedb_secret); @@@ -6449,12 -6562,12 +6453,12 @@@ free((yyvsp[0].str)); #endif } - #line 6453 "util/configparser.c" -#line 6566 "util/configparser.c" ++#line 6457 "util/configparser.c" break; - case 621: -#line 3267 "./util/configparser.y" - { + case 623: /* redis_server_host: VAR_CACHEDB_REDISHOST STRING_ARG */ - #line 3279 "./util/configparser.y" ++#line 3283 "./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); @@@ -6464,12 -6577,12 +6468,12 @@@ free((yyvsp[0].str)); #endif } - #line 6468 "util/configparser.c" -#line 6581 "util/configparser.c" ++#line 6472 "util/configparser.c" break; - case 622: -#line 3279 "./util/configparser.y" - { + case 624: /* redis_server_port: VAR_CACHEDB_REDISPORT STRING_ARG */ - #line 3291 "./util/configparser.y" ++#line 3295 "./util/configparser.y" + { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; OUTYY(("P(redis_server_port:%s)\n", (yyvsp[0].str))); @@@ -6482,12 -6595,12 +6486,12 @@@ #endif free((yyvsp[0].str)); } - #line 6486 "util/configparser.c" -#line 6599 "util/configparser.c" ++#line 6490 "util/configparser.c" break; - case 623: -#line 3294 "./util/configparser.y" - { + case 625: /* redis_timeout: VAR_CACHEDB_REDISTIMEOUT STRING_ARG */ - #line 3306 "./util/configparser.y" ++#line 3310 "./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) @@@ -6498,12 -6611,12 +6502,12 @@@ #endif free((yyvsp[0].str)); } - #line 6502 "util/configparser.c" -#line 6615 "util/configparser.c" ++#line 6506 "util/configparser.c" break; - case 624: -#line 3307 "./util/configparser.y" - { + case 626: /* redis_expire_records: VAR_CACHEDB_REDISEXPIRERECORDS STRING_ARG */ - #line 3319 "./util/configparser.y" ++#line 3323 "./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) @@@ -6514,12 -6627,12 +6518,12 @@@ #endif free((yyvsp[0].str)); } - #line 6518 "util/configparser.c" -#line 6631 "util/configparser.c" ++#line 6522 "util/configparser.c" break; - case 625: -#line 3320 "./util/configparser.y" - { + case 627: /* server_tcp_connection_limit: VAR_TCP_CONNECTION_LIMIT STRING_ARG STRING_ARG */ - #line 3332 "./util/configparser.y" ++#line 3336 "./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"); @@@ -6528,20 -6641,20 +6532,20 @@@ fatal_exit("out of memory adding tcp connection limit"); } } - #line 6532 "util/configparser.c" -#line 6645 "util/configparser.c" ++#line 6536 "util/configparser.c" break; - case 626: -#line 3331 "./util/configparser.y" - { + case 628: /* ipsetstart: VAR_IPSET */ - #line 3343 "./util/configparser.y" ++#line 3347 "./util/configparser.y" + { OUTYY(("\nP(ipset:)\n")); } - #line 6540 "util/configparser.c" -#line 6653 "util/configparser.c" ++#line 6544 "util/configparser.c" break; - case 631: -#line 3340 "./util/configparser.y" - { + case 633: /* ipset_name_v4: VAR_IPSET_NAME_V4 STRING_ARG */ - #line 3352 "./util/configparser.y" ++#line 3356 "./util/configparser.y" + { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->ipset_name_v4) @@@ -6554,12 -6667,12 +6558,12 @@@ free((yyvsp[0].str)); #endif } - #line 6558 "util/configparser.c" -#line 6671 "util/configparser.c" ++#line 6562 "util/configparser.c" break; - case 632: -#line 3355 "./util/configparser.y" - { + case 634: /* ipset_name_v6: VAR_IPSET_NAME_V6 STRING_ARG */ - #line 3367 "./util/configparser.y" ++#line 3371 "./util/configparser.y" + { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->ipset_name_v6) @@@ -6572,11 -6685,11 +6576,11 @@@ free((yyvsp[0].str)); #endif } - #line 6576 "util/configparser.c" -#line 6689 "util/configparser.c" ++#line 6580 "util/configparser.c" break; - #line 6580 "util/configparser.c" -#line 6693 "util/configparser.c" ++#line 6584 "util/configparser.c" default: break; } @@@ -6766,11 -6915,13 +6770,11 @@@ yyreturn if (yyss != yyssa) YYSTACK_FREE (yyss); #endif -#if YYERROR_VERBOSE - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); -#endif + return yyresult; } -#line 3369 "./util/configparser.y" + - #line 3381 "./util/configparser.y" ++#line 3385 "./util/configparser.y" /* parse helper routines could be here */