diff --git a/doc/Changelog b/doc/Changelog index 8a8e7ffe1..49dab107c 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -2,6 +2,7 @@ - Fix that http settings have colon in set_option, for http-endpoint, http-max-streams, http-query-buffer-size, http-response-buffer-size, and http-nodelay. + - Fix memory leak of https port string when reading config. 16 October 2020: Wouter - Fix that the out of order TCP processing does not limit the diff --git a/util/configparser.c b/util/configparser.c index ba5054eb4..50788a0c5 100644 --- a/util/configparser.c +++ b/util/configparser.c @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.5.1. */ +/* A Bison parser, made by GNU Bison 3.4.1. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -48,7 +48,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.5.1" +#define YYBISON_VERSION "3.4.1" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -97,15 +97,6 @@ extern struct config_parser_state* cfg_parser; #line 99 "util/configparser.c" -# ifndef YY_CAST -# ifdef __cplusplus -# define YY_CAST(Type, Val) static_cast (Val) -# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) -# else -# define YY_CAST(Type, Val) ((Type) (Val)) -# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) -# endif -# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -749,7 +740,7 @@ union YYSTYPE char* str; -#line 753 "util/configparser.c" +#line 744 "util/configparser.c" }; typedef union YYSTYPE YYSTYPE; @@ -770,83 +761,36 @@ int yyparse (void); # undef short #endif -/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure - and (if available) are included - so that the code can choose integer types of a good width. */ - -#ifndef __PTRDIFF_MAX__ -# include /* INFRINGES ON USER NAME SPACE */ -# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ -# include /* INFRINGES ON USER NAME SPACE */ -# define YY_STDINT_H -# endif +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; #endif -/* Narrow types that promote to a signed type and that can represent a - signed or unsigned integer of at least N bits. In tables they can - save space and decrease cache pressure. Promoting to a signed type - helps avoid bugs in integer arithmetic. */ - -#ifdef __INT_LEAST8_MAX__ -typedef __INT_LEAST8_TYPE__ yytype_int8; -#elif defined YY_STDINT_H -typedef int_least8_t yytype_int8; +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef __INT_LEAST16_MAX__ -typedef __INT_LEAST16_TYPE__ yytype_int16; -#elif defined YY_STDINT_H -typedef int_least16_t yytype_int16; +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; #else typedef short yytype_int16; #endif -#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST8_TYPE__ yytype_uint8; -#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST8_MAX <= INT_MAX) -typedef uint_least8_t yytype_uint8; -#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX -typedef unsigned char yytype_uint8; -#else -typedef short yytype_uint8; -#endif - -#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ -typedef __UINT_LEAST16_TYPE__ yytype_uint16; -#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ - && UINT_LEAST16_MAX <= INT_MAX) -typedef uint_least16_t yytype_uint16; -#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX -typedef unsigned short yytype_uint16; -#else -typedef int yytype_uint16; -#endif - -#ifndef YYPTRDIFF_T -# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ -# define YYPTRDIFF_T __PTRDIFF_TYPE__ -# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ -# elif defined PTRDIFF_MAX -# ifndef ptrdiff_t -# include /* INFRINGES ON USER NAME SPACE */ -# endif -# define YYPTRDIFF_T ptrdiff_t -# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX -# else -# define YYPTRDIFF_T long -# define YYPTRDIFF_MAXIMUM LONG_MAX -# endif -#endif - #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# elif ! defined YYSIZE_T # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -854,19 +798,7 @@ typedef int yytype_uint16; # endif #endif -#define YYSIZE_MAXIMUM \ - YY_CAST (YYPTRDIFF_T, \ - (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ - ? YYPTRDIFF_MAXIMUM \ - : YY_CAST (YYSIZE_T, -1))) - -#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) - -/* Stored state numbers (used for stacks). */ -typedef yytype_int16 yy_state_t; - -/* State numbers in computations. */ -typedef int yy_state_fast_t; +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -880,20 +812,22 @@ typedef int yy_state_fast_t; # endif #endif -#ifndef YY_ATTRIBUTE_PURE -# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) # else -# define YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE(Spec) /* empty */ # endif #endif +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + #ifndef YY_ATTRIBUTE_UNUSED -# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) -# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) -# else -# define YY_ATTRIBUTE_UNUSED -# endif +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) #endif /* Suppress unused-variable warnings by "using" E. */ @@ -905,11 +839,11 @@ typedef int yy_state_fast_t; #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -922,18 +856,6 @@ typedef int yy_state_fast_t; # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif -#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ -# define YY_IGNORE_USELESS_CAST_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") -# define YY_IGNORE_USELESS_CAST_END \ - _Pragma ("GCC diagnostic pop") -#endif -#ifndef YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_BEGIN -# define YY_IGNORE_USELESS_CAST_END -#endif - #define YY_ASSERT(E) ((void) (0 && (E))) @@ -1012,17 +934,17 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yy_state_t yyss_alloc; + yytype_int16 yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -1035,11 +957,11 @@ union yyalloc # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYPTRDIFF_T yynewbytes; \ + YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / YYSIZEOF (*yyptr); \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) @@ -1051,12 +973,12 @@ union yyalloc # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYPTRDIFF_T yyi; \ + YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -1082,15 +1004,14 @@ union yyalloc #define YYUNDEFTOK 2 #define YYMAXUTOK 554 - /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ - (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ -static const yytype_int16 yytranslate[] = +static const yytype_uint16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1152,7 +1073,7 @@ static const yytype_int16 yytranslate[] = #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_int16 yyrline[] = +static const yytype_uint16 yyrline[] = { 0, 184, 184, 184, 185, 185, 186, 186, 187, 187, 187, 188, 188, 189, 189, 190, 190, 191, 193, 199, @@ -1187,36 +1108,36 @@ static const yytype_int16 yyrline[] = 685, 698, 713, 722, 731, 740, 749, 758, 767, 776, 785, 794, 803, 812, 821, 830, 839, 852, 861, 874, 883, 892, 901, 908, 915, 924, 931, 940, 948, 955, - 962, 970, 979, 986, 1002, 1010, 1018, 1026, 1034, 1043, - 1052, 1066, 1075, 1084, 1093, 1102, 1111, 1120, 1127, 1134, - 1160, 1168, 1175, 1182, 1189, 1196, 1204, 1212, 1220, 1227, - 1238, 1249, 1256, 1265, 1274, 1283, 1290, 1297, 1305, 1313, - 1323, 1333, 1343, 1357, 1365, 1378, 1389, 1397, 1410, 1419, - 1428, 1437, 1447, 1457, 1465, 1478, 1487, 1495, 1504, 1512, - 1525, 1534, 1541, 1551, 1561, 1571, 1581, 1591, 1601, 1611, - 1621, 1628, 1635, 1642, 1651, 1660, 1669, 1678, 1685, 1695, - 1715, 1722, 1740, 1753, 1766, 1775, 1784, 1793, 1802, 1812, - 1822, 1833, 1842, 1851, 1860, 1869, 1878, 1887, 1900, 1913, - 1922, 1929, 1938, 1947, 1956, 1965, 1973, 1986, 1994, 2035, - 2042, 2057, 2067, 2077, 2084, 2091, 2098, 2107, 2115, 2129, - 2150, 2171, 2183, 2195, 2207, 2216, 2237, 2247, 2256, 2264, - 2272, 2285, 2298, 2313, 2328, 2337, 2346, 2352, 2361, 2370, - 2380, 2390, 2403, 2416, 2428, 2442, 2454, 2468, 2483, 2494, - 2504, 2511, 2518, 2527, 2536, 2546, 2556, 2566, 2573, 2580, - 2589, 2598, 2608, 2618, 2625, 2632, 2639, 2647, 2657, 2667, - 2677, 2687, 2726, 2736, 2744, 2752, 2767, 2776, 2781, 2782, - 2783, 2783, 2783, 2784, 2784, 2784, 2785, 2785, 2787, 2797, - 2806, 2813, 2820, 2827, 2834, 2841, 2848, 2853, 2854, 2855, - 2855, 2855, 2856, 2856, 2856, 2857, 2858, 2858, 2859, 2859, - 2860, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2868, 2877, - 2887, 2894, 2901, 2910, 2917, 2924, 2931, 2938, 2947, 2956, - 2963, 2970, 2980, 2990, 3000, 3010, 3020, 3030, 3035, 3036, - 3037, 3039, 3045, 3050, 3051, 3052, 3054, 3060, 3070, 3077, - 3086, 3094, 3099, 3100, 3102, 3102, 3102, 3103, 3103, 3104, - 3105, 3106, 3107, 3108, 3110, 3120, 3129, 3136, 3145, 3152, - 3161, 3169, 3182, 3190, 3203, 3208, 3209, 3210, 3210, 3211, - 3211, 3211, 3212, 3214, 3226, 3238, 3250, 3265, 3278, 3291, - 3302, 3307, 3308, 3309, 3309, 3311, 3326 + 962, 970, 979, 987, 1003, 1011, 1019, 1027, 1035, 1044, + 1053, 1067, 1076, 1085, 1094, 1103, 1112, 1121, 1128, 1135, + 1161, 1169, 1176, 1183, 1190, 1197, 1205, 1213, 1221, 1228, + 1239, 1250, 1257, 1266, 1275, 1284, 1291, 1298, 1306, 1314, + 1324, 1334, 1344, 1358, 1366, 1379, 1390, 1398, 1411, 1420, + 1429, 1438, 1448, 1458, 1466, 1479, 1488, 1496, 1505, 1513, + 1526, 1535, 1542, 1552, 1562, 1572, 1582, 1592, 1602, 1612, + 1622, 1629, 1636, 1643, 1652, 1661, 1670, 1679, 1686, 1696, + 1716, 1723, 1741, 1754, 1767, 1776, 1785, 1794, 1803, 1813, + 1823, 1834, 1843, 1852, 1861, 1870, 1879, 1888, 1901, 1914, + 1923, 1930, 1939, 1948, 1957, 1966, 1974, 1987, 1995, 2036, + 2043, 2058, 2068, 2078, 2085, 2092, 2099, 2108, 2116, 2130, + 2151, 2172, 2184, 2196, 2208, 2217, 2238, 2248, 2257, 2265, + 2273, 2286, 2299, 2314, 2329, 2338, 2347, 2353, 2362, 2371, + 2381, 2391, 2404, 2417, 2429, 2443, 2455, 2469, 2484, 2495, + 2505, 2512, 2519, 2528, 2537, 2547, 2557, 2567, 2574, 2581, + 2590, 2599, 2609, 2619, 2626, 2633, 2640, 2648, 2658, 2668, + 2678, 2688, 2727, 2737, 2745, 2753, 2768, 2777, 2782, 2783, + 2784, 2784, 2784, 2785, 2785, 2785, 2786, 2786, 2788, 2798, + 2807, 2814, 2821, 2828, 2835, 2842, 2849, 2854, 2855, 2856, + 2856, 2856, 2857, 2857, 2857, 2858, 2859, 2859, 2860, 2860, + 2861, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2869, 2878, + 2888, 2895, 2902, 2911, 2918, 2925, 2932, 2939, 2948, 2957, + 2964, 2971, 2981, 2991, 3001, 3011, 3021, 3031, 3036, 3037, + 3038, 3040, 3046, 3051, 3052, 3053, 3055, 3061, 3071, 3078, + 3087, 3095, 3100, 3101, 3103, 3103, 3103, 3104, 3104, 3105, + 3106, 3107, 3108, 3109, 3111, 3121, 3130, 3137, 3146, 3153, + 3162, 3170, 3183, 3191, 3204, 3209, 3210, 3211, 3211, 3212, + 3212, 3212, 3213, 3215, 3227, 3239, 3251, 3266, 3279, 3292, + 3303, 3308, 3309, 3310, 3310, 3312, 3327 }; #endif @@ -1472,7 +1393,7 @@ static const char *const yytname[] = # ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_int16 yytoknum[] = +static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -1507,14 +1428,14 @@ static const yytype_int16 yytoknum[] = }; # endif -#define YYPACT_NINF (-288) +#define YYPACT_NINF -288 -#define yypact_value_is_default(Yyn) \ - ((Yyn) == YYPACT_NINF) +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-288))) -#define YYTABLE_NINF (-1) +#define YYTABLE_NINF -1 -#define yytable_value_is_error(Yyn) \ +#define yytable_value_is_error(Yytable_value) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -1619,7 +1540,7 @@ static const yytype_int16 yypact[] = /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_int16 yydefact[] = +static const yytype_uint16 yydefact[] = { 2, 0, 1, 18, 19, 224, 234, 507, 567, 526, 243, 581, 604, 253, 620, 269, 572, 3, 17, 21, @@ -1795,7 +1716,7 @@ static const yytype_int16 yydefgoto[] = /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ -static const yytype_int16 yytable[] = +static const yytype_uint16 yytable[] = { 2, 493, 478, 450, 582, 451, 452, 465, 622, 623, 585, 3, 4, 627, 628, 466, 467, 609, 610, 611, @@ -1933,7 +1854,7 @@ static const yytype_int16 yycheck[] = /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_int16 yystos[] = +static const yytype_uint16 yystos[] = { 0, 301, 0, 11, 12, 46, 52, 96, 112, 159, 218, 236, 253, 262, 286, 290, 296, 302, 303, 304, @@ -2031,7 +1952,7 @@ static const yytype_int16 yystos[] = }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_int16 yyr1[] = +static const yytype_uint16 yyr1[] = { 0, 300, 301, 301, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 303, 304, @@ -2099,7 +2020,7 @@ static const yytype_int16 yyr1[] = }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_int8 yyr2[] = +static const yytype_uint8 yyr2[] = { 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, @@ -2249,9 +2170,7 @@ yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) if (yytype < YYNTOKENS) YYPRINT (yyo, yytoknum[yytype], *yyvaluep); # endif - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YYUSE (yytype); - YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -2275,7 +2194,7 @@ yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) `------------------------------------------------------------------*/ static void -yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -2298,19 +2217,19 @@ do { \ `------------------------------------------------*/ static void -yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule) +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) { - int yylno = yyrline[yyrule]; + unsigned long yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[+yyssp[yyi + 1 - yynrhs]], + yystos[yyssp[yyi + 1 - yynrhs]], &yyvsp[(yyi + 1) - (yynrhs)] ); YYFPRINTF (stderr, "\n"); @@ -2355,13 +2274,13 @@ int yydebug; # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H -# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) +# define yystrlen strlen # else /* Return the length of YYSTR. */ -static YYPTRDIFF_T +static YYSIZE_T yystrlen (const char *yystr) { - YYPTRDIFF_T yylen; + YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; @@ -2397,12 +2316,12 @@ yystpcpy (char *yydest, const char *yysrc) backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ -static YYPTRDIFF_T +static YYSIZE_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { - YYPTRDIFF_T yyn = 0; + YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) @@ -2433,10 +2352,10 @@ yytnamerr (char *yyres, const char *yystr) do_not_strip_quotes: ; } - if (yyres) - return yystpcpy (yyres, yystr) - yyres; - else + if (! yyres) return yystrlen (yystr); + + return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); } # endif @@ -2449,19 +2368,19 @@ yytnamerr (char *yyres, const char *yystr) *YYMSG_ALLOC to the required number of bytes. Return 2 if the required number of bytes is too large to store. */ static int -yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, - yy_state_t *yyssp, int yytoken) +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) { + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ const char *yyformat = YY_NULLPTR; - /* Arguments of yyformat: reported tokens (one for the "unexpected", - one per "expected"). */ + /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Actual size of YYARG. */ + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ int yycount = 0; - /* Cumulated lengths of YYARG. */ - YYPTRDIFF_T yysize = 0; /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then @@ -2488,9 +2407,7 @@ yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, */ if (yytoken != YYEMPTY) { - int yyn = yypact[+*yyssp]; - YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); - yysize = yysize0; + int yyn = yypact[*yyssp]; yyarg[yycount++] = yytname[yytoken]; if (!yypact_value_is_default (yyn)) { @@ -2515,8 +2432,7 @@ yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, } yyarg[yycount++] = yytname[yyx]; { - YYPTRDIFF_T yysize1 - = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) yysize = yysize1; else @@ -2543,9 +2459,7 @@ yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, } { - /* Don't count the "%s"s in the final size, but reserve room for - the terminator. */ - YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1; + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) yysize = yysize1; else @@ -2575,8 +2489,8 @@ yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, } else { - ++yyp; - ++yyformat; + yyp++; + yyformat++; } } return 0; @@ -2619,7 +2533,7 @@ int yynerrs; int yyparse (void) { - yy_state_fast_t yystate; + int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; @@ -2631,16 +2545,16 @@ yyparse (void) to reallocate them elsewhere. */ /* The state stack. */ - yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss; - yy_state_t *yyssp; + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs; YYSTYPE *yyvsp; - YYPTRDIFF_T yystacksize; + YYSIZE_T yystacksize; int yyn; int yyresult; @@ -2654,7 +2568,7 @@ yyparse (void) /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; - YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) @@ -2686,14 +2600,12 @@ yynewstate: /*--------------------------------------------------------------------. -| yysetstate -- set current state (the top of the stack) to yystate. | +| yynewstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: YYDPRINTF ((stderr, "Entering state %d\n", yystate)); YY_ASSERT (0 <= yystate && yystate < YYNSTATES); - YY_IGNORE_USELESS_CAST_BEGIN - *yyssp = YY_CAST (yy_state_t, yystate); - YY_IGNORE_USELESS_CAST_END + *yyssp = (yytype_int16) yystate; if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE @@ -2701,23 +2613,23 @@ yysetstate: #else { /* Get the current used size of the three stacks, in elements. */ - YYPTRDIFF_T yysize = yyssp - yyss + 1; + YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); # if defined yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ - yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * YYSIZEOF (*yyssp), - &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; @@ -2731,10 +2643,9 @@ yysetstate: yystacksize = YYMAXDEPTH; { - yy_state_t *yyss1 = yyss; + yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = - YY_CAST (union yyalloc *, - YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); @@ -2748,10 +2659,8 @@ yysetstate: yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YY_IGNORE_USELESS_CAST_BEGIN - YYDPRINTF ((stderr, "Stack size increased to %ld\n", - YY_CAST (long, yystacksize))); - YY_IGNORE_USELESS_CAST_END + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; @@ -2817,13 +2726,14 @@ yybackup: /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token. */ + yychar = YYEMPTY; + yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END - - /* Discard the shifted token. */ - yychar = YYEMPTY; goto yynewstate; @@ -2860,23 +2770,23 @@ yyreduce: { case 18: #line 194 "./util/configparser.y" - { + { OUTYY(("\nP(force-toplevel)\n")); } -#line 2867 "util/configparser.c" +#line 2777 "util/configparser.c" break; case 19: #line 200 "./util/configparser.y" - { + { OUTYY(("\nP(server:)\n")); } -#line 2875 "util/configparser.c" +#line 2785 "util/configparser.c" break; case 224: #line 298 "./util/configparser.y" - { + { struct config_stub* s; OUTYY(("\nP(stub_zone:)\n")); s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); @@ -2886,12 +2796,12 @@ yyreduce: } else yyerror("out of memory"); } -#line 2890 "util/configparser.c" +#line 2800 "util/configparser.c" break; case 234: #line 315 "./util/configparser.y" - { + { struct config_stub* s; OUTYY(("\nP(forward_zone:)\n")); s = (struct config_stub*)calloc(1, sizeof(struct config_stub)); @@ -2901,12 +2811,12 @@ yyreduce: } else yyerror("out of memory"); } -#line 2905 "util/configparser.c" +#line 2815 "util/configparser.c" break; case 243: #line 332 "./util/configparser.y" - { + { struct config_view* s; OUTYY(("\nP(view:)\n")); s = (struct config_view*)calloc(1, sizeof(struct config_view)); @@ -2918,12 +2828,12 @@ yyreduce: } else yyerror("out of memory"); } -#line 2922 "util/configparser.c" +#line 2832 "util/configparser.c" break; case 253: #line 351 "./util/configparser.y" - { + { struct config_auth* s; OUTYY(("\nP(auth_zone:)\n")); s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); @@ -2938,12 +2848,12 @@ yyreduce: } else yyerror("out of memory"); } -#line 2942 "util/configparser.c" +#line 2852 "util/configparser.c" break; case 264: #line 375 "./util/configparser.y" - { + { uint8_t* bitlist; size_t len = 0; OUTYY(("P(server_local_zone_tag:%s)\n", (yyvsp[0].str))); @@ -2959,12 +2869,12 @@ yyreduce: } } -#line 2963 "util/configparser.c" +#line 2873 "util/configparser.c" break; case 265: #line 394 "./util/configparser.y" - { + { OUTYY(("P(rpz_action_override:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "nxdomain")!=0 && strcmp((yyvsp[0].str), "nodata")!=0 && strcmp((yyvsp[0].str), "passthru")!=0 && strcmp((yyvsp[0].str), "drop")!=0 && @@ -2978,44 +2888,44 @@ yyreduce: cfg_parser->cfg->auths->rpz_action_override = (yyvsp[0].str); } } -#line 2982 "util/configparser.c" +#line 2892 "util/configparser.c" break; case 266: #line 411 "./util/configparser.y" - { + { OUTYY(("P(rpz_cname_override:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_cname); cfg_parser->cfg->auths->rpz_cname = (yyvsp[0].str); } -#line 2992 "util/configparser.c" +#line 2902 "util/configparser.c" break; case 267: #line 419 "./util/configparser.y" - { + { OUTYY(("P(rpz_log:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->auths->rpz_log = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3004 "util/configparser.c" +#line 2914 "util/configparser.c" break; case 268: #line 429 "./util/configparser.y" - { + { OUTYY(("P(rpz_log_name:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->auths->rpz_log_name); cfg_parser->cfg->auths->rpz_log_name = (yyvsp[0].str); } -#line 3014 "util/configparser.c" +#line 2924 "util/configparser.c" break; case 269: #line 437 "./util/configparser.y" - { + { struct config_auth* s; OUTYY(("\nP(rpz:)\n")); s = (struct config_auth*)calloc(1, sizeof(struct config_auth)); @@ -3030,36 +2940,36 @@ yyreduce: } else yyerror("out of memory"); } -#line 3034 "util/configparser.c" +#line 2944 "util/configparser.c" break; case 282: #line 460 "./util/configparser.y" - { + { OUTYY(("P(server_num_threads:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->num_threads = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3046 "util/configparser.c" +#line 2956 "util/configparser.c" break; case 283: #line 469 "./util/configparser.y" - { + { OUTYY(("P(server_verbosity:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->verbosity = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3058 "util/configparser.c" +#line 2968 "util/configparser.c" break; case 284: #line 478 "./util/configparser.y" - { + { OUTYY(("P(server_statistics_interval:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) cfg_parser->cfg->stat_interval = 0; @@ -3068,48 +2978,48 @@ yyreduce: else cfg_parser->cfg->stat_interval = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3072 "util/configparser.c" +#line 2982 "util/configparser.c" break; case 285: #line 489 "./util/configparser.y" - { + { OUTYY(("P(server_statistics_cumulative:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->stat_cumulative = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3084 "util/configparser.c" +#line 2994 "util/configparser.c" break; case 286: #line 498 "./util/configparser.y" - { + { OUTYY(("P(server_extended_statistics:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->stat_extended = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3096 "util/configparser.c" +#line 3006 "util/configparser.c" break; case 287: #line 507 "./util/configparser.y" - { + { OUTYY(("P(server_shm_enable:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->shm_enable = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3108 "util/configparser.c" +#line 3018 "util/configparser.c" break; case 288: #line 516 "./util/configparser.y" - { + { OUTYY(("P(server_shm_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "") == 0 || strcmp((yyvsp[0].str), "0") == 0) cfg_parser->cfg->shm_key = 0; @@ -3118,24 +3028,24 @@ yyreduce: else cfg_parser->cfg->shm_key = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3122 "util/configparser.c" +#line 3032 "util/configparser.c" break; case 289: #line 527 "./util/configparser.y" - { + { OUTYY(("P(server_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); else cfg_parser->cfg->port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3134 "util/configparser.c" +#line 3044 "util/configparser.c" break; case 290: #line 536 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(server_send_client_subnet:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet, (yyvsp[0].str))) @@ -3145,12 +3055,12 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3149 "util/configparser.c" +#line 3059 "util/configparser.c" break; case 291: #line 548 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_zone:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->client_subnet_zone, @@ -3161,12 +3071,12 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 3165 "util/configparser.c" +#line 3075 "util/configparser.c" break; case 292: #line 562 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(server_client_subnet_always_forward:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -3179,12 +3089,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3183 "util/configparser.c" +#line 3093 "util/configparser.c" break; case 293: #line 577 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(client_subnet_opcode:%s)\n", (yyvsp[0].str))); OUTYY(("P(Deprecated option, ignoring)\n")); @@ -3193,12 +3103,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3197 "util/configparser.c" +#line 3107 "util/configparser.c" break; case 294: #line 588 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3213,12 +3123,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3217 "util/configparser.c" +#line 3127 "util/configparser.c" break; case 295: #line 605 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(max_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3233,12 +3143,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3237 "util/configparser.c" +#line 3147 "util/configparser.c" break; case 296: #line 622 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv4:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3253,12 +3163,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3257 "util/configparser.c" +#line 3167 "util/configparser.c" break; case 297: #line 639 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(min_client_subnet_ipv6:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3273,12 +3183,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3277 "util/configparser.c" +#line 3187 "util/configparser.c" break; case 298: #line 656 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv4:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3291,12 +3201,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3295 "util/configparser.c" +#line 3205 "util/configparser.c" break; case 299: #line 671 "./util/configparser.y" - { + { #ifdef CLIENT_SUBNET OUTYY(("P(max_ecs_tree_size_ipv6:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) @@ -3309,12 +3219,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3313 "util/configparser.c" +#line 3223 "util/configparser.c" break; case 300: #line 686 "./util/configparser.y" - { + { OUTYY(("P(server_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_ifs == 0) cfg_parser->cfg->ifs = calloc(1, sizeof(char*)); @@ -3325,12 +3235,12 @@ yyreduce: else cfg_parser->cfg->ifs[cfg_parser->cfg->num_ifs++] = (yyvsp[0].str); } -#line 3329 "util/configparser.c" +#line 3239 "util/configparser.c" break; case 301: #line 699 "./util/configparser.y" - { + { OUTYY(("P(server_outgoing_interface:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->num_out_ifs == 0) cfg_parser->cfg->out_ifs = calloc(1, sizeof(char*)); @@ -3343,180 +3253,180 @@ yyreduce: cfg_parser->cfg->out_ifs[ cfg_parser->cfg->num_out_ifs++] = (yyvsp[0].str); } -#line 3347 "util/configparser.c" +#line 3257 "util/configparser.c" break; case 302: #line 714 "./util/configparser.y" - { + { OUTYY(("P(server_outgoing_range:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else cfg_parser->cfg->outgoing_num_ports = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3359 "util/configparser.c" +#line 3269 "util/configparser.c" break; case 303: #line 723 "./util/configparser.y" - { + { OUTYY(("P(server_outgoing_port_permit:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 1, cfg_parser->cfg->outgoing_avail_ports, 65536)) yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3371 "util/configparser.c" +#line 3281 "util/configparser.c" break; case 304: #line 732 "./util/configparser.y" - { + { OUTYY(("P(server_outgoing_port_avoid:%s)\n", (yyvsp[0].str))); if(!cfg_mark_ports((yyvsp[0].str), 0, cfg_parser->cfg->outgoing_avail_ports, 65536)) yyerror("port number or range (\"low-high\") expected"); free((yyvsp[0].str)); } -#line 3383 "util/configparser.c" +#line 3293 "util/configparser.c" break; case 305: #line 741 "./util/configparser.y" - { + { OUTYY(("P(server_outgoing_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->outgoing_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3395 "util/configparser.c" +#line 3305 "util/configparser.c" break; case 306: #line 750 "./util/configparser.y" - { + { OUTYY(("P(server_incoming_num_tcp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->incoming_num_tcp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3407 "util/configparser.c" +#line 3317 "util/configparser.c" break; case 307: #line 759 "./util/configparser.y" - { + { OUTYY(("P(server_interface_automatic:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->if_automatic = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3419 "util/configparser.c" +#line 3329 "util/configparser.c" break; case 308: #line 768 "./util/configparser.y" - { + { OUTYY(("P(server_do_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3431 "util/configparser.c" +#line 3341 "util/configparser.c" break; case 309: #line 777 "./util/configparser.y" - { + { OUTYY(("P(server_do_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3443 "util/configparser.c" +#line 3353 "util/configparser.c" break; case 310: #line 786 "./util/configparser.y" - { + { OUTYY(("P(server_do_udp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_udp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3455 "util/configparser.c" +#line 3365 "util/configparser.c" break; case 311: #line 795 "./util/configparser.y" - { + { OUTYY(("P(server_do_tcp:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_tcp = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3467 "util/configparser.c" +#line 3377 "util/configparser.c" break; case 312: #line 804 "./util/configparser.y" - { + { OUTYY(("P(server_prefer_ip4:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->prefer_ip4 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3479 "util/configparser.c" +#line 3389 "util/configparser.c" break; case 313: #line 813 "./util/configparser.y" - { + { OUTYY(("P(server_prefer_ip6:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->prefer_ip6 = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3491 "util/configparser.c" +#line 3401 "util/configparser.c" break; case 314: #line 822 "./util/configparser.y" - { + { OUTYY(("P(server_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3503 "util/configparser.c" +#line 3413 "util/configparser.c" break; case 315: #line 831 "./util/configparser.y" - { + { OUTYY(("P(server_outgoing_tcp_mss:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->outgoing_tcp_mss = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3515 "util/configparser.c" +#line 3425 "util/configparser.c" break; case 316: #line 840 "./util/configparser.y" - { + { OUTYY(("P(server_tcp_idle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); @@ -3527,24 +3437,24 @@ yyreduce: else cfg_parser->cfg->tcp_idle_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3531 "util/configparser.c" +#line 3441 "util/configparser.c" break; case 317: #line 853 "./util/configparser.y" - { + { OUTYY(("P(server_tcp_keepalive:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_tcp_keepalive = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3543 "util/configparser.c" +#line 3453 "util/configparser.c" break; case 318: #line 862 "./util/configparser.y" - { + { OUTYY(("P(server_tcp_keepalive_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); @@ -3555,167 +3465,168 @@ yyreduce: else cfg_parser->cfg->tcp_keepalive_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3559 "util/configparser.c" +#line 3469 "util/configparser.c" break; case 319: #line 875 "./util/configparser.y" - { + { OUTYY(("P(server_tcp_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->tcp_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3571 "util/configparser.c" +#line 3481 "util/configparser.c" break; case 320: #line 884 "./util/configparser.y" - { + { OUTYY(("P(server_udp_upstream_without_downstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->udp_upstream_without_downstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3583 "util/configparser.c" +#line 3493 "util/configparser.c" break; case 321: #line 893 "./util/configparser.y" - { + { OUTYY(("P(server_ssl_upstream:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->ssl_upstream = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3595 "util/configparser.c" +#line 3505 "util/configparser.c" break; case 322: #line 902 "./util/configparser.y" - { + { OUTYY(("P(server_ssl_service_key:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_key); cfg_parser->cfg->ssl_service_key = (yyvsp[0].str); } -#line 3605 "util/configparser.c" +#line 3515 "util/configparser.c" break; case 323: #line 909 "./util/configparser.y" - { + { OUTYY(("P(server_ssl_service_pem:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ssl_service_pem); cfg_parser->cfg->ssl_service_pem = (yyvsp[0].str); } -#line 3615 "util/configparser.c" +#line 3525 "util/configparser.c" break; case 324: #line 916 "./util/configparser.y" - { + { OUTYY(("P(server_ssl_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); else cfg_parser->cfg->ssl_port = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3627 "util/configparser.c" +#line 3537 "util/configparser.c" break; case 325: #line 925 "./util/configparser.y" - { + { OUTYY(("P(server_tls_cert_bundle:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_cert_bundle); cfg_parser->cfg->tls_cert_bundle = (yyvsp[0].str); } -#line 3637 "util/configparser.c" +#line 3547 "util/configparser.c" break; case 326: #line 932 "./util/configparser.y" - { + { OUTYY(("P(server_tls_win_cert:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->tls_win_cert = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3649 "util/configparser.c" +#line 3559 "util/configparser.c" break; case 327: #line 941 "./util/configparser.y" - { + { OUTYY(("P(server_tls_additional_port:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->tls_additional_port, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3660 "util/configparser.c" +#line 3570 "util/configparser.c" break; case 328: #line 949 "./util/configparser.y" - { + { OUTYY(("P(server_tls_ciphers:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphers); cfg_parser->cfg->tls_ciphers = (yyvsp[0].str); } -#line 3670 "util/configparser.c" +#line 3580 "util/configparser.c" break; case 329: #line 956 "./util/configparser.y" - { + { OUTYY(("P(server_tls_ciphersuites:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->tls_ciphersuites); cfg_parser->cfg->tls_ciphersuites = (yyvsp[0].str); } -#line 3680 "util/configparser.c" +#line 3590 "util/configparser.c" break; case 330: #line 963 "./util/configparser.y" - { + { OUTYY(("P(server_tls_session_ticket_keys:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_append(&cfg_parser->cfg->tls_session_ticket_keys, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3691 "util/configparser.c" +#line 3601 "util/configparser.c" break; case 331: #line 971 "./util/configparser.y" - { + { OUTYY(("P(server_tls_use_sni:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->tls_use_sni = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3703 "util/configparser.c" +#line 3613 "util/configparser.c" break; case 332: #line 980 "./util/configparser.y" - { + { OUTYY(("P(server_https_port:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("port number expected"); else cfg_parser->cfg->https_port = atoi((yyvsp[0].str)); + free((yyvsp[0].str)); } -#line 3714 "util/configparser.c" +#line 3625 "util/configparser.c" break; case 333: -#line 987 "./util/configparser.y" - { +#line 988 "./util/configparser.y" + { OUTYY(("P(server_http_endpoint:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->http_endpoint); if((yyvsp[0].str) && (yyvsp[0].str)[0] != '/') { @@ -3730,84 +3641,84 @@ yyreduce: cfg_parser->cfg->http_endpoint = (yyvsp[0].str); } } -#line 3734 "util/configparser.c" +#line 3645 "util/configparser.c" break; case 334: -#line 1003 "./util/configparser.y" - { +#line 1004 "./util/configparser.y" + { OUTYY(("P(server_http_max_streams:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->http_max_streams = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 3746 "util/configparser.c" +#line 3657 "util/configparser.c" break; case 335: -#line 1011 "./util/configparser.y" - { +#line 1012 "./util/configparser.y" + { OUTYY(("P(server_http_query_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->http_query_buffer_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3758 "util/configparser.c" +#line 3669 "util/configparser.c" break; case 336: -#line 1019 "./util/configparser.y" - { +#line 1020 "./util/configparser.y" + { OUTYY(("P(server_http_response_buffer_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->http_response_buffer_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 3770 "util/configparser.c" +#line 3681 "util/configparser.c" break; case 337: -#line 1027 "./util/configparser.y" - { +#line 1028 "./util/configparser.y" + { OUTYY(("P(server_http_nodelay:%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->http_nodelay = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3782 "util/configparser.c" +#line 3693 "util/configparser.c" break; case 338: -#line 1035 "./util/configparser.y" - { +#line 1036 "./util/configparser.y" + { OUTYY(("P(server_use_systemd:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->use_systemd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3794 "util/configparser.c" +#line 3705 "util/configparser.c" break; case 339: -#line 1044 "./util/configparser.y" - { +#line 1045 "./util/configparser.y" + { OUTYY(("P(server_do_daemonize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->do_daemonize = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3806 "util/configparser.c" +#line 3717 "util/configparser.c" break; case 340: -#line 1053 "./util/configparser.y" - { +#line 1054 "./util/configparser.y" + { OUTYY(("P(server_use_syslog:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -3819,104 +3730,104 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 3823 "util/configparser.c" +#line 3734 "util/configparser.c" break; case 341: -#line 1067 "./util/configparser.y" - { +#line 1068 "./util/configparser.y" + { OUTYY(("P(server_log_time_ascii:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_time_ascii = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3835 "util/configparser.c" +#line 3746 "util/configparser.c" break; case 342: -#line 1076 "./util/configparser.y" - { +#line 1077 "./util/configparser.y" + { OUTYY(("P(server_log_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_queries = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3847 "util/configparser.c" +#line 3758 "util/configparser.c" break; case 343: -#line 1085 "./util/configparser.y" - { +#line 1086 "./util/configparser.y" + { OUTYY(("P(server_log_replies:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_replies = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3859 "util/configparser.c" +#line 3770 "util/configparser.c" break; case 344: -#line 1094 "./util/configparser.y" - { +#line 1095 "./util/configparser.y" + { OUTYY(("P(server_log_tag_queryreply:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_tag_queryreply = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3871 "util/configparser.c" +#line 3782 "util/configparser.c" break; case 345: -#line 1103 "./util/configparser.y" - { +#line 1104 "./util/configparser.y" + { OUTYY(("P(server_log_servfail:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_servfail = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3883 "util/configparser.c" +#line 3794 "util/configparser.c" break; case 346: -#line 1112 "./util/configparser.y" - { +#line 1113 "./util/configparser.y" + { OUTYY(("P(server_log_local_actions:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->log_local_actions = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 3895 "util/configparser.c" +#line 3806 "util/configparser.c" break; case 347: -#line 1121 "./util/configparser.y" - { +#line 1122 "./util/configparser.y" + { OUTYY(("P(server_chroot:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->chrootdir); cfg_parser->cfg->chrootdir = (yyvsp[0].str); } -#line 3905 "util/configparser.c" +#line 3816 "util/configparser.c" break; case 348: -#line 1128 "./util/configparser.y" - { +#line 1129 "./util/configparser.y" + { OUTYY(("P(server_username:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->username); cfg_parser->cfg->username = (yyvsp[0].str); } -#line 3915 "util/configparser.c" +#line 3826 "util/configparser.c" break; case 349: -#line 1135 "./util/configparser.y" - { +#line 1136 "./util/configparser.y" + { OUTYY(("P(server_directory:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->directory); cfg_parser->cfg->directory = (yyvsp[0].str); @@ -3940,106 +3851,106 @@ yyreduce: } } } -#line 3944 "util/configparser.c" +#line 3855 "util/configparser.c" break; case 350: -#line 1161 "./util/configparser.y" - { +#line 1162 "./util/configparser.y" + { OUTYY(("P(server_logfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->logfile); cfg_parser->cfg->logfile = (yyvsp[0].str); cfg_parser->cfg->use_syslog = 0; } -#line 3955 "util/configparser.c" +#line 3866 "util/configparser.c" break; case 351: -#line 1169 "./util/configparser.y" - { +#line 1170 "./util/configparser.y" + { OUTYY(("P(server_pidfile:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->pidfile); cfg_parser->cfg->pidfile = (yyvsp[0].str); } -#line 3965 "util/configparser.c" +#line 3876 "util/configparser.c" break; case 352: -#line 1176 "./util/configparser.y" - { +#line 1177 "./util/configparser.y" + { OUTYY(("P(server_root_hints:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->root_hints, (yyvsp[0].str))) yyerror("out of memory"); } -#line 3975 "util/configparser.c" +#line 3886 "util/configparser.c" break; case 353: -#line 1183 "./util/configparser.y" - { +#line 1184 "./util/configparser.y" + { OUTYY(("P(server_dlv_anchor_file:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor-file ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 3985 "util/configparser.c" +#line 3896 "util/configparser.c" break; case 354: -#line 1190 "./util/configparser.y" - { +#line 1191 "./util/configparser.y" + { OUTYY(("P(server_dlv_anchor:%s)\n", (yyvsp[0].str))); log_warn("option dlv-anchor ignored: DLV is decommissioned"); free((yyvsp[0].str)); } -#line 3995 "util/configparser.c" +#line 3906 "util/configparser.c" break; case 355: -#line 1197 "./util/configparser.y" - { +#line 1198 "./util/configparser.y" + { OUTYY(("P(server_auto_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> auto_trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4006 "util/configparser.c" +#line 3917 "util/configparser.c" break; case 356: -#line 1205 "./util/configparser.y" - { +#line 1206 "./util/configparser.y" + { OUTYY(("P(server_trust_anchor_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trust_anchor_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4017 "util/configparser.c" +#line 3928 "util/configparser.c" break; case 357: -#line 1213 "./util/configparser.y" - { +#line 1214 "./util/configparser.y" + { OUTYY(("P(server_trusted_keys_file:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg-> trusted_keys_file_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4028 "util/configparser.c" +#line 3939 "util/configparser.c" break; case 358: -#line 1221 "./util/configparser.y" - { +#line 1222 "./util/configparser.y" + { OUTYY(("P(server_trust_anchor:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->trust_anchor_list, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4038 "util/configparser.c" +#line 3949 "util/configparser.c" break; case 359: -#line 1228 "./util/configparser.y" - { +#line 1229 "./util/configparser.y" + { OUTYY(("P(server_trust_anchor_signaling:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4048,12 +3959,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4052 "util/configparser.c" +#line 3963 "util/configparser.c" break; case 360: -#line 1239 "./util/configparser.y" - { +#line 1240 "./util/configparser.y" + { OUTYY(("P(server_root_key_sentinel:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4062,99 +3973,99 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4066 "util/configparser.c" +#line 3977 "util/configparser.c" break; case 361: -#line 1250 "./util/configparser.y" - { +#line 1251 "./util/configparser.y" + { OUTYY(("P(server_domain_insecure:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->domain_insecure, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4076 "util/configparser.c" +#line 3987 "util/configparser.c" break; case 362: -#line 1257 "./util/configparser.y" - { +#line 1258 "./util/configparser.y" + { OUTYY(("P(server_hide_identity:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->hide_identity = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4088 "util/configparser.c" +#line 3999 "util/configparser.c" break; case 363: -#line 1266 "./util/configparser.y" - { +#line 1267 "./util/configparser.y" + { OUTYY(("P(server_hide_version:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->hide_version = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4100 "util/configparser.c" +#line 4011 "util/configparser.c" break; case 364: -#line 1275 "./util/configparser.y" - { +#line 1276 "./util/configparser.y" + { OUTYY(("P(server_hide_trustanchor:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->hide_trustanchor = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4112 "util/configparser.c" +#line 4023 "util/configparser.c" break; case 365: -#line 1284 "./util/configparser.y" - { +#line 1285 "./util/configparser.y" + { OUTYY(("P(server_identity:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->identity); cfg_parser->cfg->identity = (yyvsp[0].str); } -#line 4122 "util/configparser.c" +#line 4033 "util/configparser.c" break; case 366: -#line 1291 "./util/configparser.y" - { +#line 1292 "./util/configparser.y" + { OUTYY(("P(server_version:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->version); cfg_parser->cfg->version = (yyvsp[0].str); } -#line 4132 "util/configparser.c" +#line 4043 "util/configparser.c" break; case 367: -#line 1298 "./util/configparser.y" - { +#line 1299 "./util/configparser.y" + { OUTYY(("P(server_so_rcvbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_rcvbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4143 "util/configparser.c" +#line 4054 "util/configparser.c" break; case 368: -#line 1306 "./util/configparser.y" - { +#line 1307 "./util/configparser.y" + { OUTYY(("P(server_so_sndbuf:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->so_sndbuf)) yyerror("buffer size expected"); free((yyvsp[0].str)); } -#line 4154 "util/configparser.c" +#line 4065 "util/configparser.c" break; case 369: -#line 1314 "./util/configparser.y" +#line 1315 "./util/configparser.y" { OUTYY(("P(server_so_reuseport:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4163,11 +4074,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4167 "util/configparser.c" +#line 4078 "util/configparser.c" break; case 370: -#line 1324 "./util/configparser.y" +#line 1325 "./util/configparser.y" { OUTYY(("P(server_ip_transparent:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4176,11 +4087,11 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4180 "util/configparser.c" +#line 4091 "util/configparser.c" break; case 371: -#line 1334 "./util/configparser.y" +#line 1335 "./util/configparser.y" { OUTYY(("P(server_ip_freebind:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) @@ -4189,12 +4100,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4193 "util/configparser.c" +#line 4104 "util/configparser.c" break; case 372: -#line 1344 "./util/configparser.y" - { +#line 1345 "./util/configparser.y" + { OUTYY(("P(server_ip_dscp:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); @@ -4206,23 +4117,23 @@ yyreduce: cfg_parser->cfg->ip_dscp = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4210 "util/configparser.c" +#line 4121 "util/configparser.c" break; case 373: -#line 1358 "./util/configparser.y" - { +#line 1359 "./util/configparser.y" + { OUTYY(("P(server_stream_wait_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->stream_wait_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4221 "util/configparser.c" +#line 4132 "util/configparser.c" break; case 374: -#line 1366 "./util/configparser.y" - { +#line 1367 "./util/configparser.y" + { OUTYY(("P(server_edns_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@ -4233,12 +4144,12 @@ yyreduce: else cfg_parser->cfg->edns_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4237 "util/configparser.c" +#line 4148 "util/configparser.c" break; case 375: -#line 1379 "./util/configparser.y" - { +#line 1380 "./util/configparser.y" + { OUTYY(("P(server_msg_buffer_size:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@ -4247,23 +4158,23 @@ yyreduce: else cfg_parser->cfg->msg_buffer_size = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4251 "util/configparser.c" +#line 4162 "util/configparser.c" break; case 376: -#line 1390 "./util/configparser.y" - { +#line 1391 "./util/configparser.y" + { OUTYY(("P(server_msg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->msg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4262 "util/configparser.c" +#line 4173 "util/configparser.c" break; case 377: -#line 1398 "./util/configparser.y" - { +#line 1399 "./util/configparser.y" + { OUTYY(("P(server_msg_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@ -4274,48 +4185,48 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4278 "util/configparser.c" +#line 4189 "util/configparser.c" break; case 378: -#line 1411 "./util/configparser.y" - { +#line 1412 "./util/configparser.y" + { OUTYY(("P(server_num_queries_per_thread:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else cfg_parser->cfg->num_queries_per_thread = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4290 "util/configparser.c" +#line 4201 "util/configparser.c" break; case 379: -#line 1420 "./util/configparser.y" - { +#line 1421 "./util/configparser.y" + { OUTYY(("P(server_jostle_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->jostle_time = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4302 "util/configparser.c" +#line 4213 "util/configparser.c" break; case 380: -#line 1429 "./util/configparser.y" - { +#line 1430 "./util/configparser.y" + { OUTYY(("P(server_delay_close:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->delay_close = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4314 "util/configparser.c" +#line 4225 "util/configparser.c" break; case 381: -#line 1438 "./util/configparser.y" - { +#line 1439 "./util/configparser.y" + { OUTYY(("P(server_unblock_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4323,12 +4234,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4327 "util/configparser.c" +#line 4238 "util/configparser.c" break; case 382: -#line 1448 "./util/configparser.y" - { +#line 1449 "./util/configparser.y" + { OUTYY(("P(server_insecure_lan_zones:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4336,23 +4247,23 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4340 "util/configparser.c" +#line 4251 "util/configparser.c" break; case 383: -#line 1458 "./util/configparser.y" - { +#line 1459 "./util/configparser.y" + { OUTYY(("P(server_rrset_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->rrset_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 4351 "util/configparser.c" +#line 4262 "util/configparser.c" break; case 384: -#line 1466 "./util/configparser.y" - { +#line 1467 "./util/configparser.y" + { OUTYY(("P(server_rrset_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@ -4363,58 +4274,58 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4367 "util/configparser.c" +#line 4278 "util/configparser.c" break; case 385: -#line 1479 "./util/configparser.y" - { +#line 1480 "./util/configparser.y" + { OUTYY(("P(server_infra_host_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->host_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4379 "util/configparser.c" +#line 4290 "util/configparser.c" break; case 386: -#line 1488 "./util/configparser.y" - { +#line 1489 "./util/configparser.y" + { OUTYY(("P(server_infra_lame_ttl:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-lame-ttl: %s (option " "removed, use infra-host-ttl)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4390 "util/configparser.c" +#line 4301 "util/configparser.c" break; case 387: -#line 1496 "./util/configparser.y" - { +#line 1497 "./util/configparser.y" + { OUTYY(("P(server_infra_cache_numhosts:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); else cfg_parser->cfg->infra_cache_numhosts = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4402 "util/configparser.c" +#line 4313 "util/configparser.c" break; case 388: -#line 1505 "./util/configparser.y" - { +#line 1506 "./util/configparser.y" + { OUTYY(("P(server_infra_cache_lame_size:%s)\n", (yyvsp[0].str))); verbose(VERB_DETAIL, "ignored infra-cache-lame-size: %s " "(option removed, use infra-cache-numhosts)", (yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4413 "util/configparser.c" +#line 4324 "util/configparser.c" break; case 389: -#line 1513 "./util/configparser.y" - { +#line 1514 "./util/configparser.y" + { OUTYY(("P(server_infra_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@ -4425,34 +4336,34 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4429 "util/configparser.c" +#line 4340 "util/configparser.c" break; case 390: -#line 1526 "./util/configparser.y" - { +#line 1527 "./util/configparser.y" + { OUTYY(("P(server_infra_cache_min_rtt:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->infra_cache_min_rtt = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4441 "util/configparser.c" +#line 4352 "util/configparser.c" break; case 391: -#line 1535 "./util/configparser.y" - { +#line 1536 "./util/configparser.y" + { OUTYY(("P(server_target_fetch_policy:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->target_fetch_policy); cfg_parser->cfg->target_fetch_policy = (yyvsp[0].str); } -#line 4451 "util/configparser.c" +#line 4362 "util/configparser.c" break; case 392: -#line 1542 "./util/configparser.y" - { +#line 1543 "./util/configparser.y" + { OUTYY(("P(server_harden_short_bufsize:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4460,12 +4371,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4464 "util/configparser.c" +#line 4375 "util/configparser.c" break; case 393: -#line 1552 "./util/configparser.y" - { +#line 1553 "./util/configparser.y" + { OUTYY(("P(server_harden_large_queries:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4473,12 +4384,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4477 "util/configparser.c" +#line 4388 "util/configparser.c" break; case 394: -#line 1562 "./util/configparser.y" - { +#line 1563 "./util/configparser.y" + { OUTYY(("P(server_harden_glue:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4486,12 +4397,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4490 "util/configparser.c" +#line 4401 "util/configparser.c" break; case 395: -#line 1572 "./util/configparser.y" - { +#line 1573 "./util/configparser.y" + { OUTYY(("P(server_harden_dnssec_stripped:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4499,12 +4410,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4503 "util/configparser.c" +#line 4414 "util/configparser.c" break; case 396: -#line 1582 "./util/configparser.y" - { +#line 1583 "./util/configparser.y" + { OUTYY(("P(server_harden_below_nxdomain:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4512,12 +4423,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4516 "util/configparser.c" +#line 4427 "util/configparser.c" break; case 397: -#line 1592 "./util/configparser.y" - { +#line 1593 "./util/configparser.y" + { OUTYY(("P(server_harden_referral_path:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4525,12 +4436,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4529 "util/configparser.c" +#line 4440 "util/configparser.c" break; case 398: -#line 1602 "./util/configparser.y" - { +#line 1603 "./util/configparser.y" + { OUTYY(("P(server_harden_algo_downgrade:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4538,12 +4449,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4542 "util/configparser.c" +#line 4453 "util/configparser.c" break; case 399: -#line 1612 "./util/configparser.y" - { +#line 1613 "./util/configparser.y" + { OUTYY(("P(server_use_caps_for_id:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4551,100 +4462,100 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4555 "util/configparser.c" +#line 4466 "util/configparser.c" break; case 400: -#line 1622 "./util/configparser.y" - { +#line 1623 "./util/configparser.y" + { OUTYY(("P(server_caps_whitelist:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->caps_whitelist, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4565 "util/configparser.c" +#line 4476 "util/configparser.c" break; case 401: -#line 1629 "./util/configparser.y" - { +#line 1630 "./util/configparser.y" + { OUTYY(("P(server_private_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_address, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4575 "util/configparser.c" +#line 4486 "util/configparser.c" break; case 402: -#line 1636 "./util/configparser.y" - { +#line 1637 "./util/configparser.y" + { OUTYY(("P(server_private_domain:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->private_domain, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4585 "util/configparser.c" +#line 4496 "util/configparser.c" break; case 403: -#line 1643 "./util/configparser.y" - { +#line 1644 "./util/configparser.y" + { OUTYY(("P(server_prefetch:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->prefetch = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4597 "util/configparser.c" +#line 4508 "util/configparser.c" break; case 404: -#line 1652 "./util/configparser.y" - { +#line 1653 "./util/configparser.y" + { OUTYY(("P(server_prefetch_key:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->prefetch_key = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4609 "util/configparser.c" +#line 4520 "util/configparser.c" break; case 405: -#line 1661 "./util/configparser.y" - { +#line 1662 "./util/configparser.y" + { OUTYY(("P(server_deny_any:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->deny_any = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4621 "util/configparser.c" +#line 4532 "util/configparser.c" break; case 406: -#line 1670 "./util/configparser.y" - { +#line 1671 "./util/configparser.y" + { OUTYY(("P(server_unwanted_reply_threshold:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->unwanted_threshold = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4633 "util/configparser.c" +#line 4544 "util/configparser.c" break; case 407: -#line 1679 "./util/configparser.y" - { +#line 1680 "./util/configparser.y" + { OUTYY(("P(server_do_not_query_address:%s)\n", (yyvsp[0].str))); if(!cfg_strlist_insert(&cfg_parser->cfg->donotqueryaddrs, (yyvsp[0].str))) yyerror("out of memory"); } -#line 4643 "util/configparser.c" +#line 4554 "util/configparser.c" break; case 408: -#line 1686 "./util/configparser.y" - { +#line 1687 "./util/configparser.y" + { OUTYY(("P(server_do_not_query_localhost:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4652,12 +4563,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4656 "util/configparser.c" +#line 4567 "util/configparser.c" break; case 409: -#line 1696 "./util/configparser.y" - { +#line 1697 "./util/configparser.y" + { OUTYY(("P(server_access_control:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "deny_non_local")!=0 && @@ -4675,22 +4586,22 @@ yyreduce: fatal_exit("out of memory adding acl"); } } -#line 4679 "util/configparser.c" +#line 4590 "util/configparser.c" break; case 410: -#line 1716 "./util/configparser.y" - { +#line 1717 "./util/configparser.y" + { OUTYY(("P(server_module_conf:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->module_conf); cfg_parser->cfg->module_conf = (yyvsp[0].str); } -#line 4689 "util/configparser.c" +#line 4600 "util/configparser.c" break; case 411: -#line 1723 "./util/configparser.y" - { +#line 1724 "./util/configparser.y" + { OUTYY(("P(server_val_override_date:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { cfg_parser->cfg->val_date_override = 0; @@ -4706,12 +4617,12 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4710 "util/configparser.c" +#line 4621 "util/configparser.c" break; case 412: -#line 1741 "./util/configparser.y" - { +#line 1742 "./util/configparser.y" + { OUTYY(("P(server_val_sig_skew_min:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { cfg_parser->cfg->val_sig_skew_min = 0; @@ -4722,12 +4633,12 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4726 "util/configparser.c" +#line 4637 "util/configparser.c" break; case 413: -#line 1754 "./util/configparser.y" - { +#line 1755 "./util/configparser.y" + { OUTYY(("P(server_val_sig_skew_max:%s)\n", (yyvsp[0].str))); if(*(yyvsp[0].str) == '\0' || strcmp((yyvsp[0].str), "0") == 0) { cfg_parser->cfg->val_sig_skew_max = 0; @@ -4738,60 +4649,60 @@ yyreduce: } free((yyvsp[0].str)); } -#line 4742 "util/configparser.c" +#line 4653 "util/configparser.c" break; case 414: -#line 1767 "./util/configparser.y" - { +#line 1768 "./util/configparser.y" + { OUTYY(("P(server_cache_max_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->max_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4754 "util/configparser.c" +#line 4665 "util/configparser.c" break; case 415: -#line 1776 "./util/configparser.y" - { +#line 1777 "./util/configparser.y" + { OUTYY(("P(server_cache_max_negative_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->max_negative_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4766 "util/configparser.c" +#line 4677 "util/configparser.c" break; case 416: -#line 1785 "./util/configparser.y" - { +#line 1786 "./util/configparser.y" + { OUTYY(("P(server_cache_min_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->min_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4778 "util/configparser.c" +#line 4689 "util/configparser.c" break; case 417: -#line 1794 "./util/configparser.y" - { +#line 1795 "./util/configparser.y" + { OUTYY(("P(server_bogus_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->bogus_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4790 "util/configparser.c" +#line 4701 "util/configparser.c" break; case 418: -#line 1803 "./util/configparser.y" - { +#line 1804 "./util/configparser.y" + { OUTYY(("P(server_val_clean_additional:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4799,12 +4710,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4803 "util/configparser.c" +#line 4714 "util/configparser.c" break; case 419: -#line 1813 "./util/configparser.y" - { +#line 1814 "./util/configparser.y" + { OUTYY(("P(server_val_permissive_mode:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4812,12 +4723,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4816 "util/configparser.c" +#line 4727 "util/configparser.c" break; case 420: -#line 1823 "./util/configparser.y" - { +#line 1824 "./util/configparser.y" + { OUTYY(("P(server_aggressive_nsec:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4826,84 +4737,84 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4830 "util/configparser.c" +#line 4741 "util/configparser.c" break; case 421: -#line 1834 "./util/configparser.y" - { +#line 1835 "./util/configparser.y" + { OUTYY(("P(server_ignore_cd_flag:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->ignore_cd = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4842 "util/configparser.c" +#line 4753 "util/configparser.c" break; case 422: -#line 1843 "./util/configparser.y" - { +#line 1844 "./util/configparser.y" + { OUTYY(("P(server_serve_expired:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->serve_expired = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4854 "util/configparser.c" +#line 4765 "util/configparser.c" break; case 423: -#line 1852 "./util/configparser.y" - { +#line 1853 "./util/configparser.y" + { OUTYY(("P(server_serve_expired_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->serve_expired_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4866 "util/configparser.c" +#line 4777 "util/configparser.c" break; case 424: -#line 1861 "./util/configparser.y" - { +#line 1862 "./util/configparser.y" + { OUTYY(("P(server_serve_expired_ttl_reset:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); else cfg_parser->cfg->serve_expired_ttl_reset = (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 4878 "util/configparser.c" +#line 4789 "util/configparser.c" break; case 425: -#line 1870 "./util/configparser.y" - { +#line 1871 "./util/configparser.y" + { OUTYY(("P(server_serve_expired_reply_ttl:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->serve_expired_reply_ttl = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4890 "util/configparser.c" +#line 4801 "util/configparser.c" break; case 426: -#line 1879 "./util/configparser.y" - { +#line 1880 "./util/configparser.y" + { OUTYY(("P(server_serve_expired_client_timeout:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->serve_expired_client_timeout = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4902 "util/configparser.c" +#line 4813 "util/configparser.c" break; case 427: -#line 1888 "./util/configparser.y" - { +#line 1889 "./util/configparser.y" + { OUTYY(("P(server_fake_dsa:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4914,12 +4825,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4918 "util/configparser.c" +#line 4829 "util/configparser.c" break; case 428: -#line 1901 "./util/configparser.y" - { +#line 1902 "./util/configparser.y" + { OUTYY(("P(server_fake_sha1:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -4930,70 +4841,70 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 4934 "util/configparser.c" +#line 4845 "util/configparser.c" break; case 429: -#line 1914 "./util/configparser.y" - { +#line 1915 "./util/configparser.y" + { OUTYY(("P(server_val_log_level:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->val_log_level = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4946 "util/configparser.c" +#line 4857 "util/configparser.c" break; case 430: -#line 1923 "./util/configparser.y" - { +#line 1924 "./util/configparser.y" + { OUTYY(("P(server_val_nsec3_keysize_iterations:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->val_nsec3_key_iterations); cfg_parser->cfg->val_nsec3_key_iterations = (yyvsp[0].str); } -#line 4956 "util/configparser.c" +#line 4867 "util/configparser.c" break; case 431: -#line 1930 "./util/configparser.y" - { +#line 1931 "./util/configparser.y" + { OUTYY(("P(server_add_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->add_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4968 "util/configparser.c" +#line 4879 "util/configparser.c" break; case 432: -#line 1939 "./util/configparser.y" - { +#line 1940 "./util/configparser.y" + { OUTYY(("P(server_del_holddown:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->del_holddown = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4980 "util/configparser.c" +#line 4891 "util/configparser.c" break; case 433: -#line 1948 "./util/configparser.y" - { +#line 1949 "./util/configparser.y" + { OUTYY(("P(server_keep_missing:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("number expected"); else cfg_parser->cfg->keep_missing = atoi((yyvsp[0].str)); free((yyvsp[0].str)); } -#line 4992 "util/configparser.c" +#line 4903 "util/configparser.c" break; case 434: -#line 1957 "./util/configparser.y" - { +#line 1958 "./util/configparser.y" + { OUTYY(("P(server_permit_small_holddown:%s)\n", (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "yes") != 0 && strcmp((yyvsp[0].str), "no") != 0) yyerror("expected yes or no."); @@ -5001,23 +4912,23 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5005 "util/configparser.c" +#line 4916 "util/configparser.c" break; case 435: -#line 1966 "./util/configparser.y" - { +#line 1967 "./util/configparser.y" + { OUTYY(("P(server_key_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->key_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5016 "util/configparser.c" +#line 4927 "util/configparser.c" break; case 436: -#line 1974 "./util/configparser.y" - { +#line 1975 "./util/configparser.y" + { OUTYY(("P(server_key_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@ -5028,23 +4939,23 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5032 "util/configparser.c" +#line 4943 "util/configparser.c" break; case 437: -#line 1987 "./util/configparser.y" - { +#line 1988 "./util/configparser.y" + { OUTYY(("P(server_neg_cache_size:%s)\n", (yyvsp[0].str))); if(!cfg_parse_memsize((yyvsp[0].str), &cfg_parser->cfg->neg_cache_size)) yyerror("memory size expected"); free((yyvsp[0].str)); } -#line 5043 "util/configparser.c" +#line 4954 "util/configparser.c" break; case 438: -#line 1995 "./util/configparser.y" - { +#line 1996 "./util/configparser.y" + { OUTYY(("P(server_local_zone:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); if(strcmp((yyvsp[0].str), "static")!=0 && strcmp((yyvsp[0].str), "deny")!=0 && strcmp((yyvsp[0].str), "refuse")!=0 && strcmp((yyvsp[0].str), "redirect")!=0 && @@ -5083,22 +4994,22 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5087 "util/configparser.c" +#line 4998 "util/configparser.c" break; case 439: -#line 2036 "./util/configparser.y" - { +#line 2037 "./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 5097 "util/configparser.c" +#line 5008 "util/configparser.c" break; case 440: -#line 2043 "./util/configparser.y" - { +#line 2044 "./util/configparser.y" + { char* ptr; OUTYY(("P(server_local_data_ptr:%s)\n", (yyvsp[0].str))); ptr = cfg_ptr_reverse((yyvsp[0].str)); @@ -5111,12 +5022,12 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 5115 "util/configparser.c" +#line 5026 "util/configparser.c" break; case 441: -#line 2058 "./util/configparser.y" - { +#line 2059 "./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."); @@ -5124,12 +5035,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5128 "util/configparser.c" +#line 5039 "util/configparser.c" break; case 442: -#line 2068 "./util/configparser.y" - { +#line 2069 "./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."); @@ -5137,65 +5048,65 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5141 "util/configparser.c" +#line 5052 "util/configparser.c" break; case 443: -#line 2078 "./util/configparser.y" - { +#line 2079 "./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 5151 "util/configparser.c" +#line 5062 "util/configparser.c" break; case 444: -#line 2085 "./util/configparser.y" - { +#line 2086 "./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 5161 "util/configparser.c" +#line 5072 "util/configparser.c" break; case 445: -#line 2092 "./util/configparser.y" - { +#line 2093 "./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 5171 "util/configparser.c" +#line 5082 "util/configparser.c" break; case 446: -#line 2099 "./util/configparser.y" - { +#line 2100 "./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 5183 "util/configparser.c" +#line 5094 "util/configparser.c" break; case 447: -#line 2108 "./util/configparser.y" - { +#line 2109 "./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 5194 "util/configparser.c" +#line 5105 "util/configparser.c" break; case 448: -#line 2116 "./util/configparser.y" - { +#line 2117 "./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) { @@ -5207,12 +5118,12 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5211 "util/configparser.c" +#line 5122 "util/configparser.c" break; case 449: -#line 2130 "./util/configparser.y" - { +#line 2131 "./util/configparser.y" + { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); @@ -5231,12 +5142,12 @@ yyreduce: } } } -#line 5235 "util/configparser.c" +#line 5146 "util/configparser.c" break; case 450: -#line 2151 "./util/configparser.y" - { +#line 2152 "./util/configparser.y" + { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); @@ -5255,12 +5166,12 @@ yyreduce: } } } -#line 5259 "util/configparser.c" +#line 5170 "util/configparser.c" break; case 451: -#line 2172 "./util/configparser.y" - { +#line 2173 "./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))) { @@ -5270,12 +5181,12 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5274 "util/configparser.c" +#line 5185 "util/configparser.c" break; case 452: -#line 2184 "./util/configparser.y" - { +#line 2185 "./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))) { @@ -5285,12 +5196,12 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5289 "util/configparser.c" +#line 5200 "util/configparser.c" break; case 453: -#line 2196 "./util/configparser.y" - { +#line 2197 "./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))) { @@ -5300,24 +5211,24 @@ yyreduce: free((yyvsp[0].str)); } } -#line 5304 "util/configparser.c" +#line 5215 "util/configparser.c" break; case 454: -#line 2208 "./util/configparser.y" - { +#line 2209 "./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 5316 "util/configparser.c" +#line 5227 "util/configparser.c" break; case 455: -#line 2217 "./util/configparser.y" - { +#line 2218 "./util/configparser.y" + { size_t len = 0; uint8_t* bitlist = config_parse_taglist(cfg_parser->cfg, (yyvsp[0].str), &len); @@ -5336,58 +5247,58 @@ yyreduce: } } } -#line 5340 "util/configparser.c" +#line 5251 "util/configparser.c" break; case 456: -#line 2238 "./util/configparser.y" - { +#line 2239 "./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 5352 "util/configparser.c" +#line 5263 "util/configparser.c" break; case 457: -#line 2248 "./util/configparser.y" - { +#line 2249 "./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 5364 "util/configparser.c" +#line 5275 "util/configparser.c" break; case 458: -#line 2257 "./util/configparser.y" - { +#line 2258 "./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 5375 "util/configparser.c" +#line 5286 "util/configparser.c" break; case 459: -#line 2265 "./util/configparser.y" - { +#line 2266 "./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 5386 "util/configparser.c" +#line 5297 "util/configparser.c" break; case 460: -#line 2273 "./util/configparser.y" - { +#line 2274 "./util/configparser.y" + { OUTYY(("P(server_ip_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@ -5398,12 +5309,12 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5402 "util/configparser.c" +#line 5313 "util/configparser.c" break; case 461: -#line 2286 "./util/configparser.y" - { +#line 2287 "./util/configparser.y" + { OUTYY(("P(server_ratelimit_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@ -5414,12 +5325,12 @@ yyreduce: } free((yyvsp[0].str)); } -#line 5418 "util/configparser.c" +#line 5329 "util/configparser.c" break; case 462: -#line 2299 "./util/configparser.y" - { +#line 2300 "./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"); @@ -5432,12 +5343,12 @@ yyreduce: "ratelimit-for-domain"); } } -#line 5436 "util/configparser.c" +#line 5347 "util/configparser.c" break; case 463: -#line 2314 "./util/configparser.y" - { +#line 2315 "./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"); @@ -5450,69 +5361,69 @@ yyreduce: "ratelimit-below-domain"); } } -#line 5454 "util/configparser.c" +#line 5365 "util/configparser.c" break; case 464: -#line 2329 "./util/configparser.y" - { +#line 2330 "./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 5466 "util/configparser.c" +#line 5377 "util/configparser.c" break; case 465: -#line 2338 "./util/configparser.y" - { +#line 2339 "./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 5478 "util/configparser.c" +#line 5389 "util/configparser.c" break; case 466: -#line 2347 "./util/configparser.y" - { +#line 2348 "./util/configparser.y" + { OUTYY(("P(low-rtt option is deprecated, use fast-server-num instead)\n")); free((yyvsp[0].str)); } -#line 5487 "util/configparser.c" +#line 5398 "util/configparser.c" break; case 467: -#line 2353 "./util/configparser.y" - { +#line 2354 "./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 5499 "util/configparser.c" +#line 5410 "util/configparser.c" break; case 468: -#line 2362 "./util/configparser.y" - { +#line 2363 "./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 5511 "util/configparser.c" +#line 5422 "util/configparser.c" break; case 469: -#line 2371 "./util/configparser.y" - { +#line 2372 "./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."); @@ -5520,12 +5431,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5524 "util/configparser.c" +#line 5435 "util/configparser.c" break; case 470: -#line 2381 "./util/configparser.y" - { +#line 2382 "./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."); @@ -5533,12 +5444,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5537 "util/configparser.c" +#line 5448 "util/configparser.c" break; case 471: -#line 2391 "./util/configparser.y" - { +#line 2392 "./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) @@ -5549,12 +5460,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5553 "util/configparser.c" +#line 5464 "util/configparser.c" break; case 472: -#line 2404 "./util/configparser.y" - { +#line 2405 "./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) @@ -5565,12 +5476,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 5569 "util/configparser.c" +#line 5480 "util/configparser.c" break; case 473: -#line 2417 "./util/configparser.y" - { +#line 2418 "./util/configparser.y" + { #ifdef USE_IPSECMOD OUTYY(("P(server_ipsecmod_hook:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->ipsecmod_hook); @@ -5580,12 +5491,12 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5584 "util/configparser.c" +#line 5495 "util/configparser.c" break; case 474: -#line 2429 "./util/configparser.y" - { +#line 2430 "./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) @@ -5597,12 +5508,12 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5601 "util/configparser.c" +#line 5512 "util/configparser.c" break; case 475: -#line 2443 "./util/configparser.y" - { +#line 2444 "./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))) @@ -5612,12 +5523,12 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5616 "util/configparser.c" +#line 5527 "util/configparser.c" break; case 476: -#line 2455 "./util/configparser.y" - { +#line 2456 "./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) @@ -5629,12 +5540,12 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 5633 "util/configparser.c" +#line 5544 "util/configparser.c" break; case 477: -#line 2469 "./util/configparser.y" - { +#line 2470 "./util/configparser.y" + { int tag_data; OUTYY(("P(server_edns_client_tag:%s %s)\n", (yyvsp[-1].str), (yyvsp[0].str))); tag_data = atoi((yyvsp[0].str)); @@ -5647,12 +5558,12 @@ yyreduce: fatal_exit("out of memory adding " "edns-client-tag"); } -#line 5651 "util/configparser.c" +#line 5562 "util/configparser.c" break; case 478: -#line 2484 "./util/configparser.y" - { +#line 2485 "./util/configparser.y" + { OUTYY(("P(edns_client_tag_opcode:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0 && strcmp((yyvsp[0].str), "0") != 0) yyerror("option code expected"); @@ -5661,12 +5572,12 @@ yyreduce: else cfg_parser->cfg->edns_client_tag_opcode = atoi((yyvsp[0].str)); } -#line 5665 "util/configparser.c" +#line 5576 "util/configparser.c" break; case 479: -#line 2495 "./util/configparser.y" - { +#line 2496 "./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 " @@ -5674,56 +5585,56 @@ yyreduce: free(cfg_parser->cfg->stubs->name); cfg_parser->cfg->stubs->name = (yyvsp[0].str); } -#line 5678 "util/configparser.c" +#line 5589 "util/configparser.c" break; case 480: -#line 2505 "./util/configparser.y" - { +#line 2506 "./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 5688 "util/configparser.c" +#line 5599 "util/configparser.c" break; case 481: -#line 2512 "./util/configparser.y" - { +#line 2513 "./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 5698 "util/configparser.c" +#line 5609 "util/configparser.c" break; case 482: -#line 2519 "./util/configparser.y" - { +#line 2520 "./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 5710 "util/configparser.c" +#line 5621 "util/configparser.c" break; case 483: -#line 2528 "./util/configparser.y" - { +#line 2529 "./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 5722 "util/configparser.c" +#line 5633 "util/configparser.c" break; case 484: -#line 2537 "./util/configparser.y" - { +#line 2538 "./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."); @@ -5731,12 +5642,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5735 "util/configparser.c" +#line 5646 "util/configparser.c" break; case 485: -#line 2547 "./util/configparser.y" - { +#line 2548 "./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."); @@ -5744,12 +5655,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5748 "util/configparser.c" +#line 5659 "util/configparser.c" break; case 486: -#line 2557 "./util/configparser.y" - { +#line 2558 "./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 " @@ -5757,56 +5668,56 @@ yyreduce: free(cfg_parser->cfg->forwards->name); cfg_parser->cfg->forwards->name = (yyvsp[0].str); } -#line 5761 "util/configparser.c" +#line 5672 "util/configparser.c" break; case 487: -#line 2567 "./util/configparser.y" - { +#line 2568 "./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 5771 "util/configparser.c" +#line 5682 "util/configparser.c" break; case 488: -#line 2574 "./util/configparser.y" - { +#line 2575 "./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 5781 "util/configparser.c" +#line 5692 "util/configparser.c" break; case 489: -#line 2581 "./util/configparser.y" - { +#line 2582 "./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 5793 "util/configparser.c" +#line 5704 "util/configparser.c" break; case 490: -#line 2590 "./util/configparser.y" - { +#line 2591 "./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 5805 "util/configparser.c" +#line 5716 "util/configparser.c" break; case 491: -#line 2599 "./util/configparser.y" - { +#line 2600 "./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."); @@ -5814,12 +5725,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5818 "util/configparser.c" +#line 5729 "util/configparser.c" break; case 492: -#line 2609 "./util/configparser.y" - { +#line 2610 "./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 " @@ -5827,53 +5738,53 @@ yyreduce: free(cfg_parser->cfg->auths->name); cfg_parser->cfg->auths->name = (yyvsp[0].str); } -#line 5831 "util/configparser.c" +#line 5742 "util/configparser.c" break; case 493: -#line 2619 "./util/configparser.y" - { +#line 2620 "./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 5841 "util/configparser.c" +#line 5752 "util/configparser.c" break; case 494: -#line 2626 "./util/configparser.y" - { +#line 2627 "./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 5851 "util/configparser.c" +#line 5762 "util/configparser.c" break; case 495: -#line 2633 "./util/configparser.y" - { +#line 2634 "./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 5861 "util/configparser.c" +#line 5772 "util/configparser.c" break; case 496: -#line 2640 "./util/configparser.y" - { +#line 2641 "./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 5872 "util/configparser.c" +#line 5783 "util/configparser.c" break; case 497: -#line 2648 "./util/configparser.y" - { +#line 2649 "./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."); @@ -5881,12 +5792,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5885 "util/configparser.c" +#line 5796 "util/configparser.c" break; case 498: -#line 2658 "./util/configparser.y" - { +#line 2659 "./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."); @@ -5894,12 +5805,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5898 "util/configparser.c" +#line 5809 "util/configparser.c" break; case 499: -#line 2668 "./util/configparser.y" - { +#line 2669 "./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."); @@ -5907,12 +5818,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 5911 "util/configparser.c" +#line 5822 "util/configparser.c" break; case 500: -#line 2678 "./util/configparser.y" - { +#line 2679 "./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 " @@ -5920,12 +5831,12 @@ yyreduce: free(cfg_parser->cfg->views->name); cfg_parser->cfg->views->name = (yyvsp[0].str); } -#line 5924 "util/configparser.c" +#line 5835 "util/configparser.c" break; case 501: -#line 2688 "./util/configparser.y" - { +#line 2689 "./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 && @@ -5962,12 +5873,12 @@ yyreduce: fatal_exit("out of memory adding local-zone"); } } -#line 5966 "util/configparser.c" +#line 5877 "util/configparser.c" break; case 502: -#line 2727 "./util/configparser.y" - { +#line 2728 "./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( @@ -5975,34 +5886,34 @@ yyreduce: fatal_exit("out of memory adding per-view " "response-ip action"); } -#line 5979 "util/configparser.c" +#line 5890 "util/configparser.c" break; case 503: -#line 2737 "./util/configparser.y" - { +#line 2738 "./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 5990 "util/configparser.c" +#line 5901 "util/configparser.c" break; case 504: -#line 2745 "./util/configparser.y" - { +#line 2746 "./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 6001 "util/configparser.c" +#line 5912 "util/configparser.c" break; case 505: -#line 2753 "./util/configparser.y" - { +#line 2754 "./util/configparser.y" + { char* ptr; OUTYY(("P(view_local_data_ptr:%s)\n", (yyvsp[0].str))); ptr = cfg_ptr_reverse((yyvsp[0].str)); @@ -6015,32 +5926,32 @@ yyreduce: yyerror("local-data-ptr could not be reversed"); } } -#line 6019 "util/configparser.c" +#line 5930 "util/configparser.c" break; case 506: -#line 2768 "./util/configparser.y" - { +#line 2769 "./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 6031 "util/configparser.c" +#line 5942 "util/configparser.c" break; case 507: -#line 2777 "./util/configparser.y" - { +#line 2778 "./util/configparser.y" + { OUTYY(("\nP(remote-control:)\n")); } -#line 6039 "util/configparser.c" +#line 5950 "util/configparser.c" break; case 518: -#line 2788 "./util/configparser.y" - { +#line 2789 "./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."); @@ -6048,104 +5959,104 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6052 "util/configparser.c" +#line 5963 "util/configparser.c" break; case 519: -#line 2798 "./util/configparser.y" - { +#line 2799 "./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 6064 "util/configparser.c" +#line 5975 "util/configparser.c" break; case 520: -#line 2807 "./util/configparser.y" - { +#line 2808 "./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 6074 "util/configparser.c" +#line 5985 "util/configparser.c" break; case 521: -#line 2814 "./util/configparser.y" - { +#line 2815 "./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 6084 "util/configparser.c" +#line 5995 "util/configparser.c" break; case 522: -#line 2821 "./util/configparser.y" - { +#line 2822 "./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 6094 "util/configparser.c" +#line 6005 "util/configparser.c" break; case 523: -#line 2828 "./util/configparser.y" - { +#line 2829 "./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 6104 "util/configparser.c" +#line 6015 "util/configparser.c" break; case 524: -#line 2835 "./util/configparser.y" - { +#line 2836 "./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 6114 "util/configparser.c" +#line 6025 "util/configparser.c" break; case 525: -#line 2842 "./util/configparser.y" - { +#line 2843 "./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 6124 "util/configparser.c" +#line 6035 "util/configparser.c" break; case 526: -#line 2849 "./util/configparser.y" - { +#line 2850 "./util/configparser.y" + { OUTYY(("\nP(dnstap:)\n")); } -#line 6132 "util/configparser.c" +#line 6043 "util/configparser.c" break; case 548: -#line 2869 "./util/configparser.y" - { +#line 2870 "./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 6144 "util/configparser.c" +#line 6055 "util/configparser.c" break; case 549: -#line 2878 "./util/configparser.y" - { +#line 2879 "./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."); @@ -6153,128 +6064,128 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6157 "util/configparser.c" +#line 6068 "util/configparser.c" break; case 550: -#line 2888 "./util/configparser.y" - { +#line 2889 "./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 6167 "util/configparser.c" +#line 6078 "util/configparser.c" break; case 551: -#line 2895 "./util/configparser.y" - { +#line 2896 "./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 6177 "util/configparser.c" +#line 6088 "util/configparser.c" break; case 552: -#line 2902 "./util/configparser.y" - { +#line 2903 "./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 6189 "util/configparser.c" +#line 6100 "util/configparser.c" break; case 553: -#line 2911 "./util/configparser.y" - { +#line 2912 "./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 6199 "util/configparser.c" +#line 6110 "util/configparser.c" break; case 554: -#line 2918 "./util/configparser.y" - { +#line 2919 "./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 6209 "util/configparser.c" +#line 6120 "util/configparser.c" break; case 555: -#line 2925 "./util/configparser.y" - { +#line 2926 "./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 6219 "util/configparser.c" +#line 6130 "util/configparser.c" break; case 556: -#line 2932 "./util/configparser.y" - { +#line 2933 "./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 6229 "util/configparser.c" +#line 6140 "util/configparser.c" break; case 557: -#line 2939 "./util/configparser.y" - { +#line 2940 "./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 6241 "util/configparser.c" +#line 6152 "util/configparser.c" break; case 558: -#line 2948 "./util/configparser.y" - { +#line 2949 "./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 6253 "util/configparser.c" +#line 6164 "util/configparser.c" break; case 559: -#line 2957 "./util/configparser.y" - { +#line 2958 "./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 6263 "util/configparser.c" +#line 6174 "util/configparser.c" break; case 560: -#line 2964 "./util/configparser.y" - { +#line 2965 "./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 6273 "util/configparser.c" +#line 6184 "util/configparser.c" break; case 561: -#line 2971 "./util/configparser.y" - { +#line 2972 "./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."); @@ -6282,12 +6193,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6286 "util/configparser.c" +#line 6197 "util/configparser.c" break; case 562: -#line 2981 "./util/configparser.y" - { +#line 2982 "./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."); @@ -6295,12 +6206,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6299 "util/configparser.c" +#line 6210 "util/configparser.c" break; case 563: -#line 2991 "./util/configparser.y" - { +#line 2992 "./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."); @@ -6308,12 +6219,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6312 "util/configparser.c" +#line 6223 "util/configparser.c" break; case 564: -#line 3001 "./util/configparser.y" - { +#line 3002 "./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."); @@ -6321,12 +6232,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6325 "util/configparser.c" +#line 6236 "util/configparser.c" break; case 565: -#line 3011 "./util/configparser.y" - { +#line 3012 "./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."); @@ -6334,12 +6245,12 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6338 "util/configparser.c" +#line 6249 "util/configparser.c" break; case 566: -#line 3021 "./util/configparser.y" - { +#line 3022 "./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."); @@ -6347,48 +6258,48 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6351 "util/configparser.c" +#line 6262 "util/configparser.c" break; case 567: -#line 3031 "./util/configparser.y" - { +#line 3032 "./util/configparser.y" + { OUTYY(("\nP(python:)\n")); } -#line 6359 "util/configparser.c" +#line 6270 "util/configparser.c" break; case 571: -#line 3040 "./util/configparser.y" - { +#line 3041 "./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 6369 "util/configparser.c" +#line 6280 "util/configparser.c" break; case 572: -#line 3046 "./util/configparser.y" - { +#line 3047 "./util/configparser.y" + { OUTYY(("\nP(dynlib:)\n")); } -#line 6377 "util/configparser.c" +#line 6288 "util/configparser.c" break; case 576: -#line 3055 "./util/configparser.y" - { +#line 3056 "./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 6387 "util/configparser.c" +#line 6298 "util/configparser.c" break; case 577: -#line 3061 "./util/configparser.y" - { +#line 3062 "./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."); @@ -6396,132 +6307,132 @@ yyreduce: (strcmp((yyvsp[0].str), "yes")==0); free((yyvsp[0].str)); } -#line 6400 "util/configparser.c" +#line 6311 "util/configparser.c" break; case 578: -#line 3071 "./util/configparser.y" - { +#line 3072 "./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 6410 "util/configparser.c" +#line 6321 "util/configparser.c" break; case 579: -#line 3078 "./util/configparser.y" - { +#line 3079 "./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 6422 "util/configparser.c" +#line 6333 "util/configparser.c" break; case 580: -#line 3087 "./util/configparser.y" - { +#line 3088 "./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 6433 "util/configparser.c" +#line 6344 "util/configparser.c" break; case 581: -#line 3095 "./util/configparser.y" - { +#line 3096 "./util/configparser.y" + { OUTYY(("\nP(dnscrypt:)\n")); } -#line 6441 "util/configparser.c" +#line 6352 "util/configparser.c" break; case 594: -#line 3111 "./util/configparser.y" - { +#line 3112 "./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 6453 "util/configparser.c" +#line 6364 "util/configparser.c" break; case 595: -#line 3121 "./util/configparser.y" - { +#line 3122 "./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 6465 "util/configparser.c" +#line 6376 "util/configparser.c" break; case 596: -#line 3130 "./util/configparser.y" - { +#line 3131 "./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 6475 "util/configparser.c" +#line 6386 "util/configparser.c" break; case 597: -#line 3137 "./util/configparser.y" - { +#line 3138 "./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 6487 "util/configparser.c" +#line 6398 "util/configparser.c" break; case 598: -#line 3146 "./util/configparser.y" - { +#line 3147 "./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 6497 "util/configparser.c" +#line 6408 "util/configparser.c" break; case 599: -#line 3153 "./util/configparser.y" - { +#line 3154 "./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 6509 "util/configparser.c" +#line 6420 "util/configparser.c" break; case 600: -#line 3162 "./util/configparser.y" - { +#line 3163 "./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 6520 "util/configparser.c" +#line 6431 "util/configparser.c" break; case 601: -#line 3170 "./util/configparser.y" - { +#line 3171 "./util/configparser.y" + { OUTYY(("P(dnscrypt_shared_secret_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@ -6532,23 +6443,23 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6536 "util/configparser.c" +#line 6447 "util/configparser.c" break; case 602: -#line 3183 "./util/configparser.y" - { +#line 3184 "./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 6547 "util/configparser.c" +#line 6458 "util/configparser.c" break; case 603: -#line 3191 "./util/configparser.y" - { +#line 3192 "./util/configparser.y" + { OUTYY(("P(dnscrypt_nonce_cache_slabs:%s)\n", (yyvsp[0].str))); if(atoi((yyvsp[0].str)) == 0) yyerror("number expected"); @@ -6559,20 +6470,20 @@ yyreduce: } free((yyvsp[0].str)); } -#line 6563 "util/configparser.c" +#line 6474 "util/configparser.c" break; case 604: -#line 3204 "./util/configparser.y" - { +#line 3205 "./util/configparser.y" + { OUTYY(("\nP(cachedb:)\n")); } -#line 6571 "util/configparser.c" +#line 6482 "util/configparser.c" break; case 613: -#line 3215 "./util/configparser.y" - { +#line 3216 "./util/configparser.y" + { #ifdef USE_CACHEDB OUTYY(("P(backend:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->cachedb_backend); @@ -6582,12 +6493,12 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6586 "util/configparser.c" +#line 6497 "util/configparser.c" break; case 614: -#line 3227 "./util/configparser.y" - { +#line 3228 "./util/configparser.y" + { #ifdef USE_CACHEDB OUTYY(("P(secret-seed:%s)\n", (yyvsp[0].str))); free(cfg_parser->cfg->cachedb_secret); @@ -6597,12 +6508,12 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6601 "util/configparser.c" +#line 6512 "util/configparser.c" break; case 615: -#line 3239 "./util/configparser.y" - { +#line 3240 "./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); @@ -6612,12 +6523,12 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6616 "util/configparser.c" +#line 6527 "util/configparser.c" break; case 616: -#line 3251 "./util/configparser.y" - { +#line 3252 "./util/configparser.y" + { #if defined(USE_CACHEDB) && defined(USE_REDIS) int port; OUTYY(("P(redis_server_port:%s)\n", (yyvsp[0].str))); @@ -6630,12 +6541,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6634 "util/configparser.c" +#line 6545 "util/configparser.c" break; case 617: -#line 3266 "./util/configparser.y" - { +#line 3267 "./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) @@ -6646,12 +6557,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6650 "util/configparser.c" +#line 6561 "util/configparser.c" break; case 618: -#line 3279 "./util/configparser.y" - { +#line 3280 "./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) @@ -6662,12 +6573,12 @@ yyreduce: #endif free((yyvsp[0].str)); } -#line 6666 "util/configparser.c" +#line 6577 "util/configparser.c" break; case 619: -#line 3292 "./util/configparser.y" - { +#line 3293 "./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"); @@ -6676,20 +6587,20 @@ yyreduce: fatal_exit("out of memory adding tcp connection limit"); } } -#line 6680 "util/configparser.c" +#line 6591 "util/configparser.c" break; case 620: -#line 3303 "./util/configparser.y" - { +#line 3304 "./util/configparser.y" + { OUTYY(("\nP(ipset:)\n")); } -#line 6688 "util/configparser.c" +#line 6599 "util/configparser.c" break; case 625: -#line 3312 "./util/configparser.y" - { +#line 3313 "./util/configparser.y" + { #ifdef USE_IPSET OUTYY(("P(name-v4:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->ipset_name_v4) @@ -6702,12 +6613,12 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6706 "util/configparser.c" +#line 6617 "util/configparser.c" break; case 626: -#line 3327 "./util/configparser.y" - { +#line 3328 "./util/configparser.y" + { #ifdef USE_IPSET OUTYY(("P(name-v6:%s)\n", (yyvsp[0].str))); if(cfg_parser->cfg->ipset_name_v6) @@ -6720,11 +6631,11 @@ yyreduce: free((yyvsp[0].str)); #endif } -#line 6724 "util/configparser.c" +#line 6635 "util/configparser.c" break; -#line 6728 "util/configparser.c" +#line 6639 "util/configparser.c" default: break; } @@ -6788,7 +6699,7 @@ yyerrlab: { if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); - yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); if (!yymsg) { yymsg = yymsgbuf; @@ -6943,7 +6854,7 @@ yyreturn: while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[+*yyssp], yyvsp); + yystos[*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow @@ -6956,7 +6867,7 @@ yyreturn: #endif return yyresult; } -#line 3341 "./util/configparser.y" +#line 3342 "./util/configparser.y" /* parse helper routines could be here */ diff --git a/util/configparser.h b/util/configparser.h index 3a5ea579d..627d4cbf9 100644 --- a/util/configparser.h +++ b/util/configparser.h @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.5.1. */ +/* A Bison parser, made by GNU Bison 3.4.1. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/util/configparser.y b/util/configparser.y index 43a886f24..675645fbd 100644 --- a/util/configparser.y +++ b/util/configparser.y @@ -982,6 +982,7 @@ server_https_port: VAR_HTTPS_PORT STRING_ARG if(atoi($2) == 0) yyerror("port number expected"); else cfg_parser->cfg->https_port = atoi($2); + free($2); }; server_http_endpoint: VAR_HTTP_ENDPOINT STRING_ARG {