From: W.C.A. Wijngaards Date: Tue, 12 Jan 2021 12:39:07 +0000 (+0100) Subject: - Fix so local zone types always_nodata and always_deny can be used X-Git-Tag: release-1.13.1rc1~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d1b92a6ce22d1eb8c3da2a6691033a07046035a7;p=thirdparty%2Funbound.git - Fix so local zone types always_nodata and always_deny can be used from the config file. --- diff --git a/doc/Changelog b/doc/Changelog index 2cd7baf00..b9d449371 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,8 @@ 12 January 2021: Wouter - Fix #397: [Feature request] add new type always_null to local-zone similar to always_nxdomain. + - Fix so local zone types always_nodata and always_deny can be used + from the config file. 8 January 2021: Wouter - Merge PR #391 from fhriley: Add start_time to reply callbacks so diff --git a/doc/example.conf.in b/doc/example.conf.in index c3c7c0f26..b51bcfca5 100644 --- a/doc/example.conf.in +++ b/doc/example.conf.in @@ -704,8 +704,9 @@ server: # o inform acts like transparent, but logs client IP address # o inform_deny drops queries and logs client IP address # o inform_redirect redirects queries and logs client IP address - # o always_transparent, always_refuse, always_nxdomain, resolve in - # that way but ignore local data for that name + # o always_transparent, always_refuse, always_nxdomain, always_nodata, + # always_deny resolve in that way but ignore local data for + # that name # o always_null returns 0.0.0.0 or ::0 for any name in the zone. # o noview breaks out of that view towards global local-zones. # diff --git a/util/configparser.c b/util/configparser.c index cc5d9fb5e..c8ea478ea 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1125,26 +1125,26 @@ static const yytype_uint16 yyrline[] = 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, 2065, 2072, 2087, 2097, 2107, - 2114, 2121, 2128, 2137, 2145, 2159, 2180, 2201, 2213, 2225, - 2237, 2246, 2267, 2277, 2286, 2294, 2302, 2315, 2328, 2343, - 2358, 2367, 2376, 2382, 2391, 2400, 2410, 2420, 2433, 2446, - 2458, 2472, 2484, 2498, 2507, 2519, 2529, 2536, 2543, 2552, - 2561, 2571, 2581, 2591, 2598, 2605, 2614, 2623, 2633, 2643, - 2650, 2657, 2664, 2672, 2682, 2692, 2702, 2712, 2751, 2761, - 2769, 2777, 2792, 2801, 2806, 2807, 2808, 2808, 2808, 2809, - 2809, 2809, 2810, 2810, 2812, 2822, 2831, 2838, 2845, 2852, - 2859, 2866, 2873, 2878, 2879, 2880, 2880, 2880, 2881, 2881, - 2881, 2882, 2883, 2883, 2884, 2884, 2885, 2885, 2886, 2887, - 2888, 2889, 2890, 2891, 2893, 2902, 2912, 2919, 2926, 2935, - 2942, 2949, 2956, 2963, 2972, 2981, 2988, 2995, 3005, 3015, - 3025, 3035, 3045, 3055, 3060, 3061, 3062, 3064, 3070, 3075, - 3076, 3077, 3079, 3085, 3095, 3102, 3111, 3119, 3124, 3125, - 3127, 3127, 3127, 3128, 3128, 3129, 3130, 3131, 3132, 3133, - 3135, 3145, 3154, 3161, 3170, 3177, 3186, 3194, 3207, 3215, - 3228, 3233, 3234, 3235, 3235, 3236, 3236, 3236, 3237, 3239, - 3251, 3263, 3275, 3290, 3303, 3316, 3327, 3332, 3333, 3334, - 3334, 3336, 3351 + 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 }; #endif @@ -5019,6 +5019,8 @@ yyreduce: && strcmp((yyvsp[0].str), "always_transparent")!=0 && strcmp((yyvsp[0].str), "always_refuse")!=0 && strcmp((yyvsp[0].str), "always_nxdomain")!=0 + && strcmp((yyvsp[0].str), "always_nodata")!=0 + && strcmp((yyvsp[0].str), "always_deny")!=0 && strcmp((yyvsp[0].str), "always_null")!=0 && strcmp((yyvsp[0].str), "noview")!=0 && strcmp((yyvsp[0].str), "inform")!=0 && strcmp((yyvsp[0].str), "inform_deny")!=0 @@ -5028,7 +5030,8 @@ yyreduce: "refuse, redirect, transparent, " "typetransparent, inform, inform_deny, " "inform_redirect, always_transparent, " - "always_refuse, always_nxdomain, always_null, " + "always_refuse, always_nxdomain, " + "always_nodata, always_deny, always_null, " "noview, nodefault or ipset"); free((yyvsp[-1].str)); free((yyvsp[0].str)); @@ -5050,21 +5053,21 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5054 "util/configparser.c" +#line 5057 "util/configparser.c" break; case 445: -#line 2066 "./util/configparser.y" +#line 2069 "./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 5064 "util/configparser.c" +#line 5067 "util/configparser.c" break; case 446: -#line 2073 "./util/configparser.y" +#line 2076 "./util/configparser.y" { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5078,11 +5081,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5082 "util/configparser.c" +#line 5085 "util/configparser.c" break; case 447: -#line 2088 "./util/configparser.y" +#line 2091 "./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) @@ -5091,11 +5094,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5095 "util/configparser.c" +#line 5098 "util/configparser.c" break; case 448: -#line 2098 "./util/configparser.y" +#line 2101 "./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) @@ -5104,41 +5107,41 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5108 "util/configparser.c" +#line 5111 "util/configparser.c" break; case 449: -#line 2108 "./util/configparser.y" +#line 2111 "./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 5118 "util/configparser.c" +#line 5121 "util/configparser.c" break; case 450: -#line 2115 "./util/configparser.y" +#line 2118 "./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 5128 "util/configparser.c" +#line 5131 "util/configparser.c" break; case 451: -#line 2122 "./util/configparser.y" +#line 2125 "./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 5138 "util/configparser.c" +#line 5141 "util/configparser.c" break; case 452: -#line 2129 "./util/configparser.y" +#line 2132 "./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) @@ -5146,22 +5149,22 @@ yyreduce: else cfg_parser->cfg->dns64_synthall = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5150 "util/configparser.c" +#line 5153 "util/configparser.c" break; case 453: -#line 2138 "./util/configparser.y" +#line 2141 "./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 5161 "util/configparser.c" +#line 5164 "util/configparser.c" break; case 454: -#line 2146 "./util/configparser.y" +#line 2149 "./util/configparser.y" { char* p, *s = (yyvsp[0].str); OUTYY(("P(server_define_tag:%s)\n", (yyvsp[0].str))); @@ -5174,11 +5177,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5178 "util/configparser.c" +#line 5181 "util/configparser.c" break; case 455: -#line 2160 "./util/configparser.y" +#line 2163 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5198,11 +5201,11 @@ yyreduce: } } } -#line 5202 "util/configparser.c" +#line 5205 "util/configparser.c" break; case 456: -#line 2181 "./util/configparser.y" +#line 2184 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5222,11 +5225,11 @@ yyreduce: } } } -#line 5226 "util/configparser.c" +#line 5229 "util/configparser.c" break; case 457: -#line 2202 "./util/configparser.y" +#line 2205 "./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, @@ -5237,11 +5240,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5241 "util/configparser.c" +#line 5244 "util/configparser.c" break; case 458: -#line 2214 "./util/configparser.y" +#line 2217 "./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, @@ -5252,11 +5255,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5256 "util/configparser.c" +#line 5259 "util/configparser.c" break; case 459: -#line 2226 "./util/configparser.y" +#line 2229 "./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, @@ -5267,11 +5270,11 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5271 "util/configparser.c" +#line 5274 "util/configparser.c" break; case 460: -#line 2238 "./util/configparser.y" +#line 2241 "./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, @@ -5279,11 +5282,11 @@ yyreduce: yyerror("out of memory"); } } -#line 5283 "util/configparser.c" +#line 5286 "util/configparser.c" break; case 461: -#line 2247 "./util/configparser.y" +#line 2250 "./util/configparser.y" { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), @@ -5303,11 +5306,11 @@ yyreduce: } } } -#line 5307 "util/configparser.c" +#line 5310 "util/configparser.c" break; case 462: -#line 2268 "./util/configparser.y" +#line 2271 "./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) @@ -5315,11 +5318,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5319 "util/configparser.c" +#line 5322 "util/configparser.c" break; case 463: -#line 2278 "./util/configparser.y" +#line 2281 "./util/configparser.y" { OUTYY(("P(server_ratelimit:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -5327,33 +5330,33 @@ yyreduce: else cfg_parser->cfg->ratelimit = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5331 "util/configparser.c" +#line 5334 "util/configparser.c" break; case 464: -#line 2287 "./util/configparser.y" +#line 2290 "./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 5342 "util/configparser.c" +#line 5345 "util/configparser.c" break; case 465: -#line 2295 "./util/configparser.y" +#line 2298 "./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 5353 "util/configparser.c" +#line 5356 "util/configparser.c" break; case 466: -#line 2303 "./util/configparser.y" +#line 2306 "./util/configparser.y" { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5365,11 +5368,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5369 "util/configparser.c" +#line 5372 "util/configparser.c" break; case 467: -#line 2316 "./util/configparser.y" +#line 2319 "./util/configparser.y" { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -5381,11 +5384,11 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5385 "util/configparser.c" +#line 5388 "util/configparser.c" break; case 468: -#line 2329 "./util/configparser.y" +#line 2332 "./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) { @@ -5399,11 +5402,11 @@ yyreduce: "ratelimit-for-domain"); } } -#line 5403 "util/configparser.c" +#line 5406 "util/configparser.c" break; case 469: -#line 2344 "./util/configparser.y" +#line 2347 "./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) { @@ -5417,11 +5420,11 @@ yyreduce: "ratelimit-below-domain"); } } -#line 5421 "util/configparser.c" +#line 5424 "util/configparser.c" break; case 470: -#line 2359 "./util/configparser.y" +#line 2362 "./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) @@ -5429,11 +5432,11 @@ yyreduce: else cfg_parser->cfg->ip_ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5433 "util/configparser.c" +#line 5436 "util/configparser.c" break; case 471: -#line 2368 "./util/configparser.y" +#line 2371 "./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) @@ -5441,20 +5444,20 @@ yyreduce: else cfg_parser->cfg->ratelimit_factor = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5445 "util/configparser.c" +#line 5448 "util/configparser.c" break; case 472: -#line 2377 "./util/configparser.y" +#line 2380 "./util/configparser.y" { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 5454 "util/configparser.c" +#line 5457 "util/configparser.c" break; case 473: -#line 2383 "./util/configparser.y" +#line 2386 "./util/configparser.y" { OUTYY(("P(server_fast_server_num:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) <= 0) @@ -5462,11 +5465,11 @@ yyreduce: else cfg_parser->cfg->fast_server_num = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5466 "util/configparser.c" +#line 5469 "util/configparser.c" break; case 474: -#line 2392 "./util/configparser.y" +#line 2395 "./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) @@ -5474,11 +5477,11 @@ yyreduce: else cfg_parser->cfg->fast_server_permil = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 5478 "util/configparser.c" +#line 5481 "util/configparser.c" break; case 475: -#line 2401 "./util/configparser.y" +#line 2404 "./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) @@ -5487,11 +5490,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5491 "util/configparser.c" +#line 5494 "util/configparser.c" break; case 476: -#line 2411 "./util/configparser.y" +#line 2414 "./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) @@ -5500,11 +5503,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5504 "util/configparser.c" +#line 5507 "util/configparser.c" break; case 477: -#line 2421 "./util/configparser.y" +#line 2424 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_enabled:%s)\n", (yyvsp[0].str))); @@ -5516,11 +5519,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5520 "util/configparser.c" +#line 5523 "util/configparser.c" break; case 478: -#line 2434 "./util/configparser.y" +#line 2437 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_ignore_bogus:%s)\n", (yyvsp[0].str))); @@ -5532,11 +5535,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5536 "util/configparser.c" +#line 5539 "util/configparser.c" break; case 479: -#line 2447 "./util/configparser.y" +#line 2450 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); @@ -5547,11 +5550,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5551 "util/configparser.c" +#line 5554 "util/configparser.c" break; case 480: -#line 2459 "./util/configparser.y" +#line 2462 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_max_ttl:%s)\n", (yyvsp[0].str))); @@ -5564,11 +5567,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5568 "util/configparser.c" +#line 5571 "util/configparser.c" break; case 481: -#line 2473 "./util/configparser.y" +#line 2476 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_whitelist:%s)\n", (yyvsp[0].str))); @@ -5579,11 +5582,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5583 "util/configparser.c" +#line 5586 "util/configparser.c" break; case 482: -#line 2485 "./util/configparser.y" +#line 2488 "./util/configparser.y" { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_strict:%s)\n", (yyvsp[0].str))); @@ -5596,11 +5599,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5600 "util/configparser.c" +#line 5603 "util/configparser.c" break; case 483: -#line 2499 "./util/configparser.y" +#line 2502 "./util/configparser.y" { OUTYY(("P(server_edns_client_string:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(!cfg_str2list_insert( @@ -5608,11 +5611,11 @@ yyreduce: fatal_exit("out of memory adding " "edns-client-string"); } -#line 5612 "util/configparser.c" +#line 5615 "util/configparser.c" break; case 484: -#line 2508 "./util/configparser.y" +#line 2511 "./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) @@ -5623,11 +5626,11 @@ yyreduce: free((yyvsp[0].str)); } -#line 5627 "util/configparser.c" +#line 5630 "util/configparser.c" break; case 485: -#line 2520 "./util/configparser.y" +#line 2523 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->stubs->name) @@ -5636,31 +5639,31 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 5640 "util/configparser.c" +#line 5643 "util/configparser.c" break; case 486: -#line 2530 "./util/configparser.y" +#line 2533 "./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 5650 "util/configparser.c" +#line 5653 "util/configparser.c" break; case 487: -#line 2537 "./util/configparser.y" +#line 2540 "./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 5660 "util/configparser.c" +#line 5663 "util/configparser.c" break; case 488: -#line 2544 "./util/configparser.y" +#line 2547 "./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) @@ -5668,11 +5671,11 @@ yyreduce: else cfg_parser->cfg->stubs->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5672 "util/configparser.c" +#line 5675 "util/configparser.c" break; case 489: -#line 2553 "./util/configparser.y" +#line 2556 "./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) @@ -5680,11 +5683,11 @@ yyreduce: else cfg_parser->cfg->stubs->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5684 "util/configparser.c" +#line 5687 "util/configparser.c" break; case 490: -#line 2562 "./util/configparser.y" +#line 2565 "./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) @@ -5693,11 +5696,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5697 "util/configparser.c" +#line 5700 "util/configparser.c" break; case 491: -#line 2572 "./util/configparser.y" +#line 2575 "./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) @@ -5706,11 +5709,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5710 "util/configparser.c" +#line 5713 "util/configparser.c" break; case 492: -#line 2582 "./util/configparser.y" +#line 2585 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->forwards->name) @@ -5719,31 +5722,31 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 5723 "util/configparser.c" +#line 5726 "util/configparser.c" break; case 493: -#line 2592 "./util/configparser.y" +#line 2595 "./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 5733 "util/configparser.c" +#line 5736 "util/configparser.c" break; case 494: -#line 2599 "./util/configparser.y" +#line 2602 "./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 5743 "util/configparser.c" +#line 5746 "util/configparser.c" break; case 495: -#line 2606 "./util/configparser.y" +#line 2609 "./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) @@ -5751,11 +5754,11 @@ yyreduce: else cfg_parser->cfg->forwards->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5755 "util/configparser.c" +#line 5758 "util/configparser.c" break; case 496: -#line 2615 "./util/configparser.y" +#line 2618 "./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) @@ -5763,11 +5766,11 @@ yyreduce: else cfg_parser->cfg->forwards->no_cache=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5767 "util/configparser.c" +#line 5770 "util/configparser.c" break; case 497: -#line 2624 "./util/configparser.y" +#line 2627 "./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) @@ -5776,11 +5779,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5780 "util/configparser.c" +#line 5783 "util/configparser.c" break; case 498: -#line 2634 "./util/configparser.y" +#line 2637 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->auths->name) @@ -5789,52 +5792,52 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 5793 "util/configparser.c" +#line 5796 "util/configparser.c" break; case 499: -#line 2644 "./util/configparser.y" +#line 2647 "./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 5803 "util/configparser.c" +#line 5806 "util/configparser.c" break; case 500: -#line 2651 "./util/configparser.y" +#line 2654 "./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 5813 "util/configparser.c" +#line 5816 "util/configparser.c" break; case 501: -#line 2658 "./util/configparser.y" +#line 2661 "./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 5823 "util/configparser.c" +#line 5826 "util/configparser.c" break; case 502: -#line 2665 "./util/configparser.y" +#line 2668 "./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 5834 "util/configparser.c" +#line 5837 "util/configparser.c" break; case 503: -#line 2673 "./util/configparser.y" +#line 2676 "./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) @@ -5843,11 +5846,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5847 "util/configparser.c" +#line 5850 "util/configparser.c" break; case 504: -#line 2683 "./util/configparser.y" +#line 2686 "./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) @@ -5856,11 +5859,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5860 "util/configparser.c" +#line 5863 "util/configparser.c" break; case 505: -#line 2693 "./util/configparser.y" +#line 2696 "./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) @@ -5869,11 +5872,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5873 "util/configparser.c" +#line 5876 "util/configparser.c" break; case 506: -#line 2703 "./util/configparser.y" +#line 2706 "./util/configparser.y" { OUTYY(("P(name:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->views->name) @@ -5882,11 +5885,11 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 5886 "util/configparser.c" +#line 5889 "util/configparser.c" break; case 507: -#line 2713 "./util/configparser.y" +#line 2716 "./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 && @@ -5924,11 +5927,11 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5928 "util/configparser.c" +#line 5931 "util/configparser.c" break; case 508: -#line 2752 "./util/configparser.y" +#line 2755 "./util/configparser.y" { OUTYY(("P(view_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -5937,33 +5940,33 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 5941 "util/configparser.c" +#line 5944 "util/configparser.c" break; case 509: -#line 2762 "./util/configparser.y" +#line 2765 "./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 5952 "util/configparser.c" +#line 5955 "util/configparser.c" break; case 510: -#line 2770 "./util/configparser.y" +#line 2773 "./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 5963 "util/configparser.c" +#line 5966 "util/configparser.c" break; case 511: -#line 2778 "./util/configparser.y" +#line 2781 "./util/configparser.y" { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); @@ -5977,11 +5980,11 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5981 "util/configparser.c" +#line 5984 "util/configparser.c" break; case 512: -#line 2793 "./util/configparser.y" +#line 2796 "./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) @@ -5989,19 +5992,19 @@ yyreduce: else cfg_parser->cfg->views->isfirst=(strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5993 "util/configparser.c" +#line 5996 "util/configparser.c" break; case 513: -#line 2802 "./util/configparser.y" +#line 2805 "./util/configparser.y" { OUTYY(("\nP(remote-control:)\n")); } -#line 6001 "util/configparser.c" +#line 6004 "util/configparser.c" break; case 524: -#line 2813 "./util/configparser.y" +#line 2816 "./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) @@ -6010,11 +6013,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6014 "util/configparser.c" +#line 6017 "util/configparser.c" break; case 525: -#line 2823 "./util/configparser.y" +#line 2826 "./util/configparser.y" { OUTYY(("P(control_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6022,79 +6025,79 @@ yyreduce: else cfg_parser->cfg->control_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6026 "util/configparser.c" +#line 6029 "util/configparser.c" break; case 526: -#line 2832 "./util/configparser.y" +#line 2835 "./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 6036 "util/configparser.c" +#line 6039 "util/configparser.c" break; case 527: -#line 2839 "./util/configparser.y" +#line 2842 "./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 6046 "util/configparser.c" +#line 6049 "util/configparser.c" break; case 528: -#line 2846 "./util/configparser.y" +#line 2849 "./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 6056 "util/configparser.c" +#line 6059 "util/configparser.c" break; case 529: -#line 2853 "./util/configparser.y" +#line 2856 "./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 6066 "util/configparser.c" +#line 6069 "util/configparser.c" break; case 530: -#line 2860 "./util/configparser.y" +#line 2863 "./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 6076 "util/configparser.c" +#line 6079 "util/configparser.c" break; case 531: -#line 2867 "./util/configparser.y" +#line 2870 "./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 6086 "util/configparser.c" +#line 6089 "util/configparser.c" break; case 532: -#line 2874 "./util/configparser.y" +#line 2877 "./util/configparser.y" { OUTYY(("\nP(dnstap:)\n")); } -#line 6094 "util/configparser.c" +#line 6097 "util/configparser.c" break; case 554: -#line 2894 "./util/configparser.y" +#line 2897 "./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) @@ -6102,11 +6105,11 @@ yyreduce: else cfg_parser->cfg->dnstap = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6106 "util/configparser.c" +#line 6109 "util/configparser.c" break; case 555: -#line 2903 "./util/configparser.y" +#line 2906 "./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) @@ -6115,31 +6118,31 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6119 "util/configparser.c" +#line 6122 "util/configparser.c" break; case 556: -#line 2913 "./util/configparser.y" +#line 2916 "./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 6129 "util/configparser.c" +#line 6132 "util/configparser.c" break; case 557: -#line 2920 "./util/configparser.y" +#line 2923 "./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 6139 "util/configparser.c" +#line 6142 "util/configparser.c" break; case 558: -#line 2927 "./util/configparser.y" +#line 2930 "./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) @@ -6147,51 +6150,51 @@ yyreduce: else cfg_parser->cfg->dnstap_tls = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6151 "util/configparser.c" +#line 6154 "util/configparser.c" break; case 559: -#line 2936 "./util/configparser.y" +#line 2939 "./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 6161 "util/configparser.c" +#line 6164 "util/configparser.c" break; case 560: -#line 2943 "./util/configparser.y" +#line 2946 "./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 6171 "util/configparser.c" +#line 6174 "util/configparser.c" break; case 561: -#line 2950 "./util/configparser.y" +#line 2953 "./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 6181 "util/configparser.c" +#line 6184 "util/configparser.c" break; case 562: -#line 2957 "./util/configparser.y" +#line 2960 "./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 6191 "util/configparser.c" +#line 6194 "util/configparser.c" break; case 563: -#line 2964 "./util/configparser.y" +#line 2967 "./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) @@ -6199,11 +6202,11 @@ yyreduce: else cfg_parser->cfg->dnstap_send_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6203 "util/configparser.c" +#line 6206 "util/configparser.c" break; case 564: -#line 2973 "./util/configparser.y" +#line 2976 "./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) @@ -6211,31 +6214,31 @@ yyreduce: else cfg_parser->cfg->dnstap_send_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6215 "util/configparser.c" +#line 6218 "util/configparser.c" break; case 565: -#line 2982 "./util/configparser.y" +#line 2985 "./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 6225 "util/configparser.c" +#line 6228 "util/configparser.c" break; case 566: -#line 2989 "./util/configparser.y" +#line 2992 "./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 6235 "util/configparser.c" +#line 6238 "util/configparser.c" break; case 567: -#line 2996 "./util/configparser.y" +#line 2999 "./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) @@ -6244,11 +6247,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6248 "util/configparser.c" +#line 6251 "util/configparser.c" break; case 568: -#line 3006 "./util/configparser.y" +#line 3009 "./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) @@ -6257,11 +6260,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6261 "util/configparser.c" +#line 6264 "util/configparser.c" break; case 569: -#line 3016 "./util/configparser.y" +#line 3019 "./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) @@ -6270,11 +6273,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6274 "util/configparser.c" +#line 6277 "util/configparser.c" break; case 570: -#line 3026 "./util/configparser.y" +#line 3029 "./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) @@ -6283,11 +6286,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6287 "util/configparser.c" +#line 6290 "util/configparser.c" break; case 571: -#line 3036 "./util/configparser.y" +#line 3039 "./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) @@ -6296,11 +6299,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6300 "util/configparser.c" +#line 6303 "util/configparser.c" break; case 572: -#line 3046 "./util/configparser.y" +#line 3049 "./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) @@ -6309,47 +6312,47 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6313 "util/configparser.c" +#line 6316 "util/configparser.c" break; case 573: -#line 3056 "./util/configparser.y" +#line 3059 "./util/configparser.y" { OUTYY(("\nP(python:)\n")); } -#line 6321 "util/configparser.c" +#line 6324 "util/configparser.c" break; case 577: -#line 3065 "./util/configparser.y" +#line 3068 "./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 6331 "util/configparser.c" +#line 6334 "util/configparser.c" break; case 578: -#line 3071 "./util/configparser.y" +#line 3074 "./util/configparser.y" { OUTYY(("\nP(dynlib:)\n")); } -#line 6339 "util/configparser.c" +#line 6342 "util/configparser.c" break; case 582: -#line 3080 "./util/configparser.y" +#line 3083 "./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 6349 "util/configparser.c" +#line 6352 "util/configparser.c" break; case 583: -#line 3086 "./util/configparser.y" +#line 3089 "./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) @@ -6358,21 +6361,21 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6362 "util/configparser.c" +#line 6365 "util/configparser.c" break; case 584: -#line 3096 "./util/configparser.y" +#line 3099 "./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 6372 "util/configparser.c" +#line 6375 "util/configparser.c" break; case 585: -#line 3103 "./util/configparser.y" +#line 3106 "./util/configparser.y" { OUTYY(("P(server_response_ip:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); validate_respip_action((yyvsp[0].str)); @@ -6380,30 +6383,30 @@ yyreduce: (yyvsp[-1].str), (yyvsp[0].str))) fatal_exit("out of memory adding response-ip"); } -#line 6384 "util/configparser.c" +#line 6387 "util/configparser.c" break; case 586: -#line 3112 "./util/configparser.y" +#line 3115 "./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 6395 "util/configparser.c" +#line 6398 "util/configparser.c" break; case 587: -#line 3120 "./util/configparser.y" +#line 3123 "./util/configparser.y" { OUTYY(("\nP(dnscrypt:)\n")); } -#line 6403 "util/configparser.c" +#line 6406 "util/configparser.c" break; case 600: -#line 3136 "./util/configparser.y" +#line 3139 "./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) @@ -6411,11 +6414,11 @@ yyreduce: else cfg_parser->cfg->dnscrypt = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6415 "util/configparser.c" +#line 6418 "util/configparser.c" break; case 601: -#line 3146 "./util/configparser.y" +#line 3149 "./util/configparser.y" { OUTYY(("P(dnsc_dnscrypt_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6423,21 +6426,21 @@ yyreduce: else cfg_parser->cfg->dnscrypt_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 6427 "util/configparser.c" +#line 6430 "util/configparser.c" break; case 602: -#line 3155 "./util/configparser.y" +#line 3158 "./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 6437 "util/configparser.c" +#line 6440 "util/configparser.c" break; case 603: -#line 3162 "./util/configparser.y" +#line 3165 "./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))) @@ -6445,21 +6448,21 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_provider_cert, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-provider-cert"); } -#line 6449 "util/configparser.c" +#line 6452 "util/configparser.c" break; case 604: -#line 3171 "./util/configparser.y" +#line 3174 "./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 6459 "util/configparser.c" +#line 6462 "util/configparser.c" break; case 605: -#line 3178 "./util/configparser.y" +#line 3181 "./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))) @@ -6467,22 +6470,22 @@ yyreduce: if(!cfg_strlist_insert(&cfg_parser->cfg->dnscrypt_secret_key, (yyvsp[0].str))) fatal_exit("out of memory adding dnscrypt-secret-key"); } -#line 6471 "util/configparser.c" +#line 6474 "util/configparser.c" break; case 606: -#line 3187 "./util/configparser.y" +#line 3190 "./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 6482 "util/configparser.c" +#line 6485 "util/configparser.c" break; case 607: -#line 3195 "./util/configparser.y" +#line 3198 "./util/configparser.y" { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6494,22 +6497,22 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6498 "util/configparser.c" +#line 6501 "util/configparser.c" break; case 608: -#line 3208 "./util/configparser.y" +#line 3211 "./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 6509 "util/configparser.c" +#line 6512 "util/configparser.c" break; case 609: -#line 3216 "./util/configparser.y" +#line 3219 "./util/configparser.y" { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) @@ -6521,19 +6524,19 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6525 "util/configparser.c" +#line 6528 "util/configparser.c" break; case 610: -#line 3229 "./util/configparser.y" +#line 3232 "./util/configparser.y" { OUTYY(("\nP(cachedb:)\n")); } -#line 6533 "util/configparser.c" +#line 6536 "util/configparser.c" break; case 619: -#line 3240 "./util/configparser.y" +#line 3243 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); @@ -6544,11 +6547,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6548 "util/configparser.c" +#line 6551 "util/configparser.c" break; case 620: -#line 3252 "./util/configparser.y" +#line 3255 "./util/configparser.y" { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); @@ -6559,11 +6562,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6563 "util/configparser.c" +#line 6566 "util/configparser.c" break; case 621: -#line 3264 "./util/configparser.y" +#line 3267 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_server_host:%s)\n", (yyvsp[0].str))); @@ -6574,11 +6577,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6578 "util/configparser.c" +#line 6581 "util/configparser.c" break; case 622: -#line 3276 "./util/configparser.y" +#line 3279 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; @@ -6592,11 +6595,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6596 "util/configparser.c" +#line 6599 "util/configparser.c" break; case 623: -#line 3291 "./util/configparser.y" +#line 3294 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_timeout:%s)\n", (yyvsp[0].str))); @@ -6608,11 +6611,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6612 "util/configparser.c" +#line 6615 "util/configparser.c" break; case 624: -#line 3304 "./util/configparser.y" +#line 3307 "./util/configparser.y" { #if defined(USE_CACHEDB) && defined(USE_REDIS) OUTYY(("P(redis_expire_records:%s)\n", (yyvsp[0].str))); @@ -6624,11 +6627,11 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6628 "util/configparser.c" +#line 6631 "util/configparser.c" break; case 625: -#line 3317 "./util/configparser.y" +#line 3320 "./util/configparser.y" { OUTYY(("P(server_tcp_connection_limit:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if (atoi((yyvsp[0].str)) < 0) @@ -6638,19 +6641,19 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 6642 "util/configparser.c" +#line 6645 "util/configparser.c" break; case 626: -#line 3328 "./util/configparser.y" +#line 3331 "./util/configparser.y" { OUTYY(("\nP(ipset:)\n")); } -#line 6650 "util/configparser.c" +#line 6653 "util/configparser.c" break; case 631: -#line 3337 "./util/configparser.y" +#line 3340 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); @@ -6664,11 +6667,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6668 "util/configparser.c" +#line 6671 "util/configparser.c" break; case 632: -#line 3352 "./util/configparser.y" +#line 3355 "./util/configparser.y" { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); @@ -6682,11 +6685,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6686 "util/configparser.c" +#line 6689 "util/configparser.c" break; -#line 6690 "util/configparser.c" +#line 6693 "util/configparser.c" default: break; } @@ -6918,7 +6921,7 @@ yyreturn: #endif return yyresult; } -#line 3366 "./util/configparser.y" +#line 3369 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.y b/util/configparser.y index cc965a477..32419593a 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -2030,6 +2030,8 @@ server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG && strcmp($3, "always_transparent")!=0 && strcmp($3, "always_refuse")!=0 && strcmp($3, "always_nxdomain")!=0 + && strcmp($3, "always_nodata")!=0 + && strcmp($3, "always_deny")!=0 && strcmp($3, "always_null")!=0 && strcmp($3, "noview")!=0 && strcmp($3, "inform")!=0 && strcmp($3, "inform_deny")!=0 @@ -2039,7 +2041,8 @@ server_local_zone: VAR_LOCAL_ZONE STRING_ARG STRING_ARG "refuse, redirect, transparent, " "typetransparent, inform, inform_deny, " "inform_redirect, always_transparent, " - "always_refuse, always_nxdomain, always_null, " + "always_refuse, always_nxdomain, " + "always_nodata, always_deny, always_null, " "noview, nodefault or ipset"); free($2); free($3);