ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
(Generate patch)

Comparing ircd-hybrid/trunk/src/conf_parser.c (file contents):
Revision 7061 by michael, Mon Jan 18 18:56:34 2016 UTC vs.
Revision 7109 by michael, Sat Jan 23 20:19:07 2016 UTC

# Line 91 | Line 91
91   #include "user.h"
92   #include "motd.h"
93  
94 #ifdef HAVE_LIBCRYPTO
95 #include <openssl/rsa.h>
96 #include <openssl/bio.h>
97 #include <openssl/pem.h>
98 #include <openssl/dh.h>
99 #endif
100
101 #include "rsa.h"
102
94   int yylex(void);
95  
96   static struct
# Line 187 | Line 178 | reset_block_state(void)
178   }
179  
180  
181 < #line 191 "conf_parser.c" /* yacc.c:339  */
181 > #line 182 "conf_parser.c" /* yacc.c:339  */
182  
183   # ifndef YY_NULLPTR
184   #  if defined __cplusplus && 201103L <= __cplusplus
# Line 679 | Line 670 | extern int yydebug;
670  
671   union YYSTYPE
672   {
673 < #line 153 "conf_parser.y" /* yacc.c:355  */
673 > #line 144 "conf_parser.y" /* yacc.c:355  */
674  
675    int number;
676    char *string;
677  
678 < #line 688 "conf_parser.c" /* yacc.c:355  */
678 > #line 679 "conf_parser.c" /* yacc.c:355  */
679   };
680  
681   typedef union YYSTYPE YYSTYPE;
# Line 701 | Line 692 | int yyparse (void);
692  
693   /* Copy the second part of user declarations.  */
694  
695 < #line 705 "conf_parser.c" /* yacc.c:358  */
695 > #line 696 "conf_parser.c" /* yacc.c:358  */
696  
697   #ifdef short
698   # undef short
# Line 1021 | Line 1012 | static const yytype_uint8 yytranslate[]
1012    /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1013   static const yytype_uint16 yyrline[] =
1014   {
1015 <       0,   383,   383,   384,   387,   388,   389,   390,   391,   392,
1016 <     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
1017 <     403,   404,   405,   406,   407,   408,   409,   410,   414,   414,
1018 <     415,   416,   417,   418,   419,   420,   421,   422,   425,   425,
1019 <     426,   427,   428,   429,   436,   438,   438,   439,   439,   439,
1020 <     441,   447,   457,   459,   459,   460,   461,   462,   463,   464,
1021 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1022 <     475,   476,   477,   480,   520,   578,   607,   615,   629,   657,
1023 <     672,   687,   697,   711,   720,   748,   776,   801,   823,   845,
1024 <     855,   857,   857,   858,   859,   860,   861,   863,   872,   881,
1025 <     895,   894,   912,   912,   913,   913,   913,   915,   921,   932,
1026 <     931,   950,   950,   951,   951,   951,   951,   951,   953,   959,
1027 <     965,   971,   993,   994,   994,   996,   996,   997,   999,  1006,
1028 <    1006,  1019,  1020,  1022,  1022,  1023,  1023,  1025,  1033,  1036,
1029 <    1042,  1041,  1047,  1047,  1048,  1052,  1056,  1060,  1064,  1068,
1030 <    1072,  1076,  1087,  1086,  1143,  1143,  1144,  1145,  1146,  1147,
1031 <    1148,  1149,  1150,  1151,  1152,  1153,  1154,  1156,  1162,  1168,
1032 <    1174,  1180,  1191,  1197,  1208,  1215,  1214,  1220,  1220,  1221,
1033 <    1225,  1229,  1233,  1237,  1241,  1245,  1249,  1253,  1257,  1261,
1034 <    1265,  1269,  1273,  1277,  1281,  1285,  1289,  1293,  1297,  1301,
1035 <    1305,  1312,  1311,  1317,  1317,  1318,  1322,  1326,  1330,  1334,
1036 <    1338,  1342,  1346,  1350,  1354,  1358,  1362,  1366,  1370,  1374,
1037 <    1378,  1382,  1386,  1390,  1394,  1398,  1402,  1406,  1410,  1414,
1038 <    1418,  1422,  1426,  1430,  1441,  1440,  1497,  1497,  1498,  1499,
1039 <    1500,  1501,  1502,  1503,  1504,  1505,  1506,  1507,  1508,  1509,
1040 <    1510,  1510,  1511,  1512,  1513,  1514,  1516,  1522,  1528,  1534,
1041 <    1540,  1546,  1552,  1558,  1564,  1570,  1576,  1583,  1589,  1595,
1042 <    1601,  1610,  1620,  1619,  1625,  1625,  1626,  1630,  1641,  1640,
1043 <    1647,  1646,  1651,  1651,  1652,  1656,  1660,  1666,  1666,  1667,
1044 <    1667,  1667,  1667,  1667,  1669,  1669,  1671,  1671,  1673,  1686,
1045 <    1703,  1709,  1720,  1719,  1761,  1761,  1762,  1763,  1764,  1765,
1046 <    1766,  1767,  1768,  1769,  1770,  1772,  1778,  1784,  1790,  1802,
1047 <    1801,  1807,  1807,  1808,  1812,  1816,  1820,  1824,  1828,  1832,
1048 <    1836,  1840,  1844,  1850,  1864,  1873,  1887,  1886,  1901,  1901,
1049 <    1902,  1902,  1902,  1902,  1904,  1910,  1916,  1926,  1928,  1928,
1050 <    1929,  1929,  1931,  1948,  1947,  1972,  1972,  1973,  1973,  1973,
1051 <    1973,  1975,  1981,  2001,  2000,  2006,  2006,  2007,  2011,  2015,
1052 <    2019,  2023,  2027,  2031,  2035,  2039,  2043,  2054,  2053,  2074,
1053 <    2074,  2075,  2075,  2075,  2077,  2084,  2083,  2089,  2089,  2090,
1054 <    2094,  2098,  2102,  2106,  2110,  2114,  2118,  2122,  2126,  2137,
1055 <    2136,  2208,  2208,  2209,  2210,  2211,  2212,  2213,  2214,  2215,
1056 <    2216,  2217,  2218,  2219,  2220,  2221,  2222,  2223,  2225,  2231,
1057 <    2237,  2243,  2256,  2269,  2275,  2281,  2285,  2292,  2291,  2296,
1058 <    2296,  2297,  2301,  2307,  2318,  2324,  2330,  2336,  2352,  2351,
1059 <    2377,  2377,  2378,  2378,  2378,  2380,  2400,  2411,  2410,  2437,
1060 <    2437,  2438,  2438,  2438,  2440,  2446,  2456,  2458,  2458,  2459,
1061 <    2459,  2461,  2479,  2478,  2501,  2501,  2502,  2502,  2502,  2504,
1062 <    2510,  2520,  2522,  2522,  2523,  2524,  2525,  2526,  2527,  2528,
1063 <    2529,  2530,  2531,  2532,  2533,  2534,  2535,  2536,  2537,  2538,
1064 <    2539,  2540,  2541,  2542,  2543,  2544,  2545,  2546,  2547,  2548,
1065 <    2549,  2550,  2551,  2552,  2553,  2554,  2555,  2556,  2557,  2558,
1066 <    2559,  2560,  2561,  2562,  2563,  2564,  2565,  2566,  2567,  2568,
1067 <    2571,  2576,  2581,  2586,  2592,  2597,  2602,  2607,  2612,  2617,
1068 <    2622,  2627,  2632,  2637,  2642,  2647,  2652,  2657,  2662,  2668,
1069 <    2673,  2678,  2683,  2688,  2693,  2698,  2703,  2706,  2711,  2714,
1070 <    2719,  2724,  2729,  2734,  2739,  2744,  2749,  2754,  2759,  2764,
1071 <    2769,  2774,  2780,  2779,  2784,  2784,  2785,  2788,  2791,  2794,
1072 <    2797,  2800,  2803,  2806,  2809,  2812,  2815,  2818,  2821,  2824,
1073 <    2827,  2830,  2833,  2836,  2839,  2842,  2845,  2848,  2854,  2853,
1074 <    2858,  2858,  2859,  2862,  2865,  2868,  2871,  2874,  2877,  2880,
1075 <    2883,  2886,  2889,  2892,  2895,  2898,  2901,  2904,  2907,  2910,
1076 <    2913,  2916,  2921,  2926,  2931,  2940,  2942,  2942,  2943,  2944,
1077 <    2945,  2946,  2947,  2948,  2949,  2950,  2951,  2952,  2953,  2954,
1078 <    2956,  2961,  2966,  2971,  2976,  2981,  2986,  2991,  2996,  3001,
1079 <    3006,  3015,  3017,  3017,  3018,  3019,  3020,  3021,  3022,  3023,
1080 <    3024,  3025,  3026,  3027,  3029,  3035,  3051,  3060,  3066,  3072,
1081 <    3078,  3087,  3093
1015 >       0,   374,   374,   375,   378,   379,   380,   381,   382,   383,
1016 >     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
1017 >     394,   395,   396,   397,   398,   399,   400,   401,   405,   405,
1018 >     406,   407,   408,   409,   410,   411,   412,   413,   416,   416,
1019 >     417,   418,   419,   420,   427,   429,   429,   430,   430,   430,
1020 >     432,   438,   448,   450,   450,   451,   452,   453,   454,   455,
1021 >     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1022 >     466,   467,   468,   471,   488,   497,   506,   515,   524,   533,
1023 >     548,   563,   573,   587,   596,   624,   652,   677,   699,   721,
1024 >     731,   733,   733,   734,   735,   736,   737,   739,   748,   757,
1025 >     771,   770,   788,   788,   789,   789,   789,   791,   797,   808,
1026 >     807,   826,   826,   827,   827,   827,   827,   827,   829,   835,
1027 >     841,   847,   869,   870,   870,   872,   872,   873,   875,   882,
1028 >     882,   895,   896,   898,   898,   899,   899,   901,   909,   912,
1029 >     918,   917,   923,   923,   924,   928,   932,   936,   940,   944,
1030 >     948,   952,   963,   962,  1019,  1019,  1020,  1021,  1022,  1023,
1031 >    1024,  1025,  1026,  1027,  1028,  1029,  1030,  1032,  1038,  1044,
1032 >    1050,  1056,  1067,  1073,  1084,  1091,  1090,  1096,  1096,  1097,
1033 >    1101,  1105,  1109,  1113,  1117,  1121,  1125,  1129,  1133,  1137,
1034 >    1141,  1145,  1149,  1153,  1157,  1161,  1165,  1169,  1173,  1177,
1035 >    1181,  1188,  1187,  1193,  1193,  1194,  1198,  1202,  1206,  1210,
1036 >    1214,  1218,  1222,  1226,  1230,  1234,  1238,  1242,  1246,  1250,
1037 >    1254,  1258,  1262,  1266,  1270,  1274,  1278,  1282,  1286,  1290,
1038 >    1294,  1298,  1302,  1306,  1317,  1316,  1373,  1373,  1374,  1375,
1039 >    1376,  1377,  1378,  1379,  1380,  1381,  1382,  1383,  1384,  1385,
1040 >    1386,  1386,  1387,  1388,  1389,  1390,  1392,  1398,  1404,  1410,
1041 >    1416,  1422,  1428,  1434,  1440,  1446,  1452,  1459,  1465,  1471,
1042 >    1477,  1486,  1496,  1495,  1501,  1501,  1502,  1506,  1517,  1516,
1043 >    1523,  1522,  1527,  1527,  1528,  1532,  1536,  1542,  1542,  1543,
1044 >    1543,  1543,  1543,  1543,  1545,  1545,  1547,  1547,  1549,  1562,
1045 >    1579,  1585,  1596,  1595,  1637,  1637,  1638,  1639,  1640,  1641,
1046 >    1642,  1643,  1644,  1645,  1646,  1648,  1654,  1660,  1666,  1678,
1047 >    1677,  1683,  1683,  1684,  1688,  1692,  1696,  1700,  1704,  1708,
1048 >    1712,  1716,  1720,  1726,  1740,  1749,  1763,  1762,  1777,  1777,
1049 >    1778,  1778,  1778,  1778,  1780,  1786,  1792,  1802,  1804,  1804,
1050 >    1805,  1805,  1807,  1824,  1823,  1848,  1848,  1849,  1849,  1849,
1051 >    1849,  1851,  1857,  1877,  1876,  1882,  1882,  1883,  1887,  1891,
1052 >    1895,  1899,  1903,  1907,  1911,  1915,  1919,  1930,  1929,  1950,
1053 >    1950,  1951,  1951,  1951,  1953,  1960,  1959,  1965,  1965,  1966,
1054 >    1970,  1974,  1978,  1982,  1986,  1990,  1994,  1998,  2002,  2013,
1055 >    2012,  2084,  2084,  2085,  2086,  2087,  2088,  2089,  2090,  2091,
1056 >    2092,  2093,  2094,  2095,  2096,  2097,  2098,  2099,  2101,  2107,
1057 >    2113,  2119,  2132,  2145,  2151,  2157,  2161,  2168,  2167,  2172,
1058 >    2172,  2173,  2177,  2183,  2194,  2200,  2206,  2212,  2228,  2227,
1059 >    2253,  2253,  2254,  2254,  2254,  2256,  2276,  2287,  2286,  2313,
1060 >    2313,  2314,  2314,  2314,  2316,  2322,  2332,  2334,  2334,  2335,
1061 >    2335,  2337,  2355,  2354,  2377,  2377,  2378,  2378,  2378,  2380,
1062 >    2386,  2396,  2398,  2398,  2399,  2400,  2401,  2402,  2403,  2404,
1063 >    2405,  2406,  2407,  2408,  2409,  2410,  2411,  2412,  2413,  2414,
1064 >    2415,  2416,  2417,  2418,  2419,  2420,  2421,  2422,  2423,  2424,
1065 >    2425,  2426,  2427,  2428,  2429,  2430,  2431,  2432,  2433,  2434,
1066 >    2435,  2436,  2437,  2438,  2439,  2440,  2441,  2442,  2443,  2444,
1067 >    2447,  2452,  2457,  2462,  2468,  2473,  2478,  2483,  2488,  2493,
1068 >    2498,  2503,  2508,  2513,  2518,  2523,  2528,  2533,  2538,  2544,
1069 >    2549,  2554,  2559,  2564,  2569,  2574,  2579,  2582,  2587,  2590,
1070 >    2595,  2600,  2605,  2610,  2615,  2620,  2625,  2630,  2635,  2640,
1071 >    2645,  2650,  2656,  2655,  2660,  2660,  2661,  2664,  2667,  2670,
1072 >    2673,  2676,  2679,  2682,  2685,  2688,  2691,  2694,  2697,  2700,
1073 >    2703,  2706,  2709,  2712,  2715,  2718,  2721,  2724,  2730,  2729,
1074 >    2734,  2734,  2735,  2738,  2741,  2744,  2747,  2750,  2753,  2756,
1075 >    2759,  2762,  2765,  2768,  2771,  2774,  2777,  2780,  2783,  2786,
1076 >    2789,  2792,  2797,  2802,  2807,  2816,  2818,  2818,  2819,  2820,
1077 >    2821,  2822,  2823,  2824,  2825,  2826,  2827,  2828,  2829,  2830,
1078 >    2832,  2837,  2842,  2847,  2852,  2857,  2862,  2867,  2872,  2877,
1079 >    2882,  2891,  2893,  2893,  2894,  2895,  2896,  2897,  2898,  2899,
1080 >    2900,  2901,  2902,  2903,  2905,  2911,  2927,  2936,  2942,  2948,
1081 >    2954,  2963,  2969
1082   };
1083   #endif
1084  
# Line 2858 | Line 2849 | yyreduce:
2849    switch (yyn)
2850      {
2851          case 28:
2852 < #line 414 "conf_parser.y" /* yacc.c:1646  */
2852 > #line 405 "conf_parser.y" /* yacc.c:1646  */
2853      { (yyval.number) = 0; }
2854 < #line 2864 "conf_parser.c" /* yacc.c:1646  */
2854 > #line 2855 "conf_parser.c" /* yacc.c:1646  */
2855      break;
2856  
2857    case 30:
2858 < #line 415 "conf_parser.y" /* yacc.c:1646  */
2858 > #line 406 "conf_parser.y" /* yacc.c:1646  */
2859      { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2860 < #line 2870 "conf_parser.c" /* yacc.c:1646  */
2860 > #line 2861 "conf_parser.c" /* yacc.c:1646  */
2861      break;
2862  
2863    case 31:
2864 < #line 416 "conf_parser.y" /* yacc.c:1646  */
2864 > #line 407 "conf_parser.y" /* yacc.c:1646  */
2865      { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2866 < #line 2876 "conf_parser.c" /* yacc.c:1646  */
2866 > #line 2867 "conf_parser.c" /* yacc.c:1646  */
2867      break;
2868  
2869    case 32:
2870 < #line 417 "conf_parser.y" /* yacc.c:1646  */
2870 > #line 408 "conf_parser.y" /* yacc.c:1646  */
2871      { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2872 < #line 2882 "conf_parser.c" /* yacc.c:1646  */
2872 > #line 2873 "conf_parser.c" /* yacc.c:1646  */
2873      break;
2874  
2875    case 33:
2876 < #line 418 "conf_parser.y" /* yacc.c:1646  */
2876 > #line 409 "conf_parser.y" /* yacc.c:1646  */
2877      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2878 < #line 2888 "conf_parser.c" /* yacc.c:1646  */
2878 > #line 2879 "conf_parser.c" /* yacc.c:1646  */
2879      break;
2880  
2881    case 34:
2882 < #line 419 "conf_parser.y" /* yacc.c:1646  */
2882 > #line 410 "conf_parser.y" /* yacc.c:1646  */
2883      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2884 < #line 2894 "conf_parser.c" /* yacc.c:1646  */
2884 > #line 2885 "conf_parser.c" /* yacc.c:1646  */
2885      break;
2886  
2887    case 35:
2888 < #line 420 "conf_parser.y" /* yacc.c:1646  */
2888 > #line 411 "conf_parser.y" /* yacc.c:1646  */
2889      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2890 < #line 2900 "conf_parser.c" /* yacc.c:1646  */
2890 > #line 2891 "conf_parser.c" /* yacc.c:1646  */
2891      break;
2892  
2893    case 36:
2894 < #line 421 "conf_parser.y" /* yacc.c:1646  */
2894 > #line 412 "conf_parser.y" /* yacc.c:1646  */
2895      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2896 < #line 2906 "conf_parser.c" /* yacc.c:1646  */
2896 > #line 2897 "conf_parser.c" /* yacc.c:1646  */
2897      break;
2898  
2899    case 37:
2900 < #line 422 "conf_parser.y" /* yacc.c:1646  */
2900 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2901      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2902 < #line 2912 "conf_parser.c" /* yacc.c:1646  */
2902 > #line 2903 "conf_parser.c" /* yacc.c:1646  */
2903      break;
2904  
2905    case 38:
2906 < #line 425 "conf_parser.y" /* yacc.c:1646  */
2906 > #line 416 "conf_parser.y" /* yacc.c:1646  */
2907      { (yyval.number) = 0; }
2908 < #line 2918 "conf_parser.c" /* yacc.c:1646  */
2908 > #line 2909 "conf_parser.c" /* yacc.c:1646  */
2909      break;
2910  
2911    case 40:
2912 < #line 426 "conf_parser.y" /* yacc.c:1646  */
2912 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2913      { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2914 < #line 2924 "conf_parser.c" /* yacc.c:1646  */
2914 > #line 2915 "conf_parser.c" /* yacc.c:1646  */
2915      break;
2916  
2917    case 41:
2918 < #line 427 "conf_parser.y" /* yacc.c:1646  */
2918 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2919      { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2920 < #line 2930 "conf_parser.c" /* yacc.c:1646  */
2920 > #line 2921 "conf_parser.c" /* yacc.c:1646  */
2921      break;
2922  
2923    case 42:
2924 < #line 428 "conf_parser.y" /* yacc.c:1646  */
2924 > #line 419 "conf_parser.y" /* yacc.c:1646  */
2925      { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2926 < #line 2936 "conf_parser.c" /* yacc.c:1646  */
2926 > #line 2927 "conf_parser.c" /* yacc.c:1646  */
2927      break;
2928  
2929    case 43:
2930 < #line 429 "conf_parser.y" /* yacc.c:1646  */
2930 > #line 420 "conf_parser.y" /* yacc.c:1646  */
2931      { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2932 < #line 2942 "conf_parser.c" /* yacc.c:1646  */
2932 > #line 2933 "conf_parser.c" /* yacc.c:1646  */
2933      break;
2934  
2935    case 50:
2936 < #line 442 "conf_parser.y" /* yacc.c:1646  */
2936 > #line 433 "conf_parser.y" /* yacc.c:1646  */
2937      {
2938    if (conf_parser_ctx.pass == 2)
2939      add_conf_module(libio_basename(yylval.string));
2940   }
2941 < #line 2951 "conf_parser.c" /* yacc.c:1646  */
2941 > #line 2942 "conf_parser.c" /* yacc.c:1646  */
2942      break;
2943  
2944    case 51:
2945 < #line 448 "conf_parser.y" /* yacc.c:1646  */
2945 > #line 439 "conf_parser.y" /* yacc.c:1646  */
2946      {
2947    if (conf_parser_ctx.pass == 2)
2948      mod_add_path(yylval.string);
2949   }
2950 < #line 2960 "conf_parser.c" /* yacc.c:1646  */
2950 > #line 2951 "conf_parser.c" /* yacc.c:1646  */
2951      break;
2952  
2953    case 73:
2954 < #line 481 "conf_parser.y" /* yacc.c:1646  */
2954 > #line 472 "conf_parser.y" /* yacc.c:1646  */
2955      {
2965 #ifdef HAVE_LIBCRYPTO
2956    if (conf_parser_ctx.pass == 2)
2957    {
2958      if (!ConfigServerInfo.rsa_private_key_file)
# Line 2971 | Line 2961 | yyreduce:
2961        break;
2962      }
2963  
2964 <    if (SSL_CTX_use_certificate_chain_file(ConfigServerInfo.server_ctx, yylval.string) <= 0 ||
2965 <        SSL_CTX_use_certificate_chain_file(ConfigServerInfo.client_ctx, yylval.string) <= 0)
2976 <    {
2977 <      report_crypto_errors();
2978 <      conf_error_report("Could not open/read certificate file");
2979 <      break;
2980 <    }
2981 <
2982 <    if (SSL_CTX_use_PrivateKey_file(ConfigServerInfo.server_ctx, ConfigServerInfo.rsa_private_key_file,
2983 <                                    SSL_FILETYPE_PEM) <= 0 ||
2984 <        SSL_CTX_use_PrivateKey_file(ConfigServerInfo.client_ctx, ConfigServerInfo.rsa_private_key_file,
2985 <                                    SSL_FILETYPE_PEM) <= 0)
2986 <    {
2987 <      report_crypto_errors();
2988 <      conf_error_report("Could not read RSA private key");
2989 <      break;
2990 <    }
2964 >    if (ConfigServerInfo.ssl_certificate_file)
2965 >      xfree(ConfigServerInfo.ssl_certificate_file);
2966  
2967 <    if (!SSL_CTX_check_private_key(ConfigServerInfo.server_ctx) ||
2993 <        !SSL_CTX_check_private_key(ConfigServerInfo.client_ctx))
2994 <    {
2995 <      report_crypto_errors();
2996 <      conf_error_report("Could not read RSA private key");
2997 <      break;
2998 <    }
2967 >    ConfigServerInfo.ssl_certificate_file = xstrdup(yylval.string);
2968    }
3000 #endif
2969   }
2970 < #line 3003 "conf_parser.c" /* yacc.c:1646  */
2970 > #line 2971 "conf_parser.c" /* yacc.c:1646  */
2971      break;
2972  
2973    case 74:
2974 < #line 521 "conf_parser.y" /* yacc.c:1646  */
2974 > #line 489 "conf_parser.y" /* yacc.c:1646  */
2975      {
3008 #ifdef HAVE_LIBCRYPTO
3009  BIO *file = NULL;
3010
2976    if (conf_parser_ctx.pass != 1)
2977      break;
2978  
2979 <  if (ConfigServerInfo.rsa_private_key)
3015 <  {
3016 <    RSA_free(ConfigServerInfo.rsa_private_key);
3017 <    ConfigServerInfo.rsa_private_key = NULL;
3018 <  }
3019 <
3020 <  if (ConfigServerInfo.rsa_private_key_file)
3021 <  {
3022 <    xfree(ConfigServerInfo.rsa_private_key_file);
3023 <    ConfigServerInfo.rsa_private_key_file = NULL;
3024 <  }
3025 <
2979 >  xfree(ConfigServerInfo.rsa_private_key_file);
2980    ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3027
3028  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3029  {
3030    conf_error_report("File open failed, ignoring");
3031    break;
3032  }
3033
3034  ConfigServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3035
3036  BIO_set_close(file, BIO_CLOSE);
3037  BIO_free(file);
3038
3039  if (ConfigServerInfo.rsa_private_key == NULL)
3040  {
3041    conf_error_report("Couldn't extract key, ignoring");
3042    break;
3043  }
3044
3045  if (!RSA_check_key(ConfigServerInfo.rsa_private_key))
3046  {
3047    RSA_free(ConfigServerInfo.rsa_private_key);
3048    ConfigServerInfo.rsa_private_key = NULL;
3049
3050    conf_error_report("Invalid key, ignoring");
3051    break;
3052  }
3053
3054  if (RSA_size(ConfigServerInfo.rsa_private_key) < 256)
3055  {
3056    RSA_free(ConfigServerInfo.rsa_private_key);
3057    ConfigServerInfo.rsa_private_key = NULL;
3058
3059    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 2048 bit key size");
3060  }
3061 #endif
2981   }
2982 < #line 3064 "conf_parser.c" /* yacc.c:1646  */
2982 > #line 2983 "conf_parser.c" /* yacc.c:1646  */
2983      break;
2984  
2985    case 75:
2986 < #line 579 "conf_parser.y" /* yacc.c:1646  */
2986 > #line 498 "conf_parser.y" /* yacc.c:1646  */
2987      {
3069 #ifdef HAVE_LIBCRYPTO
2988    if (conf_parser_ctx.pass == 2)
2989    {
2990 <    BIO *file = BIO_new_file(yylval.string, "r");
2991 <
3074 <    if (file)
3075 <    {
3076 <      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3077 <
3078 <      BIO_free(file);
3079 <
3080 <      if (dh)
3081 <      {
3082 <        if (DH_size(dh) < 256)
3083 <          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 2048 bit DH prime size");
3084 <        else
3085 <          SSL_CTX_set_tmp_dh(ConfigServerInfo.server_ctx, dh);
3086 <
3087 <        DH_free(dh);
3088 <      }
3089 <    }
3090 <    else
3091 <      conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- could not open/read Diffie-Hellman parameter file");
2990 >    xfree(ConfigServerInfo.ssl_dh_param_file);
2991 >    ConfigServerInfo.ssl_dh_param_file = xstrdup(yylval.string);
2992    }
3093 #endif
2993   }
2994 < #line 3096 "conf_parser.c" /* yacc.c:1646  */
2994 > #line 2995 "conf_parser.c" /* yacc.c:1646  */
2995      break;
2996  
2997    case 76:
2998 < #line 608 "conf_parser.y" /* yacc.c:1646  */
2998 > #line 507 "conf_parser.y" /* yacc.c:1646  */
2999      {
3101 #ifdef HAVE_LIBCRYPTO
3000    if (conf_parser_ctx.pass == 2)
3001 <    SSL_CTX_set_cipher_list(ConfigServerInfo.server_ctx, yylval.string);
3002 < #endif
3001 >  {
3002 >    xfree(ConfigServerInfo.ssl_cipher_list);
3003 >    ConfigServerInfo.ssl_cipher_list = xstrdup(yylval.string);
3004 >  }
3005   }
3006 < #line 3107 "conf_parser.c" /* yacc.c:1646  */
3006 > #line 3007 "conf_parser.c" /* yacc.c:1646  */
3007      break;
3008  
3009    case 77:
3010 < #line 616 "conf_parser.y" /* yacc.c:1646  */
3010 > #line 516 "conf_parser.y" /* yacc.c:1646  */
3011      {
3112 #ifdef HAVE_LIBCRYPTO
3012    if (conf_parser_ctx.pass == 2)
3013    {
3014 <    if ((ConfigServerInfo.message_digest_algorithm = EVP_get_digestbyname(yylval.string)) == NULL)
3015 <    {
3117 <      ConfigServerInfo.message_digest_algorithm = EVP_sha256();
3118 <      conf_error_report("Ignoring serverinfo::ssl_message_digest_algorithm -- unknown message digest algorithm");
3119 <    }
3014 >    xfree(ConfigServerInfo.ssl_message_digest_algorithm);
3015 >    ConfigServerInfo.ssl_message_digest_algorithm = xstrdup(yylval.string);
3016    }
3121 #endif
3017   }
3018 < #line 3124 "conf_parser.c" /* yacc.c:1646  */
3018 > #line 3019 "conf_parser.c" /* yacc.c:1646  */
3019      break;
3020  
3021    case 78:
3022 < #line 630 "conf_parser.y" /* yacc.c:1646  */
3022 > #line 525 "conf_parser.y" /* yacc.c:1646  */
3023      {
3129 #ifdef HAVE_LIBCRYPTO
3130 #if OPENSSL_VERSION_NUMBER >= 0x009080FFL && !defined(OPENSSL_NO_ECDH)
3131  int nid = 0;
3132  EC_KEY *key = NULL;
3133
3024    if (conf_parser_ctx.pass == 2)
3025    {
3026 <    if ((nid = OBJ_sn2nid(yylval.string)) == 0)
3027 <    {
3138 <        conf_error_report("Ignoring serverinfo::ssl_dh_elliptic_curve -- unknown curve name");
3139 <        break;
3140 <    }
3141 <
3142 <    if ((key = EC_KEY_new_by_curve_name(nid)) == NULL)
3143 <    {
3144 <      conf_error_report("Ignoring serverinfo::ssl_dh_elliptic_curve -- could not create curve");
3145 <      break;
3146 <    }
3147 <
3148 <    SSL_CTX_set_tmp_ecdh(ConfigServerInfo.server_ctx, key);
3149 <    EC_KEY_free(key);
3026 >    xfree(ConfigServerInfo.ssl_dh_elliptic_curve);
3027 >    ConfigServerInfo.ssl_dh_elliptic_curve = xstrdup(yylval.string);
3028    }
3151 #endif
3152 #endif
3029   }
3030 < #line 3155 "conf_parser.c" /* yacc.c:1646  */
3030 > #line 3031 "conf_parser.c" /* yacc.c:1646  */
3031      break;
3032  
3033    case 79:
3034 < #line 658 "conf_parser.y" /* yacc.c:1646  */
3034 > #line 534 "conf_parser.y" /* yacc.c:1646  */
3035      {
3036    /* This isn't rehashable */
3037    if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.name)
# Line 3169 | Line 3045 | yyreduce:
3045      }
3046    }
3047   }
3048 < #line 3173 "conf_parser.c" /* yacc.c:1646  */
3048 > #line 3049 "conf_parser.c" /* yacc.c:1646  */
3049      break;
3050  
3051    case 80:
3052 < #line 673 "conf_parser.y" /* yacc.c:1646  */
3052 > #line 549 "conf_parser.y" /* yacc.c:1646  */
3053      {
3054    /* This isn't rehashable */
3055    if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.sid)
# Line 3187 | Line 3063 | yyreduce:
3063      }
3064    }
3065   }
3066 < #line 3191 "conf_parser.c" /* yacc.c:1646  */
3066 > #line 3067 "conf_parser.c" /* yacc.c:1646  */
3067      break;
3068  
3069    case 81:
3070 < #line 688 "conf_parser.y" /* yacc.c:1646  */
3070 > #line 564 "conf_parser.y" /* yacc.c:1646  */
3071      {
3072    if (conf_parser_ctx.pass == 2)
3073    {
# Line 3200 | Line 3076 | yyreduce:
3076      strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3077    }
3078   }
3079 < #line 3204 "conf_parser.c" /* yacc.c:1646  */
3079 > #line 3080 "conf_parser.c" /* yacc.c:1646  */
3080      break;
3081  
3082    case 82:
3083 < #line 698 "conf_parser.y" /* yacc.c:1646  */
3083 > #line 574 "conf_parser.y" /* yacc.c:1646  */
3084      {
3085    if (conf_parser_ctx.pass == 2)
3086    {
# Line 3217 | Line 3093 | yyreduce:
3093      ConfigServerInfo.network_name = xstrdup(yylval.string);
3094    }
3095   }
3096 < #line 3221 "conf_parser.c" /* yacc.c:1646  */
3096 > #line 3097 "conf_parser.c" /* yacc.c:1646  */
3097      break;
3098  
3099    case 83:
3100 < #line 712 "conf_parser.y" /* yacc.c:1646  */
3100 > #line 588 "conf_parser.y" /* yacc.c:1646  */
3101      {
3102    if (conf_parser_ctx.pass != 2)
3103      break;
# Line 3229 | Line 3105 | yyreduce:
3105    xfree(ConfigServerInfo.network_desc);
3106    ConfigServerInfo.network_desc = xstrdup(yylval.string);
3107   }
3108 < #line 3233 "conf_parser.c" /* yacc.c:1646  */
3108 > #line 3109 "conf_parser.c" /* yacc.c:1646  */
3109      break;
3110  
3111    case 84:
3112 < #line 721 "conf_parser.y" /* yacc.c:1646  */
3112 > #line 597 "conf_parser.y" /* yacc.c:1646  */
3113      {
3114    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3115    {
# Line 3260 | Line 3136 | yyreduce:
3136      }
3137    }
3138   }
3139 < #line 3264 "conf_parser.c" /* yacc.c:1646  */
3139 > #line 3140 "conf_parser.c" /* yacc.c:1646  */
3140      break;
3141  
3142    case 85:
3143 < #line 749 "conf_parser.y" /* yacc.c:1646  */
3143 > #line 625 "conf_parser.y" /* yacc.c:1646  */
3144      {
3145    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3146    {
# Line 3291 | Line 3167 | yyreduce:
3167      }
3168    }
3169   }
3170 < #line 3295 "conf_parser.c" /* yacc.c:1646  */
3170 > #line 3171 "conf_parser.c" /* yacc.c:1646  */
3171      break;
3172  
3173    case 86:
3174 < #line 777 "conf_parser.y" /* yacc.c:1646  */
3174 > #line 653 "conf_parser.y" /* yacc.c:1646  */
3175      {
3176    if (conf_parser_ctx.pass != 2)
3177      break;
# Line 3319 | Line 3195 | yyreduce:
3195    else
3196      ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3197   }
3198 < #line 3323 "conf_parser.c" /* yacc.c:1646  */
3198 > #line 3199 "conf_parser.c" /* yacc.c:1646  */
3199      break;
3200  
3201    case 87:
3202 < #line 802 "conf_parser.y" /* yacc.c:1646  */
3202 > #line 678 "conf_parser.y" /* yacc.c:1646  */
3203      {
3204    if (conf_parser_ctx.pass != 2)
3205      break;
# Line 3344 | Line 3220 | yyreduce:
3220    else
3221      ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3222   }
3223 < #line 3348 "conf_parser.c" /* yacc.c:1646  */
3223 > #line 3224 "conf_parser.c" /* yacc.c:1646  */
3224      break;
3225  
3226    case 88:
3227 < #line 824 "conf_parser.y" /* yacc.c:1646  */
3227 > #line 700 "conf_parser.y" /* yacc.c:1646  */
3228      {
3229    if (conf_parser_ctx.pass != 2)
3230      break;
# Line 3369 | Line 3245 | yyreduce:
3245    else
3246      ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3247   }
3248 < #line 3373 "conf_parser.c" /* yacc.c:1646  */
3248 > #line 3249 "conf_parser.c" /* yacc.c:1646  */
3249      break;
3250  
3251    case 89:
3252 < #line 846 "conf_parser.y" /* yacc.c:1646  */
3252 > #line 722 "conf_parser.y" /* yacc.c:1646  */
3253      {
3254    if (conf_parser_ctx.pass == 2)
3255      ConfigServerInfo.hub = yylval.number;
3256   }
3257 < #line 3382 "conf_parser.c" /* yacc.c:1646  */
3257 > #line 3258 "conf_parser.c" /* yacc.c:1646  */
3258      break;
3259  
3260    case 97:
3261 < #line 864 "conf_parser.y" /* yacc.c:1646  */
3261 > #line 740 "conf_parser.y" /* yacc.c:1646  */
3262      {
3263    if (conf_parser_ctx.pass != 2)
3264      break;
# Line 3390 | Line 3266 | yyreduce:
3266    xfree(ConfigAdminInfo.name);
3267    ConfigAdminInfo.name = xstrdup(yylval.string);
3268   }
3269 < #line 3394 "conf_parser.c" /* yacc.c:1646  */
3269 > #line 3270 "conf_parser.c" /* yacc.c:1646  */
3270      break;
3271  
3272    case 98:
3273 < #line 873 "conf_parser.y" /* yacc.c:1646  */
3273 > #line 749 "conf_parser.y" /* yacc.c:1646  */
3274      {
3275    if (conf_parser_ctx.pass != 2)
3276      break;
# Line 3402 | Line 3278 | yyreduce:
3278    xfree(ConfigAdminInfo.email);
3279    ConfigAdminInfo.email = xstrdup(yylval.string);
3280   }
3281 < #line 3406 "conf_parser.c" /* yacc.c:1646  */
3281 > #line 3282 "conf_parser.c" /* yacc.c:1646  */
3282      break;
3283  
3284    case 99:
3285 < #line 882 "conf_parser.y" /* yacc.c:1646  */
3285 > #line 758 "conf_parser.y" /* yacc.c:1646  */
3286      {
3287    if (conf_parser_ctx.pass != 2)
3288      break;
# Line 3414 | Line 3290 | yyreduce:
3290    xfree(ConfigAdminInfo.description);
3291    ConfigAdminInfo.description = xstrdup(yylval.string);
3292   }
3293 < #line 3418 "conf_parser.c" /* yacc.c:1646  */
3293 > #line 3294 "conf_parser.c" /* yacc.c:1646  */
3294      break;
3295  
3296    case 100:
3297 < #line 895 "conf_parser.y" /* yacc.c:1646  */
3297 > #line 771 "conf_parser.y" /* yacc.c:1646  */
3298      {
3299    if (conf_parser_ctx.pass == 2)
3300      reset_block_state();
3301   }
3302 < #line 3427 "conf_parser.c" /* yacc.c:1646  */
3302 > #line 3303 "conf_parser.c" /* yacc.c:1646  */
3303      break;
3304  
3305    case 101:
3306 < #line 899 "conf_parser.y" /* yacc.c:1646  */
3306 > #line 775 "conf_parser.y" /* yacc.c:1646  */
3307      {
3308    dlink_node *node = NULL;
3309  
# Line 3440 | Line 3316 | yyreduce:
3316    DLINK_FOREACH(node, block_state.mask.list.head)
3317      motd_add(node->data, block_state.file.buf);
3318   }
3319 < #line 3444 "conf_parser.c" /* yacc.c:1646  */
3319 > #line 3320 "conf_parser.c" /* yacc.c:1646  */
3320      break;
3321  
3322    case 107:
3323 < #line 916 "conf_parser.y" /* yacc.c:1646  */
3323 > #line 792 "conf_parser.y" /* yacc.c:1646  */
3324      {
3325    if (conf_parser_ctx.pass == 2)
3326      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3327   }
3328 < #line 3453 "conf_parser.c" /* yacc.c:1646  */
3328 > #line 3329 "conf_parser.c" /* yacc.c:1646  */
3329      break;
3330  
3331    case 108:
3332 < #line 922 "conf_parser.y" /* yacc.c:1646  */
3332 > #line 798 "conf_parser.y" /* yacc.c:1646  */
3333      {
3334    if (conf_parser_ctx.pass == 2)
3335      strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3336   }
3337 < #line 3462 "conf_parser.c" /* yacc.c:1646  */
3337 > #line 3338 "conf_parser.c" /* yacc.c:1646  */
3338      break;
3339  
3340    case 109:
3341 < #line 932 "conf_parser.y" /* yacc.c:1646  */
3341 > #line 808 "conf_parser.y" /* yacc.c:1646  */
3342      {
3343    if (conf_parser_ctx.pass == 2)
3344      reset_block_state();
3345   }
3346 < #line 3471 "conf_parser.c" /* yacc.c:1646  */
3346 > #line 3347 "conf_parser.c" /* yacc.c:1646  */
3347      break;
3348  
3349    case 110:
3350 < #line 936 "conf_parser.y" /* yacc.c:1646  */
3350 > #line 812 "conf_parser.y" /* yacc.c:1646  */
3351      {
3352    if (conf_parser_ctx.pass != 2)
3353      break;
# Line 3485 | Line 3361 | yyreduce:
3361    pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3362                    block_state.prepend.buf, block_state.command.buf);
3363   }
3364 < #line 3489 "conf_parser.c" /* yacc.c:1646  */
3364 > #line 3365 "conf_parser.c" /* yacc.c:1646  */
3365      break;
3366  
3367    case 118:
3368 < #line 954 "conf_parser.y" /* yacc.c:1646  */
3368 > #line 830 "conf_parser.y" /* yacc.c:1646  */
3369      {
3370    if (conf_parser_ctx.pass == 2)
3371      strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3372   }
3373 < #line 3498 "conf_parser.c" /* yacc.c:1646  */
3373 > #line 3374 "conf_parser.c" /* yacc.c:1646  */
3374      break;
3375  
3376    case 119:
3377 < #line 960 "conf_parser.y" /* yacc.c:1646  */
3377 > #line 836 "conf_parser.y" /* yacc.c:1646  */
3378      {
3379    if (conf_parser_ctx.pass == 2)
3380      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3381   }
3382 < #line 3507 "conf_parser.c" /* yacc.c:1646  */
3382 > #line 3383 "conf_parser.c" /* yacc.c:1646  */
3383      break;
3384  
3385    case 120:
3386 < #line 966 "conf_parser.y" /* yacc.c:1646  */
3386 > #line 842 "conf_parser.y" /* yacc.c:1646  */
3387      {
3388    if (conf_parser_ctx.pass == 2)
3389      strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3390   }
3391 < #line 3516 "conf_parser.c" /* yacc.c:1646  */
3391 > #line 3392 "conf_parser.c" /* yacc.c:1646  */
3392      break;
3393  
3394    case 121:
3395 < #line 972 "conf_parser.y" /* yacc.c:1646  */
3395 > #line 848 "conf_parser.y" /* yacc.c:1646  */
3396      {
3397    if (conf_parser_ctx.pass == 2)
3398    {
# Line 3533 | Line 3409 | yyreduce:
3409      split_nuh(&nuh);
3410    }
3411   }
3412 < #line 3537 "conf_parser.c" /* yacc.c:1646  */
3412 > #line 3413 "conf_parser.c" /* yacc.c:1646  */
3413      break;
3414  
3415    case 128:
3416 < #line 1000 "conf_parser.y" /* yacc.c:1646  */
3416 > #line 876 "conf_parser.y" /* yacc.c:1646  */
3417      {
3418    if (conf_parser_ctx.pass == 2)
3419      ConfigLog.use_logging = yylval.number;
3420   }
3421 < #line 3546 "conf_parser.c" /* yacc.c:1646  */
3421 > #line 3422 "conf_parser.c" /* yacc.c:1646  */
3422      break;
3423  
3424    case 129:
3425 < #line 1006 "conf_parser.y" /* yacc.c:1646  */
3425 > #line 882 "conf_parser.y" /* yacc.c:1646  */
3426      {
3427    if (conf_parser_ctx.pass == 2)
3428      reset_block_state();
3429   }
3430 < #line 3555 "conf_parser.c" /* yacc.c:1646  */
3430 > #line 3431 "conf_parser.c" /* yacc.c:1646  */
3431      break;
3432  
3433    case 130:
3434 < #line 1010 "conf_parser.y" /* yacc.c:1646  */
3434 > #line 886 "conf_parser.y" /* yacc.c:1646  */
3435      {
3436    if (conf_parser_ctx.pass != 2)
3437      break;
# Line 3564 | Line 3440 | yyreduce:
3440      log_set_file(block_state.type.value, block_state.size.value,
3441                   block_state.file.buf);
3442   }
3443 < #line 3568 "conf_parser.c" /* yacc.c:1646  */
3443 > #line 3444 "conf_parser.c" /* yacc.c:1646  */
3444      break;
3445  
3446    case 137:
3447 < #line 1026 "conf_parser.y" /* yacc.c:1646  */
3447 > #line 902 "conf_parser.y" /* yacc.c:1646  */
3448      {
3449    if (conf_parser_ctx.pass != 2)
3450      break;
3451  
3452    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3453   }
3454 < #line 3579 "conf_parser.c" /* yacc.c:1646  */
3454 > #line 3455 "conf_parser.c" /* yacc.c:1646  */
3455      break;
3456  
3457    case 138:
3458 < #line 1034 "conf_parser.y" /* yacc.c:1646  */
3458 > #line 910 "conf_parser.y" /* yacc.c:1646  */
3459      {
3460    block_state.size.value = (yyvsp[-1].number);
3461   }
3462 < #line 3587 "conf_parser.c" /* yacc.c:1646  */
3462 > #line 3463 "conf_parser.c" /* yacc.c:1646  */
3463      break;
3464  
3465    case 139:
3466 < #line 1037 "conf_parser.y" /* yacc.c:1646  */
3466 > #line 913 "conf_parser.y" /* yacc.c:1646  */
3467      {
3468    block_state.size.value = 0;
3469   }
3470 < #line 3595 "conf_parser.c" /* yacc.c:1646  */
3470 > #line 3471 "conf_parser.c" /* yacc.c:1646  */
3471      break;
3472  
3473    case 140:
3474 < #line 1042 "conf_parser.y" /* yacc.c:1646  */
3474 > #line 918 "conf_parser.y" /* yacc.c:1646  */
3475      {
3476    if (conf_parser_ctx.pass == 2)
3477      block_state.type.value = 0;
3478   }
3479 < #line 3604 "conf_parser.c" /* yacc.c:1646  */
3479 > #line 3480 "conf_parser.c" /* yacc.c:1646  */
3480      break;
3481  
3482    case 144:
3483 < #line 1049 "conf_parser.y" /* yacc.c:1646  */
3483 > #line 925 "conf_parser.y" /* yacc.c:1646  */
3484      {
3485    if (conf_parser_ctx.pass == 2)
3486      block_state.type.value = LOG_TYPE_USER;
3487   }
3488 < #line 3613 "conf_parser.c" /* yacc.c:1646  */
3488 > #line 3489 "conf_parser.c" /* yacc.c:1646  */
3489      break;
3490  
3491    case 145:
3492 < #line 1053 "conf_parser.y" /* yacc.c:1646  */
3492 > #line 929 "conf_parser.y" /* yacc.c:1646  */
3493      {
3494    if (conf_parser_ctx.pass == 2)
3495      block_state.type.value = LOG_TYPE_OPER;
3496   }
3497 < #line 3622 "conf_parser.c" /* yacc.c:1646  */
3497 > #line 3498 "conf_parser.c" /* yacc.c:1646  */
3498      break;
3499  
3500    case 146:
3501 < #line 1057 "conf_parser.y" /* yacc.c:1646  */
3501 > #line 933 "conf_parser.y" /* yacc.c:1646  */
3502      {
3503    if (conf_parser_ctx.pass == 2)
3504      block_state.type.value = LOG_TYPE_XLINE;
3505   }
3506 < #line 3631 "conf_parser.c" /* yacc.c:1646  */
3506 > #line 3507 "conf_parser.c" /* yacc.c:1646  */
3507      break;
3508  
3509    case 147:
3510 < #line 1061 "conf_parser.y" /* yacc.c:1646  */
3510 > #line 937 "conf_parser.y" /* yacc.c:1646  */
3511      {
3512    if (conf_parser_ctx.pass == 2)
3513      block_state.type.value = LOG_TYPE_RESV;
3514   }
3515 < #line 3640 "conf_parser.c" /* yacc.c:1646  */
3515 > #line 3516 "conf_parser.c" /* yacc.c:1646  */
3516      break;
3517  
3518    case 148:
3519 < #line 1065 "conf_parser.y" /* yacc.c:1646  */
3519 > #line 941 "conf_parser.y" /* yacc.c:1646  */
3520      {
3521    if (conf_parser_ctx.pass == 2)
3522      block_state.type.value = LOG_TYPE_DLINE;
3523   }
3524 < #line 3649 "conf_parser.c" /* yacc.c:1646  */
3524 > #line 3525 "conf_parser.c" /* yacc.c:1646  */
3525      break;
3526  
3527    case 149:
3528 < #line 1069 "conf_parser.y" /* yacc.c:1646  */
3528 > #line 945 "conf_parser.y" /* yacc.c:1646  */
3529      {
3530    if (conf_parser_ctx.pass == 2)
3531      block_state.type.value = LOG_TYPE_KLINE;
3532   }
3533 < #line 3658 "conf_parser.c" /* yacc.c:1646  */
3533 > #line 3534 "conf_parser.c" /* yacc.c:1646  */
3534      break;
3535  
3536    case 150:
3537 < #line 1073 "conf_parser.y" /* yacc.c:1646  */
3537 > #line 949 "conf_parser.y" /* yacc.c:1646  */
3538      {
3539    if (conf_parser_ctx.pass == 2)
3540      block_state.type.value = LOG_TYPE_KILL;
3541   }
3542 < #line 3667 "conf_parser.c" /* yacc.c:1646  */
3542 > #line 3543 "conf_parser.c" /* yacc.c:1646  */
3543      break;
3544  
3545    case 151:
3546 < #line 1077 "conf_parser.y" /* yacc.c:1646  */
3546 > #line 953 "conf_parser.y" /* yacc.c:1646  */
3547      {
3548    if (conf_parser_ctx.pass == 2)
3549      block_state.type.value = LOG_TYPE_DEBUG;
3550   }
3551 < #line 3676 "conf_parser.c" /* yacc.c:1646  */
3551 > #line 3552 "conf_parser.c" /* yacc.c:1646  */
3552      break;
3553  
3554    case 152:
3555 < #line 1087 "conf_parser.y" /* yacc.c:1646  */
3555 > #line 963 "conf_parser.y" /* yacc.c:1646  */
3556      {
3557    if (conf_parser_ctx.pass != 2)
3558      break;
# Line 3684 | Line 3560 | yyreduce:
3560    reset_block_state();
3561    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3562   }
3563 < #line 3688 "conf_parser.c" /* yacc.c:1646  */
3563 > #line 3564 "conf_parser.c" /* yacc.c:1646  */
3564      break;
3565  
3566    case 153:
3567 < #line 1094 "conf_parser.y" /* yacc.c:1646  */
3567 > #line 970 "conf_parser.y" /* yacc.c:1646  */
3568      {
3569    dlink_node *node = NULL;
3570  
# Line 3737 | Line 3613 | yyreduce:
3613      conf_add_class_to_conf(conf, block_state.class.buf);
3614    }
3615   }
3616 < #line 3741 "conf_parser.c" /* yacc.c:1646  */
3616 > #line 3617 "conf_parser.c" /* yacc.c:1646  */
3617      break;
3618  
3619    case 167:
3620 < #line 1157 "conf_parser.y" /* yacc.c:1646  */
3620 > #line 1033 "conf_parser.y" /* yacc.c:1646  */
3621      {
3622    if (conf_parser_ctx.pass == 2)
3623      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3624   }
3625 < #line 3750 "conf_parser.c" /* yacc.c:1646  */
3625 > #line 3626 "conf_parser.c" /* yacc.c:1646  */
3626      break;
3627  
3628    case 168:
3629 < #line 1163 "conf_parser.y" /* yacc.c:1646  */
3629 > #line 1039 "conf_parser.y" /* yacc.c:1646  */
3630      {
3631    if (conf_parser_ctx.pass == 2)
3632      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3633   }
3634 < #line 3759 "conf_parser.c" /* yacc.c:1646  */
3634 > #line 3635 "conf_parser.c" /* yacc.c:1646  */
3635      break;
3636  
3637    case 169:
3638 < #line 1169 "conf_parser.y" /* yacc.c:1646  */
3638 > #line 1045 "conf_parser.y" /* yacc.c:1646  */
3639      {
3640    if (conf_parser_ctx.pass == 2)
3641      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3642   }
3643 < #line 3768 "conf_parser.c" /* yacc.c:1646  */
3643 > #line 3644 "conf_parser.c" /* yacc.c:1646  */
3644      break;
3645  
3646    case 170:
3647 < #line 1175 "conf_parser.y" /* yacc.c:1646  */
3647 > #line 1051 "conf_parser.y" /* yacc.c:1646  */
3648      {
3649    if (conf_parser_ctx.pass == 2)
3650      strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3651   }
3652 < #line 3777 "conf_parser.c" /* yacc.c:1646  */
3652 > #line 3653 "conf_parser.c" /* yacc.c:1646  */
3653      break;
3654  
3655    case 171:
3656 < #line 1181 "conf_parser.y" /* yacc.c:1646  */
3656 > #line 1057 "conf_parser.y" /* yacc.c:1646  */
3657      {
3658    if (conf_parser_ctx.pass != 2)
3659      break;
# Line 3787 | Line 3663 | yyreduce:
3663    else
3664      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3665   }
3666 < #line 3791 "conf_parser.c" /* yacc.c:1646  */
3666 > #line 3667 "conf_parser.c" /* yacc.c:1646  */
3667      break;
3668  
3669    case 172:
3670 < #line 1192 "conf_parser.y" /* yacc.c:1646  */
3670 > #line 1068 "conf_parser.y" /* yacc.c:1646  */
3671      {
3672    if (conf_parser_ctx.pass == 2)
3673      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3674   }
3675 < #line 3800 "conf_parser.c" /* yacc.c:1646  */
3675 > #line 3676 "conf_parser.c" /* yacc.c:1646  */
3676      break;
3677  
3678    case 173:
3679 < #line 1198 "conf_parser.y" /* yacc.c:1646  */
3679 > #line 1074 "conf_parser.y" /* yacc.c:1646  */
3680      {
3681    if (conf_parser_ctx.pass != 2)
3682      break;
# Line 3810 | Line 3686 | yyreduce:
3686    else
3687      block_state.flags.value &= ~CONF_FLAGS_SSL;
3688   }
3689 < #line 3814 "conf_parser.c" /* yacc.c:1646  */
3689 > #line 3690 "conf_parser.c" /* yacc.c:1646  */
3690      break;
3691  
3692    case 174:
3693 < #line 1209 "conf_parser.y" /* yacc.c:1646  */
3693 > #line 1085 "conf_parser.y" /* yacc.c:1646  */
3694      {
3695    if (conf_parser_ctx.pass == 2)
3696      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3697   }
3698 < #line 3823 "conf_parser.c" /* yacc.c:1646  */
3698 > #line 3699 "conf_parser.c" /* yacc.c:1646  */
3699      break;
3700  
3701    case 175:
3702 < #line 1215 "conf_parser.y" /* yacc.c:1646  */
3702 > #line 1091 "conf_parser.y" /* yacc.c:1646  */
3703      {
3704    if (conf_parser_ctx.pass == 2)
3705      block_state.modes.value = 0;
3706   }
3707 < #line 3832 "conf_parser.c" /* yacc.c:1646  */
3707 > #line 3708 "conf_parser.c" /* yacc.c:1646  */
3708      break;
3709  
3710    case 179:
3711 < #line 1222 "conf_parser.y" /* yacc.c:1646  */
3711 > #line 1098 "conf_parser.y" /* yacc.c:1646  */
3712      {
3713    if (conf_parser_ctx.pass == 2)
3714      block_state.modes.value |= UMODE_BOTS;
3715   }
3716 < #line 3841 "conf_parser.c" /* yacc.c:1646  */
3716 > #line 3717 "conf_parser.c" /* yacc.c:1646  */
3717      break;
3718  
3719    case 180:
3720 < #line 1226 "conf_parser.y" /* yacc.c:1646  */
3720 > #line 1102 "conf_parser.y" /* yacc.c:1646  */
3721      {
3722    if (conf_parser_ctx.pass == 2)
3723      block_state.modes.value |= UMODE_CCONN;
3724   }
3725 < #line 3850 "conf_parser.c" /* yacc.c:1646  */
3725 > #line 3726 "conf_parser.c" /* yacc.c:1646  */
3726      break;
3727  
3728    case 181:
3729 < #line 1230 "conf_parser.y" /* yacc.c:1646  */
3729 > #line 1106 "conf_parser.y" /* yacc.c:1646  */
3730      {
3731    if (conf_parser_ctx.pass == 2)
3732      block_state.modes.value |= UMODE_DEAF;
3733   }
3734 < #line 3859 "conf_parser.c" /* yacc.c:1646  */
3734 > #line 3735 "conf_parser.c" /* yacc.c:1646  */
3735      break;
3736  
3737    case 182:
3738 < #line 1234 "conf_parser.y" /* yacc.c:1646  */
3738 > #line 1110 "conf_parser.y" /* yacc.c:1646  */
3739      {
3740    if (conf_parser_ctx.pass == 2)
3741      block_state.modes.value |= UMODE_DEBUG;
3742   }
3743 < #line 3868 "conf_parser.c" /* yacc.c:1646  */
3743 > #line 3744 "conf_parser.c" /* yacc.c:1646  */
3744      break;
3745  
3746    case 183:
3747 < #line 1238 "conf_parser.y" /* yacc.c:1646  */
3747 > #line 1114 "conf_parser.y" /* yacc.c:1646  */
3748      {
3749    if (conf_parser_ctx.pass == 2)
3750      block_state.modes.value |= UMODE_FULL;
3751   }
3752 < #line 3877 "conf_parser.c" /* yacc.c:1646  */
3752 > #line 3753 "conf_parser.c" /* yacc.c:1646  */
3753      break;
3754  
3755    case 184:
3756 < #line 1242 "conf_parser.y" /* yacc.c:1646  */
3756 > #line 1118 "conf_parser.y" /* yacc.c:1646  */
3757      {
3758    if (conf_parser_ctx.pass == 2)
3759      block_state.modes.value |= UMODE_HIDDEN;
3760   }
3761 < #line 3886 "conf_parser.c" /* yacc.c:1646  */
3761 > #line 3762 "conf_parser.c" /* yacc.c:1646  */
3762      break;
3763  
3764    case 185:
3765 < #line 1246 "conf_parser.y" /* yacc.c:1646  */
3765 > #line 1122 "conf_parser.y" /* yacc.c:1646  */
3766      {
3767    if (conf_parser_ctx.pass == 2)
3768      block_state.modes.value |= UMODE_HIDECHANS;
3769   }
3770 < #line 3895 "conf_parser.c" /* yacc.c:1646  */
3770 > #line 3771 "conf_parser.c" /* yacc.c:1646  */
3771      break;
3772  
3773    case 186:
3774 < #line 1250 "conf_parser.y" /* yacc.c:1646  */
3774 > #line 1126 "conf_parser.y" /* yacc.c:1646  */
3775      {
3776    if (conf_parser_ctx.pass == 2)
3777      block_state.modes.value |= UMODE_HIDEIDLE;
3778   }
3779 < #line 3904 "conf_parser.c" /* yacc.c:1646  */
3779 > #line 3780 "conf_parser.c" /* yacc.c:1646  */
3780      break;
3781  
3782    case 187:
3783 < #line 1254 "conf_parser.y" /* yacc.c:1646  */
3783 > #line 1130 "conf_parser.y" /* yacc.c:1646  */
3784      {
3785    if (conf_parser_ctx.pass == 2)
3786      block_state.modes.value |= UMODE_SKILL;
3787   }
3788 < #line 3913 "conf_parser.c" /* yacc.c:1646  */
3788 > #line 3789 "conf_parser.c" /* yacc.c:1646  */
3789      break;
3790  
3791    case 188:
3792 < #line 1258 "conf_parser.y" /* yacc.c:1646  */
3792 > #line 1134 "conf_parser.y" /* yacc.c:1646  */
3793      {
3794    if (conf_parser_ctx.pass == 2)
3795      block_state.modes.value |= UMODE_NCHANGE;
3796   }
3797 < #line 3922 "conf_parser.c" /* yacc.c:1646  */
3797 > #line 3798 "conf_parser.c" /* yacc.c:1646  */
3798      break;
3799  
3800    case 189:
3801 < #line 1262 "conf_parser.y" /* yacc.c:1646  */
3801 > #line 1138 "conf_parser.y" /* yacc.c:1646  */
3802      {
3803    if (conf_parser_ctx.pass == 2)
3804      block_state.modes.value |= UMODE_REJ;
3805   }
3806 < #line 3931 "conf_parser.c" /* yacc.c:1646  */
3806 > #line 3807 "conf_parser.c" /* yacc.c:1646  */
3807      break;
3808  
3809    case 190:
3810 < #line 1266 "conf_parser.y" /* yacc.c:1646  */
3810 > #line 1142 "conf_parser.y" /* yacc.c:1646  */
3811      {
3812    if (conf_parser_ctx.pass == 2)
3813      block_state.modes.value |= UMODE_UNAUTH;
3814   }
3815 < #line 3940 "conf_parser.c" /* yacc.c:1646  */
3815 > #line 3816 "conf_parser.c" /* yacc.c:1646  */
3816      break;
3817  
3818    case 191:
3819 < #line 1270 "conf_parser.y" /* yacc.c:1646  */
3819 > #line 1146 "conf_parser.y" /* yacc.c:1646  */
3820      {
3821    if (conf_parser_ctx.pass == 2)
3822      block_state.modes.value |= UMODE_SPY;
3823   }
3824 < #line 3949 "conf_parser.c" /* yacc.c:1646  */
3824 > #line 3825 "conf_parser.c" /* yacc.c:1646  */
3825      break;
3826  
3827    case 192:
3828 < #line 1274 "conf_parser.y" /* yacc.c:1646  */
3828 > #line 1150 "conf_parser.y" /* yacc.c:1646  */
3829      {
3830    if (conf_parser_ctx.pass == 2)
3831      block_state.modes.value |= UMODE_EXTERNAL;
3832   }
3833 < #line 3958 "conf_parser.c" /* yacc.c:1646  */
3833 > #line 3834 "conf_parser.c" /* yacc.c:1646  */
3834      break;
3835  
3836    case 193:
3837 < #line 1278 "conf_parser.y" /* yacc.c:1646  */
3837 > #line 1154 "conf_parser.y" /* yacc.c:1646  */
3838      {
3839    if (conf_parser_ctx.pass == 2)
3840      block_state.modes.value |= UMODE_SERVNOTICE;
3841   }
3842 < #line 3967 "conf_parser.c" /* yacc.c:1646  */
3842 > #line 3843 "conf_parser.c" /* yacc.c:1646  */
3843      break;
3844  
3845    case 194:
3846 < #line 1282 "conf_parser.y" /* yacc.c:1646  */
3846 > #line 1158 "conf_parser.y" /* yacc.c:1646  */
3847      {
3848    if (conf_parser_ctx.pass == 2)
3849      block_state.modes.value |= UMODE_INVISIBLE;
3850   }
3851 < #line 3976 "conf_parser.c" /* yacc.c:1646  */
3851 > #line 3852 "conf_parser.c" /* yacc.c:1646  */
3852      break;
3853  
3854    case 195:
3855 < #line 1286 "conf_parser.y" /* yacc.c:1646  */
3855 > #line 1162 "conf_parser.y" /* yacc.c:1646  */
3856      {
3857    if (conf_parser_ctx.pass == 2)
3858      block_state.modes.value |= UMODE_WALLOP;
3859   }
3860 < #line 3985 "conf_parser.c" /* yacc.c:1646  */
3860 > #line 3861 "conf_parser.c" /* yacc.c:1646  */
3861      break;
3862  
3863    case 196:
3864 < #line 1290 "conf_parser.y" /* yacc.c:1646  */
3864 > #line 1166 "conf_parser.y" /* yacc.c:1646  */
3865      {
3866    if (conf_parser_ctx.pass == 2)
3867      block_state.modes.value |= UMODE_SOFTCALLERID;
3868   }
3869 < #line 3994 "conf_parser.c" /* yacc.c:1646  */
3869 > #line 3870 "conf_parser.c" /* yacc.c:1646  */
3870      break;
3871  
3872    case 197:
3873 < #line 1294 "conf_parser.y" /* yacc.c:1646  */
3873 > #line 1170 "conf_parser.y" /* yacc.c:1646  */
3874      {
3875    if (conf_parser_ctx.pass == 2)
3876      block_state.modes.value |= UMODE_CALLERID;
3877   }
3878 < #line 4003 "conf_parser.c" /* yacc.c:1646  */
3878 > #line 3879 "conf_parser.c" /* yacc.c:1646  */
3879      break;
3880  
3881    case 198:
3882 < #line 1298 "conf_parser.y" /* yacc.c:1646  */
3882 > #line 1174 "conf_parser.y" /* yacc.c:1646  */
3883      {
3884    if (conf_parser_ctx.pass == 2)
3885      block_state.modes.value |= UMODE_LOCOPS;
3886   }
3887 < #line 4012 "conf_parser.c" /* yacc.c:1646  */
3887 > #line 3888 "conf_parser.c" /* yacc.c:1646  */
3888      break;
3889  
3890    case 199:
3891 < #line 1302 "conf_parser.y" /* yacc.c:1646  */
3891 > #line 1178 "conf_parser.y" /* yacc.c:1646  */
3892      {
3893    if (conf_parser_ctx.pass == 2)
3894      block_state.modes.value |= UMODE_REGONLY;
3895   }
3896 < #line 4021 "conf_parser.c" /* yacc.c:1646  */
3896 > #line 3897 "conf_parser.c" /* yacc.c:1646  */
3897      break;
3898  
3899    case 200:
3900 < #line 1306 "conf_parser.y" /* yacc.c:1646  */
3900 > #line 1182 "conf_parser.y" /* yacc.c:1646  */
3901      {
3902    if (conf_parser_ctx.pass == 2)
3903      block_state.modes.value |= UMODE_FARCONNECT;
3904   }
3905 < #line 4030 "conf_parser.c" /* yacc.c:1646  */
3905 > #line 3906 "conf_parser.c" /* yacc.c:1646  */
3906      break;
3907  
3908    case 201:
3909 < #line 1312 "conf_parser.y" /* yacc.c:1646  */
3909 > #line 1188 "conf_parser.y" /* yacc.c:1646  */
3910      {
3911    if (conf_parser_ctx.pass == 2)
3912      block_state.port.value = 0;
3913   }
3914 < #line 4039 "conf_parser.c" /* yacc.c:1646  */
3914 > #line 3915 "conf_parser.c" /* yacc.c:1646  */
3915      break;
3916  
3917    case 205:
3918 < #line 1319 "conf_parser.y" /* yacc.c:1646  */
3918 > #line 1195 "conf_parser.y" /* yacc.c:1646  */
3919      {
3920    if (conf_parser_ctx.pass == 2)
3921      block_state.port.value |= OPER_FLAG_KILL_REMOTE;
3922   }
3923 < #line 4048 "conf_parser.c" /* yacc.c:1646  */
3923 > #line 3924 "conf_parser.c" /* yacc.c:1646  */
3924      break;
3925  
3926    case 206:
3927 < #line 1323 "conf_parser.y" /* yacc.c:1646  */
3927 > #line 1199 "conf_parser.y" /* yacc.c:1646  */
3928      {
3929    if (conf_parser_ctx.pass == 2)
3930      block_state.port.value |= OPER_FLAG_KILL;
3931   }
3932 < #line 4057 "conf_parser.c" /* yacc.c:1646  */
3932 > #line 3933 "conf_parser.c" /* yacc.c:1646  */
3933      break;
3934  
3935    case 207:
3936 < #line 1327 "conf_parser.y" /* yacc.c:1646  */
3936 > #line 1203 "conf_parser.y" /* yacc.c:1646  */
3937      {
3938    if (conf_parser_ctx.pass == 2)
3939      block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
3940   }
3941 < #line 4066 "conf_parser.c" /* yacc.c:1646  */
3941 > #line 3942 "conf_parser.c" /* yacc.c:1646  */
3942      break;
3943  
3944    case 208:
3945 < #line 1331 "conf_parser.y" /* yacc.c:1646  */
3945 > #line 1207 "conf_parser.y" /* yacc.c:1646  */
3946      {
3947    if (conf_parser_ctx.pass == 2)
3948      block_state.port.value |= OPER_FLAG_CONNECT;
3949   }
3950 < #line 4075 "conf_parser.c" /* yacc.c:1646  */
3950 > #line 3951 "conf_parser.c" /* yacc.c:1646  */
3951      break;
3952  
3953    case 209:
3954 < #line 1335 "conf_parser.y" /* yacc.c:1646  */
3954 > #line 1211 "conf_parser.y" /* yacc.c:1646  */
3955      {
3956    if (conf_parser_ctx.pass == 2)
3957      block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
3958   }
3959 < #line 4084 "conf_parser.c" /* yacc.c:1646  */
3959 > #line 3960 "conf_parser.c" /* yacc.c:1646  */
3960      break;
3961  
3962    case 210:
3963 < #line 1339 "conf_parser.y" /* yacc.c:1646  */
3963 > #line 1215 "conf_parser.y" /* yacc.c:1646  */
3964      {
3965    if (conf_parser_ctx.pass == 2)
3966      block_state.port.value |= OPER_FLAG_SQUIT;
3967   }
3968 < #line 4093 "conf_parser.c" /* yacc.c:1646  */
3968 > #line 3969 "conf_parser.c" /* yacc.c:1646  */
3969      break;
3970  
3971    case 211:
3972 < #line 1343 "conf_parser.y" /* yacc.c:1646  */
3972 > #line 1219 "conf_parser.y" /* yacc.c:1646  */
3973      {
3974    if (conf_parser_ctx.pass == 2)
3975      block_state.port.value |= OPER_FLAG_KLINE;
3976   }
3977 < #line 4102 "conf_parser.c" /* yacc.c:1646  */
3977 > #line 3978 "conf_parser.c" /* yacc.c:1646  */
3978      break;
3979  
3980    case 212:
3981 < #line 1347 "conf_parser.y" /* yacc.c:1646  */
3981 > #line 1223 "conf_parser.y" /* yacc.c:1646  */
3982      {
3983    if (conf_parser_ctx.pass == 2)
3984      block_state.port.value |= OPER_FLAG_UNKLINE;
3985   }
3986 < #line 4111 "conf_parser.c" /* yacc.c:1646  */
3986 > #line 3987 "conf_parser.c" /* yacc.c:1646  */
3987      break;
3988  
3989    case 213:
3990 < #line 1351 "conf_parser.y" /* yacc.c:1646  */
3990 > #line 1227 "conf_parser.y" /* yacc.c:1646  */
3991      {
3992    if (conf_parser_ctx.pass == 2)
3993      block_state.port.value |= OPER_FLAG_DLINE;
3994   }
3995 < #line 4120 "conf_parser.c" /* yacc.c:1646  */
3995 > #line 3996 "conf_parser.c" /* yacc.c:1646  */
3996      break;
3997  
3998    case 214:
3999 < #line 1355 "conf_parser.y" /* yacc.c:1646  */
3999 > #line 1231 "conf_parser.y" /* yacc.c:1646  */
4000      {
4001    if (conf_parser_ctx.pass == 2)
4002      block_state.port.value |= OPER_FLAG_UNDLINE;
4003   }
4004 < #line 4129 "conf_parser.c" /* yacc.c:1646  */
4004 > #line 4005 "conf_parser.c" /* yacc.c:1646  */
4005      break;
4006  
4007    case 215:
4008 < #line 1359 "conf_parser.y" /* yacc.c:1646  */
4008 > #line 1235 "conf_parser.y" /* yacc.c:1646  */
4009      {
4010    if (conf_parser_ctx.pass == 2)
4011      block_state.port.value |= OPER_FLAG_XLINE;
4012   }
4013 < #line 4138 "conf_parser.c" /* yacc.c:1646  */
4013 > #line 4014 "conf_parser.c" /* yacc.c:1646  */
4014      break;
4015  
4016    case 216:
4017 < #line 1363 "conf_parser.y" /* yacc.c:1646  */
4017 > #line 1239 "conf_parser.y" /* yacc.c:1646  */
4018      {
4019    if (conf_parser_ctx.pass == 2)
4020      block_state.port.value |= OPER_FLAG_UNXLINE;
4021   }
4022 < #line 4147 "conf_parser.c" /* yacc.c:1646  */
4022 > #line 4023 "conf_parser.c" /* yacc.c:1646  */
4023      break;
4024  
4025    case 217:
4026 < #line 1367 "conf_parser.y" /* yacc.c:1646  */
4026 > #line 1243 "conf_parser.y" /* yacc.c:1646  */
4027      {
4028    if (conf_parser_ctx.pass == 2)
4029      block_state.port.value |= OPER_FLAG_DIE;
4030   }
4031 < #line 4156 "conf_parser.c" /* yacc.c:1646  */
4031 > #line 4032 "conf_parser.c" /* yacc.c:1646  */
4032      break;
4033  
4034    case 218:
4035 < #line 1371 "conf_parser.y" /* yacc.c:1646  */
4035 > #line 1247 "conf_parser.y" /* yacc.c:1646  */
4036      {
4037    if (conf_parser_ctx.pass == 2)
4038      block_state.port.value |= OPER_FLAG_RESTART;
4039   }
4040 < #line 4165 "conf_parser.c" /* yacc.c:1646  */
4040 > #line 4041 "conf_parser.c" /* yacc.c:1646  */
4041      break;
4042  
4043    case 219:
4044 < #line 1375 "conf_parser.y" /* yacc.c:1646  */
4044 > #line 1251 "conf_parser.y" /* yacc.c:1646  */
4045      {
4046    if (conf_parser_ctx.pass == 2)
4047      block_state.port.value |= OPER_FLAG_REHASH_REMOTE;
4048   }
4049 < #line 4174 "conf_parser.c" /* yacc.c:1646  */
4049 > #line 4050 "conf_parser.c" /* yacc.c:1646  */
4050      break;
4051  
4052    case 220:
4053 < #line 1379 "conf_parser.y" /* yacc.c:1646  */
4053 > #line 1255 "conf_parser.y" /* yacc.c:1646  */
4054      {
4055    if (conf_parser_ctx.pass == 2)
4056      block_state.port.value |= OPER_FLAG_REHASH;
4057   }
4058 < #line 4183 "conf_parser.c" /* yacc.c:1646  */
4058 > #line 4059 "conf_parser.c" /* yacc.c:1646  */
4059      break;
4060  
4061    case 221:
4062 < #line 1383 "conf_parser.y" /* yacc.c:1646  */
4062 > #line 1259 "conf_parser.y" /* yacc.c:1646  */
4063      {
4064    if (conf_parser_ctx.pass == 2)
4065      block_state.port.value |= OPER_FLAG_ADMIN;
4066   }
4067 < #line 4192 "conf_parser.c" /* yacc.c:1646  */
4067 > #line 4068 "conf_parser.c" /* yacc.c:1646  */
4068      break;
4069  
4070    case 222:
4071 < #line 1387 "conf_parser.y" /* yacc.c:1646  */
4071 > #line 1263 "conf_parser.y" /* yacc.c:1646  */
4072      {
4073    if (conf_parser_ctx.pass == 2)
4074      block_state.port.value |= OPER_FLAG_GLOBOPS;
4075   }
4076 < #line 4201 "conf_parser.c" /* yacc.c:1646  */
4076 > #line 4077 "conf_parser.c" /* yacc.c:1646  */
4077      break;
4078  
4079    case 223:
4080 < #line 1391 "conf_parser.y" /* yacc.c:1646  */
4080 > #line 1267 "conf_parser.y" /* yacc.c:1646  */
4081      {
4082    if (conf_parser_ctx.pass == 2)
4083      block_state.port.value |= OPER_FLAG_WALLOPS;
4084   }
4085 < #line 4210 "conf_parser.c" /* yacc.c:1646  */
4085 > #line 4086 "conf_parser.c" /* yacc.c:1646  */
4086      break;
4087  
4088    case 224:
4089 < #line 1395 "conf_parser.y" /* yacc.c:1646  */
4089 > #line 1271 "conf_parser.y" /* yacc.c:1646  */
4090      {
4091    if (conf_parser_ctx.pass == 2)
4092      block_state.port.value |= OPER_FLAG_LOCOPS;
4093   }
4094 < #line 4219 "conf_parser.c" /* yacc.c:1646  */
4094 > #line 4095 "conf_parser.c" /* yacc.c:1646  */
4095      break;
4096  
4097    case 225:
4098 < #line 1399 "conf_parser.y" /* yacc.c:1646  */
4098 > #line 1275 "conf_parser.y" /* yacc.c:1646  */
4099      {
4100    if (conf_parser_ctx.pass == 2)
4101      block_state.port.value |= OPER_FLAG_REMOTEBAN;
4102   }
4103 < #line 4228 "conf_parser.c" /* yacc.c:1646  */
4103 > #line 4104 "conf_parser.c" /* yacc.c:1646  */
4104      break;
4105  
4106    case 226:
4107 < #line 1403 "conf_parser.y" /* yacc.c:1646  */
4107 > #line 1279 "conf_parser.y" /* yacc.c:1646  */
4108      {
4109    if (conf_parser_ctx.pass == 2)
4110      block_state.port.value |= OPER_FLAG_SET;
4111   }
4112 < #line 4237 "conf_parser.c" /* yacc.c:1646  */
4112 > #line 4113 "conf_parser.c" /* yacc.c:1646  */
4113      break;
4114  
4115    case 227:
4116 < #line 1407 "conf_parser.y" /* yacc.c:1646  */
4116 > #line 1283 "conf_parser.y" /* yacc.c:1646  */
4117      {
4118    if (conf_parser_ctx.pass == 2)
4119      block_state.port.value |= OPER_FLAG_MODULE;
4120   }
4121 < #line 4246 "conf_parser.c" /* yacc.c:1646  */
4121 > #line 4122 "conf_parser.c" /* yacc.c:1646  */
4122      break;
4123  
4124    case 228:
4125 < #line 1411 "conf_parser.y" /* yacc.c:1646  */
4125 > #line 1287 "conf_parser.y" /* yacc.c:1646  */
4126      {
4127    if (conf_parser_ctx.pass == 2)
4128      block_state.port.value |= OPER_FLAG_OPME;
4129   }
4130 < #line 4255 "conf_parser.c" /* yacc.c:1646  */
4130 > #line 4131 "conf_parser.c" /* yacc.c:1646  */
4131      break;
4132  
4133    case 229:
4134 < #line 1415 "conf_parser.y" /* yacc.c:1646  */
4134 > #line 1291 "conf_parser.y" /* yacc.c:1646  */
4135      {
4136    if (conf_parser_ctx.pass == 2)
4137      block_state.port.value |= OPER_FLAG_NICK_RESV;
4138   }
4139 < #line 4264 "conf_parser.c" /* yacc.c:1646  */
4139 > #line 4140 "conf_parser.c" /* yacc.c:1646  */
4140      break;
4141  
4142    case 230:
4143 < #line 1419 "conf_parser.y" /* yacc.c:1646  */
4143 > #line 1295 "conf_parser.y" /* yacc.c:1646  */
4144      {
4145    if (conf_parser_ctx.pass == 2)
4146      block_state.port.value |= OPER_FLAG_JOIN_RESV;
4147   }
4148 < #line 4273 "conf_parser.c" /* yacc.c:1646  */
4148 > #line 4149 "conf_parser.c" /* yacc.c:1646  */
4149      break;
4150  
4151    case 231:
4152 < #line 1423 "conf_parser.y" /* yacc.c:1646  */
4152 > #line 1299 "conf_parser.y" /* yacc.c:1646  */
4153      {
4154    if (conf_parser_ctx.pass == 2)
4155      block_state.port.value |= OPER_FLAG_RESV;
4156   }
4157 < #line 4282 "conf_parser.c" /* yacc.c:1646  */
4157 > #line 4158 "conf_parser.c" /* yacc.c:1646  */
4158      break;
4159  
4160    case 232:
4161 < #line 1427 "conf_parser.y" /* yacc.c:1646  */
4161 > #line 1303 "conf_parser.y" /* yacc.c:1646  */
4162      {
4163    if (conf_parser_ctx.pass == 2)
4164      block_state.port.value |= OPER_FLAG_UNRESV;
4165   }
4166 < #line 4291 "conf_parser.c" /* yacc.c:1646  */
4166 > #line 4167 "conf_parser.c" /* yacc.c:1646  */
4167      break;
4168  
4169    case 233:
4170 < #line 1431 "conf_parser.y" /* yacc.c:1646  */
4170 > #line 1307 "conf_parser.y" /* yacc.c:1646  */
4171      {
4172    if (conf_parser_ctx.pass == 2)
4173      block_state.port.value |= OPER_FLAG_CLOSE;
4174   }
4175 < #line 4300 "conf_parser.c" /* yacc.c:1646  */
4175 > #line 4176 "conf_parser.c" /* yacc.c:1646  */
4176      break;
4177  
4178    case 234:
4179 < #line 1441 "conf_parser.y" /* yacc.c:1646  */
4179 > #line 1317 "conf_parser.y" /* yacc.c:1646  */
4180      {
4181    if (conf_parser_ctx.pass != 1)
4182      break;
# Line 4313 | Line 4189 | yyreduce:
4189    block_state.max_sendq.value = DEFAULT_SENDQ;
4190    block_state.max_recvq.value = DEFAULT_RECVQ;
4191   }
4192 < #line 4317 "conf_parser.c" /* yacc.c:1646  */
4192 > #line 4193 "conf_parser.c" /* yacc.c:1646  */
4193      break;
4194  
4195    case 235:
4196 < #line 1453 "conf_parser.y" /* yacc.c:1646  */
4196 > #line 1329 "conf_parser.y" /* yacc.c:1646  */
4197      {
4198    struct ClassItem *class = NULL;
4199  
# Line 4361 | Line 4237 | yyreduce:
4237    class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4238    class->number_per_cidr = block_state.number_per_cidr.value;
4239   }
4240 < #line 4365 "conf_parser.c" /* yacc.c:1646  */
4240 > #line 4241 "conf_parser.c" /* yacc.c:1646  */
4241      break;
4242  
4243    case 256:
4244 < #line 1517 "conf_parser.y" /* yacc.c:1646  */
4244 > #line 1393 "conf_parser.y" /* yacc.c:1646  */
4245      {
4246    if (conf_parser_ctx.pass == 1)
4247      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4248   }
4249 < #line 4374 "conf_parser.c" /* yacc.c:1646  */
4249 > #line 4250 "conf_parser.c" /* yacc.c:1646  */
4250      break;
4251  
4252    case 257:
4253 < #line 1523 "conf_parser.y" /* yacc.c:1646  */
4253 > #line 1399 "conf_parser.y" /* yacc.c:1646  */
4254      {
4255    if (conf_parser_ctx.pass == 1)
4256      block_state.ping_freq.value = (yyvsp[-1].number);
4257   }
4258 < #line 4383 "conf_parser.c" /* yacc.c:1646  */
4258 > #line 4259 "conf_parser.c" /* yacc.c:1646  */
4259      break;
4260  
4261    case 258:
4262 < #line 1529 "conf_parser.y" /* yacc.c:1646  */
4262 > #line 1405 "conf_parser.y" /* yacc.c:1646  */
4263      {
4264    if (conf_parser_ctx.pass == 1)
4265      block_state.max_perip.value = (yyvsp[-1].number);
4266   }
4267 < #line 4392 "conf_parser.c" /* yacc.c:1646  */
4267 > #line 4268 "conf_parser.c" /* yacc.c:1646  */
4268      break;
4269  
4270    case 259:
4271 < #line 1535 "conf_parser.y" /* yacc.c:1646  */
4271 > #line 1411 "conf_parser.y" /* yacc.c:1646  */
4272      {
4273    if (conf_parser_ctx.pass == 1)
4274      block_state.con_freq.value = (yyvsp[-1].number);
4275   }
4276 < #line 4401 "conf_parser.c" /* yacc.c:1646  */
4276 > #line 4277 "conf_parser.c" /* yacc.c:1646  */
4277      break;
4278  
4279    case 260:
4280 < #line 1541 "conf_parser.y" /* yacc.c:1646  */
4280 > #line 1417 "conf_parser.y" /* yacc.c:1646  */
4281      {
4282    if (conf_parser_ctx.pass == 1)
4283      block_state.max_channels.value = (yyvsp[-1].number);
4284   }
4285 < #line 4410 "conf_parser.c" /* yacc.c:1646  */
4285 > #line 4286 "conf_parser.c" /* yacc.c:1646  */
4286      break;
4287  
4288    case 261:
4289 < #line 1547 "conf_parser.y" /* yacc.c:1646  */
4289 > #line 1423 "conf_parser.y" /* yacc.c:1646  */
4290      {
4291    if (conf_parser_ctx.pass == 1)
4292      block_state.max_total.value = (yyvsp[-1].number);
4293   }
4294 < #line 4419 "conf_parser.c" /* yacc.c:1646  */
4294 > #line 4295 "conf_parser.c" /* yacc.c:1646  */
4295      break;
4296  
4297    case 262:
4298 < #line 1553 "conf_parser.y" /* yacc.c:1646  */
4298 > #line 1429 "conf_parser.y" /* yacc.c:1646  */
4299      {
4300    if (conf_parser_ctx.pass == 1)
4301      block_state.max_global.value = (yyvsp[-1].number);
4302   }
4303 < #line 4428 "conf_parser.c" /* yacc.c:1646  */
4303 > #line 4304 "conf_parser.c" /* yacc.c:1646  */
4304      break;
4305  
4306    case 263:
4307 < #line 1559 "conf_parser.y" /* yacc.c:1646  */
4307 > #line 1435 "conf_parser.y" /* yacc.c:1646  */
4308      {
4309    if (conf_parser_ctx.pass == 1)
4310      block_state.max_local.value = (yyvsp[-1].number);
4311   }
4312 < #line 4437 "conf_parser.c" /* yacc.c:1646  */
4312 > #line 4313 "conf_parser.c" /* yacc.c:1646  */
4313      break;
4314  
4315    case 264:
4316 < #line 1565 "conf_parser.y" /* yacc.c:1646  */
4316 > #line 1441 "conf_parser.y" /* yacc.c:1646  */
4317      {
4318    if (conf_parser_ctx.pass == 1)
4319      block_state.max_ident.value = (yyvsp[-1].number);
4320   }
4321 < #line 4446 "conf_parser.c" /* yacc.c:1646  */
4321 > #line 4322 "conf_parser.c" /* yacc.c:1646  */
4322      break;
4323  
4324    case 265:
4325 < #line 1571 "conf_parser.y" /* yacc.c:1646  */
4325 > #line 1447 "conf_parser.y" /* yacc.c:1646  */
4326      {
4327    if (conf_parser_ctx.pass == 1)
4328      block_state.max_sendq.value = (yyvsp[-1].number);
4329   }
4330 < #line 4455 "conf_parser.c" /* yacc.c:1646  */
4330 > #line 4331 "conf_parser.c" /* yacc.c:1646  */
4331      break;
4332  
4333    case 266:
4334 < #line 1577 "conf_parser.y" /* yacc.c:1646  */
4334 > #line 1453 "conf_parser.y" /* yacc.c:1646  */
4335      {
4336    if (conf_parser_ctx.pass == 1)
4337      if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4338        block_state.max_recvq.value = (yyvsp[-1].number);
4339   }
4340 < #line 4465 "conf_parser.c" /* yacc.c:1646  */
4340 > #line 4341 "conf_parser.c" /* yacc.c:1646  */
4341      break;
4342  
4343    case 267:
4344 < #line 1584 "conf_parser.y" /* yacc.c:1646  */
4344 > #line 1460 "conf_parser.y" /* yacc.c:1646  */
4345      {
4346    if (conf_parser_ctx.pass == 1)
4347      block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4348   }
4349 < #line 4474 "conf_parser.c" /* yacc.c:1646  */
4349 > #line 4350 "conf_parser.c" /* yacc.c:1646  */
4350      break;
4351  
4352    case 268:
4353 < #line 1590 "conf_parser.y" /* yacc.c:1646  */
4353 > #line 1466 "conf_parser.y" /* yacc.c:1646  */
4354      {
4355    if (conf_parser_ctx.pass == 1)
4356      block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4357   }
4358 < #line 4483 "conf_parser.c" /* yacc.c:1646  */
4358 > #line 4359 "conf_parser.c" /* yacc.c:1646  */
4359      break;
4360  
4361    case 269:
4362 < #line 1596 "conf_parser.y" /* yacc.c:1646  */
4362 > #line 1472 "conf_parser.y" /* yacc.c:1646  */
4363      {
4364    if (conf_parser_ctx.pass == 1)
4365      block_state.number_per_cidr.value = (yyvsp[-1].number);
4366   }
4367 < #line 4492 "conf_parser.c" /* yacc.c:1646  */
4367 > #line 4368 "conf_parser.c" /* yacc.c:1646  */
4368      break;
4369  
4370    case 270:
4371 < #line 1602 "conf_parser.y" /* yacc.c:1646  */
4371 > #line 1478 "conf_parser.y" /* yacc.c:1646  */
4372      {
4373    if (conf_parser_ctx.pass != 1)
4374      break;
# Line 4500 | Line 4376 | yyreduce:
4376    block_state.min_idle.value = (yyvsp[-1].number);
4377    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4378   }
4379 < #line 4504 "conf_parser.c" /* yacc.c:1646  */
4379 > #line 4380 "conf_parser.c" /* yacc.c:1646  */
4380      break;
4381  
4382    case 271:
4383 < #line 1611 "conf_parser.y" /* yacc.c:1646  */
4383 > #line 1487 "conf_parser.y" /* yacc.c:1646  */
4384      {
4385    if (conf_parser_ctx.pass != 1)
4386      break;
# Line 4512 | Line 4388 | yyreduce:
4388    block_state.max_idle.value = (yyvsp[-1].number);
4389    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4390   }
4391 < #line 4516 "conf_parser.c" /* yacc.c:1646  */
4391 > #line 4392 "conf_parser.c" /* yacc.c:1646  */
4392      break;
4393  
4394    case 272:
4395 < #line 1620 "conf_parser.y" /* yacc.c:1646  */
4395 > #line 1496 "conf_parser.y" /* yacc.c:1646  */
4396      {
4397    if (conf_parser_ctx.pass == 1)
4398      block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4399   }
4400 < #line 4525 "conf_parser.c" /* yacc.c:1646  */
4400 > #line 4401 "conf_parser.c" /* yacc.c:1646  */
4401      break;
4402  
4403    case 276:
4404 < #line 1627 "conf_parser.y" /* yacc.c:1646  */
4404 > #line 1503 "conf_parser.y" /* yacc.c:1646  */
4405      {
4406    if (conf_parser_ctx.pass == 1)
4407      block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4408   }
4409 < #line 4534 "conf_parser.c" /* yacc.c:1646  */
4409 > #line 4410 "conf_parser.c" /* yacc.c:1646  */
4410      break;
4411  
4412    case 277:
4413 < #line 1631 "conf_parser.y" /* yacc.c:1646  */
4413 > #line 1507 "conf_parser.y" /* yacc.c:1646  */
4414      {
4415    if (conf_parser_ctx.pass == 1)
4416      block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4417   }
4418 < #line 4543 "conf_parser.c" /* yacc.c:1646  */
4418 > #line 4419 "conf_parser.c" /* yacc.c:1646  */
4419      break;
4420  
4421    case 278:
4422 < #line 1641 "conf_parser.y" /* yacc.c:1646  */
4422 > #line 1517 "conf_parser.y" /* yacc.c:1646  */
4423      {
4424    if (conf_parser_ctx.pass == 2)
4425      reset_block_state();
4426   }
4427 < #line 4552 "conf_parser.c" /* yacc.c:1646  */
4427 > #line 4428 "conf_parser.c" /* yacc.c:1646  */
4428      break;
4429  
4430    case 280:
4431 < #line 1647 "conf_parser.y" /* yacc.c:1646  */
4431 > #line 1523 "conf_parser.y" /* yacc.c:1646  */
4432      {
4433    block_state.flags.value = 0;
4434   }
4435 < #line 4560 "conf_parser.c" /* yacc.c:1646  */
4435 > #line 4436 "conf_parser.c" /* yacc.c:1646  */
4436      break;
4437  
4438    case 284:
4439 < #line 1653 "conf_parser.y" /* yacc.c:1646  */
4439 > #line 1529 "conf_parser.y" /* yacc.c:1646  */
4440      {
4441    if (conf_parser_ctx.pass == 2)
4442      block_state.flags.value |= LISTENER_SSL;
4443   }
4444 < #line 4569 "conf_parser.c" /* yacc.c:1646  */
4444 > #line 4445 "conf_parser.c" /* yacc.c:1646  */
4445      break;
4446  
4447    case 285:
4448 < #line 1657 "conf_parser.y" /* yacc.c:1646  */
4448 > #line 1533 "conf_parser.y" /* yacc.c:1646  */
4449      {
4450    if (conf_parser_ctx.pass == 2)
4451      block_state.flags.value |= LISTENER_HIDDEN;
4452   }
4453 < #line 4578 "conf_parser.c" /* yacc.c:1646  */
4453 > #line 4454 "conf_parser.c" /* yacc.c:1646  */
4454      break;
4455  
4456    case 286:
4457 < #line 1661 "conf_parser.y" /* yacc.c:1646  */
4457 > #line 1537 "conf_parser.y" /* yacc.c:1646  */
4458      {
4459    if (conf_parser_ctx.pass == 2)
4460     block_state.flags.value |= LISTENER_SERVER;
4461   }
4462 < #line 4587 "conf_parser.c" /* yacc.c:1646  */
4462 > #line 4463 "conf_parser.c" /* yacc.c:1646  */
4463      break;
4464  
4465    case 294:
4466 < #line 1669 "conf_parser.y" /* yacc.c:1646  */
4466 > #line 1545 "conf_parser.y" /* yacc.c:1646  */
4467      { block_state.flags.value = 0; }
4468 < #line 4593 "conf_parser.c" /* yacc.c:1646  */
4468 > #line 4469 "conf_parser.c" /* yacc.c:1646  */
4469      break;
4470  
4471    case 298:
4472 < #line 1674 "conf_parser.y" /* yacc.c:1646  */
4472 > #line 1550 "conf_parser.y" /* yacc.c:1646  */
4473      {
4474    if (conf_parser_ctx.pass == 2)
4475    {
4476 < #ifndef HAVE_LIBCRYPTO
4476 > #ifndef HAVE_TLS
4477      if (block_state.flags.value & LISTENER_SSL)
4478      {
4479 <      conf_error_report("SSL not available - port closed");
4479 >      conf_error_report("TLS not available - port closed");
4480        break;
4481      }
4482   #endif
4483      listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4484    }
4485   }
4486 < #line 4611 "conf_parser.c" /* yacc.c:1646  */
4486 > #line 4487 "conf_parser.c" /* yacc.c:1646  */
4487      break;
4488  
4489    case 299:
4490 < #line 1687 "conf_parser.y" /* yacc.c:1646  */
4490 > #line 1563 "conf_parser.y" /* yacc.c:1646  */
4491      {
4492    if (conf_parser_ctx.pass == 2)
4493    {
4494 < #ifndef HAVE_LIBCRYPTO
4494 > #ifndef HAVE_TLS
4495      if (block_state.flags.value & LISTENER_SSL)
4496      {
4497 <      conf_error_report("SSL not available - port closed");
4497 >      conf_error_report("TLS not available - port closed");
4498        break;
4499      }
4500   #endif
# Line 4627 | Line 4503 | yyreduce:
4503        listener_add(i, block_state.addr.buf, block_state.flags.value);
4504    }
4505   }
4506 < #line 4631 "conf_parser.c" /* yacc.c:1646  */
4506 > #line 4507 "conf_parser.c" /* yacc.c:1646  */
4507      break;
4508  
4509    case 300:
4510 < #line 1704 "conf_parser.y" /* yacc.c:1646  */
4510 > #line 1580 "conf_parser.y" /* yacc.c:1646  */
4511      {
4512    if (conf_parser_ctx.pass == 2)
4513      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4514   }
4515 < #line 4640 "conf_parser.c" /* yacc.c:1646  */
4515 > #line 4516 "conf_parser.c" /* yacc.c:1646  */
4516      break;
4517  
4518    case 301:
4519 < #line 1710 "conf_parser.y" /* yacc.c:1646  */
4519 > #line 1586 "conf_parser.y" /* yacc.c:1646  */
4520      {
4521    if (conf_parser_ctx.pass == 2)
4522      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4523   }
4524 < #line 4649 "conf_parser.c" /* yacc.c:1646  */
4524 > #line 4525 "conf_parser.c" /* yacc.c:1646  */
4525      break;
4526  
4527    case 302:
4528 < #line 1720 "conf_parser.y" /* yacc.c:1646  */
4528 > #line 1596 "conf_parser.y" /* yacc.c:1646  */
4529      {
4530    if (conf_parser_ctx.pass == 2)
4531      reset_block_state();
4532   }
4533 < #line 4658 "conf_parser.c" /* yacc.c:1646  */
4533 > #line 4534 "conf_parser.c" /* yacc.c:1646  */
4534      break;
4535  
4536    case 303:
4537 < #line 1724 "conf_parser.y" /* yacc.c:1646  */
4537 > #line 1600 "conf_parser.y" /* yacc.c:1646  */
4538      {
4539    dlink_node *node = NULL;
4540  
# Line 4695 | Line 4571 | yyreduce:
4571      add_conf_by_address(CONF_CLIENT, conf);
4572    }
4573   }
4574 < #line 4699 "conf_parser.c" /* yacc.c:1646  */
4574 > #line 4575 "conf_parser.c" /* yacc.c:1646  */
4575      break;
4576  
4577    case 315:
4578 < #line 1773 "conf_parser.y" /* yacc.c:1646  */
4578 > #line 1649 "conf_parser.y" /* yacc.c:1646  */
4579      {
4580    if (conf_parser_ctx.pass == 2)
4581      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4582   }
4583 < #line 4708 "conf_parser.c" /* yacc.c:1646  */
4583 > #line 4584 "conf_parser.c" /* yacc.c:1646  */
4584      break;
4585  
4586    case 316:
4587 < #line 1779 "conf_parser.y" /* yacc.c:1646  */
4587 > #line 1655 "conf_parser.y" /* yacc.c:1646  */
4588      {
4589    if (conf_parser_ctx.pass == 2)
4590      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4591   }
4592 < #line 4717 "conf_parser.c" /* yacc.c:1646  */
4592 > #line 4593 "conf_parser.c" /* yacc.c:1646  */
4593      break;
4594  
4595    case 317:
4596 < #line 1785 "conf_parser.y" /* yacc.c:1646  */
4596 > #line 1661 "conf_parser.y" /* yacc.c:1646  */
4597      {
4598    if (conf_parser_ctx.pass == 2)
4599      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4600   }
4601 < #line 4726 "conf_parser.c" /* yacc.c:1646  */
4601 > #line 4602 "conf_parser.c" /* yacc.c:1646  */
4602      break;
4603  
4604    case 318:
4605 < #line 1791 "conf_parser.y" /* yacc.c:1646  */
4605 > #line 1667 "conf_parser.y" /* yacc.c:1646  */
4606      {
4607    if (conf_parser_ctx.pass == 2)
4608    {
# Line 4736 | Line 4612 | yyreduce:
4612        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4613    }
4614   }
4615 < #line 4740 "conf_parser.c" /* yacc.c:1646  */
4615 > #line 4616 "conf_parser.c" /* yacc.c:1646  */
4616      break;
4617  
4618    case 319:
4619 < #line 1802 "conf_parser.y" /* yacc.c:1646  */
4619 > #line 1678 "conf_parser.y" /* yacc.c:1646  */
4620      {
4621    if (conf_parser_ctx.pass == 2)
4622      block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4623   }
4624 < #line 4749 "conf_parser.c" /* yacc.c:1646  */
4624 > #line 4625 "conf_parser.c" /* yacc.c:1646  */
4625      break;
4626  
4627    case 323:
4628 < #line 1809 "conf_parser.y" /* yacc.c:1646  */
4628 > #line 1685 "conf_parser.y" /* yacc.c:1646  */
4629      {
4630    if (conf_parser_ctx.pass == 2)
4631      block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4632   }
4633 < #line 4758 "conf_parser.c" /* yacc.c:1646  */
4633 > #line 4634 "conf_parser.c" /* yacc.c:1646  */
4634      break;
4635  
4636    case 324:
4637 < #line 1813 "conf_parser.y" /* yacc.c:1646  */
4637 > #line 1689 "conf_parser.y" /* yacc.c:1646  */
4638      {
4639    if (conf_parser_ctx.pass == 2)
4640      block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4641   }
4642 < #line 4767 "conf_parser.c" /* yacc.c:1646  */
4642 > #line 4643 "conf_parser.c" /* yacc.c:1646  */
4643      break;
4644  
4645    case 325:
4646 < #line 1817 "conf_parser.y" /* yacc.c:1646  */
4646 > #line 1693 "conf_parser.y" /* yacc.c:1646  */
4647      {
4648    if (conf_parser_ctx.pass == 2)
4649      block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4650   }
4651 < #line 4776 "conf_parser.c" /* yacc.c:1646  */
4651 > #line 4652 "conf_parser.c" /* yacc.c:1646  */
4652      break;
4653  
4654    case 326:
4655 < #line 1821 "conf_parser.y" /* yacc.c:1646  */
4655 > #line 1697 "conf_parser.y" /* yacc.c:1646  */
4656      {
4657    if (conf_parser_ctx.pass == 2)
4658      block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4659   }
4660 < #line 4785 "conf_parser.c" /* yacc.c:1646  */
4660 > #line 4661 "conf_parser.c" /* yacc.c:1646  */
4661      break;
4662  
4663    case 327:
4664 < #line 1825 "conf_parser.y" /* yacc.c:1646  */
4664 > #line 1701 "conf_parser.y" /* yacc.c:1646  */
4665      {
4666    if (conf_parser_ctx.pass == 2)
4667      block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4668   }
4669 < #line 4794 "conf_parser.c" /* yacc.c:1646  */
4669 > #line 4670 "conf_parser.c" /* yacc.c:1646  */
4670      break;
4671  
4672    case 328:
4673 < #line 1829 "conf_parser.y" /* yacc.c:1646  */
4673 > #line 1705 "conf_parser.y" /* yacc.c:1646  */
4674      {
4675    if (conf_parser_ctx.pass == 2)
4676      block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4677   }
4678 < #line 4803 "conf_parser.c" /* yacc.c:1646  */
4678 > #line 4679 "conf_parser.c" /* yacc.c:1646  */
4679      break;
4680  
4681    case 329:
4682 < #line 1833 "conf_parser.y" /* yacc.c:1646  */
4682 > #line 1709 "conf_parser.y" /* yacc.c:1646  */
4683      {
4684    if (conf_parser_ctx.pass == 2)
4685      block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4686   }
4687 < #line 4812 "conf_parser.c" /* yacc.c:1646  */
4687 > #line 4688 "conf_parser.c" /* yacc.c:1646  */
4688      break;
4689  
4690    case 330:
4691 < #line 1837 "conf_parser.y" /* yacc.c:1646  */
4691 > #line 1713 "conf_parser.y" /* yacc.c:1646  */
4692      {
4693    if (conf_parser_ctx.pass == 2)
4694      block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4695   }
4696 < #line 4821 "conf_parser.c" /* yacc.c:1646  */
4696 > #line 4697 "conf_parser.c" /* yacc.c:1646  */
4697      break;
4698  
4699    case 331:
4700 < #line 1841 "conf_parser.y" /* yacc.c:1646  */
4700 > #line 1717 "conf_parser.y" /* yacc.c:1646  */
4701      {
4702    if (conf_parser_ctx.pass == 2)
4703      block_state.flags.value |= CONF_FLAGS_WEBIRC;
4704   }
4705 < #line 4830 "conf_parser.c" /* yacc.c:1646  */
4705 > #line 4706 "conf_parser.c" /* yacc.c:1646  */
4706      break;
4707  
4708    case 332:
4709 < #line 1845 "conf_parser.y" /* yacc.c:1646  */
4709 > #line 1721 "conf_parser.y" /* yacc.c:1646  */
4710      {
4711    if (conf_parser_ctx.pass == 2)
4712      block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4713   }
4714 < #line 4839 "conf_parser.c" /* yacc.c:1646  */
4714 > #line 4715 "conf_parser.c" /* yacc.c:1646  */
4715      break;
4716  
4717    case 333:
4718 < #line 1851 "conf_parser.y" /* yacc.c:1646  */
4718 > #line 1727 "conf_parser.y" /* yacc.c:1646  */
4719      {
4720    if (conf_parser_ctx.pass != 2)
4721      break;
# Line 4852 | Line 4728 | yyreduce:
4728    else
4729      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4730   }
4731 < #line 4856 "conf_parser.c" /* yacc.c:1646  */
4731 > #line 4732 "conf_parser.c" /* yacc.c:1646  */
4732      break;
4733  
4734    case 334:
4735 < #line 1865 "conf_parser.y" /* yacc.c:1646  */
4735 > #line 1741 "conf_parser.y" /* yacc.c:1646  */
4736      {
4737    if (conf_parser_ctx.pass != 2)
4738      break;
# Line 4864 | Line 4740 | yyreduce:
4740    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4741    block_state.flags.value |= CONF_FLAGS_REDIR;
4742   }
4743 < #line 4868 "conf_parser.c" /* yacc.c:1646  */
4743 > #line 4744 "conf_parser.c" /* yacc.c:1646  */
4744      break;
4745  
4746    case 335:
4747 < #line 1874 "conf_parser.y" /* yacc.c:1646  */
4747 > #line 1750 "conf_parser.y" /* yacc.c:1646  */
4748      {
4749    if (conf_parser_ctx.pass != 2)
4750      break;
# Line 4876 | Line 4752 | yyreduce:
4752    block_state.flags.value |= CONF_FLAGS_REDIR;
4753    block_state.port.value = (yyvsp[-1].number);
4754   }
4755 < #line 4880 "conf_parser.c" /* yacc.c:1646  */
4755 > #line 4756 "conf_parser.c" /* yacc.c:1646  */
4756      break;
4757  
4758    case 336:
4759 < #line 1887 "conf_parser.y" /* yacc.c:1646  */
4759 > #line 1763 "conf_parser.y" /* yacc.c:1646  */
4760      {
4761    if (conf_parser_ctx.pass != 2)
4762      break;
# Line 4888 | Line 4764 | yyreduce:
4764    reset_block_state();
4765    strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4766   }
4767 < #line 4892 "conf_parser.c" /* yacc.c:1646  */
4767 > #line 4768 "conf_parser.c" /* yacc.c:1646  */
4768      break;
4769  
4770    case 337:
4771 < #line 1894 "conf_parser.y" /* yacc.c:1646  */
4771 > #line 1770 "conf_parser.y" /* yacc.c:1646  */
4772      {
4773    if (conf_parser_ctx.pass != 2)
4774      break;
4775  
4776    create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4777   }
4778 < #line 4903 "conf_parser.c" /* yacc.c:1646  */
4778 > #line 4779 "conf_parser.c" /* yacc.c:1646  */
4779      break;
4780  
4781    case 344:
4782 < #line 1905 "conf_parser.y" /* yacc.c:1646  */
4782 > #line 1781 "conf_parser.y" /* yacc.c:1646  */
4783      {
4784    if (conf_parser_ctx.pass == 2)
4785      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4786   }
4787 < #line 4912 "conf_parser.c" /* yacc.c:1646  */
4787 > #line 4788 "conf_parser.c" /* yacc.c:1646  */
4788      break;
4789  
4790    case 345:
4791 < #line 1911 "conf_parser.y" /* yacc.c:1646  */
4791 > #line 1787 "conf_parser.y" /* yacc.c:1646  */
4792      {
4793    if (conf_parser_ctx.pass == 2)
4794      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4795   }
4796 < #line 4921 "conf_parser.c" /* yacc.c:1646  */
4796 > #line 4797 "conf_parser.c" /* yacc.c:1646  */
4797      break;
4798  
4799    case 346:
4800 < #line 1917 "conf_parser.y" /* yacc.c:1646  */
4800 > #line 1793 "conf_parser.y" /* yacc.c:1646  */
4801      {
4802    if (conf_parser_ctx.pass == 2)
4803      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4804   }
4805 < #line 4930 "conf_parser.c" /* yacc.c:1646  */
4805 > #line 4806 "conf_parser.c" /* yacc.c:1646  */
4806      break;
4807  
4808    case 352:
4809 < #line 1932 "conf_parser.y" /* yacc.c:1646  */
4809 > #line 1808 "conf_parser.y" /* yacc.c:1646  */
4810      {
4811    if (conf_parser_ctx.pass != 2)
4812      break;
# Line 4941 | Line 4817 | yyreduce:
4817      conf->name = xstrdup(yylval.string);
4818    }
4819   }
4820 < #line 4945 "conf_parser.c" /* yacc.c:1646  */
4820 > #line 4821 "conf_parser.c" /* yacc.c:1646  */
4821      break;
4822  
4823    case 353:
4824 < #line 1948 "conf_parser.y" /* yacc.c:1646  */
4824 > #line 1824 "conf_parser.y" /* yacc.c:1646  */
4825      {
4826    if (conf_parser_ctx.pass != 2)
4827      break;
# Line 4957 | Line 4833 | yyreduce:
4833    strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4834    block_state.flags.value = SHARED_ALL;
4835   }
4836 < #line 4961 "conf_parser.c" /* yacc.c:1646  */
4836 > #line 4837 "conf_parser.c" /* yacc.c:1646  */
4837      break;
4838  
4839    case 354:
4840 < #line 1959 "conf_parser.y" /* yacc.c:1646  */
4840 > #line 1835 "conf_parser.y" /* yacc.c:1646  */
4841      {
4842    struct MaskItem *conf = NULL;
4843  
# Line 4974 | Line 4850 | yyreduce:
4850    conf->user = xstrdup(block_state.user.buf);
4851    conf->host = xstrdup(block_state.host.buf);
4852   }
4853 < #line 4978 "conf_parser.c" /* yacc.c:1646  */
4853 > #line 4854 "conf_parser.c" /* yacc.c:1646  */
4854      break;
4855  
4856    case 361:
4857 < #line 1976 "conf_parser.y" /* yacc.c:1646  */
4857 > #line 1852 "conf_parser.y" /* yacc.c:1646  */
4858      {
4859    if (conf_parser_ctx.pass == 2)
4860      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4861   }
4862 < #line 4987 "conf_parser.c" /* yacc.c:1646  */
4862 > #line 4863 "conf_parser.c" /* yacc.c:1646  */
4863      break;
4864  
4865    case 362:
4866 < #line 1982 "conf_parser.y" /* yacc.c:1646  */
4866 > #line 1858 "conf_parser.y" /* yacc.c:1646  */
4867      {
4868    if (conf_parser_ctx.pass == 2)
4869    {
# Line 5005 | Line 4881 | yyreduce:
4881      split_nuh(&nuh);
4882    }
4883   }
4884 < #line 5009 "conf_parser.c" /* yacc.c:1646  */
4884 > #line 4885 "conf_parser.c" /* yacc.c:1646  */
4885      break;
4886  
4887    case 363:
4888 < #line 2001 "conf_parser.y" /* yacc.c:1646  */
4888 > #line 1877 "conf_parser.y" /* yacc.c:1646  */
4889      {
4890    if (conf_parser_ctx.pass == 2)
4891      block_state.flags.value = 0;
4892   }
4893 < #line 5018 "conf_parser.c" /* yacc.c:1646  */
4893 > #line 4894 "conf_parser.c" /* yacc.c:1646  */
4894      break;
4895  
4896    case 367:
4897 < #line 2008 "conf_parser.y" /* yacc.c:1646  */
4897 > #line 1884 "conf_parser.y" /* yacc.c:1646  */
4898      {
4899    if (conf_parser_ctx.pass == 2)
4900      block_state.flags.value |= SHARED_KLINE;
4901   }
4902 < #line 5027 "conf_parser.c" /* yacc.c:1646  */
4902 > #line 4903 "conf_parser.c" /* yacc.c:1646  */
4903      break;
4904  
4905    case 368:
4906 < #line 2012 "conf_parser.y" /* yacc.c:1646  */
4906 > #line 1888 "conf_parser.y" /* yacc.c:1646  */
4907      {
4908    if (conf_parser_ctx.pass == 2)
4909      block_state.flags.value |= SHARED_UNKLINE;
4910   }
4911 < #line 5036 "conf_parser.c" /* yacc.c:1646  */
4911 > #line 4912 "conf_parser.c" /* yacc.c:1646  */
4912      break;
4913  
4914    case 369:
4915 < #line 2016 "conf_parser.y" /* yacc.c:1646  */
4915 > #line 1892 "conf_parser.y" /* yacc.c:1646  */
4916      {
4917    if (conf_parser_ctx.pass == 2)
4918      block_state.flags.value |= SHARED_DLINE;
4919   }
4920 < #line 5045 "conf_parser.c" /* yacc.c:1646  */
4920 > #line 4921 "conf_parser.c" /* yacc.c:1646  */
4921      break;
4922  
4923    case 370:
4924 < #line 2020 "conf_parser.y" /* yacc.c:1646  */
4924 > #line 1896 "conf_parser.y" /* yacc.c:1646  */
4925      {
4926    if (conf_parser_ctx.pass == 2)
4927      block_state.flags.value |= SHARED_UNDLINE;
4928   }
4929 < #line 5054 "conf_parser.c" /* yacc.c:1646  */
4929 > #line 4930 "conf_parser.c" /* yacc.c:1646  */
4930      break;
4931  
4932    case 371:
4933 < #line 2024 "conf_parser.y" /* yacc.c:1646  */
4933 > #line 1900 "conf_parser.y" /* yacc.c:1646  */
4934      {
4935    if (conf_parser_ctx.pass == 2)
4936      block_state.flags.value |= SHARED_XLINE;
4937   }
4938 < #line 5063 "conf_parser.c" /* yacc.c:1646  */
4938 > #line 4939 "conf_parser.c" /* yacc.c:1646  */
4939      break;
4940  
4941    case 372:
4942 < #line 2028 "conf_parser.y" /* yacc.c:1646  */
4942 > #line 1904 "conf_parser.y" /* yacc.c:1646  */
4943      {
4944    if (conf_parser_ctx.pass == 2)
4945      block_state.flags.value |= SHARED_UNXLINE;
4946   }
4947 < #line 5072 "conf_parser.c" /* yacc.c:1646  */
4947 > #line 4948 "conf_parser.c" /* yacc.c:1646  */
4948      break;
4949  
4950    case 373:
4951 < #line 2032 "conf_parser.y" /* yacc.c:1646  */
4951 > #line 1908 "conf_parser.y" /* yacc.c:1646  */
4952      {
4953    if (conf_parser_ctx.pass == 2)
4954      block_state.flags.value |= SHARED_RESV;
4955   }
4956 < #line 5081 "conf_parser.c" /* yacc.c:1646  */
4956 > #line 4957 "conf_parser.c" /* yacc.c:1646  */
4957      break;
4958  
4959    case 374:
4960 < #line 2036 "conf_parser.y" /* yacc.c:1646  */
4960 > #line 1912 "conf_parser.y" /* yacc.c:1646  */
4961      {
4962    if (conf_parser_ctx.pass == 2)
4963      block_state.flags.value |= SHARED_UNRESV;
4964   }
4965 < #line 5090 "conf_parser.c" /* yacc.c:1646  */
4965 > #line 4966 "conf_parser.c" /* yacc.c:1646  */
4966      break;
4967  
4968    case 375:
4969 < #line 2040 "conf_parser.y" /* yacc.c:1646  */
4969 > #line 1916 "conf_parser.y" /* yacc.c:1646  */
4970      {
4971    if (conf_parser_ctx.pass == 2)
4972      block_state.flags.value |= SHARED_LOCOPS;
4973   }
4974 < #line 5099 "conf_parser.c" /* yacc.c:1646  */
4974 > #line 4975 "conf_parser.c" /* yacc.c:1646  */
4975      break;
4976  
4977    case 376:
4978 < #line 2044 "conf_parser.y" /* yacc.c:1646  */
4978 > #line 1920 "conf_parser.y" /* yacc.c:1646  */
4979      {
4980    if (conf_parser_ctx.pass == 2)
4981      block_state.flags.value = SHARED_ALL;
4982   }
4983 < #line 5108 "conf_parser.c" /* yacc.c:1646  */
4983 > #line 4984 "conf_parser.c" /* yacc.c:1646  */
4984      break;
4985  
4986    case 377:
4987 < #line 2054 "conf_parser.y" /* yacc.c:1646  */
4987 > #line 1930 "conf_parser.y" /* yacc.c:1646  */
4988      {
4989    if (conf_parser_ctx.pass != 2)
4990      break;
# Line 5118 | Line 4994 | yyreduce:
4994    strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4995    block_state.flags.value = SHARED_ALL;
4996   }
4997 < #line 5122 "conf_parser.c" /* yacc.c:1646  */
4997 > #line 4998 "conf_parser.c" /* yacc.c:1646  */
4998      break;
4999  
5000    case 378:
5001 < #line 2063 "conf_parser.y" /* yacc.c:1646  */
5001 > #line 1939 "conf_parser.y" /* yacc.c:1646  */
5002      {
5003    struct MaskItem *conf = NULL;
5004  
# Line 5133 | Line 5009 | yyreduce:
5009    conf->flags = block_state.flags.value;
5010    conf->name = xstrdup(block_state.name.buf);
5011   }
5012 < #line 5137 "conf_parser.c" /* yacc.c:1646  */
5012 > #line 5013 "conf_parser.c" /* yacc.c:1646  */
5013      break;
5014  
5015    case 384:
5016 < #line 2078 "conf_parser.y" /* yacc.c:1646  */
5016 > #line 1954 "conf_parser.y" /* yacc.c:1646  */
5017      {
5018    if (conf_parser_ctx.pass == 2)
5019      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5020   }
5021 < #line 5146 "conf_parser.c" /* yacc.c:1646  */
5021 > #line 5022 "conf_parser.c" /* yacc.c:1646  */
5022      break;
5023  
5024    case 385:
5025 < #line 2084 "conf_parser.y" /* yacc.c:1646  */
5025 > #line 1960 "conf_parser.y" /* yacc.c:1646  */
5026      {
5027    if (conf_parser_ctx.pass == 2)
5028      block_state.flags.value = 0;
5029   }
5030 < #line 5155 "conf_parser.c" /* yacc.c:1646  */
5030 > #line 5031 "conf_parser.c" /* yacc.c:1646  */
5031      break;
5032  
5033    case 389:
5034 < #line 2091 "conf_parser.y" /* yacc.c:1646  */
5034 > #line 1967 "conf_parser.y" /* yacc.c:1646  */
5035      {
5036    if (conf_parser_ctx.pass == 2)
5037      block_state.flags.value |= SHARED_KLINE;
5038   }
5039 < #line 5164 "conf_parser.c" /* yacc.c:1646  */
5039 > #line 5040 "conf_parser.c" /* yacc.c:1646  */
5040      break;
5041  
5042    case 390:
5043 < #line 2095 "conf_parser.y" /* yacc.c:1646  */
5043 > #line 1971 "conf_parser.y" /* yacc.c:1646  */
5044      {
5045    if (conf_parser_ctx.pass == 2)
5046      block_state.flags.value |= SHARED_UNKLINE;
5047   }
5048 < #line 5173 "conf_parser.c" /* yacc.c:1646  */
5048 > #line 5049 "conf_parser.c" /* yacc.c:1646  */
5049      break;
5050  
5051    case 391:
5052 < #line 2099 "conf_parser.y" /* yacc.c:1646  */
5052 > #line 1975 "conf_parser.y" /* yacc.c:1646  */
5053      {
5054    if (conf_parser_ctx.pass == 2)
5055      block_state.flags.value |= SHARED_DLINE;
5056   }
5057 < #line 5182 "conf_parser.c" /* yacc.c:1646  */
5057 > #line 5058 "conf_parser.c" /* yacc.c:1646  */
5058      break;
5059  
5060    case 392:
5061 < #line 2103 "conf_parser.y" /* yacc.c:1646  */
5061 > #line 1979 "conf_parser.y" /* yacc.c:1646  */
5062      {
5063    if (conf_parser_ctx.pass == 2)
5064      block_state.flags.value |= SHARED_UNDLINE;
5065   }
5066 < #line 5191 "conf_parser.c" /* yacc.c:1646  */
5066 > #line 5067 "conf_parser.c" /* yacc.c:1646  */
5067      break;
5068  
5069    case 393:
5070 < #line 2107 "conf_parser.y" /* yacc.c:1646  */
5070 > #line 1983 "conf_parser.y" /* yacc.c:1646  */
5071      {
5072    if (conf_parser_ctx.pass == 2)
5073      block_state.flags.value |= SHARED_XLINE;
5074   }
5075 < #line 5200 "conf_parser.c" /* yacc.c:1646  */
5075 > #line 5076 "conf_parser.c" /* yacc.c:1646  */
5076      break;
5077  
5078    case 394:
5079 < #line 2111 "conf_parser.y" /* yacc.c:1646  */
5079 > #line 1987 "conf_parser.y" /* yacc.c:1646  */
5080      {
5081    if (conf_parser_ctx.pass == 2)
5082      block_state.flags.value |= SHARED_UNXLINE;
5083   }
5084 < #line 5209 "conf_parser.c" /* yacc.c:1646  */
5084 > #line 5085 "conf_parser.c" /* yacc.c:1646  */
5085      break;
5086  
5087    case 395:
5088 < #line 2115 "conf_parser.y" /* yacc.c:1646  */
5088 > #line 1991 "conf_parser.y" /* yacc.c:1646  */
5089      {
5090    if (conf_parser_ctx.pass == 2)
5091      block_state.flags.value |= SHARED_RESV;
5092   }
5093 < #line 5218 "conf_parser.c" /* yacc.c:1646  */
5093 > #line 5094 "conf_parser.c" /* yacc.c:1646  */
5094      break;
5095  
5096    case 396:
5097 < #line 2119 "conf_parser.y" /* yacc.c:1646  */
5097 > #line 1995 "conf_parser.y" /* yacc.c:1646  */
5098      {
5099    if (conf_parser_ctx.pass == 2)
5100      block_state.flags.value |= SHARED_UNRESV;
5101   }
5102 < #line 5227 "conf_parser.c" /* yacc.c:1646  */
5102 > #line 5103 "conf_parser.c" /* yacc.c:1646  */
5103      break;
5104  
5105    case 397:
5106 < #line 2123 "conf_parser.y" /* yacc.c:1646  */
5106 > #line 1999 "conf_parser.y" /* yacc.c:1646  */
5107      {
5108    if (conf_parser_ctx.pass == 2)
5109      block_state.flags.value |= SHARED_LOCOPS;
5110   }
5111 < #line 5236 "conf_parser.c" /* yacc.c:1646  */
5111 > #line 5112 "conf_parser.c" /* yacc.c:1646  */
5112      break;
5113  
5114    case 398:
5115 < #line 2127 "conf_parser.y" /* yacc.c:1646  */
5115 > #line 2003 "conf_parser.y" /* yacc.c:1646  */
5116      {
5117    if (conf_parser_ctx.pass == 2)
5118      block_state.flags.value = SHARED_ALL;
5119   }
5120 < #line 5245 "conf_parser.c" /* yacc.c:1646  */
5120 > #line 5121 "conf_parser.c" /* yacc.c:1646  */
5121      break;
5122  
5123    case 399:
5124 < #line 2137 "conf_parser.y" /* yacc.c:1646  */
5124 > #line 2013 "conf_parser.y" /* yacc.c:1646  */
5125      {
5126  
5127    if (conf_parser_ctx.pass != 2)
# Line 5255 | Line 5131 | yyreduce:
5131    block_state.aftype.value = AF_INET;
5132    block_state.port.value = PORTNUM;
5133   }
5134 < #line 5259 "conf_parser.c" /* yacc.c:1646  */
5134 > #line 5135 "conf_parser.c" /* yacc.c:1646  */
5135      break;
5136  
5137    case 400:
5138 < #line 2146 "conf_parser.y" /* yacc.c:1646  */
5138 > #line 2022 "conf_parser.y" /* yacc.c:1646  */
5139      {
5140    struct MaskItem *conf = NULL;
5141    struct addrinfo hints, *res;
# Line 5321 | Line 5197 | yyreduce:
5197    conf_add_class_to_conf(conf, block_state.class.buf);
5198    lookup_confhost(conf);
5199   }
5200 < #line 5325 "conf_parser.c" /* yacc.c:1646  */
5200 > #line 5201 "conf_parser.c" /* yacc.c:1646  */
5201      break;
5202  
5203    case 418:
5204 < #line 2226 "conf_parser.y" /* yacc.c:1646  */
5204 > #line 2102 "conf_parser.y" /* yacc.c:1646  */
5205      {
5206    if (conf_parser_ctx.pass == 2)
5207      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5208   }
5209 < #line 5334 "conf_parser.c" /* yacc.c:1646  */
5209 > #line 5210 "conf_parser.c" /* yacc.c:1646  */
5210      break;
5211  
5212    case 419:
5213 < #line 2232 "conf_parser.y" /* yacc.c:1646  */
5213 > #line 2108 "conf_parser.y" /* yacc.c:1646  */
5214      {
5215    if (conf_parser_ctx.pass == 2)
5216      strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5217   }
5218 < #line 5343 "conf_parser.c" /* yacc.c:1646  */
5218 > #line 5219 "conf_parser.c" /* yacc.c:1646  */
5219      break;
5220  
5221    case 420:
5222 < #line 2238 "conf_parser.y" /* yacc.c:1646  */
5222 > #line 2114 "conf_parser.y" /* yacc.c:1646  */
5223      {
5224    if (conf_parser_ctx.pass == 2)
5225      strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5226   }
5227 < #line 5352 "conf_parser.c" /* yacc.c:1646  */
5227 > #line 5228 "conf_parser.c" /* yacc.c:1646  */
5228      break;
5229  
5230    case 421:
5231 < #line 2244 "conf_parser.y" /* yacc.c:1646  */
5231 > #line 2120 "conf_parser.y" /* yacc.c:1646  */
5232      {
5233    if (conf_parser_ctx.pass != 2)
5234      break;
# Line 5364 | Line 5240 | yyreduce:
5240    else
5241      strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5242   }
5243 < #line 5368 "conf_parser.c" /* yacc.c:1646  */
5243 > #line 5244 "conf_parser.c" /* yacc.c:1646  */
5244      break;
5245  
5246    case 422:
5247 < #line 2257 "conf_parser.y" /* yacc.c:1646  */
5247 > #line 2133 "conf_parser.y" /* yacc.c:1646  */
5248      {
5249    if (conf_parser_ctx.pass != 2)
5250      break;
# Line 5380 | Line 5256 | yyreduce:
5256    else
5257      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5258   }
5259 < #line 5384 "conf_parser.c" /* yacc.c:1646  */
5259 > #line 5260 "conf_parser.c" /* yacc.c:1646  */
5260      break;
5261  
5262    case 423:
5263 < #line 2270 "conf_parser.y" /* yacc.c:1646  */
5263 > #line 2146 "conf_parser.y" /* yacc.c:1646  */
5264      {
5265    if (conf_parser_ctx.pass == 2)
5266      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5267   }
5268 < #line 5393 "conf_parser.c" /* yacc.c:1646  */
5268 > #line 5269 "conf_parser.c" /* yacc.c:1646  */
5269      break;
5270  
5271    case 424:
5272 < #line 2276 "conf_parser.y" /* yacc.c:1646  */
5272 > #line 2152 "conf_parser.y" /* yacc.c:1646  */
5273      {
5274    if (conf_parser_ctx.pass == 2)
5275      block_state.port.value = (yyvsp[-1].number);
5276   }
5277 < #line 5402 "conf_parser.c" /* yacc.c:1646  */
5277 > #line 5278 "conf_parser.c" /* yacc.c:1646  */
5278      break;
5279  
5280    case 425:
5281 < #line 2282 "conf_parser.y" /* yacc.c:1646  */
5281 > #line 2158 "conf_parser.y" /* yacc.c:1646  */
5282      {
5283    if (conf_parser_ctx.pass == 2)
5284      block_state.aftype.value = AF_INET;
5285   }
5286 < #line 5411 "conf_parser.c" /* yacc.c:1646  */
5286 > #line 5287 "conf_parser.c" /* yacc.c:1646  */
5287      break;
5288  
5289    case 426:
5290 < #line 2286 "conf_parser.y" /* yacc.c:1646  */
5290 > #line 2162 "conf_parser.y" /* yacc.c:1646  */
5291      {
5292    if (conf_parser_ctx.pass == 2)
5293      block_state.aftype.value = AF_INET6;
5294   }
5295 < #line 5420 "conf_parser.c" /* yacc.c:1646  */
5295 > #line 5296 "conf_parser.c" /* yacc.c:1646  */
5296      break;
5297  
5298    case 427:
5299 < #line 2292 "conf_parser.y" /* yacc.c:1646  */
5299 > #line 2168 "conf_parser.y" /* yacc.c:1646  */
5300      {
5301    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5302   }
5303 < #line 5428 "conf_parser.c" /* yacc.c:1646  */
5303 > #line 5304 "conf_parser.c" /* yacc.c:1646  */
5304      break;
5305  
5306    case 431:
5307 < #line 2298 "conf_parser.y" /* yacc.c:1646  */
5307 > #line 2174 "conf_parser.y" /* yacc.c:1646  */
5308      {
5309    if (conf_parser_ctx.pass == 2)
5310      block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5311   }
5312 < #line 5437 "conf_parser.c" /* yacc.c:1646  */
5312 > #line 5313 "conf_parser.c" /* yacc.c:1646  */
5313      break;
5314  
5315    case 432:
5316 < #line 2302 "conf_parser.y" /* yacc.c:1646  */
5316 > #line 2178 "conf_parser.y" /* yacc.c:1646  */
5317      {
5318    if (conf_parser_ctx.pass == 2)
5319      block_state.flags.value |= CONF_FLAGS_SSL;
5320   }
5321 < #line 5446 "conf_parser.c" /* yacc.c:1646  */
5321 > #line 5322 "conf_parser.c" /* yacc.c:1646  */
5322      break;
5323  
5324    case 433:
5325 < #line 2308 "conf_parser.y" /* yacc.c:1646  */
5325 > #line 2184 "conf_parser.y" /* yacc.c:1646  */
5326      {
5327    if (conf_parser_ctx.pass == 2)
5328    {
# Line 5456 | Line 5332 | yyreduce:
5332        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5333    }
5334   }
5335 < #line 5460 "conf_parser.c" /* yacc.c:1646  */
5335 > #line 5336 "conf_parser.c" /* yacc.c:1646  */
5336      break;
5337  
5338    case 434:
5339 < #line 2319 "conf_parser.y" /* yacc.c:1646  */
5339 > #line 2195 "conf_parser.y" /* yacc.c:1646  */
5340      {
5341    if (conf_parser_ctx.pass == 2)
5342      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5343   }
5344 < #line 5469 "conf_parser.c" /* yacc.c:1646  */
5344 > #line 5345 "conf_parser.c" /* yacc.c:1646  */
5345      break;
5346  
5347    case 435:
5348 < #line 2325 "conf_parser.y" /* yacc.c:1646  */
5348 > #line 2201 "conf_parser.y" /* yacc.c:1646  */
5349      {
5350    if (conf_parser_ctx.pass == 2)
5351      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5352   }
5353 < #line 5478 "conf_parser.c" /* yacc.c:1646  */
5353 > #line 5354 "conf_parser.c" /* yacc.c:1646  */
5354      break;
5355  
5356    case 436:
5357 < #line 2331 "conf_parser.y" /* yacc.c:1646  */
5357 > #line 2207 "conf_parser.y" /* yacc.c:1646  */
5358      {
5359    if (conf_parser_ctx.pass == 2)
5360      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5361   }
5362 < #line 5487 "conf_parser.c" /* yacc.c:1646  */
5362 > #line 5363 "conf_parser.c" /* yacc.c:1646  */
5363      break;
5364  
5365    case 437:
5366 < #line 2337 "conf_parser.y" /* yacc.c:1646  */
5366 > #line 2213 "conf_parser.y" /* yacc.c:1646  */
5367      {
5368 < #ifdef HAVE_LIBCRYPTO
5368 > #ifdef HAVE_TLS
5369    if (conf_parser_ctx.pass == 2)
5370      strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5371   #else
5372    if (conf_parser_ctx.pass == 2)
5373 <    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5373 >    conf_error_report("Ignoring connect::ciphers -- no TLS support");
5374   #endif
5375   }
5376 < #line 5501 "conf_parser.c" /* yacc.c:1646  */
5376 > #line 5377 "conf_parser.c" /* yacc.c:1646  */
5377      break;
5378  
5379    case 438:
5380 < #line 2352 "conf_parser.y" /* yacc.c:1646  */
5380 > #line 2228 "conf_parser.y" /* yacc.c:1646  */
5381      {
5382    if (conf_parser_ctx.pass == 2)
5383      reset_block_state();
5384   }
5385 < #line 5510 "conf_parser.c" /* yacc.c:1646  */
5385 > #line 5386 "conf_parser.c" /* yacc.c:1646  */
5386      break;
5387  
5388    case 439:
5389 < #line 2356 "conf_parser.y" /* yacc.c:1646  */
5389 > #line 2232 "conf_parser.y" /* yacc.c:1646  */
5390      {
5391    struct MaskItem *conf = NULL;
5392  
# Line 5531 | Line 5407 | yyreduce:
5407      conf->reason = xstrdup(CONF_NOREASON);
5408    add_conf_by_address(CONF_KLINE, conf);
5409   }
5410 < #line 5535 "conf_parser.c" /* yacc.c:1646  */
5410 > #line 5411 "conf_parser.c" /* yacc.c:1646  */
5411      break;
5412  
5413    case 445:
5414 < #line 2381 "conf_parser.y" /* yacc.c:1646  */
5414 > #line 2257 "conf_parser.y" /* yacc.c:1646  */
5415      {
5416  
5417    if (conf_parser_ctx.pass == 2)
# Line 5554 | Line 5430 | yyreduce:
5430      split_nuh(&nuh);
5431    }
5432   }
5433 < #line 5558 "conf_parser.c" /* yacc.c:1646  */
5433 > #line 5434 "conf_parser.c" /* yacc.c:1646  */
5434      break;
5435  
5436    case 446:
5437 < #line 2401 "conf_parser.y" /* yacc.c:1646  */
5437 > #line 2277 "conf_parser.y" /* yacc.c:1646  */
5438      {
5439    if (conf_parser_ctx.pass == 2)
5440      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5441   }
5442 < #line 5567 "conf_parser.c" /* yacc.c:1646  */
5442 > #line 5443 "conf_parser.c" /* yacc.c:1646  */
5443      break;
5444  
5445    case 447:
5446 < #line 2411 "conf_parser.y" /* yacc.c:1646  */
5446 > #line 2287 "conf_parser.y" /* yacc.c:1646  */
5447      {
5448    if (conf_parser_ctx.pass == 2)
5449      reset_block_state();
5450   }
5451 < #line 5576 "conf_parser.c" /* yacc.c:1646  */
5451 > #line 5452 "conf_parser.c" /* yacc.c:1646  */
5452      break;
5453  
5454    case 448:
5455 < #line 2415 "conf_parser.y" /* yacc.c:1646  */
5455 > #line 2291 "conf_parser.y" /* yacc.c:1646  */
5456      {
5457    struct MaskItem *conf = NULL;
5458  
# Line 5598 | Line 5474 | yyreduce:
5474      add_conf_by_address(CONF_DLINE, conf);
5475    }
5476   }
5477 < #line 5602 "conf_parser.c" /* yacc.c:1646  */
5477 > #line 5478 "conf_parser.c" /* yacc.c:1646  */
5478      break;
5479  
5480    case 454:
5481 < #line 2441 "conf_parser.y" /* yacc.c:1646  */
5481 > #line 2317 "conf_parser.y" /* yacc.c:1646  */
5482      {
5483    if (conf_parser_ctx.pass == 2)
5484      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5485   }
5486 < #line 5611 "conf_parser.c" /* yacc.c:1646  */
5486 > #line 5487 "conf_parser.c" /* yacc.c:1646  */
5487      break;
5488  
5489    case 455:
5490 < #line 2447 "conf_parser.y" /* yacc.c:1646  */
5490 > #line 2323 "conf_parser.y" /* yacc.c:1646  */
5491      {
5492    if (conf_parser_ctx.pass == 2)
5493      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5494   }
5495 < #line 5620 "conf_parser.c" /* yacc.c:1646  */
5495 > #line 5496 "conf_parser.c" /* yacc.c:1646  */
5496      break;
5497  
5498    case 461:
5499 < #line 2462 "conf_parser.y" /* yacc.c:1646  */
5499 > #line 2338 "conf_parser.y" /* yacc.c:1646  */
5500      {
5501    if (conf_parser_ctx.pass == 2)
5502    {
# Line 5633 | Line 5509 | yyreduce:
5509      }
5510    }
5511   }
5512 < #line 5637 "conf_parser.c" /* yacc.c:1646  */
5512 > #line 5513 "conf_parser.c" /* yacc.c:1646  */
5513      break;
5514  
5515    case 462:
5516 < #line 2479 "conf_parser.y" /* yacc.c:1646  */
5516 > #line 2355 "conf_parser.y" /* yacc.c:1646  */
5517      {
5518    if (conf_parser_ctx.pass == 2)
5519      reset_block_state();
5520   }
5521 < #line 5646 "conf_parser.c" /* yacc.c:1646  */
5521 > #line 5522 "conf_parser.c" /* yacc.c:1646  */
5522      break;
5523  
5524    case 463:
5525 < #line 2483 "conf_parser.y" /* yacc.c:1646  */
5525 > #line 2359 "conf_parser.y" /* yacc.c:1646  */
5526      {
5527    struct MaskItem *conf = NULL;
5528  
# Line 5664 | Line 5540 | yyreduce:
5540    else
5541      conf->reason = xstrdup(CONF_NOREASON);
5542   }
5543 < #line 5668 "conf_parser.c" /* yacc.c:1646  */
5543 > #line 5544 "conf_parser.c" /* yacc.c:1646  */
5544      break;
5545  
5546    case 469:
5547 < #line 2505 "conf_parser.y" /* yacc.c:1646  */
5547 > #line 2381 "conf_parser.y" /* yacc.c:1646  */
5548      {
5549    if (conf_parser_ctx.pass == 2)
5550      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5551   }
5552 < #line 5677 "conf_parser.c" /* yacc.c:1646  */
5552 > #line 5553 "conf_parser.c" /* yacc.c:1646  */
5553      break;
5554  
5555    case 470:
5556 < #line 2511 "conf_parser.y" /* yacc.c:1646  */
5556 > #line 2387 "conf_parser.y" /* yacc.c:1646  */
5557      {
5558    if (conf_parser_ctx.pass == 2)
5559      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5560   }
5561 < #line 5686 "conf_parser.c" /* yacc.c:1646  */
5561 > #line 5562 "conf_parser.c" /* yacc.c:1646  */
5562      break;
5563  
5564    case 520:
5565 < #line 2572 "conf_parser.y" /* yacc.c:1646  */
5565 > #line 2448 "conf_parser.y" /* yacc.c:1646  */
5566      {
5567    ConfigGeneral.away_count = (yyvsp[-1].number);
5568   }
5569 < #line 5694 "conf_parser.c" /* yacc.c:1646  */
5569 > #line 5570 "conf_parser.c" /* yacc.c:1646  */
5570      break;
5571  
5572    case 521:
5573 < #line 2577 "conf_parser.y" /* yacc.c:1646  */
5573 > #line 2453 "conf_parser.y" /* yacc.c:1646  */
5574      {
5575    ConfigGeneral.away_time = (yyvsp[-1].number);
5576   }
5577 < #line 5702 "conf_parser.c" /* yacc.c:1646  */
5577 > #line 5578 "conf_parser.c" /* yacc.c:1646  */
5578      break;
5579  
5580    case 522:
5581 < #line 2582 "conf_parser.y" /* yacc.c:1646  */
5581 > #line 2458 "conf_parser.y" /* yacc.c:1646  */
5582      {
5583    ConfigGeneral.max_watch = (yyvsp[-1].number);
5584   }
5585 < #line 5710 "conf_parser.c" /* yacc.c:1646  */
5585 > #line 5586 "conf_parser.c" /* yacc.c:1646  */
5586      break;
5587  
5588    case 523:
5589 < #line 2587 "conf_parser.y" /* yacc.c:1646  */
5589 > #line 2463 "conf_parser.y" /* yacc.c:1646  */
5590      {
5591    if (conf_parser_ctx.pass == 2)
5592      ConfigGeneral.cycle_on_host_change = yylval.number;
5593   }
5594 < #line 5719 "conf_parser.c" /* yacc.c:1646  */
5594 > #line 5595 "conf_parser.c" /* yacc.c:1646  */
5595      break;
5596  
5597    case 524:
5598 < #line 2593 "conf_parser.y" /* yacc.c:1646  */
5598 > #line 2469 "conf_parser.y" /* yacc.c:1646  */
5599      {
5600    ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5601   }
5602 < #line 5727 "conf_parser.c" /* yacc.c:1646  */
5602 > #line 5603 "conf_parser.c" /* yacc.c:1646  */
5603      break;
5604  
5605    case 525:
5606 < #line 2598 "conf_parser.y" /* yacc.c:1646  */
5606 > #line 2474 "conf_parser.y" /* yacc.c:1646  */
5607      {
5608    ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5609   }
5610 < #line 5735 "conf_parser.c" /* yacc.c:1646  */
5610 > #line 5611 "conf_parser.c" /* yacc.c:1646  */
5611      break;
5612  
5613    case 526:
5614 < #line 2603 "conf_parser.y" /* yacc.c:1646  */
5614 > #line 2479 "conf_parser.y" /* yacc.c:1646  */
5615      {
5616    ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5617   }
5618 < #line 5743 "conf_parser.c" /* yacc.c:1646  */
5618 > #line 5619 "conf_parser.c" /* yacc.c:1646  */
5619      break;
5620  
5621    case 527:
5622 < #line 2608 "conf_parser.y" /* yacc.c:1646  */
5622 > #line 2484 "conf_parser.y" /* yacc.c:1646  */
5623      {
5624    ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5625   }
5626 < #line 5751 "conf_parser.c" /* yacc.c:1646  */
5626 > #line 5627 "conf_parser.c" /* yacc.c:1646  */
5627      break;
5628  
5629    case 528:
5630 < #line 2613 "conf_parser.y" /* yacc.c:1646  */
5630 > #line 2489 "conf_parser.y" /* yacc.c:1646  */
5631      {
5632    ConfigGeneral.tkline_expire_notices = yylval.number;
5633   }
5634 < #line 5759 "conf_parser.c" /* yacc.c:1646  */
5634 > #line 5635 "conf_parser.c" /* yacc.c:1646  */
5635      break;
5636  
5637    case 529:
5638 < #line 2618 "conf_parser.y" /* yacc.c:1646  */
5638 > #line 2494 "conf_parser.y" /* yacc.c:1646  */
5639      {
5640    ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5641   }
5642 < #line 5767 "conf_parser.c" /* yacc.c:1646  */
5642 > #line 5643 "conf_parser.c" /* yacc.c:1646  */
5643      break;
5644  
5645    case 530:
5646 < #line 2623 "conf_parser.y" /* yacc.c:1646  */
5646 > #line 2499 "conf_parser.y" /* yacc.c:1646  */
5647      {
5648    ConfigGeneral.ignore_bogus_ts = yylval.number;
5649   }
5650 < #line 5775 "conf_parser.c" /* yacc.c:1646  */
5650 > #line 5651 "conf_parser.c" /* yacc.c:1646  */
5651      break;
5652  
5653    case 531:
5654 < #line 2628 "conf_parser.y" /* yacc.c:1646  */
5654 > #line 2504 "conf_parser.y" /* yacc.c:1646  */
5655      {
5656    ConfigGeneral.failed_oper_notice = yylval.number;
5657   }
5658 < #line 5783 "conf_parser.c" /* yacc.c:1646  */
5658 > #line 5659 "conf_parser.c" /* yacc.c:1646  */
5659      break;
5660  
5661    case 532:
5662 < #line 2633 "conf_parser.y" /* yacc.c:1646  */
5662 > #line 2509 "conf_parser.y" /* yacc.c:1646  */
5663      {
5664    ConfigGeneral.anti_nick_flood = yylval.number;
5665   }
5666 < #line 5791 "conf_parser.c" /* yacc.c:1646  */
5666 > #line 5667 "conf_parser.c" /* yacc.c:1646  */
5667      break;
5668  
5669    case 533:
5670 < #line 2638 "conf_parser.y" /* yacc.c:1646  */
5670 > #line 2514 "conf_parser.y" /* yacc.c:1646  */
5671      {
5672    ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5673   }
5674 < #line 5799 "conf_parser.c" /* yacc.c:1646  */
5674 > #line 5675 "conf_parser.c" /* yacc.c:1646  */
5675      break;
5676  
5677    case 534:
5678 < #line 2643 "conf_parser.y" /* yacc.c:1646  */
5678 > #line 2519 "conf_parser.y" /* yacc.c:1646  */
5679      {
5680    ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5681   }
5682 < #line 5807 "conf_parser.c" /* yacc.c:1646  */
5682 > #line 5683 "conf_parser.c" /* yacc.c:1646  */
5683      break;
5684  
5685    case 535:
5686 < #line 2648 "conf_parser.y" /* yacc.c:1646  */
5686 > #line 2524 "conf_parser.y" /* yacc.c:1646  */
5687      {
5688    ConfigGeneral.max_accept = (yyvsp[-1].number);
5689   }
5690 < #line 5815 "conf_parser.c" /* yacc.c:1646  */
5690 > #line 5691 "conf_parser.c" /* yacc.c:1646  */
5691      break;
5692  
5693    case 536:
5694 < #line 2653 "conf_parser.y" /* yacc.c:1646  */
5694 > #line 2529 "conf_parser.y" /* yacc.c:1646  */
5695      {
5696    ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5697   }
5698 < #line 5823 "conf_parser.c" /* yacc.c:1646  */
5698 > #line 5699 "conf_parser.c" /* yacc.c:1646  */
5699      break;
5700  
5701    case 537:
5702 < #line 2658 "conf_parser.y" /* yacc.c:1646  */
5702 > #line 2534 "conf_parser.y" /* yacc.c:1646  */
5703      {
5704    ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5705   }
5706 < #line 5831 "conf_parser.c" /* yacc.c:1646  */
5706 > #line 5707 "conf_parser.c" /* yacc.c:1646  */
5707      break;
5708  
5709    case 538:
5710 < #line 2663 "conf_parser.y" /* yacc.c:1646  */
5710 > #line 2539 "conf_parser.y" /* yacc.c:1646  */
5711      {
5712    if (conf_parser_ctx.pass == 2)
5713      ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5714   }
5715 < #line 5840 "conf_parser.c" /* yacc.c:1646  */
5715 > #line 5716 "conf_parser.c" /* yacc.c:1646  */
5716      break;
5717  
5718    case 539:
5719 < #line 2669 "conf_parser.y" /* yacc.c:1646  */
5719 > #line 2545 "conf_parser.y" /* yacc.c:1646  */
5720      {
5721    ConfigGeneral.invisible_on_connect = yylval.number;
5722   }
5723 < #line 5848 "conf_parser.c" /* yacc.c:1646  */
5723 > #line 5724 "conf_parser.c" /* yacc.c:1646  */
5724      break;
5725  
5726    case 540:
5727 < #line 2674 "conf_parser.y" /* yacc.c:1646  */
5727 > #line 2550 "conf_parser.y" /* yacc.c:1646  */
5728      {
5729    ConfigGeneral.warn_no_connect_block = yylval.number;
5730   }
5731 < #line 5856 "conf_parser.c" /* yacc.c:1646  */
5731 > #line 5732 "conf_parser.c" /* yacc.c:1646  */
5732      break;
5733  
5734    case 541:
5735 < #line 2679 "conf_parser.y" /* yacc.c:1646  */
5735 > #line 2555 "conf_parser.y" /* yacc.c:1646  */
5736      {
5737    ConfigGeneral.stats_e_disabled = yylval.number;
5738   }
5739 < #line 5864 "conf_parser.c" /* yacc.c:1646  */
5739 > #line 5740 "conf_parser.c" /* yacc.c:1646  */
5740      break;
5741  
5742    case 542:
5743 < #line 2684 "conf_parser.y" /* yacc.c:1646  */
5743 > #line 2560 "conf_parser.y" /* yacc.c:1646  */
5744      {
5745    ConfigGeneral.stats_m_oper_only = yylval.number;
5746   }
5747 < #line 5872 "conf_parser.c" /* yacc.c:1646  */
5747 > #line 5748 "conf_parser.c" /* yacc.c:1646  */
5748      break;
5749  
5750    case 543:
5751 < #line 2689 "conf_parser.y" /* yacc.c:1646  */
5751 > #line 2565 "conf_parser.y" /* yacc.c:1646  */
5752      {
5753    ConfigGeneral.stats_o_oper_only = yylval.number;
5754   }
5755 < #line 5880 "conf_parser.c" /* yacc.c:1646  */
5755 > #line 5756 "conf_parser.c" /* yacc.c:1646  */
5756      break;
5757  
5758    case 544:
5759 < #line 2694 "conf_parser.y" /* yacc.c:1646  */
5759 > #line 2570 "conf_parser.y" /* yacc.c:1646  */
5760      {
5761    ConfigGeneral.stats_P_oper_only = yylval.number;
5762   }
5763 < #line 5888 "conf_parser.c" /* yacc.c:1646  */
5763 > #line 5764 "conf_parser.c" /* yacc.c:1646  */
5764      break;
5765  
5766    case 545:
5767 < #line 2699 "conf_parser.y" /* yacc.c:1646  */
5767 > #line 2575 "conf_parser.y" /* yacc.c:1646  */
5768      {
5769    ConfigGeneral.stats_u_oper_only = yylval.number;
5770   }
5771 < #line 5896 "conf_parser.c" /* yacc.c:1646  */
5771 > #line 5772 "conf_parser.c" /* yacc.c:1646  */
5772      break;
5773  
5774    case 546:
5775 < #line 2704 "conf_parser.y" /* yacc.c:1646  */
5775 > #line 2580 "conf_parser.y" /* yacc.c:1646  */
5776      {
5777    ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5778   }
5779 < #line 5904 "conf_parser.c" /* yacc.c:1646  */
5779 > #line 5780 "conf_parser.c" /* yacc.c:1646  */
5780      break;
5781  
5782    case 547:
5783 < #line 2707 "conf_parser.y" /* yacc.c:1646  */
5783 > #line 2583 "conf_parser.y" /* yacc.c:1646  */
5784      {
5785    ConfigGeneral.stats_k_oper_only = 1;
5786   }
5787 < #line 5912 "conf_parser.c" /* yacc.c:1646  */
5787 > #line 5788 "conf_parser.c" /* yacc.c:1646  */
5788      break;
5789  
5790    case 548:
5791 < #line 2712 "conf_parser.y" /* yacc.c:1646  */
5791 > #line 2588 "conf_parser.y" /* yacc.c:1646  */
5792      {
5793    ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5794   }
5795 < #line 5920 "conf_parser.c" /* yacc.c:1646  */
5795 > #line 5796 "conf_parser.c" /* yacc.c:1646  */
5796      break;
5797  
5798    case 549:
5799 < #line 2715 "conf_parser.y" /* yacc.c:1646  */
5799 > #line 2591 "conf_parser.y" /* yacc.c:1646  */
5800      {
5801    ConfigGeneral.stats_i_oper_only = 1;
5802   }
5803 < #line 5928 "conf_parser.c" /* yacc.c:1646  */
5803 > #line 5804 "conf_parser.c" /* yacc.c:1646  */
5804      break;
5805  
5806    case 550:
5807 < #line 2720 "conf_parser.y" /* yacc.c:1646  */
5807 > #line 2596 "conf_parser.y" /* yacc.c:1646  */
5808      {
5809    ConfigGeneral.pace_wait = (yyvsp[-1].number);
5810   }
5811 < #line 5936 "conf_parser.c" /* yacc.c:1646  */
5811 > #line 5812 "conf_parser.c" /* yacc.c:1646  */
5812      break;
5813  
5814    case 551:
5815 < #line 2725 "conf_parser.y" /* yacc.c:1646  */
5815 > #line 2601 "conf_parser.y" /* yacc.c:1646  */
5816      {
5817    ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5818   }
5819 < #line 5944 "conf_parser.c" /* yacc.c:1646  */
5819 > #line 5820 "conf_parser.c" /* yacc.c:1646  */
5820      break;
5821  
5822    case 552:
5823 < #line 2730 "conf_parser.y" /* yacc.c:1646  */
5823 > #line 2606 "conf_parser.y" /* yacc.c:1646  */
5824      {
5825    ConfigGeneral.opers_bypass_callerid = yylval.number;
5826   }
5827 < #line 5952 "conf_parser.c" /* yacc.c:1646  */
5827 > #line 5828 "conf_parser.c" /* yacc.c:1646  */
5828      break;
5829  
5830    case 553:
5831 < #line 2735 "conf_parser.y" /* yacc.c:1646  */
5831 > #line 2611 "conf_parser.y" /* yacc.c:1646  */
5832      {
5833    ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5834   }
5835 < #line 5960 "conf_parser.c" /* yacc.c:1646  */
5835 > #line 5836 "conf_parser.c" /* yacc.c:1646  */
5836      break;
5837  
5838    case 554:
5839 < #line 2740 "conf_parser.y" /* yacc.c:1646  */
5839 > #line 2616 "conf_parser.y" /* yacc.c:1646  */
5840      {
5841    ConfigGeneral.short_motd = yylval.number;
5842   }
5843 < #line 5968 "conf_parser.c" /* yacc.c:1646  */
5843 > #line 5844 "conf_parser.c" /* yacc.c:1646  */
5844      break;
5845  
5846    case 555:
5847 < #line 2745 "conf_parser.y" /* yacc.c:1646  */
5847 > #line 2621 "conf_parser.y" /* yacc.c:1646  */
5848      {
5849    ConfigGeneral.no_oper_flood = yylval.number;
5850   }
5851 < #line 5976 "conf_parser.c" /* yacc.c:1646  */
5851 > #line 5852 "conf_parser.c" /* yacc.c:1646  */
5852      break;
5853  
5854    case 556:
5855 < #line 2750 "conf_parser.y" /* yacc.c:1646  */
5855 > #line 2626 "conf_parser.y" /* yacc.c:1646  */
5856      {
5857    ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5858   }
5859 < #line 5984 "conf_parser.c" /* yacc.c:1646  */
5859 > #line 5860 "conf_parser.c" /* yacc.c:1646  */
5860      break;
5861  
5862    case 557:
5863 < #line 2755 "conf_parser.y" /* yacc.c:1646  */
5863 > #line 2631 "conf_parser.y" /* yacc.c:1646  */
5864      {
5865    ConfigGeneral.max_targets = (yyvsp[-1].number);
5866   }
5867 < #line 5992 "conf_parser.c" /* yacc.c:1646  */
5867 > #line 5868 "conf_parser.c" /* yacc.c:1646  */
5868      break;
5869  
5870    case 558:
5871 < #line 2760 "conf_parser.y" /* yacc.c:1646  */
5871 > #line 2636 "conf_parser.y" /* yacc.c:1646  */
5872      {
5873    ConfigGeneral.ping_cookie = yylval.number;
5874   }
5875 < #line 6000 "conf_parser.c" /* yacc.c:1646  */
5875 > #line 5876 "conf_parser.c" /* yacc.c:1646  */
5876      break;
5877  
5878    case 559:
5879 < #line 2765 "conf_parser.y" /* yacc.c:1646  */
5879 > #line 2641 "conf_parser.y" /* yacc.c:1646  */
5880      {
5881    ConfigGeneral.disable_auth = yylval.number;
5882   }
5883 < #line 6008 "conf_parser.c" /* yacc.c:1646  */
5883 > #line 5884 "conf_parser.c" /* yacc.c:1646  */
5884      break;
5885  
5886    case 560:
5887 < #line 2770 "conf_parser.y" /* yacc.c:1646  */
5887 > #line 2646 "conf_parser.y" /* yacc.c:1646  */
5888      {
5889    ConfigGeneral.throttle_count = (yyvsp[-1].number);
5890   }
5891 < #line 6016 "conf_parser.c" /* yacc.c:1646  */
5891 > #line 5892 "conf_parser.c" /* yacc.c:1646  */
5892      break;
5893  
5894    case 561:
5895 < #line 2775 "conf_parser.y" /* yacc.c:1646  */
5895 > #line 2651 "conf_parser.y" /* yacc.c:1646  */
5896      {
5897    ConfigGeneral.throttle_time = (yyvsp[-1].number);
5898   }
5899 < #line 6024 "conf_parser.c" /* yacc.c:1646  */
5899 > #line 5900 "conf_parser.c" /* yacc.c:1646  */
5900      break;
5901  
5902    case 562:
5903 < #line 2780 "conf_parser.y" /* yacc.c:1646  */
5903 > #line 2656 "conf_parser.y" /* yacc.c:1646  */
5904      {
5905    ConfigGeneral.oper_umodes = 0;
5906   }
5907 < #line 6032 "conf_parser.c" /* yacc.c:1646  */
5907 > #line 5908 "conf_parser.c" /* yacc.c:1646  */
5908      break;
5909  
5910    case 566:
5911 < #line 2786 "conf_parser.y" /* yacc.c:1646  */
5911 > #line 2662 "conf_parser.y" /* yacc.c:1646  */
5912      {
5913    ConfigGeneral.oper_umodes |= UMODE_BOTS;
5914   }
5915 < #line 6040 "conf_parser.c" /* yacc.c:1646  */
5915 > #line 5916 "conf_parser.c" /* yacc.c:1646  */
5916      break;
5917  
5918    case 567:
5919 < #line 2789 "conf_parser.y" /* yacc.c:1646  */
5919 > #line 2665 "conf_parser.y" /* yacc.c:1646  */
5920      {
5921    ConfigGeneral.oper_umodes |= UMODE_CCONN;
5922   }
5923 < #line 6048 "conf_parser.c" /* yacc.c:1646  */
5923 > #line 5924 "conf_parser.c" /* yacc.c:1646  */
5924      break;
5925  
5926    case 568:
5927 < #line 2792 "conf_parser.y" /* yacc.c:1646  */
5927 > #line 2668 "conf_parser.y" /* yacc.c:1646  */
5928      {
5929    ConfigGeneral.oper_umodes |= UMODE_DEAF;
5930   }
5931 < #line 6056 "conf_parser.c" /* yacc.c:1646  */
5931 > #line 5932 "conf_parser.c" /* yacc.c:1646  */
5932      break;
5933  
5934    case 569:
5935 < #line 2795 "conf_parser.y" /* yacc.c:1646  */
5935 > #line 2671 "conf_parser.y" /* yacc.c:1646  */
5936      {
5937    ConfigGeneral.oper_umodes |= UMODE_DEBUG;
5938   }
5939 < #line 6064 "conf_parser.c" /* yacc.c:1646  */
5939 > #line 5940 "conf_parser.c" /* yacc.c:1646  */
5940      break;
5941  
5942    case 570:
5943 < #line 2798 "conf_parser.y" /* yacc.c:1646  */
5943 > #line 2674 "conf_parser.y" /* yacc.c:1646  */
5944      {
5945    ConfigGeneral.oper_umodes |= UMODE_FULL;
5946   }
5947 < #line 6072 "conf_parser.c" /* yacc.c:1646  */
5947 > #line 5948 "conf_parser.c" /* yacc.c:1646  */
5948      break;
5949  
5950    case 571:
5951 < #line 2801 "conf_parser.y" /* yacc.c:1646  */
5951 > #line 2677 "conf_parser.y" /* yacc.c:1646  */
5952      {
5953    ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
5954   }
5955 < #line 6080 "conf_parser.c" /* yacc.c:1646  */
5955 > #line 5956 "conf_parser.c" /* yacc.c:1646  */
5956      break;
5957  
5958    case 572:
5959 < #line 2804 "conf_parser.y" /* yacc.c:1646  */
5959 > #line 2680 "conf_parser.y" /* yacc.c:1646  */
5960      {
5961    ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
5962   }
5963 < #line 6088 "conf_parser.c" /* yacc.c:1646  */
5963 > #line 5964 "conf_parser.c" /* yacc.c:1646  */
5964      break;
5965  
5966    case 573:
5967 < #line 2807 "conf_parser.y" /* yacc.c:1646  */
5967 > #line 2683 "conf_parser.y" /* yacc.c:1646  */
5968      {
5969    ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
5970   }
5971 < #line 6096 "conf_parser.c" /* yacc.c:1646  */
5971 > #line 5972 "conf_parser.c" /* yacc.c:1646  */
5972      break;
5973  
5974    case 574:
5975 < #line 2810 "conf_parser.y" /* yacc.c:1646  */
5975 > #line 2686 "conf_parser.y" /* yacc.c:1646  */
5976      {
5977    ConfigGeneral.oper_umodes |= UMODE_SKILL;
5978   }
5979 < #line 6104 "conf_parser.c" /* yacc.c:1646  */
5979 > #line 5980 "conf_parser.c" /* yacc.c:1646  */
5980      break;
5981  
5982    case 575:
5983 < #line 2813 "conf_parser.y" /* yacc.c:1646  */
5983 > #line 2689 "conf_parser.y" /* yacc.c:1646  */
5984      {
5985    ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
5986   }
5987 < #line 6112 "conf_parser.c" /* yacc.c:1646  */
5987 > #line 5988 "conf_parser.c" /* yacc.c:1646  */
5988      break;
5989  
5990    case 576:
5991 < #line 2816 "conf_parser.y" /* yacc.c:1646  */
5991 > #line 2692 "conf_parser.y" /* yacc.c:1646  */
5992      {
5993    ConfigGeneral.oper_umodes |= UMODE_REJ;
5994   }
5995 < #line 6120 "conf_parser.c" /* yacc.c:1646  */
5995 > #line 5996 "conf_parser.c" /* yacc.c:1646  */
5996      break;
5997  
5998    case 577:
5999 < #line 2819 "conf_parser.y" /* yacc.c:1646  */
5999 > #line 2695 "conf_parser.y" /* yacc.c:1646  */
6000      {
6001    ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
6002   }
6003 < #line 6128 "conf_parser.c" /* yacc.c:1646  */
6003 > #line 6004 "conf_parser.c" /* yacc.c:1646  */
6004      break;
6005  
6006    case 578:
6007 < #line 2822 "conf_parser.y" /* yacc.c:1646  */
6007 > #line 2698 "conf_parser.y" /* yacc.c:1646  */
6008      {
6009    ConfigGeneral.oper_umodes |= UMODE_SPY;
6010   }
6011 < #line 6136 "conf_parser.c" /* yacc.c:1646  */
6011 > #line 6012 "conf_parser.c" /* yacc.c:1646  */
6012      break;
6013  
6014    case 579:
6015 < #line 2825 "conf_parser.y" /* yacc.c:1646  */
6015 > #line 2701 "conf_parser.y" /* yacc.c:1646  */
6016      {
6017    ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
6018   }
6019 < #line 6144 "conf_parser.c" /* yacc.c:1646  */
6019 > #line 6020 "conf_parser.c" /* yacc.c:1646  */
6020      break;
6021  
6022    case 580:
6023 < #line 2828 "conf_parser.y" /* yacc.c:1646  */
6023 > #line 2704 "conf_parser.y" /* yacc.c:1646  */
6024      {
6025    ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
6026   }
6027 < #line 6152 "conf_parser.c" /* yacc.c:1646  */
6027 > #line 6028 "conf_parser.c" /* yacc.c:1646  */
6028      break;
6029  
6030    case 581:
6031 < #line 2831 "conf_parser.y" /* yacc.c:1646  */
6031 > #line 2707 "conf_parser.y" /* yacc.c:1646  */
6032      {
6033    ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
6034   }
6035 < #line 6160 "conf_parser.c" /* yacc.c:1646  */
6035 > #line 6036 "conf_parser.c" /* yacc.c:1646  */
6036      break;
6037  
6038    case 582:
6039 < #line 2834 "conf_parser.y" /* yacc.c:1646  */
6039 > #line 2710 "conf_parser.y" /* yacc.c:1646  */
6040      {
6041    ConfigGeneral.oper_umodes |= UMODE_WALLOP;
6042   }
6043 < #line 6168 "conf_parser.c" /* yacc.c:1646  */
6043 > #line 6044 "conf_parser.c" /* yacc.c:1646  */
6044      break;
6045  
6046    case 583:
6047 < #line 2837 "conf_parser.y" /* yacc.c:1646  */
6047 > #line 2713 "conf_parser.y" /* yacc.c:1646  */
6048      {
6049    ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
6050   }
6051 < #line 6176 "conf_parser.c" /* yacc.c:1646  */
6051 > #line 6052 "conf_parser.c" /* yacc.c:1646  */
6052      break;
6053  
6054    case 584:
6055 < #line 2840 "conf_parser.y" /* yacc.c:1646  */
6055 > #line 2716 "conf_parser.y" /* yacc.c:1646  */
6056      {
6057    ConfigGeneral.oper_umodes |= UMODE_CALLERID;
6058   }
6059 < #line 6184 "conf_parser.c" /* yacc.c:1646  */
6059 > #line 6060 "conf_parser.c" /* yacc.c:1646  */
6060      break;
6061  
6062    case 585:
6063 < #line 2843 "conf_parser.y" /* yacc.c:1646  */
6063 > #line 2719 "conf_parser.y" /* yacc.c:1646  */
6064      {
6065    ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
6066   }
6067 < #line 6192 "conf_parser.c" /* yacc.c:1646  */
6067 > #line 6068 "conf_parser.c" /* yacc.c:1646  */
6068      break;
6069  
6070    case 586:
6071 < #line 2846 "conf_parser.y" /* yacc.c:1646  */
6071 > #line 2722 "conf_parser.y" /* yacc.c:1646  */
6072      {
6073    ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6074   }
6075 < #line 6200 "conf_parser.c" /* yacc.c:1646  */
6075 > #line 6076 "conf_parser.c" /* yacc.c:1646  */
6076      break;
6077  
6078    case 587:
6079 < #line 2849 "conf_parser.y" /* yacc.c:1646  */
6079 > #line 2725 "conf_parser.y" /* yacc.c:1646  */
6080      {
6081    ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6082   }
6083 < #line 6208 "conf_parser.c" /* yacc.c:1646  */
6083 > #line 6084 "conf_parser.c" /* yacc.c:1646  */
6084      break;
6085  
6086    case 588:
6087 < #line 2854 "conf_parser.y" /* yacc.c:1646  */
6087 > #line 2730 "conf_parser.y" /* yacc.c:1646  */
6088      {
6089    ConfigGeneral.oper_only_umodes = 0;
6090   }
6091 < #line 6216 "conf_parser.c" /* yacc.c:1646  */
6091 > #line 6092 "conf_parser.c" /* yacc.c:1646  */
6092      break;
6093  
6094    case 592:
6095 < #line 2860 "conf_parser.y" /* yacc.c:1646  */
6095 > #line 2736 "conf_parser.y" /* yacc.c:1646  */
6096      {
6097    ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6098   }
6099 < #line 6224 "conf_parser.c" /* yacc.c:1646  */
6099 > #line 6100 "conf_parser.c" /* yacc.c:1646  */
6100      break;
6101  
6102    case 593:
6103 < #line 2863 "conf_parser.y" /* yacc.c:1646  */
6103 > #line 2739 "conf_parser.y" /* yacc.c:1646  */
6104      {
6105    ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6106   }
6107 < #line 6232 "conf_parser.c" /* yacc.c:1646  */
6107 > #line 6108 "conf_parser.c" /* yacc.c:1646  */
6108      break;
6109  
6110    case 594:
6111 < #line 2866 "conf_parser.y" /* yacc.c:1646  */
6111 > #line 2742 "conf_parser.y" /* yacc.c:1646  */
6112      {
6113    ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6114   }
6115 < #line 6240 "conf_parser.c" /* yacc.c:1646  */
6115 > #line 6116 "conf_parser.c" /* yacc.c:1646  */
6116      break;
6117  
6118    case 595:
6119 < #line 2869 "conf_parser.y" /* yacc.c:1646  */
6119 > #line 2745 "conf_parser.y" /* yacc.c:1646  */
6120      {
6121    ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6122   }
6123 < #line 6248 "conf_parser.c" /* yacc.c:1646  */
6123 > #line 6124 "conf_parser.c" /* yacc.c:1646  */
6124      break;
6125  
6126    case 596:
6127 < #line 2872 "conf_parser.y" /* yacc.c:1646  */
6127 > #line 2748 "conf_parser.y" /* yacc.c:1646  */
6128      {
6129    ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6130   }
6131 < #line 6256 "conf_parser.c" /* yacc.c:1646  */
6131 > #line 6132 "conf_parser.c" /* yacc.c:1646  */
6132      break;
6133  
6134    case 597:
6135 < #line 2875 "conf_parser.y" /* yacc.c:1646  */
6135 > #line 2751 "conf_parser.y" /* yacc.c:1646  */
6136      {
6137    ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6138   }
6139 < #line 6264 "conf_parser.c" /* yacc.c:1646  */
6139 > #line 6140 "conf_parser.c" /* yacc.c:1646  */
6140      break;
6141  
6142    case 598:
6143 < #line 2878 "conf_parser.y" /* yacc.c:1646  */
6143 > #line 2754 "conf_parser.y" /* yacc.c:1646  */
6144      {
6145    ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6146   }
6147 < #line 6272 "conf_parser.c" /* yacc.c:1646  */
6147 > #line 6148 "conf_parser.c" /* yacc.c:1646  */
6148      break;
6149  
6150    case 599:
6151 < #line 2881 "conf_parser.y" /* yacc.c:1646  */
6151 > #line 2757 "conf_parser.y" /* yacc.c:1646  */
6152      {
6153    ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6154   }
6155 < #line 6280 "conf_parser.c" /* yacc.c:1646  */
6155 > #line 6156 "conf_parser.c" /* yacc.c:1646  */
6156      break;
6157  
6158    case 600:
6159 < #line 2884 "conf_parser.y" /* yacc.c:1646  */
6159 > #line 2760 "conf_parser.y" /* yacc.c:1646  */
6160      {
6161    ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6162   }
6163 < #line 6288 "conf_parser.c" /* yacc.c:1646  */
6163 > #line 6164 "conf_parser.c" /* yacc.c:1646  */
6164      break;
6165  
6166    case 601:
6167 < #line 2887 "conf_parser.y" /* yacc.c:1646  */
6167 > #line 2763 "conf_parser.y" /* yacc.c:1646  */
6168      {
6169    ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6170   }
6171 < #line 6296 "conf_parser.c" /* yacc.c:1646  */
6171 > #line 6172 "conf_parser.c" /* yacc.c:1646  */
6172      break;
6173  
6174    case 602:
6175 < #line 2890 "conf_parser.y" /* yacc.c:1646  */
6175 > #line 2766 "conf_parser.y" /* yacc.c:1646  */
6176      {
6177    ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6178   }
6179 < #line 6304 "conf_parser.c" /* yacc.c:1646  */
6179 > #line 6180 "conf_parser.c" /* yacc.c:1646  */
6180      break;
6181  
6182    case 603:
6183 < #line 2893 "conf_parser.y" /* yacc.c:1646  */
6183 > #line 2769 "conf_parser.y" /* yacc.c:1646  */
6184      {
6185    ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6186   }
6187 < #line 6312 "conf_parser.c" /* yacc.c:1646  */
6187 > #line 6188 "conf_parser.c" /* yacc.c:1646  */
6188      break;
6189  
6190    case 604:
6191 < #line 2896 "conf_parser.y" /* yacc.c:1646  */
6191 > #line 2772 "conf_parser.y" /* yacc.c:1646  */
6192      {
6193    ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6194   }
6195 < #line 6320 "conf_parser.c" /* yacc.c:1646  */
6195 > #line 6196 "conf_parser.c" /* yacc.c:1646  */
6196      break;
6197  
6198    case 605:
6199 < #line 2899 "conf_parser.y" /* yacc.c:1646  */
6199 > #line 2775 "conf_parser.y" /* yacc.c:1646  */
6200      {
6201    ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6202   }
6203 < #line 6328 "conf_parser.c" /* yacc.c:1646  */
6203 > #line 6204 "conf_parser.c" /* yacc.c:1646  */
6204      break;
6205  
6206    case 606:
6207 < #line 2902 "conf_parser.y" /* yacc.c:1646  */
6207 > #line 2778 "conf_parser.y" /* yacc.c:1646  */
6208      {
6209    ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6210   }
6211 < #line 6336 "conf_parser.c" /* yacc.c:1646  */
6211 > #line 6212 "conf_parser.c" /* yacc.c:1646  */
6212      break;
6213  
6214    case 607:
6215 < #line 2905 "conf_parser.y" /* yacc.c:1646  */
6215 > #line 2781 "conf_parser.y" /* yacc.c:1646  */
6216      {
6217    ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6218   }
6219 < #line 6344 "conf_parser.c" /* yacc.c:1646  */
6219 > #line 6220 "conf_parser.c" /* yacc.c:1646  */
6220      break;
6221  
6222    case 608:
6223 < #line 2908 "conf_parser.y" /* yacc.c:1646  */
6223 > #line 2784 "conf_parser.y" /* yacc.c:1646  */
6224      {
6225    ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6226   }
6227 < #line 6352 "conf_parser.c" /* yacc.c:1646  */
6227 > #line 6228 "conf_parser.c" /* yacc.c:1646  */
6228      break;
6229  
6230    case 609:
6231 < #line 2911 "conf_parser.y" /* yacc.c:1646  */
6231 > #line 2787 "conf_parser.y" /* yacc.c:1646  */
6232      {
6233    ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6234   }
6235 < #line 6360 "conf_parser.c" /* yacc.c:1646  */
6235 > #line 6236 "conf_parser.c" /* yacc.c:1646  */
6236      break;
6237  
6238    case 610:
6239 < #line 2914 "conf_parser.y" /* yacc.c:1646  */
6239 > #line 2790 "conf_parser.y" /* yacc.c:1646  */
6240      {
6241    ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6242   }
6243 < #line 6368 "conf_parser.c" /* yacc.c:1646  */
6243 > #line 6244 "conf_parser.c" /* yacc.c:1646  */
6244      break;
6245  
6246    case 611:
6247 < #line 2917 "conf_parser.y" /* yacc.c:1646  */
6247 > #line 2793 "conf_parser.y" /* yacc.c:1646  */
6248      {
6249    ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6250   }
6251 < #line 6376 "conf_parser.c" /* yacc.c:1646  */
6251 > #line 6252 "conf_parser.c" /* yacc.c:1646  */
6252      break;
6253  
6254    case 612:
6255 < #line 2922 "conf_parser.y" /* yacc.c:1646  */
6255 > #line 2798 "conf_parser.y" /* yacc.c:1646  */
6256      {
6257    ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6258   }
6259 < #line 6384 "conf_parser.c" /* yacc.c:1646  */
6259 > #line 6260 "conf_parser.c" /* yacc.c:1646  */
6260      break;
6261  
6262    case 613:
6263 < #line 2927 "conf_parser.y" /* yacc.c:1646  */
6263 > #line 2803 "conf_parser.y" /* yacc.c:1646  */
6264      {
6265    ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6266   }
6267 < #line 6392 "conf_parser.c" /* yacc.c:1646  */
6267 > #line 6268 "conf_parser.c" /* yacc.c:1646  */
6268      break;
6269  
6270    case 614:
6271 < #line 2932 "conf_parser.y" /* yacc.c:1646  */
6271 > #line 2808 "conf_parser.y" /* yacc.c:1646  */
6272      {
6273    ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6274   }
6275 < #line 6400 "conf_parser.c" /* yacc.c:1646  */
6275 > #line 6276 "conf_parser.c" /* yacc.c:1646  */
6276      break;
6277  
6278    case 630:
6279 < #line 2957 "conf_parser.y" /* yacc.c:1646  */
6279 > #line 2833 "conf_parser.y" /* yacc.c:1646  */
6280      {
6281    ConfigChannel.disable_fake_channels = yylval.number;
6282   }
6283 < #line 6408 "conf_parser.c" /* yacc.c:1646  */
6283 > #line 6284 "conf_parser.c" /* yacc.c:1646  */
6284      break;
6285  
6286    case 631:
6287 < #line 2962 "conf_parser.y" /* yacc.c:1646  */
6287 > #line 2838 "conf_parser.y" /* yacc.c:1646  */
6288      {
6289    ConfigChannel.invite_client_count = (yyvsp[-1].number);
6290   }
6291 < #line 6416 "conf_parser.c" /* yacc.c:1646  */
6291 > #line 6292 "conf_parser.c" /* yacc.c:1646  */
6292      break;
6293  
6294    case 632:
6295 < #line 2967 "conf_parser.y" /* yacc.c:1646  */
6295 > #line 2843 "conf_parser.y" /* yacc.c:1646  */
6296      {
6297    ConfigChannel.invite_client_time = (yyvsp[-1].number);
6298   }
6299 < #line 6424 "conf_parser.c" /* yacc.c:1646  */
6299 > #line 6300 "conf_parser.c" /* yacc.c:1646  */
6300      break;
6301  
6302    case 633:
6303 < #line 2972 "conf_parser.y" /* yacc.c:1646  */
6303 > #line 2848 "conf_parser.y" /* yacc.c:1646  */
6304      {
6305    ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6306   }
6307 < #line 6432 "conf_parser.c" /* yacc.c:1646  */
6307 > #line 6308 "conf_parser.c" /* yacc.c:1646  */
6308      break;
6309  
6310    case 634:
6311 < #line 2977 "conf_parser.y" /* yacc.c:1646  */
6311 > #line 2853 "conf_parser.y" /* yacc.c:1646  */
6312      {
6313    ConfigChannel.knock_client_count = (yyvsp[-1].number);
6314   }
6315 < #line 6440 "conf_parser.c" /* yacc.c:1646  */
6315 > #line 6316 "conf_parser.c" /* yacc.c:1646  */
6316      break;
6317  
6318    case 635:
6319 < #line 2982 "conf_parser.y" /* yacc.c:1646  */
6319 > #line 2858 "conf_parser.y" /* yacc.c:1646  */
6320      {
6321    ConfigChannel.knock_client_time = (yyvsp[-1].number);
6322   }
6323 < #line 6448 "conf_parser.c" /* yacc.c:1646  */
6323 > #line 6324 "conf_parser.c" /* yacc.c:1646  */
6324      break;
6325  
6326    case 636:
6327 < #line 2987 "conf_parser.y" /* yacc.c:1646  */
6327 > #line 2863 "conf_parser.y" /* yacc.c:1646  */
6328      {
6329    ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6330   }
6331 < #line 6456 "conf_parser.c" /* yacc.c:1646  */
6331 > #line 6332 "conf_parser.c" /* yacc.c:1646  */
6332      break;
6333  
6334    case 637:
6335 < #line 2992 "conf_parser.y" /* yacc.c:1646  */
6335 > #line 2868 "conf_parser.y" /* yacc.c:1646  */
6336      {
6337    ConfigChannel.max_channels = (yyvsp[-1].number);
6338   }
6339 < #line 6464 "conf_parser.c" /* yacc.c:1646  */
6339 > #line 6340 "conf_parser.c" /* yacc.c:1646  */
6340      break;
6341  
6342    case 638:
6343 < #line 2997 "conf_parser.y" /* yacc.c:1646  */
6343 > #line 2873 "conf_parser.y" /* yacc.c:1646  */
6344      {
6345    ConfigChannel.max_bans = (yyvsp[-1].number);
6346   }
6347 < #line 6472 "conf_parser.c" /* yacc.c:1646  */
6347 > #line 6348 "conf_parser.c" /* yacc.c:1646  */
6348      break;
6349  
6350    case 639:
6351 < #line 3002 "conf_parser.y" /* yacc.c:1646  */
6351 > #line 2878 "conf_parser.y" /* yacc.c:1646  */
6352      {
6353    ConfigChannel.default_join_flood_count = yylval.number;
6354   }
6355 < #line 6480 "conf_parser.c" /* yacc.c:1646  */
6355 > #line 6356 "conf_parser.c" /* yacc.c:1646  */
6356      break;
6357  
6358    case 640:
6359 < #line 3007 "conf_parser.y" /* yacc.c:1646  */
6359 > #line 2883 "conf_parser.y" /* yacc.c:1646  */
6360      {
6361    ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6362   }
6363 < #line 6488 "conf_parser.c" /* yacc.c:1646  */
6363 > #line 6364 "conf_parser.c" /* yacc.c:1646  */
6364      break;
6365  
6366    case 654:
6367 < #line 3030 "conf_parser.y" /* yacc.c:1646  */
6367 > #line 2906 "conf_parser.y" /* yacc.c:1646  */
6368      {
6369    if (conf_parser_ctx.pass == 2)
6370      ConfigServerHide.flatten_links = yylval.number;
6371   }
6372 < #line 6497 "conf_parser.c" /* yacc.c:1646  */
6372 > #line 6373 "conf_parser.c" /* yacc.c:1646  */
6373      break;
6374  
6375    case 655:
6376 < #line 3036 "conf_parser.y" /* yacc.c:1646  */
6376 > #line 2912 "conf_parser.y" /* yacc.c:1646  */
6377      {
6378    if (conf_parser_ctx.pass == 2)
6379    {
# Line 6512 | Line 6388 | yyreduce:
6388      ConfigServerHide.flatten_links_delay = (yyvsp[-1].number);
6389    }
6390   }
6391 < #line 6516 "conf_parser.c" /* yacc.c:1646  */
6391 > #line 6392 "conf_parser.c" /* yacc.c:1646  */
6392      break;
6393  
6394    case 656:
6395 < #line 3052 "conf_parser.y" /* yacc.c:1646  */
6395 > #line 2928 "conf_parser.y" /* yacc.c:1646  */
6396      {
6397    if (conf_parser_ctx.pass == 2)
6398    {
# Line 6524 | Line 6400 | yyreduce:
6400      ConfigServerHide.flatten_links_file = xstrdup(yylval.string);
6401    }
6402   }
6403 < #line 6528 "conf_parser.c" /* yacc.c:1646  */
6403 > #line 6404 "conf_parser.c" /* yacc.c:1646  */
6404      break;
6405  
6406    case 657:
6407 < #line 3061 "conf_parser.y" /* yacc.c:1646  */
6407 > #line 2937 "conf_parser.y" /* yacc.c:1646  */
6408      {
6409    if (conf_parser_ctx.pass == 2)
6410      ConfigServerHide.disable_remote_commands = yylval.number;
6411   }
6412 < #line 6537 "conf_parser.c" /* yacc.c:1646  */
6412 > #line 6413 "conf_parser.c" /* yacc.c:1646  */
6413      break;
6414  
6415    case 658:
6416 < #line 3067 "conf_parser.y" /* yacc.c:1646  */
6416 > #line 2943 "conf_parser.y" /* yacc.c:1646  */
6417      {
6418    if (conf_parser_ctx.pass == 2)
6419      ConfigServerHide.hide_servers = yylval.number;
6420   }
6421 < #line 6546 "conf_parser.c" /* yacc.c:1646  */
6421 > #line 6422 "conf_parser.c" /* yacc.c:1646  */
6422      break;
6423  
6424    case 659:
6425 < #line 3073 "conf_parser.y" /* yacc.c:1646  */
6425 > #line 2949 "conf_parser.y" /* yacc.c:1646  */
6426      {
6427    if (conf_parser_ctx.pass == 2)
6428      ConfigServerHide.hide_services = yylval.number;
6429   }
6430 < #line 6555 "conf_parser.c" /* yacc.c:1646  */
6430 > #line 6431 "conf_parser.c" /* yacc.c:1646  */
6431      break;
6432  
6433    case 660:
6434 < #line 3079 "conf_parser.y" /* yacc.c:1646  */
6434 > #line 2955 "conf_parser.y" /* yacc.c:1646  */
6435      {
6436    if (conf_parser_ctx.pass == 2)
6437    {
# Line 6563 | Line 6439 | yyreduce:
6439      ConfigServerHide.hidden_name = xstrdup(yylval.string);
6440    }
6441   }
6442 < #line 6567 "conf_parser.c" /* yacc.c:1646  */
6442 > #line 6443 "conf_parser.c" /* yacc.c:1646  */
6443      break;
6444  
6445    case 661:
6446 < #line 3088 "conf_parser.y" /* yacc.c:1646  */
6446 > #line 2964 "conf_parser.y" /* yacc.c:1646  */
6447      {
6448    if (conf_parser_ctx.pass == 2)
6449      ConfigServerHide.hidden = yylval.number;
6450   }
6451 < #line 6576 "conf_parser.c" /* yacc.c:1646  */
6451 > #line 6452 "conf_parser.c" /* yacc.c:1646  */
6452      break;
6453  
6454    case 662:
6455 < #line 3094 "conf_parser.y" /* yacc.c:1646  */
6455 > #line 2970 "conf_parser.y" /* yacc.c:1646  */
6456      {
6457    if (conf_parser_ctx.pass == 2)
6458      ConfigServerHide.hide_server_ips = yylval.number;
6459   }
6460 < #line 6585 "conf_parser.c" /* yacc.c:1646  */
6460 > #line 6461 "conf_parser.c" /* yacc.c:1646  */
6461      break;
6462  
6463  
6464 < #line 6589 "conf_parser.c" /* yacc.c:1646  */
6464 > #line 6465 "conf_parser.c" /* yacc.c:1646  */
6465        default: break;
6466      }
6467    /* User semantic actions sometimes alter yychar, and that requires

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)