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 7131 by michael, Mon Jan 25 19:12:25 2016 UTC

# Line 65 | Line 65
65   #line 28 "conf_parser.y" /* yacc.c:339  */
66  
67  
68 #include <sys/types.h>
69 #include <string.h>
70
68   #include "config.h"
69   #include "stdinc.h"
70   #include "ircd.h"
# Line 78 | Line 75
75   #include "event.h"
76   #include "id.h"
77   #include "log.h"
81 #include "client.h"     /* for UMODE_SERVNOTICE only */
78   #include "irc_string.h"
79   #include "memory.h"
80   #include "modules.h"
81   #include "server.h"
82   #include "hostmask.h"
87 #include "send.h"
83   #include "listener.h"
84   #include "resv.h"
90 #include "numeric.h"
85   #include "user.h"
86   #include "motd.h"
87  
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
88   int yylex(void);
89  
90   static struct
# Line 187 | Line 172 | reset_block_state(void)
172   }
173  
174  
175 < #line 191 "conf_parser.c" /* yacc.c:339  */
175 > #line 176 "conf_parser.c" /* yacc.c:339  */
176  
177   # ifndef YY_NULLPTR
178   #  if defined __cplusplus && 201103L <= __cplusplus
# Line 679 | Line 664 | extern int yydebug;
664  
665   union YYSTYPE
666   {
667 < #line 153 "conf_parser.y" /* yacc.c:355  */
667 > #line 138 "conf_parser.y" /* yacc.c:355  */
668  
669    int number;
670    char *string;
671  
672 < #line 688 "conf_parser.c" /* yacc.c:355  */
672 > #line 673 "conf_parser.c" /* yacc.c:355  */
673   };
674  
675   typedef union YYSTYPE YYSTYPE;
# Line 701 | Line 686 | int yyparse (void);
686  
687   /* Copy the second part of user declarations.  */
688  
689 < #line 705 "conf_parser.c" /* yacc.c:358  */
689 > #line 690 "conf_parser.c" /* yacc.c:358  */
690  
691   #ifdef short
692   # undef short
# Line 1021 | Line 1006 | static const yytype_uint8 yytranslate[]
1006    /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1007   static const yytype_uint16 yyrline[] =
1008   {
1009 <       0,   383,   383,   384,   387,   388,   389,   390,   391,   392,
1010 <     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
1011 <     403,   404,   405,   406,   407,   408,   409,   410,   414,   414,
1012 <     415,   416,   417,   418,   419,   420,   421,   422,   425,   425,
1013 <     426,   427,   428,   429,   436,   438,   438,   439,   439,   439,
1014 <     441,   447,   457,   459,   459,   460,   461,   462,   463,   464,
1015 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1016 <     475,   476,   477,   480,   520,   578,   607,   615,   629,   657,
1017 <     672,   687,   697,   711,   720,   748,   776,   801,   823,   845,
1018 <     855,   857,   857,   858,   859,   860,   861,   863,   872,   881,
1019 <     895,   894,   912,   912,   913,   913,   913,   915,   921,   932,
1020 <     931,   950,   950,   951,   951,   951,   951,   951,   953,   959,
1021 <     965,   971,   993,   994,   994,   996,   996,   997,   999,  1006,
1022 <    1006,  1019,  1020,  1022,  1022,  1023,  1023,  1025,  1033,  1036,
1023 <    1042,  1041,  1047,  1047,  1048,  1052,  1056,  1060,  1064,  1068,
1024 <    1072,  1076,  1087,  1086,  1143,  1143,  1144,  1145,  1146,  1147,
1025 <    1148,  1149,  1150,  1151,  1152,  1153,  1154,  1156,  1162,  1168,
1026 <    1174,  1180,  1191,  1197,  1208,  1215,  1214,  1220,  1220,  1221,
1027 <    1225,  1229,  1233,  1237,  1241,  1245,  1249,  1253,  1257,  1261,
1028 <    1265,  1269,  1273,  1277,  1281,  1285,  1289,  1293,  1297,  1301,
1029 <    1305,  1312,  1311,  1317,  1317,  1318,  1322,  1326,  1330,  1334,
1030 <    1338,  1342,  1346,  1350,  1354,  1358,  1362,  1366,  1370,  1374,
1031 <    1378,  1382,  1386,  1390,  1394,  1398,  1402,  1406,  1410,  1414,
1032 <    1418,  1422,  1426,  1430,  1441,  1440,  1497,  1497,  1498,  1499,
1033 <    1500,  1501,  1502,  1503,  1504,  1505,  1506,  1507,  1508,  1509,
1034 <    1510,  1510,  1511,  1512,  1513,  1514,  1516,  1522,  1528,  1534,
1035 <    1540,  1546,  1552,  1558,  1564,  1570,  1576,  1583,  1589,  1595,
1036 <    1601,  1610,  1620,  1619,  1625,  1625,  1626,  1630,  1641,  1640,
1037 <    1647,  1646,  1651,  1651,  1652,  1656,  1660,  1666,  1666,  1667,
1038 <    1667,  1667,  1667,  1667,  1669,  1669,  1671,  1671,  1673,  1686,
1039 <    1703,  1709,  1720,  1719,  1761,  1761,  1762,  1763,  1764,  1765,
1040 <    1766,  1767,  1768,  1769,  1770,  1772,  1778,  1784,  1790,  1802,
1041 <    1801,  1807,  1807,  1808,  1812,  1816,  1820,  1824,  1828,  1832,
1042 <    1836,  1840,  1844,  1850,  1864,  1873,  1887,  1886,  1901,  1901,
1043 <    1902,  1902,  1902,  1902,  1904,  1910,  1916,  1926,  1928,  1928,
1044 <    1929,  1929,  1931,  1948,  1947,  1972,  1972,  1973,  1973,  1973,
1045 <    1973,  1975,  1981,  2001,  2000,  2006,  2006,  2007,  2011,  2015,
1046 <    2019,  2023,  2027,  2031,  2035,  2039,  2043,  2054,  2053,  2074,
1047 <    2074,  2075,  2075,  2075,  2077,  2084,  2083,  2089,  2089,  2090,
1048 <    2094,  2098,  2102,  2106,  2110,  2114,  2118,  2122,  2126,  2137,
1049 <    2136,  2208,  2208,  2209,  2210,  2211,  2212,  2213,  2214,  2215,
1050 <    2216,  2217,  2218,  2219,  2220,  2221,  2222,  2223,  2225,  2231,
1051 <    2237,  2243,  2256,  2269,  2275,  2281,  2285,  2292,  2291,  2296,
1052 <    2296,  2297,  2301,  2307,  2318,  2324,  2330,  2336,  2352,  2351,
1053 <    2377,  2377,  2378,  2378,  2378,  2380,  2400,  2411,  2410,  2437,
1054 <    2437,  2438,  2438,  2438,  2440,  2446,  2456,  2458,  2458,  2459,
1055 <    2459,  2461,  2479,  2478,  2501,  2501,  2502,  2502,  2502,  2504,
1056 <    2510,  2520,  2522,  2522,  2523,  2524,  2525,  2526,  2527,  2528,
1057 <    2529,  2530,  2531,  2532,  2533,  2534,  2535,  2536,  2537,  2538,
1058 <    2539,  2540,  2541,  2542,  2543,  2544,  2545,  2546,  2547,  2548,
1059 <    2549,  2550,  2551,  2552,  2553,  2554,  2555,  2556,  2557,  2558,
1060 <    2559,  2560,  2561,  2562,  2563,  2564,  2565,  2566,  2567,  2568,
1061 <    2571,  2576,  2581,  2586,  2592,  2597,  2602,  2607,  2612,  2617,
1062 <    2622,  2627,  2632,  2637,  2642,  2647,  2652,  2657,  2662,  2668,
1063 <    2673,  2678,  2683,  2688,  2693,  2698,  2703,  2706,  2711,  2714,
1064 <    2719,  2724,  2729,  2734,  2739,  2744,  2749,  2754,  2759,  2764,
1065 <    2769,  2774,  2780,  2779,  2784,  2784,  2785,  2788,  2791,  2794,
1066 <    2797,  2800,  2803,  2806,  2809,  2812,  2815,  2818,  2821,  2824,
1067 <    2827,  2830,  2833,  2836,  2839,  2842,  2845,  2848,  2854,  2853,
1068 <    2858,  2858,  2859,  2862,  2865,  2868,  2871,  2874,  2877,  2880,
1069 <    2883,  2886,  2889,  2892,  2895,  2898,  2901,  2904,  2907,  2910,
1070 <    2913,  2916,  2921,  2926,  2931,  2940,  2942,  2942,  2943,  2944,
1071 <    2945,  2946,  2947,  2948,  2949,  2950,  2951,  2952,  2953,  2954,
1072 <    2956,  2961,  2966,  2971,  2976,  2981,  2986,  2991,  2996,  3001,
1073 <    3006,  3015,  3017,  3017,  3018,  3019,  3020,  3021,  3022,  3023,
1074 <    3024,  3025,  3026,  3027,  3029,  3035,  3051,  3060,  3066,  3072,
1075 <    3078,  3087,  3093
1009 >       0,   368,   368,   369,   372,   373,   374,   375,   376,   377,
1010 >     378,   379,   380,   381,   382,   383,   384,   385,   386,   387,
1011 >     388,   389,   390,   391,   392,   393,   394,   395,   399,   399,
1012 >     400,   401,   402,   403,   404,   405,   406,   407,   410,   410,
1013 >     411,   412,   413,   414,   421,   423,   423,   424,   424,   424,
1014 >     426,   432,   442,   444,   444,   445,   446,   447,   448,   449,
1015 >     450,   451,   452,   453,   454,   455,   456,   457,   458,   459,
1016 >     460,   461,   462,   465,   474,   483,   492,   501,   510,   519,
1017 >     534,   549,   559,   573,   582,   610,   638,   663,   685,   707,
1018 >     717,   719,   719,   720,   721,   722,   723,   725,   734,   743,
1019 >     757,   756,   774,   774,   775,   775,   775,   777,   783,   794,
1020 >     793,   812,   812,   813,   813,   813,   813,   813,   815,   821,
1021 >     827,   833,   855,   856,   856,   858,   858,   859,   861,   868,
1022 >     868,   881,   882,   884,   884,   885,   885,   887,   895,   898,
1023 >     904,   903,   909,   909,   910,   914,   918,   922,   926,   930,
1024 >     934,   938,   949,   948,  1005,  1005,  1006,  1007,  1008,  1009,
1025 >    1010,  1011,  1012,  1013,  1014,  1015,  1016,  1018,  1024,  1030,
1026 >    1036,  1042,  1053,  1059,  1070,  1077,  1076,  1082,  1082,  1083,
1027 >    1087,  1091,  1095,  1099,  1103,  1107,  1111,  1115,  1119,  1123,
1028 >    1127,  1131,  1135,  1139,  1143,  1147,  1151,  1155,  1159,  1163,
1029 >    1167,  1174,  1173,  1179,  1179,  1180,  1184,  1188,  1192,  1196,
1030 >    1200,  1204,  1208,  1212,  1216,  1220,  1224,  1228,  1232,  1236,
1031 >    1240,  1244,  1248,  1252,  1256,  1260,  1264,  1268,  1272,  1276,
1032 >    1280,  1284,  1288,  1292,  1303,  1302,  1359,  1359,  1360,  1361,
1033 >    1362,  1363,  1364,  1365,  1366,  1367,  1368,  1369,  1370,  1371,
1034 >    1372,  1372,  1373,  1374,  1375,  1376,  1378,  1384,  1390,  1396,
1035 >    1402,  1408,  1414,  1420,  1426,  1432,  1438,  1445,  1451,  1457,
1036 >    1463,  1472,  1482,  1481,  1487,  1487,  1488,  1492,  1503,  1502,
1037 >    1509,  1508,  1513,  1513,  1514,  1518,  1522,  1528,  1528,  1529,
1038 >    1529,  1529,  1529,  1529,  1531,  1531,  1533,  1533,  1535,  1548,
1039 >    1565,  1571,  1582,  1581,  1623,  1623,  1624,  1625,  1626,  1627,
1040 >    1628,  1629,  1630,  1631,  1632,  1634,  1640,  1646,  1652,  1664,
1041 >    1663,  1669,  1669,  1670,  1674,  1678,  1682,  1686,  1690,  1694,
1042 >    1698,  1702,  1706,  1712,  1726,  1735,  1749,  1748,  1763,  1763,
1043 >    1764,  1764,  1764,  1764,  1766,  1772,  1778,  1788,  1790,  1790,
1044 >    1791,  1791,  1793,  1810,  1809,  1834,  1834,  1835,  1835,  1835,
1045 >    1835,  1837,  1843,  1863,  1862,  1868,  1868,  1869,  1873,  1877,
1046 >    1881,  1885,  1889,  1893,  1897,  1901,  1905,  1916,  1915,  1936,
1047 >    1936,  1937,  1937,  1937,  1939,  1946,  1945,  1951,  1951,  1952,
1048 >    1956,  1960,  1964,  1968,  1972,  1976,  1980,  1984,  1988,  1999,
1049 >    1998,  2070,  2070,  2071,  2072,  2073,  2074,  2075,  2076,  2077,
1050 >    2078,  2079,  2080,  2081,  2082,  2083,  2084,  2085,  2087,  2093,
1051 >    2099,  2105,  2118,  2131,  2137,  2143,  2147,  2154,  2153,  2158,
1052 >    2158,  2159,  2163,  2169,  2180,  2186,  2192,  2198,  2214,  2213,
1053 >    2239,  2239,  2240,  2240,  2240,  2242,  2262,  2273,  2272,  2299,
1054 >    2299,  2300,  2300,  2300,  2302,  2308,  2318,  2320,  2320,  2321,
1055 >    2321,  2323,  2341,  2340,  2363,  2363,  2364,  2364,  2364,  2366,
1056 >    2372,  2382,  2384,  2384,  2385,  2386,  2387,  2388,  2389,  2390,
1057 >    2391,  2392,  2393,  2394,  2395,  2396,  2397,  2398,  2399,  2400,
1058 >    2401,  2402,  2403,  2404,  2405,  2406,  2407,  2408,  2409,  2410,
1059 >    2411,  2412,  2413,  2414,  2415,  2416,  2417,  2418,  2419,  2420,
1060 >    2421,  2422,  2423,  2424,  2425,  2426,  2427,  2428,  2429,  2430,
1061 >    2433,  2438,  2443,  2448,  2454,  2459,  2464,  2469,  2474,  2479,
1062 >    2484,  2489,  2494,  2499,  2504,  2509,  2514,  2519,  2524,  2530,
1063 >    2535,  2540,  2545,  2550,  2555,  2560,  2565,  2568,  2573,  2576,
1064 >    2581,  2586,  2591,  2596,  2601,  2606,  2611,  2616,  2621,  2626,
1065 >    2631,  2636,  2642,  2641,  2646,  2646,  2647,  2650,  2653,  2656,
1066 >    2659,  2662,  2665,  2668,  2671,  2674,  2677,  2680,  2683,  2686,
1067 >    2689,  2692,  2695,  2698,  2701,  2704,  2707,  2710,  2716,  2715,
1068 >    2720,  2720,  2721,  2724,  2727,  2730,  2733,  2736,  2739,  2742,
1069 >    2745,  2748,  2751,  2754,  2757,  2760,  2763,  2766,  2769,  2772,
1070 >    2775,  2778,  2783,  2788,  2793,  2802,  2804,  2804,  2805,  2806,
1071 >    2807,  2808,  2809,  2810,  2811,  2812,  2813,  2814,  2815,  2816,
1072 >    2818,  2823,  2828,  2833,  2838,  2843,  2848,  2853,  2858,  2863,
1073 >    2868,  2877,  2879,  2879,  2880,  2881,  2882,  2883,  2884,  2885,
1074 >    2886,  2887,  2888,  2889,  2891,  2897,  2913,  2922,  2928,  2934,
1075 >    2940,  2949,  2955
1076   };
1077   #endif
1078  
# Line 2858 | Line 2843 | yyreduce:
2843    switch (yyn)
2844      {
2845          case 28:
2846 < #line 414 "conf_parser.y" /* yacc.c:1646  */
2846 > #line 399 "conf_parser.y" /* yacc.c:1646  */
2847      { (yyval.number) = 0; }
2848 < #line 2864 "conf_parser.c" /* yacc.c:1646  */
2848 > #line 2849 "conf_parser.c" /* yacc.c:1646  */
2849      break;
2850  
2851    case 30:
2852 < #line 415 "conf_parser.y" /* yacc.c:1646  */
2852 > #line 400 "conf_parser.y" /* yacc.c:1646  */
2853      { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2854 < #line 2870 "conf_parser.c" /* yacc.c:1646  */
2854 > #line 2855 "conf_parser.c" /* yacc.c:1646  */
2855      break;
2856  
2857    case 31:
2858 < #line 416 "conf_parser.y" /* yacc.c:1646  */
2858 > #line 401 "conf_parser.y" /* yacc.c:1646  */
2859      { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2860 < #line 2876 "conf_parser.c" /* yacc.c:1646  */
2860 > #line 2861 "conf_parser.c" /* yacc.c:1646  */
2861      break;
2862  
2863    case 32:
2864 < #line 417 "conf_parser.y" /* yacc.c:1646  */
2864 > #line 402 "conf_parser.y" /* yacc.c:1646  */
2865      { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2866 < #line 2882 "conf_parser.c" /* yacc.c:1646  */
2866 > #line 2867 "conf_parser.c" /* yacc.c:1646  */
2867      break;
2868  
2869    case 33:
2870 < #line 418 "conf_parser.y" /* yacc.c:1646  */
2870 > #line 403 "conf_parser.y" /* yacc.c:1646  */
2871      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2872 < #line 2888 "conf_parser.c" /* yacc.c:1646  */
2872 > #line 2873 "conf_parser.c" /* yacc.c:1646  */
2873      break;
2874  
2875    case 34:
2876 < #line 419 "conf_parser.y" /* yacc.c:1646  */
2876 > #line 404 "conf_parser.y" /* yacc.c:1646  */
2877      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2878 < #line 2894 "conf_parser.c" /* yacc.c:1646  */
2878 > #line 2879 "conf_parser.c" /* yacc.c:1646  */
2879      break;
2880  
2881    case 35:
2882 < #line 420 "conf_parser.y" /* yacc.c:1646  */
2882 > #line 405 "conf_parser.y" /* yacc.c:1646  */
2883      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2884 < #line 2900 "conf_parser.c" /* yacc.c:1646  */
2884 > #line 2885 "conf_parser.c" /* yacc.c:1646  */
2885      break;
2886  
2887    case 36:
2888 < #line 421 "conf_parser.y" /* yacc.c:1646  */
2888 > #line 406 "conf_parser.y" /* yacc.c:1646  */
2889      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2890 < #line 2906 "conf_parser.c" /* yacc.c:1646  */
2890 > #line 2891 "conf_parser.c" /* yacc.c:1646  */
2891      break;
2892  
2893    case 37:
2894 < #line 422 "conf_parser.y" /* yacc.c:1646  */
2894 > #line 407 "conf_parser.y" /* yacc.c:1646  */
2895      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2896 < #line 2912 "conf_parser.c" /* yacc.c:1646  */
2896 > #line 2897 "conf_parser.c" /* yacc.c:1646  */
2897      break;
2898  
2899    case 38:
2900 < #line 425 "conf_parser.y" /* yacc.c:1646  */
2900 > #line 410 "conf_parser.y" /* yacc.c:1646  */
2901      { (yyval.number) = 0; }
2902 < #line 2918 "conf_parser.c" /* yacc.c:1646  */
2902 > #line 2903 "conf_parser.c" /* yacc.c:1646  */
2903      break;
2904  
2905    case 40:
2906 < #line 426 "conf_parser.y" /* yacc.c:1646  */
2906 > #line 411 "conf_parser.y" /* yacc.c:1646  */
2907      { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2908 < #line 2924 "conf_parser.c" /* yacc.c:1646  */
2908 > #line 2909 "conf_parser.c" /* yacc.c:1646  */
2909      break;
2910  
2911    case 41:
2912 < #line 427 "conf_parser.y" /* yacc.c:1646  */
2912 > #line 412 "conf_parser.y" /* yacc.c:1646  */
2913      { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2914 < #line 2930 "conf_parser.c" /* yacc.c:1646  */
2914 > #line 2915 "conf_parser.c" /* yacc.c:1646  */
2915      break;
2916  
2917    case 42:
2918 < #line 428 "conf_parser.y" /* yacc.c:1646  */
2918 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2919      { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2920 < #line 2936 "conf_parser.c" /* yacc.c:1646  */
2920 > #line 2921 "conf_parser.c" /* yacc.c:1646  */
2921      break;
2922  
2923    case 43:
2924 < #line 429 "conf_parser.y" /* yacc.c:1646  */
2924 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2925      { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2926 < #line 2942 "conf_parser.c" /* yacc.c:1646  */
2926 > #line 2927 "conf_parser.c" /* yacc.c:1646  */
2927      break;
2928  
2929    case 50:
2930 < #line 442 "conf_parser.y" /* yacc.c:1646  */
2930 > #line 427 "conf_parser.y" /* yacc.c:1646  */
2931      {
2932    if (conf_parser_ctx.pass == 2)
2933      add_conf_module(libio_basename(yylval.string));
2934   }
2935 < #line 2951 "conf_parser.c" /* yacc.c:1646  */
2935 > #line 2936 "conf_parser.c" /* yacc.c:1646  */
2936      break;
2937  
2938    case 51:
2939 < #line 448 "conf_parser.y" /* yacc.c:1646  */
2939 > #line 433 "conf_parser.y" /* yacc.c:1646  */
2940      {
2941    if (conf_parser_ctx.pass == 2)
2942      mod_add_path(yylval.string);
2943   }
2944 < #line 2960 "conf_parser.c" /* yacc.c:1646  */
2944 > #line 2945 "conf_parser.c" /* yacc.c:1646  */
2945      break;
2946  
2947    case 73:
2948 < #line 481 "conf_parser.y" /* yacc.c:1646  */
2948 > #line 466 "conf_parser.y" /* yacc.c:1646  */
2949      {
2965 #ifdef HAVE_LIBCRYPTO
2950    if (conf_parser_ctx.pass == 2)
2951    {
2952 <    if (!ConfigServerInfo.rsa_private_key_file)
2953 <    {
2970 <      conf_error_report("No rsa_private_key_file specified, SSL disabled");
2971 <      break;
2972 <    }
2973 <
2974 <    if (SSL_CTX_use_certificate_chain_file(ConfigServerInfo.server_ctx, yylval.string) <= 0 ||
2975 <        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 <    }
2991 <
2992 <    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 <    }
2952 >    xfree(ConfigServerInfo.ssl_certificate_file);
2953 >    ConfigServerInfo.ssl_certificate_file = xstrdup(yylval.string);
2954    }
3000 #endif
2955   }
2956 < #line 3003 "conf_parser.c" /* yacc.c:1646  */
2956 > #line 2957 "conf_parser.c" /* yacc.c:1646  */
2957      break;
2958  
2959    case 74:
2960 < #line 521 "conf_parser.y" /* yacc.c:1646  */
2960 > #line 475 "conf_parser.y" /* yacc.c:1646  */
2961      {
2962 < #ifdef HAVE_LIBCRYPTO
3009 <  BIO *file = NULL;
3010 <
3011 <  if (conf_parser_ctx.pass != 1)
3012 <    break;
3013 <
3014 <  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)
2962 >  if (conf_parser_ctx.pass == 2)
2963    {
2964      xfree(ConfigServerInfo.rsa_private_key_file);
2965 <    ConfigServerInfo.rsa_private_key_file = NULL;
3024 <  }
3025 <
3026 <  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;
2965 >    ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
2966    }
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
2967   }
2968 < #line 3064 "conf_parser.c" /* yacc.c:1646  */
2968 > #line 2969 "conf_parser.c" /* yacc.c:1646  */
2969      break;
2970  
2971    case 75:
2972 < #line 579 "conf_parser.y" /* yacc.c:1646  */
2972 > #line 484 "conf_parser.y" /* yacc.c:1646  */
2973      {
3069 #ifdef HAVE_LIBCRYPTO
2974    if (conf_parser_ctx.pass == 2)
2975    {
2976 <    BIO *file = BIO_new_file(yylval.string, "r");
2977 <
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");
2976 >    xfree(ConfigServerInfo.ssl_dh_param_file);
2977 >    ConfigServerInfo.ssl_dh_param_file = xstrdup(yylval.string);
2978    }
3093 #endif
2979   }
2980 < #line 3096 "conf_parser.c" /* yacc.c:1646  */
2980 > #line 2981 "conf_parser.c" /* yacc.c:1646  */
2981      break;
2982  
2983    case 76:
2984 < #line 608 "conf_parser.y" /* yacc.c:1646  */
2984 > #line 493 "conf_parser.y" /* yacc.c:1646  */
2985      {
3101 #ifdef HAVE_LIBCRYPTO
2986    if (conf_parser_ctx.pass == 2)
2987 <    SSL_CTX_set_cipher_list(ConfigServerInfo.server_ctx, yylval.string);
2988 < #endif
2987 >  {
2988 >    xfree(ConfigServerInfo.ssl_cipher_list);
2989 >    ConfigServerInfo.ssl_cipher_list = xstrdup(yylval.string);
2990 >  }
2991   }
2992 < #line 3107 "conf_parser.c" /* yacc.c:1646  */
2992 > #line 2993 "conf_parser.c" /* yacc.c:1646  */
2993      break;
2994  
2995    case 77:
2996 < #line 616 "conf_parser.y" /* yacc.c:1646  */
2996 > #line 502 "conf_parser.y" /* yacc.c:1646  */
2997      {
3112 #ifdef HAVE_LIBCRYPTO
2998    if (conf_parser_ctx.pass == 2)
2999    {
3000 <    if ((ConfigServerInfo.message_digest_algorithm = EVP_get_digestbyname(yylval.string)) == NULL)
3001 <    {
3117 <      ConfigServerInfo.message_digest_algorithm = EVP_sha256();
3118 <      conf_error_report("Ignoring serverinfo::ssl_message_digest_algorithm -- unknown message digest algorithm");
3119 <    }
3000 >    xfree(ConfigServerInfo.ssl_message_digest_algorithm);
3001 >    ConfigServerInfo.ssl_message_digest_algorithm = xstrdup(yylval.string);
3002    }
3121 #endif
3003   }
3004 < #line 3124 "conf_parser.c" /* yacc.c:1646  */
3004 > #line 3005 "conf_parser.c" /* yacc.c:1646  */
3005      break;
3006  
3007    case 78:
3008 < #line 630 "conf_parser.y" /* yacc.c:1646  */
3008 > #line 511 "conf_parser.y" /* yacc.c:1646  */
3009      {
3129 #ifdef HAVE_LIBCRYPTO
3130 #if OPENSSL_VERSION_NUMBER >= 0x009080FFL && !defined(OPENSSL_NO_ECDH)
3131  int nid = 0;
3132  EC_KEY *key = NULL;
3133
3010    if (conf_parser_ctx.pass == 2)
3011    {
3012 <    if ((nid = OBJ_sn2nid(yylval.string)) == 0)
3013 <    {
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);
3012 >    xfree(ConfigServerInfo.ssl_dh_elliptic_curve);
3013 >    ConfigServerInfo.ssl_dh_elliptic_curve = xstrdup(yylval.string);
3014    }
3151 #endif
3152 #endif
3015   }
3016 < #line 3155 "conf_parser.c" /* yacc.c:1646  */
3016 > #line 3017 "conf_parser.c" /* yacc.c:1646  */
3017      break;
3018  
3019    case 79:
3020 < #line 658 "conf_parser.y" /* yacc.c:1646  */
3020 > #line 520 "conf_parser.y" /* yacc.c:1646  */
3021      {
3022    /* This isn't rehashable */
3023    if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.name)
# Line 3169 | Line 3031 | yyreduce:
3031      }
3032    }
3033   }
3034 < #line 3173 "conf_parser.c" /* yacc.c:1646  */
3034 > #line 3035 "conf_parser.c" /* yacc.c:1646  */
3035      break;
3036  
3037    case 80:
3038 < #line 673 "conf_parser.y" /* yacc.c:1646  */
3038 > #line 535 "conf_parser.y" /* yacc.c:1646  */
3039      {
3040    /* This isn't rehashable */
3041    if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.sid)
# Line 3187 | Line 3049 | yyreduce:
3049      }
3050    }
3051   }
3052 < #line 3191 "conf_parser.c" /* yacc.c:1646  */
3052 > #line 3053 "conf_parser.c" /* yacc.c:1646  */
3053      break;
3054  
3055    case 81:
3056 < #line 688 "conf_parser.y" /* yacc.c:1646  */
3056 > #line 550 "conf_parser.y" /* yacc.c:1646  */
3057      {
3058    if (conf_parser_ctx.pass == 2)
3059    {
# Line 3200 | Line 3062 | yyreduce:
3062      strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3063    }
3064   }
3065 < #line 3204 "conf_parser.c" /* yacc.c:1646  */
3065 > #line 3066 "conf_parser.c" /* yacc.c:1646  */
3066      break;
3067  
3068    case 82:
3069 < #line 698 "conf_parser.y" /* yacc.c:1646  */
3069 > #line 560 "conf_parser.y" /* yacc.c:1646  */
3070      {
3071    if (conf_parser_ctx.pass == 2)
3072    {
# Line 3217 | Line 3079 | yyreduce:
3079      ConfigServerInfo.network_name = xstrdup(yylval.string);
3080    }
3081   }
3082 < #line 3221 "conf_parser.c" /* yacc.c:1646  */
3082 > #line 3083 "conf_parser.c" /* yacc.c:1646  */
3083      break;
3084  
3085    case 83:
3086 < #line 712 "conf_parser.y" /* yacc.c:1646  */
3086 > #line 574 "conf_parser.y" /* yacc.c:1646  */
3087      {
3088    if (conf_parser_ctx.pass != 2)
3089      break;
# Line 3229 | Line 3091 | yyreduce:
3091    xfree(ConfigServerInfo.network_desc);
3092    ConfigServerInfo.network_desc = xstrdup(yylval.string);
3093   }
3094 < #line 3233 "conf_parser.c" /* yacc.c:1646  */
3094 > #line 3095 "conf_parser.c" /* yacc.c:1646  */
3095      break;
3096  
3097    case 84:
3098 < #line 721 "conf_parser.y" /* yacc.c:1646  */
3098 > #line 583 "conf_parser.y" /* yacc.c:1646  */
3099      {
3100    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3101    {
# Line 3260 | Line 3122 | yyreduce:
3122      }
3123    }
3124   }
3125 < #line 3264 "conf_parser.c" /* yacc.c:1646  */
3125 > #line 3126 "conf_parser.c" /* yacc.c:1646  */
3126      break;
3127  
3128    case 85:
3129 < #line 749 "conf_parser.y" /* yacc.c:1646  */
3129 > #line 611 "conf_parser.y" /* yacc.c:1646  */
3130      {
3131    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3132    {
# Line 3291 | Line 3153 | yyreduce:
3153      }
3154    }
3155   }
3156 < #line 3295 "conf_parser.c" /* yacc.c:1646  */
3156 > #line 3157 "conf_parser.c" /* yacc.c:1646  */
3157      break;
3158  
3159    case 86:
3160 < #line 777 "conf_parser.y" /* yacc.c:1646  */
3160 > #line 639 "conf_parser.y" /* yacc.c:1646  */
3161      {
3162    if (conf_parser_ctx.pass != 2)
3163      break;
# Line 3319 | Line 3181 | yyreduce:
3181    else
3182      ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3183   }
3184 < #line 3323 "conf_parser.c" /* yacc.c:1646  */
3184 > #line 3185 "conf_parser.c" /* yacc.c:1646  */
3185      break;
3186  
3187    case 87:
3188 < #line 802 "conf_parser.y" /* yacc.c:1646  */
3188 > #line 664 "conf_parser.y" /* yacc.c:1646  */
3189      {
3190    if (conf_parser_ctx.pass != 2)
3191      break;
# Line 3344 | Line 3206 | yyreduce:
3206    else
3207      ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3208   }
3209 < #line 3348 "conf_parser.c" /* yacc.c:1646  */
3209 > #line 3210 "conf_parser.c" /* yacc.c:1646  */
3210      break;
3211  
3212    case 88:
3213 < #line 824 "conf_parser.y" /* yacc.c:1646  */
3213 > #line 686 "conf_parser.y" /* yacc.c:1646  */
3214      {
3215    if (conf_parser_ctx.pass != 2)
3216      break;
# Line 3369 | Line 3231 | yyreduce:
3231    else
3232      ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3233   }
3234 < #line 3373 "conf_parser.c" /* yacc.c:1646  */
3234 > #line 3235 "conf_parser.c" /* yacc.c:1646  */
3235      break;
3236  
3237    case 89:
3238 < #line 846 "conf_parser.y" /* yacc.c:1646  */
3238 > #line 708 "conf_parser.y" /* yacc.c:1646  */
3239      {
3240    if (conf_parser_ctx.pass == 2)
3241      ConfigServerInfo.hub = yylval.number;
3242   }
3243 < #line 3382 "conf_parser.c" /* yacc.c:1646  */
3243 > #line 3244 "conf_parser.c" /* yacc.c:1646  */
3244      break;
3245  
3246    case 97:
3247 < #line 864 "conf_parser.y" /* yacc.c:1646  */
3247 > #line 726 "conf_parser.y" /* yacc.c:1646  */
3248      {
3249    if (conf_parser_ctx.pass != 2)
3250      break;
# Line 3390 | Line 3252 | yyreduce:
3252    xfree(ConfigAdminInfo.name);
3253    ConfigAdminInfo.name = xstrdup(yylval.string);
3254   }
3255 < #line 3394 "conf_parser.c" /* yacc.c:1646  */
3255 > #line 3256 "conf_parser.c" /* yacc.c:1646  */
3256      break;
3257  
3258    case 98:
3259 < #line 873 "conf_parser.y" /* yacc.c:1646  */
3259 > #line 735 "conf_parser.y" /* yacc.c:1646  */
3260      {
3261    if (conf_parser_ctx.pass != 2)
3262      break;
# Line 3402 | Line 3264 | yyreduce:
3264    xfree(ConfigAdminInfo.email);
3265    ConfigAdminInfo.email = xstrdup(yylval.string);
3266   }
3267 < #line 3406 "conf_parser.c" /* yacc.c:1646  */
3267 > #line 3268 "conf_parser.c" /* yacc.c:1646  */
3268      break;
3269  
3270    case 99:
3271 < #line 882 "conf_parser.y" /* yacc.c:1646  */
3271 > #line 744 "conf_parser.y" /* yacc.c:1646  */
3272      {
3273    if (conf_parser_ctx.pass != 2)
3274      break;
# Line 3414 | Line 3276 | yyreduce:
3276    xfree(ConfigAdminInfo.description);
3277    ConfigAdminInfo.description = xstrdup(yylval.string);
3278   }
3279 < #line 3418 "conf_parser.c" /* yacc.c:1646  */
3279 > #line 3280 "conf_parser.c" /* yacc.c:1646  */
3280      break;
3281  
3282    case 100:
3283 < #line 895 "conf_parser.y" /* yacc.c:1646  */
3283 > #line 757 "conf_parser.y" /* yacc.c:1646  */
3284      {
3285    if (conf_parser_ctx.pass == 2)
3286      reset_block_state();
3287   }
3288 < #line 3427 "conf_parser.c" /* yacc.c:1646  */
3288 > #line 3289 "conf_parser.c" /* yacc.c:1646  */
3289      break;
3290  
3291    case 101:
3292 < #line 899 "conf_parser.y" /* yacc.c:1646  */
3292 > #line 761 "conf_parser.y" /* yacc.c:1646  */
3293      {
3294    dlink_node *node = NULL;
3295  
# Line 3440 | Line 3302 | yyreduce:
3302    DLINK_FOREACH(node, block_state.mask.list.head)
3303      motd_add(node->data, block_state.file.buf);
3304   }
3305 < #line 3444 "conf_parser.c" /* yacc.c:1646  */
3305 > #line 3306 "conf_parser.c" /* yacc.c:1646  */
3306      break;
3307  
3308    case 107:
3309 < #line 916 "conf_parser.y" /* yacc.c:1646  */
3309 > #line 778 "conf_parser.y" /* yacc.c:1646  */
3310      {
3311    if (conf_parser_ctx.pass == 2)
3312      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3313   }
3314 < #line 3453 "conf_parser.c" /* yacc.c:1646  */
3314 > #line 3315 "conf_parser.c" /* yacc.c:1646  */
3315      break;
3316  
3317    case 108:
3318 < #line 922 "conf_parser.y" /* yacc.c:1646  */
3318 > #line 784 "conf_parser.y" /* yacc.c:1646  */
3319      {
3320    if (conf_parser_ctx.pass == 2)
3321      strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3322   }
3323 < #line 3462 "conf_parser.c" /* yacc.c:1646  */
3323 > #line 3324 "conf_parser.c" /* yacc.c:1646  */
3324      break;
3325  
3326    case 109:
3327 < #line 932 "conf_parser.y" /* yacc.c:1646  */
3327 > #line 794 "conf_parser.y" /* yacc.c:1646  */
3328      {
3329    if (conf_parser_ctx.pass == 2)
3330      reset_block_state();
3331   }
3332 < #line 3471 "conf_parser.c" /* yacc.c:1646  */
3332 > #line 3333 "conf_parser.c" /* yacc.c:1646  */
3333      break;
3334  
3335    case 110:
3336 < #line 936 "conf_parser.y" /* yacc.c:1646  */
3336 > #line 798 "conf_parser.y" /* yacc.c:1646  */
3337      {
3338    if (conf_parser_ctx.pass != 2)
3339      break;
# Line 3485 | Line 3347 | yyreduce:
3347    pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3348                    block_state.prepend.buf, block_state.command.buf);
3349   }
3350 < #line 3489 "conf_parser.c" /* yacc.c:1646  */
3350 > #line 3351 "conf_parser.c" /* yacc.c:1646  */
3351      break;
3352  
3353    case 118:
3354 < #line 954 "conf_parser.y" /* yacc.c:1646  */
3354 > #line 816 "conf_parser.y" /* yacc.c:1646  */
3355      {
3356    if (conf_parser_ctx.pass == 2)
3357      strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3358   }
3359 < #line 3498 "conf_parser.c" /* yacc.c:1646  */
3359 > #line 3360 "conf_parser.c" /* yacc.c:1646  */
3360      break;
3361  
3362    case 119:
3363 < #line 960 "conf_parser.y" /* yacc.c:1646  */
3363 > #line 822 "conf_parser.y" /* yacc.c:1646  */
3364      {
3365    if (conf_parser_ctx.pass == 2)
3366      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3367   }
3368 < #line 3507 "conf_parser.c" /* yacc.c:1646  */
3368 > #line 3369 "conf_parser.c" /* yacc.c:1646  */
3369      break;
3370  
3371    case 120:
3372 < #line 966 "conf_parser.y" /* yacc.c:1646  */
3372 > #line 828 "conf_parser.y" /* yacc.c:1646  */
3373      {
3374    if (conf_parser_ctx.pass == 2)
3375      strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3376   }
3377 < #line 3516 "conf_parser.c" /* yacc.c:1646  */
3377 > #line 3378 "conf_parser.c" /* yacc.c:1646  */
3378      break;
3379  
3380    case 121:
3381 < #line 972 "conf_parser.y" /* yacc.c:1646  */
3381 > #line 834 "conf_parser.y" /* yacc.c:1646  */
3382      {
3383    if (conf_parser_ctx.pass == 2)
3384    {
# Line 3533 | Line 3395 | yyreduce:
3395      split_nuh(&nuh);
3396    }
3397   }
3398 < #line 3537 "conf_parser.c" /* yacc.c:1646  */
3398 > #line 3399 "conf_parser.c" /* yacc.c:1646  */
3399      break;
3400  
3401    case 128:
3402 < #line 1000 "conf_parser.y" /* yacc.c:1646  */
3402 > #line 862 "conf_parser.y" /* yacc.c:1646  */
3403      {
3404    if (conf_parser_ctx.pass == 2)
3405      ConfigLog.use_logging = yylval.number;
3406   }
3407 < #line 3546 "conf_parser.c" /* yacc.c:1646  */
3407 > #line 3408 "conf_parser.c" /* yacc.c:1646  */
3408      break;
3409  
3410    case 129:
3411 < #line 1006 "conf_parser.y" /* yacc.c:1646  */
3411 > #line 868 "conf_parser.y" /* yacc.c:1646  */
3412      {
3413    if (conf_parser_ctx.pass == 2)
3414      reset_block_state();
3415   }
3416 < #line 3555 "conf_parser.c" /* yacc.c:1646  */
3416 > #line 3417 "conf_parser.c" /* yacc.c:1646  */
3417      break;
3418  
3419    case 130:
3420 < #line 1010 "conf_parser.y" /* yacc.c:1646  */
3420 > #line 872 "conf_parser.y" /* yacc.c:1646  */
3421      {
3422    if (conf_parser_ctx.pass != 2)
3423      break;
# Line 3564 | Line 3426 | yyreduce:
3426      log_set_file(block_state.type.value, block_state.size.value,
3427                   block_state.file.buf);
3428   }
3429 < #line 3568 "conf_parser.c" /* yacc.c:1646  */
3429 > #line 3430 "conf_parser.c" /* yacc.c:1646  */
3430      break;
3431  
3432    case 137:
3433 < #line 1026 "conf_parser.y" /* yacc.c:1646  */
3433 > #line 888 "conf_parser.y" /* yacc.c:1646  */
3434      {
3435    if (conf_parser_ctx.pass != 2)
3436      break;
3437  
3438    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3439   }
3440 < #line 3579 "conf_parser.c" /* yacc.c:1646  */
3440 > #line 3441 "conf_parser.c" /* yacc.c:1646  */
3441      break;
3442  
3443    case 138:
3444 < #line 1034 "conf_parser.y" /* yacc.c:1646  */
3444 > #line 896 "conf_parser.y" /* yacc.c:1646  */
3445      {
3446    block_state.size.value = (yyvsp[-1].number);
3447   }
3448 < #line 3587 "conf_parser.c" /* yacc.c:1646  */
3448 > #line 3449 "conf_parser.c" /* yacc.c:1646  */
3449      break;
3450  
3451    case 139:
3452 < #line 1037 "conf_parser.y" /* yacc.c:1646  */
3452 > #line 899 "conf_parser.y" /* yacc.c:1646  */
3453      {
3454    block_state.size.value = 0;
3455   }
3456 < #line 3595 "conf_parser.c" /* yacc.c:1646  */
3456 > #line 3457 "conf_parser.c" /* yacc.c:1646  */
3457      break;
3458  
3459    case 140:
3460 < #line 1042 "conf_parser.y" /* yacc.c:1646  */
3460 > #line 904 "conf_parser.y" /* yacc.c:1646  */
3461      {
3462    if (conf_parser_ctx.pass == 2)
3463      block_state.type.value = 0;
3464   }
3465 < #line 3604 "conf_parser.c" /* yacc.c:1646  */
3465 > #line 3466 "conf_parser.c" /* yacc.c:1646  */
3466      break;
3467  
3468    case 144:
3469 < #line 1049 "conf_parser.y" /* yacc.c:1646  */
3469 > #line 911 "conf_parser.y" /* yacc.c:1646  */
3470      {
3471    if (conf_parser_ctx.pass == 2)
3472      block_state.type.value = LOG_TYPE_USER;
3473   }
3474 < #line 3613 "conf_parser.c" /* yacc.c:1646  */
3474 > #line 3475 "conf_parser.c" /* yacc.c:1646  */
3475      break;
3476  
3477    case 145:
3478 < #line 1053 "conf_parser.y" /* yacc.c:1646  */
3478 > #line 915 "conf_parser.y" /* yacc.c:1646  */
3479      {
3480    if (conf_parser_ctx.pass == 2)
3481      block_state.type.value = LOG_TYPE_OPER;
3482   }
3483 < #line 3622 "conf_parser.c" /* yacc.c:1646  */
3483 > #line 3484 "conf_parser.c" /* yacc.c:1646  */
3484      break;
3485  
3486    case 146:
3487 < #line 1057 "conf_parser.y" /* yacc.c:1646  */
3487 > #line 919 "conf_parser.y" /* yacc.c:1646  */
3488      {
3489    if (conf_parser_ctx.pass == 2)
3490      block_state.type.value = LOG_TYPE_XLINE;
3491   }
3492 < #line 3631 "conf_parser.c" /* yacc.c:1646  */
3492 > #line 3493 "conf_parser.c" /* yacc.c:1646  */
3493      break;
3494  
3495    case 147:
3496 < #line 1061 "conf_parser.y" /* yacc.c:1646  */
3496 > #line 923 "conf_parser.y" /* yacc.c:1646  */
3497      {
3498    if (conf_parser_ctx.pass == 2)
3499      block_state.type.value = LOG_TYPE_RESV;
3500   }
3501 < #line 3640 "conf_parser.c" /* yacc.c:1646  */
3501 > #line 3502 "conf_parser.c" /* yacc.c:1646  */
3502      break;
3503  
3504    case 148:
3505 < #line 1065 "conf_parser.y" /* yacc.c:1646  */
3505 > #line 927 "conf_parser.y" /* yacc.c:1646  */
3506      {
3507    if (conf_parser_ctx.pass == 2)
3508      block_state.type.value = LOG_TYPE_DLINE;
3509   }
3510 < #line 3649 "conf_parser.c" /* yacc.c:1646  */
3510 > #line 3511 "conf_parser.c" /* yacc.c:1646  */
3511      break;
3512  
3513    case 149:
3514 < #line 1069 "conf_parser.y" /* yacc.c:1646  */
3514 > #line 931 "conf_parser.y" /* yacc.c:1646  */
3515      {
3516    if (conf_parser_ctx.pass == 2)
3517      block_state.type.value = LOG_TYPE_KLINE;
3518   }
3519 < #line 3658 "conf_parser.c" /* yacc.c:1646  */
3519 > #line 3520 "conf_parser.c" /* yacc.c:1646  */
3520      break;
3521  
3522    case 150:
3523 < #line 1073 "conf_parser.y" /* yacc.c:1646  */
3523 > #line 935 "conf_parser.y" /* yacc.c:1646  */
3524      {
3525    if (conf_parser_ctx.pass == 2)
3526      block_state.type.value = LOG_TYPE_KILL;
3527   }
3528 < #line 3667 "conf_parser.c" /* yacc.c:1646  */
3528 > #line 3529 "conf_parser.c" /* yacc.c:1646  */
3529      break;
3530  
3531    case 151:
3532 < #line 1077 "conf_parser.y" /* yacc.c:1646  */
3532 > #line 939 "conf_parser.y" /* yacc.c:1646  */
3533      {
3534    if (conf_parser_ctx.pass == 2)
3535      block_state.type.value = LOG_TYPE_DEBUG;
3536   }
3537 < #line 3676 "conf_parser.c" /* yacc.c:1646  */
3537 > #line 3538 "conf_parser.c" /* yacc.c:1646  */
3538      break;
3539  
3540    case 152:
3541 < #line 1087 "conf_parser.y" /* yacc.c:1646  */
3541 > #line 949 "conf_parser.y" /* yacc.c:1646  */
3542      {
3543    if (conf_parser_ctx.pass != 2)
3544      break;
# Line 3684 | Line 3546 | yyreduce:
3546    reset_block_state();
3547    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3548   }
3549 < #line 3688 "conf_parser.c" /* yacc.c:1646  */
3549 > #line 3550 "conf_parser.c" /* yacc.c:1646  */
3550      break;
3551  
3552    case 153:
3553 < #line 1094 "conf_parser.y" /* yacc.c:1646  */
3553 > #line 956 "conf_parser.y" /* yacc.c:1646  */
3554      {
3555    dlink_node *node = NULL;
3556  
# Line 3737 | Line 3599 | yyreduce:
3599      conf_add_class_to_conf(conf, block_state.class.buf);
3600    }
3601   }
3602 < #line 3741 "conf_parser.c" /* yacc.c:1646  */
3602 > #line 3603 "conf_parser.c" /* yacc.c:1646  */
3603      break;
3604  
3605    case 167:
3606 < #line 1157 "conf_parser.y" /* yacc.c:1646  */
3606 > #line 1019 "conf_parser.y" /* yacc.c:1646  */
3607      {
3608    if (conf_parser_ctx.pass == 2)
3609      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3610   }
3611 < #line 3750 "conf_parser.c" /* yacc.c:1646  */
3611 > #line 3612 "conf_parser.c" /* yacc.c:1646  */
3612      break;
3613  
3614    case 168:
3615 < #line 1163 "conf_parser.y" /* yacc.c:1646  */
3615 > #line 1025 "conf_parser.y" /* yacc.c:1646  */
3616      {
3617    if (conf_parser_ctx.pass == 2)
3618      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3619   }
3620 < #line 3759 "conf_parser.c" /* yacc.c:1646  */
3620 > #line 3621 "conf_parser.c" /* yacc.c:1646  */
3621      break;
3622  
3623    case 169:
3624 < #line 1169 "conf_parser.y" /* yacc.c:1646  */
3624 > #line 1031 "conf_parser.y" /* yacc.c:1646  */
3625      {
3626    if (conf_parser_ctx.pass == 2)
3627      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3628   }
3629 < #line 3768 "conf_parser.c" /* yacc.c:1646  */
3629 > #line 3630 "conf_parser.c" /* yacc.c:1646  */
3630      break;
3631  
3632    case 170:
3633 < #line 1175 "conf_parser.y" /* yacc.c:1646  */
3633 > #line 1037 "conf_parser.y" /* yacc.c:1646  */
3634      {
3635    if (conf_parser_ctx.pass == 2)
3636      strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3637   }
3638 < #line 3777 "conf_parser.c" /* yacc.c:1646  */
3638 > #line 3639 "conf_parser.c" /* yacc.c:1646  */
3639      break;
3640  
3641    case 171:
3642 < #line 1181 "conf_parser.y" /* yacc.c:1646  */
3642 > #line 1043 "conf_parser.y" /* yacc.c:1646  */
3643      {
3644    if (conf_parser_ctx.pass != 2)
3645      break;
# Line 3787 | Line 3649 | yyreduce:
3649    else
3650      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3651   }
3652 < #line 3791 "conf_parser.c" /* yacc.c:1646  */
3652 > #line 3653 "conf_parser.c" /* yacc.c:1646  */
3653      break;
3654  
3655    case 172:
3656 < #line 1192 "conf_parser.y" /* yacc.c:1646  */
3656 > #line 1054 "conf_parser.y" /* yacc.c:1646  */
3657      {
3658    if (conf_parser_ctx.pass == 2)
3659      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3660   }
3661 < #line 3800 "conf_parser.c" /* yacc.c:1646  */
3661 > #line 3662 "conf_parser.c" /* yacc.c:1646  */
3662      break;
3663  
3664    case 173:
3665 < #line 1198 "conf_parser.y" /* yacc.c:1646  */
3665 > #line 1060 "conf_parser.y" /* yacc.c:1646  */
3666      {
3667    if (conf_parser_ctx.pass != 2)
3668      break;
# Line 3810 | Line 3672 | yyreduce:
3672    else
3673      block_state.flags.value &= ~CONF_FLAGS_SSL;
3674   }
3675 < #line 3814 "conf_parser.c" /* yacc.c:1646  */
3675 > #line 3676 "conf_parser.c" /* yacc.c:1646  */
3676      break;
3677  
3678    case 174:
3679 < #line 1209 "conf_parser.y" /* yacc.c:1646  */
3679 > #line 1071 "conf_parser.y" /* yacc.c:1646  */
3680      {
3681    if (conf_parser_ctx.pass == 2)
3682      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3683   }
3684 < #line 3823 "conf_parser.c" /* yacc.c:1646  */
3684 > #line 3685 "conf_parser.c" /* yacc.c:1646  */
3685      break;
3686  
3687    case 175:
3688 < #line 1215 "conf_parser.y" /* yacc.c:1646  */
3688 > #line 1077 "conf_parser.y" /* yacc.c:1646  */
3689      {
3690    if (conf_parser_ctx.pass == 2)
3691      block_state.modes.value = 0;
3692   }
3693 < #line 3832 "conf_parser.c" /* yacc.c:1646  */
3693 > #line 3694 "conf_parser.c" /* yacc.c:1646  */
3694      break;
3695  
3696    case 179:
3697 < #line 1222 "conf_parser.y" /* yacc.c:1646  */
3697 > #line 1084 "conf_parser.y" /* yacc.c:1646  */
3698      {
3699    if (conf_parser_ctx.pass == 2)
3700      block_state.modes.value |= UMODE_BOTS;
3701   }
3702 < #line 3841 "conf_parser.c" /* yacc.c:1646  */
3702 > #line 3703 "conf_parser.c" /* yacc.c:1646  */
3703      break;
3704  
3705    case 180:
3706 < #line 1226 "conf_parser.y" /* yacc.c:1646  */
3706 > #line 1088 "conf_parser.y" /* yacc.c:1646  */
3707      {
3708    if (conf_parser_ctx.pass == 2)
3709      block_state.modes.value |= UMODE_CCONN;
3710   }
3711 < #line 3850 "conf_parser.c" /* yacc.c:1646  */
3711 > #line 3712 "conf_parser.c" /* yacc.c:1646  */
3712      break;
3713  
3714    case 181:
3715 < #line 1230 "conf_parser.y" /* yacc.c:1646  */
3715 > #line 1092 "conf_parser.y" /* yacc.c:1646  */
3716      {
3717    if (conf_parser_ctx.pass == 2)
3718      block_state.modes.value |= UMODE_DEAF;
3719   }
3720 < #line 3859 "conf_parser.c" /* yacc.c:1646  */
3720 > #line 3721 "conf_parser.c" /* yacc.c:1646  */
3721      break;
3722  
3723    case 182:
3724 < #line 1234 "conf_parser.y" /* yacc.c:1646  */
3724 > #line 1096 "conf_parser.y" /* yacc.c:1646  */
3725      {
3726    if (conf_parser_ctx.pass == 2)
3727      block_state.modes.value |= UMODE_DEBUG;
3728   }
3729 < #line 3868 "conf_parser.c" /* yacc.c:1646  */
3729 > #line 3730 "conf_parser.c" /* yacc.c:1646  */
3730      break;
3731  
3732    case 183:
3733 < #line 1238 "conf_parser.y" /* yacc.c:1646  */
3733 > #line 1100 "conf_parser.y" /* yacc.c:1646  */
3734      {
3735    if (conf_parser_ctx.pass == 2)
3736      block_state.modes.value |= UMODE_FULL;
3737   }
3738 < #line 3877 "conf_parser.c" /* yacc.c:1646  */
3738 > #line 3739 "conf_parser.c" /* yacc.c:1646  */
3739      break;
3740  
3741    case 184:
3742 < #line 1242 "conf_parser.y" /* yacc.c:1646  */
3742 > #line 1104 "conf_parser.y" /* yacc.c:1646  */
3743      {
3744    if (conf_parser_ctx.pass == 2)
3745      block_state.modes.value |= UMODE_HIDDEN;
3746   }
3747 < #line 3886 "conf_parser.c" /* yacc.c:1646  */
3747 > #line 3748 "conf_parser.c" /* yacc.c:1646  */
3748      break;
3749  
3750    case 185:
3751 < #line 1246 "conf_parser.y" /* yacc.c:1646  */
3751 > #line 1108 "conf_parser.y" /* yacc.c:1646  */
3752      {
3753    if (conf_parser_ctx.pass == 2)
3754      block_state.modes.value |= UMODE_HIDECHANS;
3755   }
3756 < #line 3895 "conf_parser.c" /* yacc.c:1646  */
3756 > #line 3757 "conf_parser.c" /* yacc.c:1646  */
3757      break;
3758  
3759    case 186:
3760 < #line 1250 "conf_parser.y" /* yacc.c:1646  */
3760 > #line 1112 "conf_parser.y" /* yacc.c:1646  */
3761      {
3762    if (conf_parser_ctx.pass == 2)
3763      block_state.modes.value |= UMODE_HIDEIDLE;
3764   }
3765 < #line 3904 "conf_parser.c" /* yacc.c:1646  */
3765 > #line 3766 "conf_parser.c" /* yacc.c:1646  */
3766      break;
3767  
3768    case 187:
3769 < #line 1254 "conf_parser.y" /* yacc.c:1646  */
3769 > #line 1116 "conf_parser.y" /* yacc.c:1646  */
3770      {
3771    if (conf_parser_ctx.pass == 2)
3772      block_state.modes.value |= UMODE_SKILL;
3773   }
3774 < #line 3913 "conf_parser.c" /* yacc.c:1646  */
3774 > #line 3775 "conf_parser.c" /* yacc.c:1646  */
3775      break;
3776  
3777    case 188:
3778 < #line 1258 "conf_parser.y" /* yacc.c:1646  */
3778 > #line 1120 "conf_parser.y" /* yacc.c:1646  */
3779      {
3780    if (conf_parser_ctx.pass == 2)
3781      block_state.modes.value |= UMODE_NCHANGE;
3782   }
3783 < #line 3922 "conf_parser.c" /* yacc.c:1646  */
3783 > #line 3784 "conf_parser.c" /* yacc.c:1646  */
3784      break;
3785  
3786    case 189:
3787 < #line 1262 "conf_parser.y" /* yacc.c:1646  */
3787 > #line 1124 "conf_parser.y" /* yacc.c:1646  */
3788      {
3789    if (conf_parser_ctx.pass == 2)
3790      block_state.modes.value |= UMODE_REJ;
3791   }
3792 < #line 3931 "conf_parser.c" /* yacc.c:1646  */
3792 > #line 3793 "conf_parser.c" /* yacc.c:1646  */
3793      break;
3794  
3795    case 190:
3796 < #line 1266 "conf_parser.y" /* yacc.c:1646  */
3796 > #line 1128 "conf_parser.y" /* yacc.c:1646  */
3797      {
3798    if (conf_parser_ctx.pass == 2)
3799      block_state.modes.value |= UMODE_UNAUTH;
3800   }
3801 < #line 3940 "conf_parser.c" /* yacc.c:1646  */
3801 > #line 3802 "conf_parser.c" /* yacc.c:1646  */
3802      break;
3803  
3804    case 191:
3805 < #line 1270 "conf_parser.y" /* yacc.c:1646  */
3805 > #line 1132 "conf_parser.y" /* yacc.c:1646  */
3806      {
3807    if (conf_parser_ctx.pass == 2)
3808      block_state.modes.value |= UMODE_SPY;
3809   }
3810 < #line 3949 "conf_parser.c" /* yacc.c:1646  */
3810 > #line 3811 "conf_parser.c" /* yacc.c:1646  */
3811      break;
3812  
3813    case 192:
3814 < #line 1274 "conf_parser.y" /* yacc.c:1646  */
3814 > #line 1136 "conf_parser.y" /* yacc.c:1646  */
3815      {
3816    if (conf_parser_ctx.pass == 2)
3817      block_state.modes.value |= UMODE_EXTERNAL;
3818   }
3819 < #line 3958 "conf_parser.c" /* yacc.c:1646  */
3819 > #line 3820 "conf_parser.c" /* yacc.c:1646  */
3820      break;
3821  
3822    case 193:
3823 < #line 1278 "conf_parser.y" /* yacc.c:1646  */
3823 > #line 1140 "conf_parser.y" /* yacc.c:1646  */
3824      {
3825    if (conf_parser_ctx.pass == 2)
3826      block_state.modes.value |= UMODE_SERVNOTICE;
3827   }
3828 < #line 3967 "conf_parser.c" /* yacc.c:1646  */
3828 > #line 3829 "conf_parser.c" /* yacc.c:1646  */
3829      break;
3830  
3831    case 194:
3832 < #line 1282 "conf_parser.y" /* yacc.c:1646  */
3832 > #line 1144 "conf_parser.y" /* yacc.c:1646  */
3833      {
3834    if (conf_parser_ctx.pass == 2)
3835      block_state.modes.value |= UMODE_INVISIBLE;
3836   }
3837 < #line 3976 "conf_parser.c" /* yacc.c:1646  */
3837 > #line 3838 "conf_parser.c" /* yacc.c:1646  */
3838      break;
3839  
3840    case 195:
3841 < #line 1286 "conf_parser.y" /* yacc.c:1646  */
3841 > #line 1148 "conf_parser.y" /* yacc.c:1646  */
3842      {
3843    if (conf_parser_ctx.pass == 2)
3844      block_state.modes.value |= UMODE_WALLOP;
3845   }
3846 < #line 3985 "conf_parser.c" /* yacc.c:1646  */
3846 > #line 3847 "conf_parser.c" /* yacc.c:1646  */
3847      break;
3848  
3849    case 196:
3850 < #line 1290 "conf_parser.y" /* yacc.c:1646  */
3850 > #line 1152 "conf_parser.y" /* yacc.c:1646  */
3851      {
3852    if (conf_parser_ctx.pass == 2)
3853      block_state.modes.value |= UMODE_SOFTCALLERID;
3854   }
3855 < #line 3994 "conf_parser.c" /* yacc.c:1646  */
3855 > #line 3856 "conf_parser.c" /* yacc.c:1646  */
3856      break;
3857  
3858    case 197:
3859 < #line 1294 "conf_parser.y" /* yacc.c:1646  */
3859 > #line 1156 "conf_parser.y" /* yacc.c:1646  */
3860      {
3861    if (conf_parser_ctx.pass == 2)
3862      block_state.modes.value |= UMODE_CALLERID;
3863   }
3864 < #line 4003 "conf_parser.c" /* yacc.c:1646  */
3864 > #line 3865 "conf_parser.c" /* yacc.c:1646  */
3865      break;
3866  
3867    case 198:
3868 < #line 1298 "conf_parser.y" /* yacc.c:1646  */
3868 > #line 1160 "conf_parser.y" /* yacc.c:1646  */
3869      {
3870    if (conf_parser_ctx.pass == 2)
3871      block_state.modes.value |= UMODE_LOCOPS;
3872   }
3873 < #line 4012 "conf_parser.c" /* yacc.c:1646  */
3873 > #line 3874 "conf_parser.c" /* yacc.c:1646  */
3874      break;
3875  
3876    case 199:
3877 < #line 1302 "conf_parser.y" /* yacc.c:1646  */
3877 > #line 1164 "conf_parser.y" /* yacc.c:1646  */
3878      {
3879    if (conf_parser_ctx.pass == 2)
3880      block_state.modes.value |= UMODE_REGONLY;
3881   }
3882 < #line 4021 "conf_parser.c" /* yacc.c:1646  */
3882 > #line 3883 "conf_parser.c" /* yacc.c:1646  */
3883      break;
3884  
3885    case 200:
3886 < #line 1306 "conf_parser.y" /* yacc.c:1646  */
3886 > #line 1168 "conf_parser.y" /* yacc.c:1646  */
3887      {
3888    if (conf_parser_ctx.pass == 2)
3889      block_state.modes.value |= UMODE_FARCONNECT;
3890   }
3891 < #line 4030 "conf_parser.c" /* yacc.c:1646  */
3891 > #line 3892 "conf_parser.c" /* yacc.c:1646  */
3892      break;
3893  
3894    case 201:
3895 < #line 1312 "conf_parser.y" /* yacc.c:1646  */
3895 > #line 1174 "conf_parser.y" /* yacc.c:1646  */
3896      {
3897    if (conf_parser_ctx.pass == 2)
3898      block_state.port.value = 0;
3899   }
3900 < #line 4039 "conf_parser.c" /* yacc.c:1646  */
3900 > #line 3901 "conf_parser.c" /* yacc.c:1646  */
3901      break;
3902  
3903    case 205:
3904 < #line 1319 "conf_parser.y" /* yacc.c:1646  */
3904 > #line 1181 "conf_parser.y" /* yacc.c:1646  */
3905      {
3906    if (conf_parser_ctx.pass == 2)
3907      block_state.port.value |= OPER_FLAG_KILL_REMOTE;
3908   }
3909 < #line 4048 "conf_parser.c" /* yacc.c:1646  */
3909 > #line 3910 "conf_parser.c" /* yacc.c:1646  */
3910      break;
3911  
3912    case 206:
3913 < #line 1323 "conf_parser.y" /* yacc.c:1646  */
3913 > #line 1185 "conf_parser.y" /* yacc.c:1646  */
3914      {
3915    if (conf_parser_ctx.pass == 2)
3916      block_state.port.value |= OPER_FLAG_KILL;
3917   }
3918 < #line 4057 "conf_parser.c" /* yacc.c:1646  */
3918 > #line 3919 "conf_parser.c" /* yacc.c:1646  */
3919      break;
3920  
3921    case 207:
3922 < #line 1327 "conf_parser.y" /* yacc.c:1646  */
3922 > #line 1189 "conf_parser.y" /* yacc.c:1646  */
3923      {
3924    if (conf_parser_ctx.pass == 2)
3925      block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
3926   }
3927 < #line 4066 "conf_parser.c" /* yacc.c:1646  */
3927 > #line 3928 "conf_parser.c" /* yacc.c:1646  */
3928      break;
3929  
3930    case 208:
3931 < #line 1331 "conf_parser.y" /* yacc.c:1646  */
3931 > #line 1193 "conf_parser.y" /* yacc.c:1646  */
3932      {
3933    if (conf_parser_ctx.pass == 2)
3934      block_state.port.value |= OPER_FLAG_CONNECT;
3935   }
3936 < #line 4075 "conf_parser.c" /* yacc.c:1646  */
3936 > #line 3937 "conf_parser.c" /* yacc.c:1646  */
3937      break;
3938  
3939    case 209:
3940 < #line 1335 "conf_parser.y" /* yacc.c:1646  */
3940 > #line 1197 "conf_parser.y" /* yacc.c:1646  */
3941      {
3942    if (conf_parser_ctx.pass == 2)
3943      block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
3944   }
3945 < #line 4084 "conf_parser.c" /* yacc.c:1646  */
3945 > #line 3946 "conf_parser.c" /* yacc.c:1646  */
3946      break;
3947  
3948    case 210:
3949 < #line 1339 "conf_parser.y" /* yacc.c:1646  */
3949 > #line 1201 "conf_parser.y" /* yacc.c:1646  */
3950      {
3951    if (conf_parser_ctx.pass == 2)
3952      block_state.port.value |= OPER_FLAG_SQUIT;
3953   }
3954 < #line 4093 "conf_parser.c" /* yacc.c:1646  */
3954 > #line 3955 "conf_parser.c" /* yacc.c:1646  */
3955      break;
3956  
3957    case 211:
3958 < #line 1343 "conf_parser.y" /* yacc.c:1646  */
3958 > #line 1205 "conf_parser.y" /* yacc.c:1646  */
3959      {
3960    if (conf_parser_ctx.pass == 2)
3961      block_state.port.value |= OPER_FLAG_KLINE;
3962   }
3963 < #line 4102 "conf_parser.c" /* yacc.c:1646  */
3963 > #line 3964 "conf_parser.c" /* yacc.c:1646  */
3964      break;
3965  
3966    case 212:
3967 < #line 1347 "conf_parser.y" /* yacc.c:1646  */
3967 > #line 1209 "conf_parser.y" /* yacc.c:1646  */
3968      {
3969    if (conf_parser_ctx.pass == 2)
3970      block_state.port.value |= OPER_FLAG_UNKLINE;
3971   }
3972 < #line 4111 "conf_parser.c" /* yacc.c:1646  */
3972 > #line 3973 "conf_parser.c" /* yacc.c:1646  */
3973      break;
3974  
3975    case 213:
3976 < #line 1351 "conf_parser.y" /* yacc.c:1646  */
3976 > #line 1213 "conf_parser.y" /* yacc.c:1646  */
3977      {
3978    if (conf_parser_ctx.pass == 2)
3979      block_state.port.value |= OPER_FLAG_DLINE;
3980   }
3981 < #line 4120 "conf_parser.c" /* yacc.c:1646  */
3981 > #line 3982 "conf_parser.c" /* yacc.c:1646  */
3982      break;
3983  
3984    case 214:
3985 < #line 1355 "conf_parser.y" /* yacc.c:1646  */
3985 > #line 1217 "conf_parser.y" /* yacc.c:1646  */
3986      {
3987    if (conf_parser_ctx.pass == 2)
3988      block_state.port.value |= OPER_FLAG_UNDLINE;
3989   }
3990 < #line 4129 "conf_parser.c" /* yacc.c:1646  */
3990 > #line 3991 "conf_parser.c" /* yacc.c:1646  */
3991      break;
3992  
3993    case 215:
3994 < #line 1359 "conf_parser.y" /* yacc.c:1646  */
3994 > #line 1221 "conf_parser.y" /* yacc.c:1646  */
3995      {
3996    if (conf_parser_ctx.pass == 2)
3997      block_state.port.value |= OPER_FLAG_XLINE;
3998   }
3999 < #line 4138 "conf_parser.c" /* yacc.c:1646  */
3999 > #line 4000 "conf_parser.c" /* yacc.c:1646  */
4000      break;
4001  
4002    case 216:
4003 < #line 1363 "conf_parser.y" /* yacc.c:1646  */
4003 > #line 1225 "conf_parser.y" /* yacc.c:1646  */
4004      {
4005    if (conf_parser_ctx.pass == 2)
4006      block_state.port.value |= OPER_FLAG_UNXLINE;
4007   }
4008 < #line 4147 "conf_parser.c" /* yacc.c:1646  */
4008 > #line 4009 "conf_parser.c" /* yacc.c:1646  */
4009      break;
4010  
4011    case 217:
4012 < #line 1367 "conf_parser.y" /* yacc.c:1646  */
4012 > #line 1229 "conf_parser.y" /* yacc.c:1646  */
4013      {
4014    if (conf_parser_ctx.pass == 2)
4015      block_state.port.value |= OPER_FLAG_DIE;
4016   }
4017 < #line 4156 "conf_parser.c" /* yacc.c:1646  */
4017 > #line 4018 "conf_parser.c" /* yacc.c:1646  */
4018      break;
4019  
4020    case 218:
4021 < #line 1371 "conf_parser.y" /* yacc.c:1646  */
4021 > #line 1233 "conf_parser.y" /* yacc.c:1646  */
4022      {
4023    if (conf_parser_ctx.pass == 2)
4024      block_state.port.value |= OPER_FLAG_RESTART;
4025   }
4026 < #line 4165 "conf_parser.c" /* yacc.c:1646  */
4026 > #line 4027 "conf_parser.c" /* yacc.c:1646  */
4027      break;
4028  
4029    case 219:
4030 < #line 1375 "conf_parser.y" /* yacc.c:1646  */
4030 > #line 1237 "conf_parser.y" /* yacc.c:1646  */
4031      {
4032    if (conf_parser_ctx.pass == 2)
4033      block_state.port.value |= OPER_FLAG_REHASH_REMOTE;
4034   }
4035 < #line 4174 "conf_parser.c" /* yacc.c:1646  */
4035 > #line 4036 "conf_parser.c" /* yacc.c:1646  */
4036      break;
4037  
4038    case 220:
4039 < #line 1379 "conf_parser.y" /* yacc.c:1646  */
4039 > #line 1241 "conf_parser.y" /* yacc.c:1646  */
4040      {
4041    if (conf_parser_ctx.pass == 2)
4042      block_state.port.value |= OPER_FLAG_REHASH;
4043   }
4044 < #line 4183 "conf_parser.c" /* yacc.c:1646  */
4044 > #line 4045 "conf_parser.c" /* yacc.c:1646  */
4045      break;
4046  
4047    case 221:
4048 < #line 1383 "conf_parser.y" /* yacc.c:1646  */
4048 > #line 1245 "conf_parser.y" /* yacc.c:1646  */
4049      {
4050    if (conf_parser_ctx.pass == 2)
4051      block_state.port.value |= OPER_FLAG_ADMIN;
4052   }
4053 < #line 4192 "conf_parser.c" /* yacc.c:1646  */
4053 > #line 4054 "conf_parser.c" /* yacc.c:1646  */
4054      break;
4055  
4056    case 222:
4057 < #line 1387 "conf_parser.y" /* yacc.c:1646  */
4057 > #line 1249 "conf_parser.y" /* yacc.c:1646  */
4058      {
4059    if (conf_parser_ctx.pass == 2)
4060      block_state.port.value |= OPER_FLAG_GLOBOPS;
4061   }
4062 < #line 4201 "conf_parser.c" /* yacc.c:1646  */
4062 > #line 4063 "conf_parser.c" /* yacc.c:1646  */
4063      break;
4064  
4065    case 223:
4066 < #line 1391 "conf_parser.y" /* yacc.c:1646  */
4066 > #line 1253 "conf_parser.y" /* yacc.c:1646  */
4067      {
4068    if (conf_parser_ctx.pass == 2)
4069      block_state.port.value |= OPER_FLAG_WALLOPS;
4070   }
4071 < #line 4210 "conf_parser.c" /* yacc.c:1646  */
4071 > #line 4072 "conf_parser.c" /* yacc.c:1646  */
4072      break;
4073  
4074    case 224:
4075 < #line 1395 "conf_parser.y" /* yacc.c:1646  */
4075 > #line 1257 "conf_parser.y" /* yacc.c:1646  */
4076      {
4077    if (conf_parser_ctx.pass == 2)
4078      block_state.port.value |= OPER_FLAG_LOCOPS;
4079   }
4080 < #line 4219 "conf_parser.c" /* yacc.c:1646  */
4080 > #line 4081 "conf_parser.c" /* yacc.c:1646  */
4081      break;
4082  
4083    case 225:
4084 < #line 1399 "conf_parser.y" /* yacc.c:1646  */
4084 > #line 1261 "conf_parser.y" /* yacc.c:1646  */
4085      {
4086    if (conf_parser_ctx.pass == 2)
4087      block_state.port.value |= OPER_FLAG_REMOTEBAN;
4088   }
4089 < #line 4228 "conf_parser.c" /* yacc.c:1646  */
4089 > #line 4090 "conf_parser.c" /* yacc.c:1646  */
4090      break;
4091  
4092    case 226:
4093 < #line 1403 "conf_parser.y" /* yacc.c:1646  */
4093 > #line 1265 "conf_parser.y" /* yacc.c:1646  */
4094      {
4095    if (conf_parser_ctx.pass == 2)
4096      block_state.port.value |= OPER_FLAG_SET;
4097   }
4098 < #line 4237 "conf_parser.c" /* yacc.c:1646  */
4098 > #line 4099 "conf_parser.c" /* yacc.c:1646  */
4099      break;
4100  
4101    case 227:
4102 < #line 1407 "conf_parser.y" /* yacc.c:1646  */
4102 > #line 1269 "conf_parser.y" /* yacc.c:1646  */
4103      {
4104    if (conf_parser_ctx.pass == 2)
4105      block_state.port.value |= OPER_FLAG_MODULE;
4106   }
4107 < #line 4246 "conf_parser.c" /* yacc.c:1646  */
4107 > #line 4108 "conf_parser.c" /* yacc.c:1646  */
4108      break;
4109  
4110    case 228:
4111 < #line 1411 "conf_parser.y" /* yacc.c:1646  */
4111 > #line 1273 "conf_parser.y" /* yacc.c:1646  */
4112      {
4113    if (conf_parser_ctx.pass == 2)
4114      block_state.port.value |= OPER_FLAG_OPME;
4115   }
4116 < #line 4255 "conf_parser.c" /* yacc.c:1646  */
4116 > #line 4117 "conf_parser.c" /* yacc.c:1646  */
4117      break;
4118  
4119    case 229:
4120 < #line 1415 "conf_parser.y" /* yacc.c:1646  */
4120 > #line 1277 "conf_parser.y" /* yacc.c:1646  */
4121      {
4122    if (conf_parser_ctx.pass == 2)
4123      block_state.port.value |= OPER_FLAG_NICK_RESV;
4124   }
4125 < #line 4264 "conf_parser.c" /* yacc.c:1646  */
4125 > #line 4126 "conf_parser.c" /* yacc.c:1646  */
4126      break;
4127  
4128    case 230:
4129 < #line 1419 "conf_parser.y" /* yacc.c:1646  */
4129 > #line 1281 "conf_parser.y" /* yacc.c:1646  */
4130      {
4131    if (conf_parser_ctx.pass == 2)
4132      block_state.port.value |= OPER_FLAG_JOIN_RESV;
4133   }
4134 < #line 4273 "conf_parser.c" /* yacc.c:1646  */
4134 > #line 4135 "conf_parser.c" /* yacc.c:1646  */
4135      break;
4136  
4137    case 231:
4138 < #line 1423 "conf_parser.y" /* yacc.c:1646  */
4138 > #line 1285 "conf_parser.y" /* yacc.c:1646  */
4139      {
4140    if (conf_parser_ctx.pass == 2)
4141      block_state.port.value |= OPER_FLAG_RESV;
4142   }
4143 < #line 4282 "conf_parser.c" /* yacc.c:1646  */
4143 > #line 4144 "conf_parser.c" /* yacc.c:1646  */
4144      break;
4145  
4146    case 232:
4147 < #line 1427 "conf_parser.y" /* yacc.c:1646  */
4147 > #line 1289 "conf_parser.y" /* yacc.c:1646  */
4148      {
4149    if (conf_parser_ctx.pass == 2)
4150      block_state.port.value |= OPER_FLAG_UNRESV;
4151   }
4152 < #line 4291 "conf_parser.c" /* yacc.c:1646  */
4152 > #line 4153 "conf_parser.c" /* yacc.c:1646  */
4153      break;
4154  
4155    case 233:
4156 < #line 1431 "conf_parser.y" /* yacc.c:1646  */
4156 > #line 1293 "conf_parser.y" /* yacc.c:1646  */
4157      {
4158    if (conf_parser_ctx.pass == 2)
4159      block_state.port.value |= OPER_FLAG_CLOSE;
4160   }
4161 < #line 4300 "conf_parser.c" /* yacc.c:1646  */
4161 > #line 4162 "conf_parser.c" /* yacc.c:1646  */
4162      break;
4163  
4164    case 234:
4165 < #line 1441 "conf_parser.y" /* yacc.c:1646  */
4165 > #line 1303 "conf_parser.y" /* yacc.c:1646  */
4166      {
4167    if (conf_parser_ctx.pass != 1)
4168      break;
# Line 4313 | Line 4175 | yyreduce:
4175    block_state.max_sendq.value = DEFAULT_SENDQ;
4176    block_state.max_recvq.value = DEFAULT_RECVQ;
4177   }
4178 < #line 4317 "conf_parser.c" /* yacc.c:1646  */
4178 > #line 4179 "conf_parser.c" /* yacc.c:1646  */
4179      break;
4180  
4181    case 235:
4182 < #line 1453 "conf_parser.y" /* yacc.c:1646  */
4182 > #line 1315 "conf_parser.y" /* yacc.c:1646  */
4183      {
4184    struct ClassItem *class = NULL;
4185  
# Line 4361 | Line 4223 | yyreduce:
4223    class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4224    class->number_per_cidr = block_state.number_per_cidr.value;
4225   }
4226 < #line 4365 "conf_parser.c" /* yacc.c:1646  */
4226 > #line 4227 "conf_parser.c" /* yacc.c:1646  */
4227      break;
4228  
4229    case 256:
4230 < #line 1517 "conf_parser.y" /* yacc.c:1646  */
4230 > #line 1379 "conf_parser.y" /* yacc.c:1646  */
4231      {
4232    if (conf_parser_ctx.pass == 1)
4233      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4234   }
4235 < #line 4374 "conf_parser.c" /* yacc.c:1646  */
4235 > #line 4236 "conf_parser.c" /* yacc.c:1646  */
4236      break;
4237  
4238    case 257:
4239 < #line 1523 "conf_parser.y" /* yacc.c:1646  */
4239 > #line 1385 "conf_parser.y" /* yacc.c:1646  */
4240      {
4241    if (conf_parser_ctx.pass == 1)
4242      block_state.ping_freq.value = (yyvsp[-1].number);
4243   }
4244 < #line 4383 "conf_parser.c" /* yacc.c:1646  */
4244 > #line 4245 "conf_parser.c" /* yacc.c:1646  */
4245      break;
4246  
4247    case 258:
4248 < #line 1529 "conf_parser.y" /* yacc.c:1646  */
4248 > #line 1391 "conf_parser.y" /* yacc.c:1646  */
4249      {
4250    if (conf_parser_ctx.pass == 1)
4251      block_state.max_perip.value = (yyvsp[-1].number);
4252   }
4253 < #line 4392 "conf_parser.c" /* yacc.c:1646  */
4253 > #line 4254 "conf_parser.c" /* yacc.c:1646  */
4254      break;
4255  
4256    case 259:
4257 < #line 1535 "conf_parser.y" /* yacc.c:1646  */
4257 > #line 1397 "conf_parser.y" /* yacc.c:1646  */
4258      {
4259    if (conf_parser_ctx.pass == 1)
4260      block_state.con_freq.value = (yyvsp[-1].number);
4261   }
4262 < #line 4401 "conf_parser.c" /* yacc.c:1646  */
4262 > #line 4263 "conf_parser.c" /* yacc.c:1646  */
4263      break;
4264  
4265    case 260:
4266 < #line 1541 "conf_parser.y" /* yacc.c:1646  */
4266 > #line 1403 "conf_parser.y" /* yacc.c:1646  */
4267      {
4268    if (conf_parser_ctx.pass == 1)
4269      block_state.max_channels.value = (yyvsp[-1].number);
4270   }
4271 < #line 4410 "conf_parser.c" /* yacc.c:1646  */
4271 > #line 4272 "conf_parser.c" /* yacc.c:1646  */
4272      break;
4273  
4274    case 261:
4275 < #line 1547 "conf_parser.y" /* yacc.c:1646  */
4275 > #line 1409 "conf_parser.y" /* yacc.c:1646  */
4276      {
4277    if (conf_parser_ctx.pass == 1)
4278      block_state.max_total.value = (yyvsp[-1].number);
4279   }
4280 < #line 4419 "conf_parser.c" /* yacc.c:1646  */
4280 > #line 4281 "conf_parser.c" /* yacc.c:1646  */
4281      break;
4282  
4283    case 262:
4284 < #line 1553 "conf_parser.y" /* yacc.c:1646  */
4284 > #line 1415 "conf_parser.y" /* yacc.c:1646  */
4285      {
4286    if (conf_parser_ctx.pass == 1)
4287      block_state.max_global.value = (yyvsp[-1].number);
4288   }
4289 < #line 4428 "conf_parser.c" /* yacc.c:1646  */
4289 > #line 4290 "conf_parser.c" /* yacc.c:1646  */
4290      break;
4291  
4292    case 263:
4293 < #line 1559 "conf_parser.y" /* yacc.c:1646  */
4293 > #line 1421 "conf_parser.y" /* yacc.c:1646  */
4294      {
4295    if (conf_parser_ctx.pass == 1)
4296      block_state.max_local.value = (yyvsp[-1].number);
4297   }
4298 < #line 4437 "conf_parser.c" /* yacc.c:1646  */
4298 > #line 4299 "conf_parser.c" /* yacc.c:1646  */
4299      break;
4300  
4301    case 264:
4302 < #line 1565 "conf_parser.y" /* yacc.c:1646  */
4302 > #line 1427 "conf_parser.y" /* yacc.c:1646  */
4303      {
4304    if (conf_parser_ctx.pass == 1)
4305      block_state.max_ident.value = (yyvsp[-1].number);
4306   }
4307 < #line 4446 "conf_parser.c" /* yacc.c:1646  */
4307 > #line 4308 "conf_parser.c" /* yacc.c:1646  */
4308      break;
4309  
4310    case 265:
4311 < #line 1571 "conf_parser.y" /* yacc.c:1646  */
4311 > #line 1433 "conf_parser.y" /* yacc.c:1646  */
4312      {
4313    if (conf_parser_ctx.pass == 1)
4314      block_state.max_sendq.value = (yyvsp[-1].number);
4315   }
4316 < #line 4455 "conf_parser.c" /* yacc.c:1646  */
4316 > #line 4317 "conf_parser.c" /* yacc.c:1646  */
4317      break;
4318  
4319    case 266:
4320 < #line 1577 "conf_parser.y" /* yacc.c:1646  */
4320 > #line 1439 "conf_parser.y" /* yacc.c:1646  */
4321      {
4322    if (conf_parser_ctx.pass == 1)
4323      if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4324        block_state.max_recvq.value = (yyvsp[-1].number);
4325   }
4326 < #line 4465 "conf_parser.c" /* yacc.c:1646  */
4326 > #line 4327 "conf_parser.c" /* yacc.c:1646  */
4327      break;
4328  
4329    case 267:
4330 < #line 1584 "conf_parser.y" /* yacc.c:1646  */
4330 > #line 1446 "conf_parser.y" /* yacc.c:1646  */
4331      {
4332    if (conf_parser_ctx.pass == 1)
4333      block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4334   }
4335 < #line 4474 "conf_parser.c" /* yacc.c:1646  */
4335 > #line 4336 "conf_parser.c" /* yacc.c:1646  */
4336      break;
4337  
4338    case 268:
4339 < #line 1590 "conf_parser.y" /* yacc.c:1646  */
4339 > #line 1452 "conf_parser.y" /* yacc.c:1646  */
4340      {
4341    if (conf_parser_ctx.pass == 1)
4342      block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4343   }
4344 < #line 4483 "conf_parser.c" /* yacc.c:1646  */
4344 > #line 4345 "conf_parser.c" /* yacc.c:1646  */
4345      break;
4346  
4347    case 269:
4348 < #line 1596 "conf_parser.y" /* yacc.c:1646  */
4348 > #line 1458 "conf_parser.y" /* yacc.c:1646  */
4349      {
4350    if (conf_parser_ctx.pass == 1)
4351      block_state.number_per_cidr.value = (yyvsp[-1].number);
4352   }
4353 < #line 4492 "conf_parser.c" /* yacc.c:1646  */
4353 > #line 4354 "conf_parser.c" /* yacc.c:1646  */
4354      break;
4355  
4356    case 270:
4357 < #line 1602 "conf_parser.y" /* yacc.c:1646  */
4357 > #line 1464 "conf_parser.y" /* yacc.c:1646  */
4358      {
4359    if (conf_parser_ctx.pass != 1)
4360      break;
# Line 4500 | Line 4362 | yyreduce:
4362    block_state.min_idle.value = (yyvsp[-1].number);
4363    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4364   }
4365 < #line 4504 "conf_parser.c" /* yacc.c:1646  */
4365 > #line 4366 "conf_parser.c" /* yacc.c:1646  */
4366      break;
4367  
4368    case 271:
4369 < #line 1611 "conf_parser.y" /* yacc.c:1646  */
4369 > #line 1473 "conf_parser.y" /* yacc.c:1646  */
4370      {
4371    if (conf_parser_ctx.pass != 1)
4372      break;
# Line 4512 | Line 4374 | yyreduce:
4374    block_state.max_idle.value = (yyvsp[-1].number);
4375    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4376   }
4377 < #line 4516 "conf_parser.c" /* yacc.c:1646  */
4377 > #line 4378 "conf_parser.c" /* yacc.c:1646  */
4378      break;
4379  
4380    case 272:
4381 < #line 1620 "conf_parser.y" /* yacc.c:1646  */
4381 > #line 1482 "conf_parser.y" /* yacc.c:1646  */
4382      {
4383    if (conf_parser_ctx.pass == 1)
4384      block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4385   }
4386 < #line 4525 "conf_parser.c" /* yacc.c:1646  */
4386 > #line 4387 "conf_parser.c" /* yacc.c:1646  */
4387      break;
4388  
4389    case 276:
4390 < #line 1627 "conf_parser.y" /* yacc.c:1646  */
4390 > #line 1489 "conf_parser.y" /* yacc.c:1646  */
4391      {
4392    if (conf_parser_ctx.pass == 1)
4393      block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4394   }
4395 < #line 4534 "conf_parser.c" /* yacc.c:1646  */
4395 > #line 4396 "conf_parser.c" /* yacc.c:1646  */
4396      break;
4397  
4398    case 277:
4399 < #line 1631 "conf_parser.y" /* yacc.c:1646  */
4399 > #line 1493 "conf_parser.y" /* yacc.c:1646  */
4400      {
4401    if (conf_parser_ctx.pass == 1)
4402      block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4403   }
4404 < #line 4543 "conf_parser.c" /* yacc.c:1646  */
4404 > #line 4405 "conf_parser.c" /* yacc.c:1646  */
4405      break;
4406  
4407    case 278:
4408 < #line 1641 "conf_parser.y" /* yacc.c:1646  */
4408 > #line 1503 "conf_parser.y" /* yacc.c:1646  */
4409      {
4410    if (conf_parser_ctx.pass == 2)
4411      reset_block_state();
4412   }
4413 < #line 4552 "conf_parser.c" /* yacc.c:1646  */
4413 > #line 4414 "conf_parser.c" /* yacc.c:1646  */
4414      break;
4415  
4416    case 280:
4417 < #line 1647 "conf_parser.y" /* yacc.c:1646  */
4417 > #line 1509 "conf_parser.y" /* yacc.c:1646  */
4418      {
4419    block_state.flags.value = 0;
4420   }
4421 < #line 4560 "conf_parser.c" /* yacc.c:1646  */
4421 > #line 4422 "conf_parser.c" /* yacc.c:1646  */
4422      break;
4423  
4424    case 284:
4425 < #line 1653 "conf_parser.y" /* yacc.c:1646  */
4425 > #line 1515 "conf_parser.y" /* yacc.c:1646  */
4426      {
4427    if (conf_parser_ctx.pass == 2)
4428      block_state.flags.value |= LISTENER_SSL;
4429   }
4430 < #line 4569 "conf_parser.c" /* yacc.c:1646  */
4430 > #line 4431 "conf_parser.c" /* yacc.c:1646  */
4431      break;
4432  
4433    case 285:
4434 < #line 1657 "conf_parser.y" /* yacc.c:1646  */
4434 > #line 1519 "conf_parser.y" /* yacc.c:1646  */
4435      {
4436    if (conf_parser_ctx.pass == 2)
4437      block_state.flags.value |= LISTENER_HIDDEN;
4438   }
4439 < #line 4578 "conf_parser.c" /* yacc.c:1646  */
4439 > #line 4440 "conf_parser.c" /* yacc.c:1646  */
4440      break;
4441  
4442    case 286:
4443 < #line 1661 "conf_parser.y" /* yacc.c:1646  */
4443 > #line 1523 "conf_parser.y" /* yacc.c:1646  */
4444      {
4445    if (conf_parser_ctx.pass == 2)
4446     block_state.flags.value |= LISTENER_SERVER;
4447   }
4448 < #line 4587 "conf_parser.c" /* yacc.c:1646  */
4448 > #line 4449 "conf_parser.c" /* yacc.c:1646  */
4449      break;
4450  
4451    case 294:
4452 < #line 1669 "conf_parser.y" /* yacc.c:1646  */
4452 > #line 1531 "conf_parser.y" /* yacc.c:1646  */
4453      { block_state.flags.value = 0; }
4454 < #line 4593 "conf_parser.c" /* yacc.c:1646  */
4454 > #line 4455 "conf_parser.c" /* yacc.c:1646  */
4455      break;
4456  
4457    case 298:
4458 < #line 1674 "conf_parser.y" /* yacc.c:1646  */
4458 > #line 1536 "conf_parser.y" /* yacc.c:1646  */
4459      {
4460    if (conf_parser_ctx.pass == 2)
4461    {
4462 < #ifndef HAVE_LIBCRYPTO
4462 > #ifndef HAVE_TLS
4463      if (block_state.flags.value & LISTENER_SSL)
4464      {
4465 <      conf_error_report("SSL not available - port closed");
4465 >      conf_error_report("TLS not available - port closed");
4466        break;
4467      }
4468   #endif
4469      listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4470    }
4471   }
4472 < #line 4611 "conf_parser.c" /* yacc.c:1646  */
4472 > #line 4473 "conf_parser.c" /* yacc.c:1646  */
4473      break;
4474  
4475    case 299:
4476 < #line 1687 "conf_parser.y" /* yacc.c:1646  */
4476 > #line 1549 "conf_parser.y" /* yacc.c:1646  */
4477      {
4478    if (conf_parser_ctx.pass == 2)
4479    {
4480 < #ifndef HAVE_LIBCRYPTO
4480 > #ifndef HAVE_TLS
4481      if (block_state.flags.value & LISTENER_SSL)
4482      {
4483 <      conf_error_report("SSL not available - port closed");
4483 >      conf_error_report("TLS not available - port closed");
4484        break;
4485      }
4486   #endif
# Line 4627 | Line 4489 | yyreduce:
4489        listener_add(i, block_state.addr.buf, block_state.flags.value);
4490    }
4491   }
4492 < #line 4631 "conf_parser.c" /* yacc.c:1646  */
4492 > #line 4493 "conf_parser.c" /* yacc.c:1646  */
4493      break;
4494  
4495    case 300:
4496 < #line 1704 "conf_parser.y" /* yacc.c:1646  */
4496 > #line 1566 "conf_parser.y" /* yacc.c:1646  */
4497      {
4498    if (conf_parser_ctx.pass == 2)
4499      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4500   }
4501 < #line 4640 "conf_parser.c" /* yacc.c:1646  */
4501 > #line 4502 "conf_parser.c" /* yacc.c:1646  */
4502      break;
4503  
4504    case 301:
4505 < #line 1710 "conf_parser.y" /* yacc.c:1646  */
4505 > #line 1572 "conf_parser.y" /* yacc.c:1646  */
4506      {
4507    if (conf_parser_ctx.pass == 2)
4508      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4509   }
4510 < #line 4649 "conf_parser.c" /* yacc.c:1646  */
4510 > #line 4511 "conf_parser.c" /* yacc.c:1646  */
4511      break;
4512  
4513    case 302:
4514 < #line 1720 "conf_parser.y" /* yacc.c:1646  */
4514 > #line 1582 "conf_parser.y" /* yacc.c:1646  */
4515      {
4516    if (conf_parser_ctx.pass == 2)
4517      reset_block_state();
4518   }
4519 < #line 4658 "conf_parser.c" /* yacc.c:1646  */
4519 > #line 4520 "conf_parser.c" /* yacc.c:1646  */
4520      break;
4521  
4522    case 303:
4523 < #line 1724 "conf_parser.y" /* yacc.c:1646  */
4523 > #line 1586 "conf_parser.y" /* yacc.c:1646  */
4524      {
4525    dlink_node *node = NULL;
4526  
# Line 4695 | Line 4557 | yyreduce:
4557      add_conf_by_address(CONF_CLIENT, conf);
4558    }
4559   }
4560 < #line 4699 "conf_parser.c" /* yacc.c:1646  */
4560 > #line 4561 "conf_parser.c" /* yacc.c:1646  */
4561      break;
4562  
4563    case 315:
4564 < #line 1773 "conf_parser.y" /* yacc.c:1646  */
4564 > #line 1635 "conf_parser.y" /* yacc.c:1646  */
4565      {
4566    if (conf_parser_ctx.pass == 2)
4567      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4568   }
4569 < #line 4708 "conf_parser.c" /* yacc.c:1646  */
4569 > #line 4570 "conf_parser.c" /* yacc.c:1646  */
4570      break;
4571  
4572    case 316:
4573 < #line 1779 "conf_parser.y" /* yacc.c:1646  */
4573 > #line 1641 "conf_parser.y" /* yacc.c:1646  */
4574      {
4575    if (conf_parser_ctx.pass == 2)
4576      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4577   }
4578 < #line 4717 "conf_parser.c" /* yacc.c:1646  */
4578 > #line 4579 "conf_parser.c" /* yacc.c:1646  */
4579      break;
4580  
4581    case 317:
4582 < #line 1785 "conf_parser.y" /* yacc.c:1646  */
4582 > #line 1647 "conf_parser.y" /* yacc.c:1646  */
4583      {
4584    if (conf_parser_ctx.pass == 2)
4585      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4586   }
4587 < #line 4726 "conf_parser.c" /* yacc.c:1646  */
4587 > #line 4588 "conf_parser.c" /* yacc.c:1646  */
4588      break;
4589  
4590    case 318:
4591 < #line 1791 "conf_parser.y" /* yacc.c:1646  */
4591 > #line 1653 "conf_parser.y" /* yacc.c:1646  */
4592      {
4593    if (conf_parser_ctx.pass == 2)
4594    {
# Line 4736 | Line 4598 | yyreduce:
4598        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4599    }
4600   }
4601 < #line 4740 "conf_parser.c" /* yacc.c:1646  */
4601 > #line 4602 "conf_parser.c" /* yacc.c:1646  */
4602      break;
4603  
4604    case 319:
4605 < #line 1802 "conf_parser.y" /* yacc.c:1646  */
4605 > #line 1664 "conf_parser.y" /* yacc.c:1646  */
4606      {
4607    if (conf_parser_ctx.pass == 2)
4608      block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4609   }
4610 < #line 4749 "conf_parser.c" /* yacc.c:1646  */
4610 > #line 4611 "conf_parser.c" /* yacc.c:1646  */
4611      break;
4612  
4613    case 323:
4614 < #line 1809 "conf_parser.y" /* yacc.c:1646  */
4614 > #line 1671 "conf_parser.y" /* yacc.c:1646  */
4615      {
4616    if (conf_parser_ctx.pass == 2)
4617      block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4618   }
4619 < #line 4758 "conf_parser.c" /* yacc.c:1646  */
4619 > #line 4620 "conf_parser.c" /* yacc.c:1646  */
4620      break;
4621  
4622    case 324:
4623 < #line 1813 "conf_parser.y" /* yacc.c:1646  */
4623 > #line 1675 "conf_parser.y" /* yacc.c:1646  */
4624      {
4625    if (conf_parser_ctx.pass == 2)
4626      block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4627   }
4628 < #line 4767 "conf_parser.c" /* yacc.c:1646  */
4628 > #line 4629 "conf_parser.c" /* yacc.c:1646  */
4629      break;
4630  
4631    case 325:
4632 < #line 1817 "conf_parser.y" /* yacc.c:1646  */
4632 > #line 1679 "conf_parser.y" /* yacc.c:1646  */
4633      {
4634    if (conf_parser_ctx.pass == 2)
4635      block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4636   }
4637 < #line 4776 "conf_parser.c" /* yacc.c:1646  */
4637 > #line 4638 "conf_parser.c" /* yacc.c:1646  */
4638      break;
4639  
4640    case 326:
4641 < #line 1821 "conf_parser.y" /* yacc.c:1646  */
4641 > #line 1683 "conf_parser.y" /* yacc.c:1646  */
4642      {
4643    if (conf_parser_ctx.pass == 2)
4644      block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4645   }
4646 < #line 4785 "conf_parser.c" /* yacc.c:1646  */
4646 > #line 4647 "conf_parser.c" /* yacc.c:1646  */
4647      break;
4648  
4649    case 327:
4650 < #line 1825 "conf_parser.y" /* yacc.c:1646  */
4650 > #line 1687 "conf_parser.y" /* yacc.c:1646  */
4651      {
4652    if (conf_parser_ctx.pass == 2)
4653      block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4654   }
4655 < #line 4794 "conf_parser.c" /* yacc.c:1646  */
4655 > #line 4656 "conf_parser.c" /* yacc.c:1646  */
4656      break;
4657  
4658    case 328:
4659 < #line 1829 "conf_parser.y" /* yacc.c:1646  */
4659 > #line 1691 "conf_parser.y" /* yacc.c:1646  */
4660      {
4661    if (conf_parser_ctx.pass == 2)
4662      block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4663   }
4664 < #line 4803 "conf_parser.c" /* yacc.c:1646  */
4664 > #line 4665 "conf_parser.c" /* yacc.c:1646  */
4665      break;
4666  
4667    case 329:
4668 < #line 1833 "conf_parser.y" /* yacc.c:1646  */
4668 > #line 1695 "conf_parser.y" /* yacc.c:1646  */
4669      {
4670    if (conf_parser_ctx.pass == 2)
4671      block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4672   }
4673 < #line 4812 "conf_parser.c" /* yacc.c:1646  */
4673 > #line 4674 "conf_parser.c" /* yacc.c:1646  */
4674      break;
4675  
4676    case 330:
4677 < #line 1837 "conf_parser.y" /* yacc.c:1646  */
4677 > #line 1699 "conf_parser.y" /* yacc.c:1646  */
4678      {
4679    if (conf_parser_ctx.pass == 2)
4680      block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4681   }
4682 < #line 4821 "conf_parser.c" /* yacc.c:1646  */
4682 > #line 4683 "conf_parser.c" /* yacc.c:1646  */
4683      break;
4684  
4685    case 331:
4686 < #line 1841 "conf_parser.y" /* yacc.c:1646  */
4686 > #line 1703 "conf_parser.y" /* yacc.c:1646  */
4687      {
4688    if (conf_parser_ctx.pass == 2)
4689      block_state.flags.value |= CONF_FLAGS_WEBIRC;
4690   }
4691 < #line 4830 "conf_parser.c" /* yacc.c:1646  */
4691 > #line 4692 "conf_parser.c" /* yacc.c:1646  */
4692      break;
4693  
4694    case 332:
4695 < #line 1845 "conf_parser.y" /* yacc.c:1646  */
4695 > #line 1707 "conf_parser.y" /* yacc.c:1646  */
4696      {
4697    if (conf_parser_ctx.pass == 2)
4698      block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4699   }
4700 < #line 4839 "conf_parser.c" /* yacc.c:1646  */
4700 > #line 4701 "conf_parser.c" /* yacc.c:1646  */
4701      break;
4702  
4703    case 333:
4704 < #line 1851 "conf_parser.y" /* yacc.c:1646  */
4704 > #line 1713 "conf_parser.y" /* yacc.c:1646  */
4705      {
4706    if (conf_parser_ctx.pass != 2)
4707      break;
# Line 4852 | Line 4714 | yyreduce:
4714    else
4715      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4716   }
4717 < #line 4856 "conf_parser.c" /* yacc.c:1646  */
4717 > #line 4718 "conf_parser.c" /* yacc.c:1646  */
4718      break;
4719  
4720    case 334:
4721 < #line 1865 "conf_parser.y" /* yacc.c:1646  */
4721 > #line 1727 "conf_parser.y" /* yacc.c:1646  */
4722      {
4723    if (conf_parser_ctx.pass != 2)
4724      break;
# Line 4864 | Line 4726 | yyreduce:
4726    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4727    block_state.flags.value |= CONF_FLAGS_REDIR;
4728   }
4729 < #line 4868 "conf_parser.c" /* yacc.c:1646  */
4729 > #line 4730 "conf_parser.c" /* yacc.c:1646  */
4730      break;
4731  
4732    case 335:
4733 < #line 1874 "conf_parser.y" /* yacc.c:1646  */
4733 > #line 1736 "conf_parser.y" /* yacc.c:1646  */
4734      {
4735    if (conf_parser_ctx.pass != 2)
4736      break;
# Line 4876 | Line 4738 | yyreduce:
4738    block_state.flags.value |= CONF_FLAGS_REDIR;
4739    block_state.port.value = (yyvsp[-1].number);
4740   }
4741 < #line 4880 "conf_parser.c" /* yacc.c:1646  */
4741 > #line 4742 "conf_parser.c" /* yacc.c:1646  */
4742      break;
4743  
4744    case 336:
4745 < #line 1887 "conf_parser.y" /* yacc.c:1646  */
4745 > #line 1749 "conf_parser.y" /* yacc.c:1646  */
4746      {
4747    if (conf_parser_ctx.pass != 2)
4748      break;
# Line 4888 | Line 4750 | yyreduce:
4750    reset_block_state();
4751    strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4752   }
4753 < #line 4892 "conf_parser.c" /* yacc.c:1646  */
4753 > #line 4754 "conf_parser.c" /* yacc.c:1646  */
4754      break;
4755  
4756    case 337:
4757 < #line 1894 "conf_parser.y" /* yacc.c:1646  */
4757 > #line 1756 "conf_parser.y" /* yacc.c:1646  */
4758      {
4759    if (conf_parser_ctx.pass != 2)
4760      break;
4761  
4762    create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4763   }
4764 < #line 4903 "conf_parser.c" /* yacc.c:1646  */
4764 > #line 4765 "conf_parser.c" /* yacc.c:1646  */
4765      break;
4766  
4767    case 344:
4768 < #line 1905 "conf_parser.y" /* yacc.c:1646  */
4768 > #line 1767 "conf_parser.y" /* yacc.c:1646  */
4769      {
4770    if (conf_parser_ctx.pass == 2)
4771      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4772   }
4773 < #line 4912 "conf_parser.c" /* yacc.c:1646  */
4773 > #line 4774 "conf_parser.c" /* yacc.c:1646  */
4774      break;
4775  
4776    case 345:
4777 < #line 1911 "conf_parser.y" /* yacc.c:1646  */
4777 > #line 1773 "conf_parser.y" /* yacc.c:1646  */
4778      {
4779    if (conf_parser_ctx.pass == 2)
4780      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4781   }
4782 < #line 4921 "conf_parser.c" /* yacc.c:1646  */
4782 > #line 4783 "conf_parser.c" /* yacc.c:1646  */
4783      break;
4784  
4785    case 346:
4786 < #line 1917 "conf_parser.y" /* yacc.c:1646  */
4786 > #line 1779 "conf_parser.y" /* yacc.c:1646  */
4787      {
4788    if (conf_parser_ctx.pass == 2)
4789      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4790   }
4791 < #line 4930 "conf_parser.c" /* yacc.c:1646  */
4791 > #line 4792 "conf_parser.c" /* yacc.c:1646  */
4792      break;
4793  
4794    case 352:
4795 < #line 1932 "conf_parser.y" /* yacc.c:1646  */
4795 > #line 1794 "conf_parser.y" /* yacc.c:1646  */
4796      {
4797    if (conf_parser_ctx.pass != 2)
4798      break;
# Line 4941 | Line 4803 | yyreduce:
4803      conf->name = xstrdup(yylval.string);
4804    }
4805   }
4806 < #line 4945 "conf_parser.c" /* yacc.c:1646  */
4806 > #line 4807 "conf_parser.c" /* yacc.c:1646  */
4807      break;
4808  
4809    case 353:
4810 < #line 1948 "conf_parser.y" /* yacc.c:1646  */
4810 > #line 1810 "conf_parser.y" /* yacc.c:1646  */
4811      {
4812    if (conf_parser_ctx.pass != 2)
4813      break;
# Line 4957 | Line 4819 | yyreduce:
4819    strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4820    block_state.flags.value = SHARED_ALL;
4821   }
4822 < #line 4961 "conf_parser.c" /* yacc.c:1646  */
4822 > #line 4823 "conf_parser.c" /* yacc.c:1646  */
4823      break;
4824  
4825    case 354:
4826 < #line 1959 "conf_parser.y" /* yacc.c:1646  */
4826 > #line 1821 "conf_parser.y" /* yacc.c:1646  */
4827      {
4828    struct MaskItem *conf = NULL;
4829  
# Line 4974 | Line 4836 | yyreduce:
4836    conf->user = xstrdup(block_state.user.buf);
4837    conf->host = xstrdup(block_state.host.buf);
4838   }
4839 < #line 4978 "conf_parser.c" /* yacc.c:1646  */
4839 > #line 4840 "conf_parser.c" /* yacc.c:1646  */
4840      break;
4841  
4842    case 361:
4843 < #line 1976 "conf_parser.y" /* yacc.c:1646  */
4843 > #line 1838 "conf_parser.y" /* yacc.c:1646  */
4844      {
4845    if (conf_parser_ctx.pass == 2)
4846      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4847   }
4848 < #line 4987 "conf_parser.c" /* yacc.c:1646  */
4848 > #line 4849 "conf_parser.c" /* yacc.c:1646  */
4849      break;
4850  
4851    case 362:
4852 < #line 1982 "conf_parser.y" /* yacc.c:1646  */
4852 > #line 1844 "conf_parser.y" /* yacc.c:1646  */
4853      {
4854    if (conf_parser_ctx.pass == 2)
4855    {
# Line 5005 | Line 4867 | yyreduce:
4867      split_nuh(&nuh);
4868    }
4869   }
4870 < #line 5009 "conf_parser.c" /* yacc.c:1646  */
4870 > #line 4871 "conf_parser.c" /* yacc.c:1646  */
4871      break;
4872  
4873    case 363:
4874 < #line 2001 "conf_parser.y" /* yacc.c:1646  */
4874 > #line 1863 "conf_parser.y" /* yacc.c:1646  */
4875      {
4876    if (conf_parser_ctx.pass == 2)
4877      block_state.flags.value = 0;
4878   }
4879 < #line 5018 "conf_parser.c" /* yacc.c:1646  */
4879 > #line 4880 "conf_parser.c" /* yacc.c:1646  */
4880      break;
4881  
4882    case 367:
4883 < #line 2008 "conf_parser.y" /* yacc.c:1646  */
4883 > #line 1870 "conf_parser.y" /* yacc.c:1646  */
4884      {
4885    if (conf_parser_ctx.pass == 2)
4886      block_state.flags.value |= SHARED_KLINE;
4887   }
4888 < #line 5027 "conf_parser.c" /* yacc.c:1646  */
4888 > #line 4889 "conf_parser.c" /* yacc.c:1646  */
4889      break;
4890  
4891    case 368:
4892 < #line 2012 "conf_parser.y" /* yacc.c:1646  */
4892 > #line 1874 "conf_parser.y" /* yacc.c:1646  */
4893      {
4894    if (conf_parser_ctx.pass == 2)
4895      block_state.flags.value |= SHARED_UNKLINE;
4896   }
4897 < #line 5036 "conf_parser.c" /* yacc.c:1646  */
4897 > #line 4898 "conf_parser.c" /* yacc.c:1646  */
4898      break;
4899  
4900    case 369:
4901 < #line 2016 "conf_parser.y" /* yacc.c:1646  */
4901 > #line 1878 "conf_parser.y" /* yacc.c:1646  */
4902      {
4903    if (conf_parser_ctx.pass == 2)
4904      block_state.flags.value |= SHARED_DLINE;
4905   }
4906 < #line 5045 "conf_parser.c" /* yacc.c:1646  */
4906 > #line 4907 "conf_parser.c" /* yacc.c:1646  */
4907      break;
4908  
4909    case 370:
4910 < #line 2020 "conf_parser.y" /* yacc.c:1646  */
4910 > #line 1882 "conf_parser.y" /* yacc.c:1646  */
4911      {
4912    if (conf_parser_ctx.pass == 2)
4913      block_state.flags.value |= SHARED_UNDLINE;
4914   }
4915 < #line 5054 "conf_parser.c" /* yacc.c:1646  */
4915 > #line 4916 "conf_parser.c" /* yacc.c:1646  */
4916      break;
4917  
4918    case 371:
4919 < #line 2024 "conf_parser.y" /* yacc.c:1646  */
4919 > #line 1886 "conf_parser.y" /* yacc.c:1646  */
4920      {
4921    if (conf_parser_ctx.pass == 2)
4922      block_state.flags.value |= SHARED_XLINE;
4923   }
4924 < #line 5063 "conf_parser.c" /* yacc.c:1646  */
4924 > #line 4925 "conf_parser.c" /* yacc.c:1646  */
4925      break;
4926  
4927    case 372:
4928 < #line 2028 "conf_parser.y" /* yacc.c:1646  */
4928 > #line 1890 "conf_parser.y" /* yacc.c:1646  */
4929      {
4930    if (conf_parser_ctx.pass == 2)
4931      block_state.flags.value |= SHARED_UNXLINE;
4932   }
4933 < #line 5072 "conf_parser.c" /* yacc.c:1646  */
4933 > #line 4934 "conf_parser.c" /* yacc.c:1646  */
4934      break;
4935  
4936    case 373:
4937 < #line 2032 "conf_parser.y" /* yacc.c:1646  */
4937 > #line 1894 "conf_parser.y" /* yacc.c:1646  */
4938      {
4939    if (conf_parser_ctx.pass == 2)
4940      block_state.flags.value |= SHARED_RESV;
4941   }
4942 < #line 5081 "conf_parser.c" /* yacc.c:1646  */
4942 > #line 4943 "conf_parser.c" /* yacc.c:1646  */
4943      break;
4944  
4945    case 374:
4946 < #line 2036 "conf_parser.y" /* yacc.c:1646  */
4946 > #line 1898 "conf_parser.y" /* yacc.c:1646  */
4947      {
4948    if (conf_parser_ctx.pass == 2)
4949      block_state.flags.value |= SHARED_UNRESV;
4950   }
4951 < #line 5090 "conf_parser.c" /* yacc.c:1646  */
4951 > #line 4952 "conf_parser.c" /* yacc.c:1646  */
4952      break;
4953  
4954    case 375:
4955 < #line 2040 "conf_parser.y" /* yacc.c:1646  */
4955 > #line 1902 "conf_parser.y" /* yacc.c:1646  */
4956      {
4957    if (conf_parser_ctx.pass == 2)
4958      block_state.flags.value |= SHARED_LOCOPS;
4959   }
4960 < #line 5099 "conf_parser.c" /* yacc.c:1646  */
4960 > #line 4961 "conf_parser.c" /* yacc.c:1646  */
4961      break;
4962  
4963    case 376:
4964 < #line 2044 "conf_parser.y" /* yacc.c:1646  */
4964 > #line 1906 "conf_parser.y" /* yacc.c:1646  */
4965      {
4966    if (conf_parser_ctx.pass == 2)
4967      block_state.flags.value = SHARED_ALL;
4968   }
4969 < #line 5108 "conf_parser.c" /* yacc.c:1646  */
4969 > #line 4970 "conf_parser.c" /* yacc.c:1646  */
4970      break;
4971  
4972    case 377:
4973 < #line 2054 "conf_parser.y" /* yacc.c:1646  */
4973 > #line 1916 "conf_parser.y" /* yacc.c:1646  */
4974      {
4975    if (conf_parser_ctx.pass != 2)
4976      break;
# Line 5118 | Line 4980 | yyreduce:
4980    strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4981    block_state.flags.value = SHARED_ALL;
4982   }
4983 < #line 5122 "conf_parser.c" /* yacc.c:1646  */
4983 > #line 4984 "conf_parser.c" /* yacc.c:1646  */
4984      break;
4985  
4986    case 378:
4987 < #line 2063 "conf_parser.y" /* yacc.c:1646  */
4987 > #line 1925 "conf_parser.y" /* yacc.c:1646  */
4988      {
4989    struct MaskItem *conf = NULL;
4990  
# Line 5133 | Line 4995 | yyreduce:
4995    conf->flags = block_state.flags.value;
4996    conf->name = xstrdup(block_state.name.buf);
4997   }
4998 < #line 5137 "conf_parser.c" /* yacc.c:1646  */
4998 > #line 4999 "conf_parser.c" /* yacc.c:1646  */
4999      break;
5000  
5001    case 384:
5002 < #line 2078 "conf_parser.y" /* yacc.c:1646  */
5002 > #line 1940 "conf_parser.y" /* yacc.c:1646  */
5003      {
5004    if (conf_parser_ctx.pass == 2)
5005      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5006   }
5007 < #line 5146 "conf_parser.c" /* yacc.c:1646  */
5007 > #line 5008 "conf_parser.c" /* yacc.c:1646  */
5008      break;
5009  
5010    case 385:
5011 < #line 2084 "conf_parser.y" /* yacc.c:1646  */
5011 > #line 1946 "conf_parser.y" /* yacc.c:1646  */
5012      {
5013    if (conf_parser_ctx.pass == 2)
5014      block_state.flags.value = 0;
5015   }
5016 < #line 5155 "conf_parser.c" /* yacc.c:1646  */
5016 > #line 5017 "conf_parser.c" /* yacc.c:1646  */
5017      break;
5018  
5019    case 389:
5020 < #line 2091 "conf_parser.y" /* yacc.c:1646  */
5020 > #line 1953 "conf_parser.y" /* yacc.c:1646  */
5021      {
5022    if (conf_parser_ctx.pass == 2)
5023      block_state.flags.value |= SHARED_KLINE;
5024   }
5025 < #line 5164 "conf_parser.c" /* yacc.c:1646  */
5025 > #line 5026 "conf_parser.c" /* yacc.c:1646  */
5026      break;
5027  
5028    case 390:
5029 < #line 2095 "conf_parser.y" /* yacc.c:1646  */
5029 > #line 1957 "conf_parser.y" /* yacc.c:1646  */
5030      {
5031    if (conf_parser_ctx.pass == 2)
5032      block_state.flags.value |= SHARED_UNKLINE;
5033   }
5034 < #line 5173 "conf_parser.c" /* yacc.c:1646  */
5034 > #line 5035 "conf_parser.c" /* yacc.c:1646  */
5035      break;
5036  
5037    case 391:
5038 < #line 2099 "conf_parser.y" /* yacc.c:1646  */
5038 > #line 1961 "conf_parser.y" /* yacc.c:1646  */
5039      {
5040    if (conf_parser_ctx.pass == 2)
5041      block_state.flags.value |= SHARED_DLINE;
5042   }
5043 < #line 5182 "conf_parser.c" /* yacc.c:1646  */
5043 > #line 5044 "conf_parser.c" /* yacc.c:1646  */
5044      break;
5045  
5046    case 392:
5047 < #line 2103 "conf_parser.y" /* yacc.c:1646  */
5047 > #line 1965 "conf_parser.y" /* yacc.c:1646  */
5048      {
5049    if (conf_parser_ctx.pass == 2)
5050      block_state.flags.value |= SHARED_UNDLINE;
5051   }
5052 < #line 5191 "conf_parser.c" /* yacc.c:1646  */
5052 > #line 5053 "conf_parser.c" /* yacc.c:1646  */
5053      break;
5054  
5055    case 393:
5056 < #line 2107 "conf_parser.y" /* yacc.c:1646  */
5056 > #line 1969 "conf_parser.y" /* yacc.c:1646  */
5057      {
5058    if (conf_parser_ctx.pass == 2)
5059      block_state.flags.value |= SHARED_XLINE;
5060   }
5061 < #line 5200 "conf_parser.c" /* yacc.c:1646  */
5061 > #line 5062 "conf_parser.c" /* yacc.c:1646  */
5062      break;
5063  
5064    case 394:
5065 < #line 2111 "conf_parser.y" /* yacc.c:1646  */
5065 > #line 1973 "conf_parser.y" /* yacc.c:1646  */
5066      {
5067    if (conf_parser_ctx.pass == 2)
5068      block_state.flags.value |= SHARED_UNXLINE;
5069   }
5070 < #line 5209 "conf_parser.c" /* yacc.c:1646  */
5070 > #line 5071 "conf_parser.c" /* yacc.c:1646  */
5071      break;
5072  
5073    case 395:
5074 < #line 2115 "conf_parser.y" /* yacc.c:1646  */
5074 > #line 1977 "conf_parser.y" /* yacc.c:1646  */
5075      {
5076    if (conf_parser_ctx.pass == 2)
5077      block_state.flags.value |= SHARED_RESV;
5078   }
5079 < #line 5218 "conf_parser.c" /* yacc.c:1646  */
5079 > #line 5080 "conf_parser.c" /* yacc.c:1646  */
5080      break;
5081  
5082    case 396:
5083 < #line 2119 "conf_parser.y" /* yacc.c:1646  */
5083 > #line 1981 "conf_parser.y" /* yacc.c:1646  */
5084      {
5085    if (conf_parser_ctx.pass == 2)
5086      block_state.flags.value |= SHARED_UNRESV;
5087   }
5088 < #line 5227 "conf_parser.c" /* yacc.c:1646  */
5088 > #line 5089 "conf_parser.c" /* yacc.c:1646  */
5089      break;
5090  
5091    case 397:
5092 < #line 2123 "conf_parser.y" /* yacc.c:1646  */
5092 > #line 1985 "conf_parser.y" /* yacc.c:1646  */
5093      {
5094    if (conf_parser_ctx.pass == 2)
5095      block_state.flags.value |= SHARED_LOCOPS;
5096   }
5097 < #line 5236 "conf_parser.c" /* yacc.c:1646  */
5097 > #line 5098 "conf_parser.c" /* yacc.c:1646  */
5098      break;
5099  
5100    case 398:
5101 < #line 2127 "conf_parser.y" /* yacc.c:1646  */
5101 > #line 1989 "conf_parser.y" /* yacc.c:1646  */
5102      {
5103    if (conf_parser_ctx.pass == 2)
5104      block_state.flags.value = SHARED_ALL;
5105   }
5106 < #line 5245 "conf_parser.c" /* yacc.c:1646  */
5106 > #line 5107 "conf_parser.c" /* yacc.c:1646  */
5107      break;
5108  
5109    case 399:
5110 < #line 2137 "conf_parser.y" /* yacc.c:1646  */
5110 > #line 1999 "conf_parser.y" /* yacc.c:1646  */
5111      {
5112  
5113    if (conf_parser_ctx.pass != 2)
# Line 5255 | Line 5117 | yyreduce:
5117    block_state.aftype.value = AF_INET;
5118    block_state.port.value = PORTNUM;
5119   }
5120 < #line 5259 "conf_parser.c" /* yacc.c:1646  */
5120 > #line 5121 "conf_parser.c" /* yacc.c:1646  */
5121      break;
5122  
5123    case 400:
5124 < #line 2146 "conf_parser.y" /* yacc.c:1646  */
5124 > #line 2008 "conf_parser.y" /* yacc.c:1646  */
5125      {
5126    struct MaskItem *conf = NULL;
5127    struct addrinfo hints, *res;
# Line 5321 | Line 5183 | yyreduce:
5183    conf_add_class_to_conf(conf, block_state.class.buf);
5184    lookup_confhost(conf);
5185   }
5186 < #line 5325 "conf_parser.c" /* yacc.c:1646  */
5186 > #line 5187 "conf_parser.c" /* yacc.c:1646  */
5187      break;
5188  
5189    case 418:
5190 < #line 2226 "conf_parser.y" /* yacc.c:1646  */
5190 > #line 2088 "conf_parser.y" /* yacc.c:1646  */
5191      {
5192    if (conf_parser_ctx.pass == 2)
5193      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5194   }
5195 < #line 5334 "conf_parser.c" /* yacc.c:1646  */
5195 > #line 5196 "conf_parser.c" /* yacc.c:1646  */
5196      break;
5197  
5198    case 419:
5199 < #line 2232 "conf_parser.y" /* yacc.c:1646  */
5199 > #line 2094 "conf_parser.y" /* yacc.c:1646  */
5200      {
5201    if (conf_parser_ctx.pass == 2)
5202      strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5203   }
5204 < #line 5343 "conf_parser.c" /* yacc.c:1646  */
5204 > #line 5205 "conf_parser.c" /* yacc.c:1646  */
5205      break;
5206  
5207    case 420:
5208 < #line 2238 "conf_parser.y" /* yacc.c:1646  */
5208 > #line 2100 "conf_parser.y" /* yacc.c:1646  */
5209      {
5210    if (conf_parser_ctx.pass == 2)
5211      strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5212   }
5213 < #line 5352 "conf_parser.c" /* yacc.c:1646  */
5213 > #line 5214 "conf_parser.c" /* yacc.c:1646  */
5214      break;
5215  
5216    case 421:
5217 < #line 2244 "conf_parser.y" /* yacc.c:1646  */
5217 > #line 2106 "conf_parser.y" /* yacc.c:1646  */
5218      {
5219    if (conf_parser_ctx.pass != 2)
5220      break;
# Line 5364 | Line 5226 | yyreduce:
5226    else
5227      strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5228   }
5229 < #line 5368 "conf_parser.c" /* yacc.c:1646  */
5229 > #line 5230 "conf_parser.c" /* yacc.c:1646  */
5230      break;
5231  
5232    case 422:
5233 < #line 2257 "conf_parser.y" /* yacc.c:1646  */
5233 > #line 2119 "conf_parser.y" /* yacc.c:1646  */
5234      {
5235    if (conf_parser_ctx.pass != 2)
5236      break;
# Line 5380 | Line 5242 | yyreduce:
5242    else
5243      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5244   }
5245 < #line 5384 "conf_parser.c" /* yacc.c:1646  */
5245 > #line 5246 "conf_parser.c" /* yacc.c:1646  */
5246      break;
5247  
5248    case 423:
5249 < #line 2270 "conf_parser.y" /* yacc.c:1646  */
5249 > #line 2132 "conf_parser.y" /* yacc.c:1646  */
5250      {
5251    if (conf_parser_ctx.pass == 2)
5252      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5253   }
5254 < #line 5393 "conf_parser.c" /* yacc.c:1646  */
5254 > #line 5255 "conf_parser.c" /* yacc.c:1646  */
5255      break;
5256  
5257    case 424:
5258 < #line 2276 "conf_parser.y" /* yacc.c:1646  */
5258 > #line 2138 "conf_parser.y" /* yacc.c:1646  */
5259      {
5260    if (conf_parser_ctx.pass == 2)
5261      block_state.port.value = (yyvsp[-1].number);
5262   }
5263 < #line 5402 "conf_parser.c" /* yacc.c:1646  */
5263 > #line 5264 "conf_parser.c" /* yacc.c:1646  */
5264      break;
5265  
5266    case 425:
5267 < #line 2282 "conf_parser.y" /* yacc.c:1646  */
5267 > #line 2144 "conf_parser.y" /* yacc.c:1646  */
5268      {
5269    if (conf_parser_ctx.pass == 2)
5270      block_state.aftype.value = AF_INET;
5271   }
5272 < #line 5411 "conf_parser.c" /* yacc.c:1646  */
5272 > #line 5273 "conf_parser.c" /* yacc.c:1646  */
5273      break;
5274  
5275    case 426:
5276 < #line 2286 "conf_parser.y" /* yacc.c:1646  */
5276 > #line 2148 "conf_parser.y" /* yacc.c:1646  */
5277      {
5278    if (conf_parser_ctx.pass == 2)
5279      block_state.aftype.value = AF_INET6;
5280   }
5281 < #line 5420 "conf_parser.c" /* yacc.c:1646  */
5281 > #line 5282 "conf_parser.c" /* yacc.c:1646  */
5282      break;
5283  
5284    case 427:
5285 < #line 2292 "conf_parser.y" /* yacc.c:1646  */
5285 > #line 2154 "conf_parser.y" /* yacc.c:1646  */
5286      {
5287    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5288   }
5289 < #line 5428 "conf_parser.c" /* yacc.c:1646  */
5289 > #line 5290 "conf_parser.c" /* yacc.c:1646  */
5290      break;
5291  
5292    case 431:
5293 < #line 2298 "conf_parser.y" /* yacc.c:1646  */
5293 > #line 2160 "conf_parser.y" /* yacc.c:1646  */
5294      {
5295    if (conf_parser_ctx.pass == 2)
5296      block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5297   }
5298 < #line 5437 "conf_parser.c" /* yacc.c:1646  */
5298 > #line 5299 "conf_parser.c" /* yacc.c:1646  */
5299      break;
5300  
5301    case 432:
5302 < #line 2302 "conf_parser.y" /* yacc.c:1646  */
5302 > #line 2164 "conf_parser.y" /* yacc.c:1646  */
5303      {
5304    if (conf_parser_ctx.pass == 2)
5305      block_state.flags.value |= CONF_FLAGS_SSL;
5306   }
5307 < #line 5446 "conf_parser.c" /* yacc.c:1646  */
5307 > #line 5308 "conf_parser.c" /* yacc.c:1646  */
5308      break;
5309  
5310    case 433:
5311 < #line 2308 "conf_parser.y" /* yacc.c:1646  */
5311 > #line 2170 "conf_parser.y" /* yacc.c:1646  */
5312      {
5313    if (conf_parser_ctx.pass == 2)
5314    {
# Line 5456 | Line 5318 | yyreduce:
5318        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5319    }
5320   }
5321 < #line 5460 "conf_parser.c" /* yacc.c:1646  */
5321 > #line 5322 "conf_parser.c" /* yacc.c:1646  */
5322      break;
5323  
5324    case 434:
5325 < #line 2319 "conf_parser.y" /* yacc.c:1646  */
5325 > #line 2181 "conf_parser.y" /* yacc.c:1646  */
5326      {
5327    if (conf_parser_ctx.pass == 2)
5328      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5329   }
5330 < #line 5469 "conf_parser.c" /* yacc.c:1646  */
5330 > #line 5331 "conf_parser.c" /* yacc.c:1646  */
5331      break;
5332  
5333    case 435:
5334 < #line 2325 "conf_parser.y" /* yacc.c:1646  */
5334 > #line 2187 "conf_parser.y" /* yacc.c:1646  */
5335      {
5336    if (conf_parser_ctx.pass == 2)
5337      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5338   }
5339 < #line 5478 "conf_parser.c" /* yacc.c:1646  */
5339 > #line 5340 "conf_parser.c" /* yacc.c:1646  */
5340      break;
5341  
5342    case 436:
5343 < #line 2331 "conf_parser.y" /* yacc.c:1646  */
5343 > #line 2193 "conf_parser.y" /* yacc.c:1646  */
5344      {
5345    if (conf_parser_ctx.pass == 2)
5346      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5347   }
5348 < #line 5487 "conf_parser.c" /* yacc.c:1646  */
5348 > #line 5349 "conf_parser.c" /* yacc.c:1646  */
5349      break;
5350  
5351    case 437:
5352 < #line 2337 "conf_parser.y" /* yacc.c:1646  */
5352 > #line 2199 "conf_parser.y" /* yacc.c:1646  */
5353      {
5354 < #ifdef HAVE_LIBCRYPTO
5354 > #ifdef HAVE_TLS
5355    if (conf_parser_ctx.pass == 2)
5356      strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5357   #else
5358    if (conf_parser_ctx.pass == 2)
5359 <    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5359 >    conf_error_report("Ignoring connect::ciphers -- no TLS support");
5360   #endif
5361   }
5362 < #line 5501 "conf_parser.c" /* yacc.c:1646  */
5362 > #line 5363 "conf_parser.c" /* yacc.c:1646  */
5363      break;
5364  
5365    case 438:
5366 < #line 2352 "conf_parser.y" /* yacc.c:1646  */
5366 > #line 2214 "conf_parser.y" /* yacc.c:1646  */
5367      {
5368    if (conf_parser_ctx.pass == 2)
5369      reset_block_state();
5370   }
5371 < #line 5510 "conf_parser.c" /* yacc.c:1646  */
5371 > #line 5372 "conf_parser.c" /* yacc.c:1646  */
5372      break;
5373  
5374    case 439:
5375 < #line 2356 "conf_parser.y" /* yacc.c:1646  */
5375 > #line 2218 "conf_parser.y" /* yacc.c:1646  */
5376      {
5377    struct MaskItem *conf = NULL;
5378  
# Line 5531 | Line 5393 | yyreduce:
5393      conf->reason = xstrdup(CONF_NOREASON);
5394    add_conf_by_address(CONF_KLINE, conf);
5395   }
5396 < #line 5535 "conf_parser.c" /* yacc.c:1646  */
5396 > #line 5397 "conf_parser.c" /* yacc.c:1646  */
5397      break;
5398  
5399    case 445:
5400 < #line 2381 "conf_parser.y" /* yacc.c:1646  */
5400 > #line 2243 "conf_parser.y" /* yacc.c:1646  */
5401      {
5402  
5403    if (conf_parser_ctx.pass == 2)
# Line 5554 | Line 5416 | yyreduce:
5416      split_nuh(&nuh);
5417    }
5418   }
5419 < #line 5558 "conf_parser.c" /* yacc.c:1646  */
5419 > #line 5420 "conf_parser.c" /* yacc.c:1646  */
5420      break;
5421  
5422    case 446:
5423 < #line 2401 "conf_parser.y" /* yacc.c:1646  */
5423 > #line 2263 "conf_parser.y" /* yacc.c:1646  */
5424      {
5425    if (conf_parser_ctx.pass == 2)
5426      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5427   }
5428 < #line 5567 "conf_parser.c" /* yacc.c:1646  */
5428 > #line 5429 "conf_parser.c" /* yacc.c:1646  */
5429      break;
5430  
5431    case 447:
5432 < #line 2411 "conf_parser.y" /* yacc.c:1646  */
5432 > #line 2273 "conf_parser.y" /* yacc.c:1646  */
5433      {
5434    if (conf_parser_ctx.pass == 2)
5435      reset_block_state();
5436   }
5437 < #line 5576 "conf_parser.c" /* yacc.c:1646  */
5437 > #line 5438 "conf_parser.c" /* yacc.c:1646  */
5438      break;
5439  
5440    case 448:
5441 < #line 2415 "conf_parser.y" /* yacc.c:1646  */
5441 > #line 2277 "conf_parser.y" /* yacc.c:1646  */
5442      {
5443    struct MaskItem *conf = NULL;
5444  
# Line 5598 | Line 5460 | yyreduce:
5460      add_conf_by_address(CONF_DLINE, conf);
5461    }
5462   }
5463 < #line 5602 "conf_parser.c" /* yacc.c:1646  */
5463 > #line 5464 "conf_parser.c" /* yacc.c:1646  */
5464      break;
5465  
5466    case 454:
5467 < #line 2441 "conf_parser.y" /* yacc.c:1646  */
5467 > #line 2303 "conf_parser.y" /* yacc.c:1646  */
5468      {
5469    if (conf_parser_ctx.pass == 2)
5470      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5471   }
5472 < #line 5611 "conf_parser.c" /* yacc.c:1646  */
5472 > #line 5473 "conf_parser.c" /* yacc.c:1646  */
5473      break;
5474  
5475    case 455:
5476 < #line 2447 "conf_parser.y" /* yacc.c:1646  */
5476 > #line 2309 "conf_parser.y" /* yacc.c:1646  */
5477      {
5478    if (conf_parser_ctx.pass == 2)
5479      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5480   }
5481 < #line 5620 "conf_parser.c" /* yacc.c:1646  */
5481 > #line 5482 "conf_parser.c" /* yacc.c:1646  */
5482      break;
5483  
5484    case 461:
5485 < #line 2462 "conf_parser.y" /* yacc.c:1646  */
5485 > #line 2324 "conf_parser.y" /* yacc.c:1646  */
5486      {
5487    if (conf_parser_ctx.pass == 2)
5488    {
# Line 5633 | Line 5495 | yyreduce:
5495      }
5496    }
5497   }
5498 < #line 5637 "conf_parser.c" /* yacc.c:1646  */
5498 > #line 5499 "conf_parser.c" /* yacc.c:1646  */
5499      break;
5500  
5501    case 462:
5502 < #line 2479 "conf_parser.y" /* yacc.c:1646  */
5502 > #line 2341 "conf_parser.y" /* yacc.c:1646  */
5503      {
5504    if (conf_parser_ctx.pass == 2)
5505      reset_block_state();
5506   }
5507 < #line 5646 "conf_parser.c" /* yacc.c:1646  */
5507 > #line 5508 "conf_parser.c" /* yacc.c:1646  */
5508      break;
5509  
5510    case 463:
5511 < #line 2483 "conf_parser.y" /* yacc.c:1646  */
5511 > #line 2345 "conf_parser.y" /* yacc.c:1646  */
5512      {
5513    struct MaskItem *conf = NULL;
5514  
# Line 5664 | Line 5526 | yyreduce:
5526    else
5527      conf->reason = xstrdup(CONF_NOREASON);
5528   }
5529 < #line 5668 "conf_parser.c" /* yacc.c:1646  */
5529 > #line 5530 "conf_parser.c" /* yacc.c:1646  */
5530      break;
5531  
5532    case 469:
5533 < #line 2505 "conf_parser.y" /* yacc.c:1646  */
5533 > #line 2367 "conf_parser.y" /* yacc.c:1646  */
5534      {
5535    if (conf_parser_ctx.pass == 2)
5536      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5537   }
5538 < #line 5677 "conf_parser.c" /* yacc.c:1646  */
5538 > #line 5539 "conf_parser.c" /* yacc.c:1646  */
5539      break;
5540  
5541    case 470:
5542 < #line 2511 "conf_parser.y" /* yacc.c:1646  */
5542 > #line 2373 "conf_parser.y" /* yacc.c:1646  */
5543      {
5544    if (conf_parser_ctx.pass == 2)
5545      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5546   }
5547 < #line 5686 "conf_parser.c" /* yacc.c:1646  */
5547 > #line 5548 "conf_parser.c" /* yacc.c:1646  */
5548      break;
5549  
5550    case 520:
5551 < #line 2572 "conf_parser.y" /* yacc.c:1646  */
5551 > #line 2434 "conf_parser.y" /* yacc.c:1646  */
5552      {
5553    ConfigGeneral.away_count = (yyvsp[-1].number);
5554   }
5555 < #line 5694 "conf_parser.c" /* yacc.c:1646  */
5555 > #line 5556 "conf_parser.c" /* yacc.c:1646  */
5556      break;
5557  
5558    case 521:
5559 < #line 2577 "conf_parser.y" /* yacc.c:1646  */
5559 > #line 2439 "conf_parser.y" /* yacc.c:1646  */
5560      {
5561    ConfigGeneral.away_time = (yyvsp[-1].number);
5562   }
5563 < #line 5702 "conf_parser.c" /* yacc.c:1646  */
5563 > #line 5564 "conf_parser.c" /* yacc.c:1646  */
5564      break;
5565  
5566    case 522:
5567 < #line 2582 "conf_parser.y" /* yacc.c:1646  */
5567 > #line 2444 "conf_parser.y" /* yacc.c:1646  */
5568      {
5569    ConfigGeneral.max_watch = (yyvsp[-1].number);
5570   }
5571 < #line 5710 "conf_parser.c" /* yacc.c:1646  */
5571 > #line 5572 "conf_parser.c" /* yacc.c:1646  */
5572      break;
5573  
5574    case 523:
5575 < #line 2587 "conf_parser.y" /* yacc.c:1646  */
5575 > #line 2449 "conf_parser.y" /* yacc.c:1646  */
5576      {
5577    if (conf_parser_ctx.pass == 2)
5578      ConfigGeneral.cycle_on_host_change = yylval.number;
5579   }
5580 < #line 5719 "conf_parser.c" /* yacc.c:1646  */
5580 > #line 5581 "conf_parser.c" /* yacc.c:1646  */
5581      break;
5582  
5583    case 524:
5584 < #line 2593 "conf_parser.y" /* yacc.c:1646  */
5584 > #line 2455 "conf_parser.y" /* yacc.c:1646  */
5585      {
5586    ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5587   }
5588 < #line 5727 "conf_parser.c" /* yacc.c:1646  */
5588 > #line 5589 "conf_parser.c" /* yacc.c:1646  */
5589      break;
5590  
5591    case 525:
5592 < #line 2598 "conf_parser.y" /* yacc.c:1646  */
5592 > #line 2460 "conf_parser.y" /* yacc.c:1646  */
5593      {
5594    ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5595   }
5596 < #line 5735 "conf_parser.c" /* yacc.c:1646  */
5596 > #line 5597 "conf_parser.c" /* yacc.c:1646  */
5597      break;
5598  
5599    case 526:
5600 < #line 2603 "conf_parser.y" /* yacc.c:1646  */
5600 > #line 2465 "conf_parser.y" /* yacc.c:1646  */
5601      {
5602    ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5603   }
5604 < #line 5743 "conf_parser.c" /* yacc.c:1646  */
5604 > #line 5605 "conf_parser.c" /* yacc.c:1646  */
5605      break;
5606  
5607    case 527:
5608 < #line 2608 "conf_parser.y" /* yacc.c:1646  */
5608 > #line 2470 "conf_parser.y" /* yacc.c:1646  */
5609      {
5610    ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5611   }
5612 < #line 5751 "conf_parser.c" /* yacc.c:1646  */
5612 > #line 5613 "conf_parser.c" /* yacc.c:1646  */
5613      break;
5614  
5615    case 528:
5616 < #line 2613 "conf_parser.y" /* yacc.c:1646  */
5616 > #line 2475 "conf_parser.y" /* yacc.c:1646  */
5617      {
5618    ConfigGeneral.tkline_expire_notices = yylval.number;
5619   }
5620 < #line 5759 "conf_parser.c" /* yacc.c:1646  */
5620 > #line 5621 "conf_parser.c" /* yacc.c:1646  */
5621      break;
5622  
5623    case 529:
5624 < #line 2618 "conf_parser.y" /* yacc.c:1646  */
5624 > #line 2480 "conf_parser.y" /* yacc.c:1646  */
5625      {
5626    ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5627   }
5628 < #line 5767 "conf_parser.c" /* yacc.c:1646  */
5628 > #line 5629 "conf_parser.c" /* yacc.c:1646  */
5629      break;
5630  
5631    case 530:
5632 < #line 2623 "conf_parser.y" /* yacc.c:1646  */
5632 > #line 2485 "conf_parser.y" /* yacc.c:1646  */
5633      {
5634    ConfigGeneral.ignore_bogus_ts = yylval.number;
5635   }
5636 < #line 5775 "conf_parser.c" /* yacc.c:1646  */
5636 > #line 5637 "conf_parser.c" /* yacc.c:1646  */
5637      break;
5638  
5639    case 531:
5640 < #line 2628 "conf_parser.y" /* yacc.c:1646  */
5640 > #line 2490 "conf_parser.y" /* yacc.c:1646  */
5641      {
5642    ConfigGeneral.failed_oper_notice = yylval.number;
5643   }
5644 < #line 5783 "conf_parser.c" /* yacc.c:1646  */
5644 > #line 5645 "conf_parser.c" /* yacc.c:1646  */
5645      break;
5646  
5647    case 532:
5648 < #line 2633 "conf_parser.y" /* yacc.c:1646  */
5648 > #line 2495 "conf_parser.y" /* yacc.c:1646  */
5649      {
5650    ConfigGeneral.anti_nick_flood = yylval.number;
5651   }
5652 < #line 5791 "conf_parser.c" /* yacc.c:1646  */
5652 > #line 5653 "conf_parser.c" /* yacc.c:1646  */
5653      break;
5654  
5655    case 533:
5656 < #line 2638 "conf_parser.y" /* yacc.c:1646  */
5656 > #line 2500 "conf_parser.y" /* yacc.c:1646  */
5657      {
5658    ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5659   }
5660 < #line 5799 "conf_parser.c" /* yacc.c:1646  */
5660 > #line 5661 "conf_parser.c" /* yacc.c:1646  */
5661      break;
5662  
5663    case 534:
5664 < #line 2643 "conf_parser.y" /* yacc.c:1646  */
5664 > #line 2505 "conf_parser.y" /* yacc.c:1646  */
5665      {
5666    ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5667   }
5668 < #line 5807 "conf_parser.c" /* yacc.c:1646  */
5668 > #line 5669 "conf_parser.c" /* yacc.c:1646  */
5669      break;
5670  
5671    case 535:
5672 < #line 2648 "conf_parser.y" /* yacc.c:1646  */
5672 > #line 2510 "conf_parser.y" /* yacc.c:1646  */
5673      {
5674    ConfigGeneral.max_accept = (yyvsp[-1].number);
5675   }
5676 < #line 5815 "conf_parser.c" /* yacc.c:1646  */
5676 > #line 5677 "conf_parser.c" /* yacc.c:1646  */
5677      break;
5678  
5679    case 536:
5680 < #line 2653 "conf_parser.y" /* yacc.c:1646  */
5680 > #line 2515 "conf_parser.y" /* yacc.c:1646  */
5681      {
5682    ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5683   }
5684 < #line 5823 "conf_parser.c" /* yacc.c:1646  */
5684 > #line 5685 "conf_parser.c" /* yacc.c:1646  */
5685      break;
5686  
5687    case 537:
5688 < #line 2658 "conf_parser.y" /* yacc.c:1646  */
5688 > #line 2520 "conf_parser.y" /* yacc.c:1646  */
5689      {
5690    ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5691   }
5692 < #line 5831 "conf_parser.c" /* yacc.c:1646  */
5692 > #line 5693 "conf_parser.c" /* yacc.c:1646  */
5693      break;
5694  
5695    case 538:
5696 < #line 2663 "conf_parser.y" /* yacc.c:1646  */
5696 > #line 2525 "conf_parser.y" /* yacc.c:1646  */
5697      {
5698    if (conf_parser_ctx.pass == 2)
5699      ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5700   }
5701 < #line 5840 "conf_parser.c" /* yacc.c:1646  */
5701 > #line 5702 "conf_parser.c" /* yacc.c:1646  */
5702      break;
5703  
5704    case 539:
5705 < #line 2669 "conf_parser.y" /* yacc.c:1646  */
5705 > #line 2531 "conf_parser.y" /* yacc.c:1646  */
5706      {
5707    ConfigGeneral.invisible_on_connect = yylval.number;
5708   }
5709 < #line 5848 "conf_parser.c" /* yacc.c:1646  */
5709 > #line 5710 "conf_parser.c" /* yacc.c:1646  */
5710      break;
5711  
5712    case 540:
5713 < #line 2674 "conf_parser.y" /* yacc.c:1646  */
5713 > #line 2536 "conf_parser.y" /* yacc.c:1646  */
5714      {
5715    ConfigGeneral.warn_no_connect_block = yylval.number;
5716   }
5717 < #line 5856 "conf_parser.c" /* yacc.c:1646  */
5717 > #line 5718 "conf_parser.c" /* yacc.c:1646  */
5718      break;
5719  
5720    case 541:
5721 < #line 2679 "conf_parser.y" /* yacc.c:1646  */
5721 > #line 2541 "conf_parser.y" /* yacc.c:1646  */
5722      {
5723    ConfigGeneral.stats_e_disabled = yylval.number;
5724   }
5725 < #line 5864 "conf_parser.c" /* yacc.c:1646  */
5725 > #line 5726 "conf_parser.c" /* yacc.c:1646  */
5726      break;
5727  
5728    case 542:
5729 < #line 2684 "conf_parser.y" /* yacc.c:1646  */
5729 > #line 2546 "conf_parser.y" /* yacc.c:1646  */
5730      {
5731    ConfigGeneral.stats_m_oper_only = yylval.number;
5732   }
5733 < #line 5872 "conf_parser.c" /* yacc.c:1646  */
5733 > #line 5734 "conf_parser.c" /* yacc.c:1646  */
5734      break;
5735  
5736    case 543:
5737 < #line 2689 "conf_parser.y" /* yacc.c:1646  */
5737 > #line 2551 "conf_parser.y" /* yacc.c:1646  */
5738      {
5739    ConfigGeneral.stats_o_oper_only = yylval.number;
5740   }
5741 < #line 5880 "conf_parser.c" /* yacc.c:1646  */
5741 > #line 5742 "conf_parser.c" /* yacc.c:1646  */
5742      break;
5743  
5744    case 544:
5745 < #line 2694 "conf_parser.y" /* yacc.c:1646  */
5745 > #line 2556 "conf_parser.y" /* yacc.c:1646  */
5746      {
5747    ConfigGeneral.stats_P_oper_only = yylval.number;
5748   }
5749 < #line 5888 "conf_parser.c" /* yacc.c:1646  */
5749 > #line 5750 "conf_parser.c" /* yacc.c:1646  */
5750      break;
5751  
5752    case 545:
5753 < #line 2699 "conf_parser.y" /* yacc.c:1646  */
5753 > #line 2561 "conf_parser.y" /* yacc.c:1646  */
5754      {
5755    ConfigGeneral.stats_u_oper_only = yylval.number;
5756   }
5757 < #line 5896 "conf_parser.c" /* yacc.c:1646  */
5757 > #line 5758 "conf_parser.c" /* yacc.c:1646  */
5758      break;
5759  
5760    case 546:
5761 < #line 2704 "conf_parser.y" /* yacc.c:1646  */
5761 > #line 2566 "conf_parser.y" /* yacc.c:1646  */
5762      {
5763    ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5764   }
5765 < #line 5904 "conf_parser.c" /* yacc.c:1646  */
5765 > #line 5766 "conf_parser.c" /* yacc.c:1646  */
5766      break;
5767  
5768    case 547:
5769 < #line 2707 "conf_parser.y" /* yacc.c:1646  */
5769 > #line 2569 "conf_parser.y" /* yacc.c:1646  */
5770      {
5771    ConfigGeneral.stats_k_oper_only = 1;
5772   }
5773 < #line 5912 "conf_parser.c" /* yacc.c:1646  */
5773 > #line 5774 "conf_parser.c" /* yacc.c:1646  */
5774      break;
5775  
5776    case 548:
5777 < #line 2712 "conf_parser.y" /* yacc.c:1646  */
5777 > #line 2574 "conf_parser.y" /* yacc.c:1646  */
5778      {
5779    ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5780   }
5781 < #line 5920 "conf_parser.c" /* yacc.c:1646  */
5781 > #line 5782 "conf_parser.c" /* yacc.c:1646  */
5782      break;
5783  
5784    case 549:
5785 < #line 2715 "conf_parser.y" /* yacc.c:1646  */
5785 > #line 2577 "conf_parser.y" /* yacc.c:1646  */
5786      {
5787    ConfigGeneral.stats_i_oper_only = 1;
5788   }
5789 < #line 5928 "conf_parser.c" /* yacc.c:1646  */
5789 > #line 5790 "conf_parser.c" /* yacc.c:1646  */
5790      break;
5791  
5792    case 550:
5793 < #line 2720 "conf_parser.y" /* yacc.c:1646  */
5793 > #line 2582 "conf_parser.y" /* yacc.c:1646  */
5794      {
5795    ConfigGeneral.pace_wait = (yyvsp[-1].number);
5796   }
5797 < #line 5936 "conf_parser.c" /* yacc.c:1646  */
5797 > #line 5798 "conf_parser.c" /* yacc.c:1646  */
5798      break;
5799  
5800    case 551:
5801 < #line 2725 "conf_parser.y" /* yacc.c:1646  */
5801 > #line 2587 "conf_parser.y" /* yacc.c:1646  */
5802      {
5803    ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5804   }
5805 < #line 5944 "conf_parser.c" /* yacc.c:1646  */
5805 > #line 5806 "conf_parser.c" /* yacc.c:1646  */
5806      break;
5807  
5808    case 552:
5809 < #line 2730 "conf_parser.y" /* yacc.c:1646  */
5809 > #line 2592 "conf_parser.y" /* yacc.c:1646  */
5810      {
5811    ConfigGeneral.opers_bypass_callerid = yylval.number;
5812   }
5813 < #line 5952 "conf_parser.c" /* yacc.c:1646  */
5813 > #line 5814 "conf_parser.c" /* yacc.c:1646  */
5814      break;
5815  
5816    case 553:
5817 < #line 2735 "conf_parser.y" /* yacc.c:1646  */
5817 > #line 2597 "conf_parser.y" /* yacc.c:1646  */
5818      {
5819    ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5820   }
5821 < #line 5960 "conf_parser.c" /* yacc.c:1646  */
5821 > #line 5822 "conf_parser.c" /* yacc.c:1646  */
5822      break;
5823  
5824    case 554:
5825 < #line 2740 "conf_parser.y" /* yacc.c:1646  */
5825 > #line 2602 "conf_parser.y" /* yacc.c:1646  */
5826      {
5827    ConfigGeneral.short_motd = yylval.number;
5828   }
5829 < #line 5968 "conf_parser.c" /* yacc.c:1646  */
5829 > #line 5830 "conf_parser.c" /* yacc.c:1646  */
5830      break;
5831  
5832    case 555:
5833 < #line 2745 "conf_parser.y" /* yacc.c:1646  */
5833 > #line 2607 "conf_parser.y" /* yacc.c:1646  */
5834      {
5835    ConfigGeneral.no_oper_flood = yylval.number;
5836   }
5837 < #line 5976 "conf_parser.c" /* yacc.c:1646  */
5837 > #line 5838 "conf_parser.c" /* yacc.c:1646  */
5838      break;
5839  
5840    case 556:
5841 < #line 2750 "conf_parser.y" /* yacc.c:1646  */
5841 > #line 2612 "conf_parser.y" /* yacc.c:1646  */
5842      {
5843    ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5844   }
5845 < #line 5984 "conf_parser.c" /* yacc.c:1646  */
5845 > #line 5846 "conf_parser.c" /* yacc.c:1646  */
5846      break;
5847  
5848    case 557:
5849 < #line 2755 "conf_parser.y" /* yacc.c:1646  */
5849 > #line 2617 "conf_parser.y" /* yacc.c:1646  */
5850      {
5851    ConfigGeneral.max_targets = (yyvsp[-1].number);
5852   }
5853 < #line 5992 "conf_parser.c" /* yacc.c:1646  */
5853 > #line 5854 "conf_parser.c" /* yacc.c:1646  */
5854      break;
5855  
5856    case 558:
5857 < #line 2760 "conf_parser.y" /* yacc.c:1646  */
5857 > #line 2622 "conf_parser.y" /* yacc.c:1646  */
5858      {
5859    ConfigGeneral.ping_cookie = yylval.number;
5860   }
5861 < #line 6000 "conf_parser.c" /* yacc.c:1646  */
5861 > #line 5862 "conf_parser.c" /* yacc.c:1646  */
5862      break;
5863  
5864    case 559:
5865 < #line 2765 "conf_parser.y" /* yacc.c:1646  */
5865 > #line 2627 "conf_parser.y" /* yacc.c:1646  */
5866      {
5867    ConfigGeneral.disable_auth = yylval.number;
5868   }
5869 < #line 6008 "conf_parser.c" /* yacc.c:1646  */
5869 > #line 5870 "conf_parser.c" /* yacc.c:1646  */
5870      break;
5871  
5872    case 560:
5873 < #line 2770 "conf_parser.y" /* yacc.c:1646  */
5873 > #line 2632 "conf_parser.y" /* yacc.c:1646  */
5874      {
5875    ConfigGeneral.throttle_count = (yyvsp[-1].number);
5876   }
5877 < #line 6016 "conf_parser.c" /* yacc.c:1646  */
5877 > #line 5878 "conf_parser.c" /* yacc.c:1646  */
5878      break;
5879  
5880    case 561:
5881 < #line 2775 "conf_parser.y" /* yacc.c:1646  */
5881 > #line 2637 "conf_parser.y" /* yacc.c:1646  */
5882      {
5883    ConfigGeneral.throttle_time = (yyvsp[-1].number);
5884   }
5885 < #line 6024 "conf_parser.c" /* yacc.c:1646  */
5885 > #line 5886 "conf_parser.c" /* yacc.c:1646  */
5886      break;
5887  
5888    case 562:
5889 < #line 2780 "conf_parser.y" /* yacc.c:1646  */
5889 > #line 2642 "conf_parser.y" /* yacc.c:1646  */
5890      {
5891    ConfigGeneral.oper_umodes = 0;
5892   }
5893 < #line 6032 "conf_parser.c" /* yacc.c:1646  */
5893 > #line 5894 "conf_parser.c" /* yacc.c:1646  */
5894      break;
5895  
5896    case 566:
5897 < #line 2786 "conf_parser.y" /* yacc.c:1646  */
5897 > #line 2648 "conf_parser.y" /* yacc.c:1646  */
5898      {
5899    ConfigGeneral.oper_umodes |= UMODE_BOTS;
5900   }
5901 < #line 6040 "conf_parser.c" /* yacc.c:1646  */
5901 > #line 5902 "conf_parser.c" /* yacc.c:1646  */
5902      break;
5903  
5904    case 567:
5905 < #line 2789 "conf_parser.y" /* yacc.c:1646  */
5905 > #line 2651 "conf_parser.y" /* yacc.c:1646  */
5906      {
5907    ConfigGeneral.oper_umodes |= UMODE_CCONN;
5908   }
5909 < #line 6048 "conf_parser.c" /* yacc.c:1646  */
5909 > #line 5910 "conf_parser.c" /* yacc.c:1646  */
5910      break;
5911  
5912    case 568:
5913 < #line 2792 "conf_parser.y" /* yacc.c:1646  */
5913 > #line 2654 "conf_parser.y" /* yacc.c:1646  */
5914      {
5915    ConfigGeneral.oper_umodes |= UMODE_DEAF;
5916   }
5917 < #line 6056 "conf_parser.c" /* yacc.c:1646  */
5917 > #line 5918 "conf_parser.c" /* yacc.c:1646  */
5918      break;
5919  
5920    case 569:
5921 < #line 2795 "conf_parser.y" /* yacc.c:1646  */
5921 > #line 2657 "conf_parser.y" /* yacc.c:1646  */
5922      {
5923    ConfigGeneral.oper_umodes |= UMODE_DEBUG;
5924   }
5925 < #line 6064 "conf_parser.c" /* yacc.c:1646  */
5925 > #line 5926 "conf_parser.c" /* yacc.c:1646  */
5926      break;
5927  
5928    case 570:
5929 < #line 2798 "conf_parser.y" /* yacc.c:1646  */
5929 > #line 2660 "conf_parser.y" /* yacc.c:1646  */
5930      {
5931    ConfigGeneral.oper_umodes |= UMODE_FULL;
5932   }
5933 < #line 6072 "conf_parser.c" /* yacc.c:1646  */
5933 > #line 5934 "conf_parser.c" /* yacc.c:1646  */
5934      break;
5935  
5936    case 571:
5937 < #line 2801 "conf_parser.y" /* yacc.c:1646  */
5937 > #line 2663 "conf_parser.y" /* yacc.c:1646  */
5938      {
5939    ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
5940   }
5941 < #line 6080 "conf_parser.c" /* yacc.c:1646  */
5941 > #line 5942 "conf_parser.c" /* yacc.c:1646  */
5942      break;
5943  
5944    case 572:
5945 < #line 2804 "conf_parser.y" /* yacc.c:1646  */
5945 > #line 2666 "conf_parser.y" /* yacc.c:1646  */
5946      {
5947    ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
5948   }
5949 < #line 6088 "conf_parser.c" /* yacc.c:1646  */
5949 > #line 5950 "conf_parser.c" /* yacc.c:1646  */
5950      break;
5951  
5952    case 573:
5953 < #line 2807 "conf_parser.y" /* yacc.c:1646  */
5953 > #line 2669 "conf_parser.y" /* yacc.c:1646  */
5954      {
5955    ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
5956   }
5957 < #line 6096 "conf_parser.c" /* yacc.c:1646  */
5957 > #line 5958 "conf_parser.c" /* yacc.c:1646  */
5958      break;
5959  
5960    case 574:
5961 < #line 2810 "conf_parser.y" /* yacc.c:1646  */
5961 > #line 2672 "conf_parser.y" /* yacc.c:1646  */
5962      {
5963    ConfigGeneral.oper_umodes |= UMODE_SKILL;
5964   }
5965 < #line 6104 "conf_parser.c" /* yacc.c:1646  */
5965 > #line 5966 "conf_parser.c" /* yacc.c:1646  */
5966      break;
5967  
5968    case 575:
5969 < #line 2813 "conf_parser.y" /* yacc.c:1646  */
5969 > #line 2675 "conf_parser.y" /* yacc.c:1646  */
5970      {
5971    ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
5972   }
5973 < #line 6112 "conf_parser.c" /* yacc.c:1646  */
5973 > #line 5974 "conf_parser.c" /* yacc.c:1646  */
5974      break;
5975  
5976    case 576:
5977 < #line 2816 "conf_parser.y" /* yacc.c:1646  */
5977 > #line 2678 "conf_parser.y" /* yacc.c:1646  */
5978      {
5979    ConfigGeneral.oper_umodes |= UMODE_REJ;
5980   }
5981 < #line 6120 "conf_parser.c" /* yacc.c:1646  */
5981 > #line 5982 "conf_parser.c" /* yacc.c:1646  */
5982      break;
5983  
5984    case 577:
5985 < #line 2819 "conf_parser.y" /* yacc.c:1646  */
5985 > #line 2681 "conf_parser.y" /* yacc.c:1646  */
5986      {
5987    ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
5988   }
5989 < #line 6128 "conf_parser.c" /* yacc.c:1646  */
5989 > #line 5990 "conf_parser.c" /* yacc.c:1646  */
5990      break;
5991  
5992    case 578:
5993 < #line 2822 "conf_parser.y" /* yacc.c:1646  */
5993 > #line 2684 "conf_parser.y" /* yacc.c:1646  */
5994      {
5995    ConfigGeneral.oper_umodes |= UMODE_SPY;
5996   }
5997 < #line 6136 "conf_parser.c" /* yacc.c:1646  */
5997 > #line 5998 "conf_parser.c" /* yacc.c:1646  */
5998      break;
5999  
6000    case 579:
6001 < #line 2825 "conf_parser.y" /* yacc.c:1646  */
6001 > #line 2687 "conf_parser.y" /* yacc.c:1646  */
6002      {
6003    ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
6004   }
6005 < #line 6144 "conf_parser.c" /* yacc.c:1646  */
6005 > #line 6006 "conf_parser.c" /* yacc.c:1646  */
6006      break;
6007  
6008    case 580:
6009 < #line 2828 "conf_parser.y" /* yacc.c:1646  */
6009 > #line 2690 "conf_parser.y" /* yacc.c:1646  */
6010      {
6011    ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
6012   }
6013 < #line 6152 "conf_parser.c" /* yacc.c:1646  */
6013 > #line 6014 "conf_parser.c" /* yacc.c:1646  */
6014      break;
6015  
6016    case 581:
6017 < #line 2831 "conf_parser.y" /* yacc.c:1646  */
6017 > #line 2693 "conf_parser.y" /* yacc.c:1646  */
6018      {
6019    ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
6020   }
6021 < #line 6160 "conf_parser.c" /* yacc.c:1646  */
6021 > #line 6022 "conf_parser.c" /* yacc.c:1646  */
6022      break;
6023  
6024    case 582:
6025 < #line 2834 "conf_parser.y" /* yacc.c:1646  */
6025 > #line 2696 "conf_parser.y" /* yacc.c:1646  */
6026      {
6027    ConfigGeneral.oper_umodes |= UMODE_WALLOP;
6028   }
6029 < #line 6168 "conf_parser.c" /* yacc.c:1646  */
6029 > #line 6030 "conf_parser.c" /* yacc.c:1646  */
6030      break;
6031  
6032    case 583:
6033 < #line 2837 "conf_parser.y" /* yacc.c:1646  */
6033 > #line 2699 "conf_parser.y" /* yacc.c:1646  */
6034      {
6035    ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
6036   }
6037 < #line 6176 "conf_parser.c" /* yacc.c:1646  */
6037 > #line 6038 "conf_parser.c" /* yacc.c:1646  */
6038      break;
6039  
6040    case 584:
6041 < #line 2840 "conf_parser.y" /* yacc.c:1646  */
6041 > #line 2702 "conf_parser.y" /* yacc.c:1646  */
6042      {
6043    ConfigGeneral.oper_umodes |= UMODE_CALLERID;
6044   }
6045 < #line 6184 "conf_parser.c" /* yacc.c:1646  */
6045 > #line 6046 "conf_parser.c" /* yacc.c:1646  */
6046      break;
6047  
6048    case 585:
6049 < #line 2843 "conf_parser.y" /* yacc.c:1646  */
6049 > #line 2705 "conf_parser.y" /* yacc.c:1646  */
6050      {
6051    ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
6052   }
6053 < #line 6192 "conf_parser.c" /* yacc.c:1646  */
6053 > #line 6054 "conf_parser.c" /* yacc.c:1646  */
6054      break;
6055  
6056    case 586:
6057 < #line 2846 "conf_parser.y" /* yacc.c:1646  */
6057 > #line 2708 "conf_parser.y" /* yacc.c:1646  */
6058      {
6059    ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6060   }
6061 < #line 6200 "conf_parser.c" /* yacc.c:1646  */
6061 > #line 6062 "conf_parser.c" /* yacc.c:1646  */
6062      break;
6063  
6064    case 587:
6065 < #line 2849 "conf_parser.y" /* yacc.c:1646  */
6065 > #line 2711 "conf_parser.y" /* yacc.c:1646  */
6066      {
6067    ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6068   }
6069 < #line 6208 "conf_parser.c" /* yacc.c:1646  */
6069 > #line 6070 "conf_parser.c" /* yacc.c:1646  */
6070      break;
6071  
6072    case 588:
6073 < #line 2854 "conf_parser.y" /* yacc.c:1646  */
6073 > #line 2716 "conf_parser.y" /* yacc.c:1646  */
6074      {
6075    ConfigGeneral.oper_only_umodes = 0;
6076   }
6077 < #line 6216 "conf_parser.c" /* yacc.c:1646  */
6077 > #line 6078 "conf_parser.c" /* yacc.c:1646  */
6078      break;
6079  
6080    case 592:
6081 < #line 2860 "conf_parser.y" /* yacc.c:1646  */
6081 > #line 2722 "conf_parser.y" /* yacc.c:1646  */
6082      {
6083    ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6084   }
6085 < #line 6224 "conf_parser.c" /* yacc.c:1646  */
6085 > #line 6086 "conf_parser.c" /* yacc.c:1646  */
6086      break;
6087  
6088    case 593:
6089 < #line 2863 "conf_parser.y" /* yacc.c:1646  */
6089 > #line 2725 "conf_parser.y" /* yacc.c:1646  */
6090      {
6091    ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6092   }
6093 < #line 6232 "conf_parser.c" /* yacc.c:1646  */
6093 > #line 6094 "conf_parser.c" /* yacc.c:1646  */
6094      break;
6095  
6096    case 594:
6097 < #line 2866 "conf_parser.y" /* yacc.c:1646  */
6097 > #line 2728 "conf_parser.y" /* yacc.c:1646  */
6098      {
6099    ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6100   }
6101 < #line 6240 "conf_parser.c" /* yacc.c:1646  */
6101 > #line 6102 "conf_parser.c" /* yacc.c:1646  */
6102      break;
6103  
6104    case 595:
6105 < #line 2869 "conf_parser.y" /* yacc.c:1646  */
6105 > #line 2731 "conf_parser.y" /* yacc.c:1646  */
6106      {
6107    ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6108   }
6109 < #line 6248 "conf_parser.c" /* yacc.c:1646  */
6109 > #line 6110 "conf_parser.c" /* yacc.c:1646  */
6110      break;
6111  
6112    case 596:
6113 < #line 2872 "conf_parser.y" /* yacc.c:1646  */
6113 > #line 2734 "conf_parser.y" /* yacc.c:1646  */
6114      {
6115    ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6116   }
6117 < #line 6256 "conf_parser.c" /* yacc.c:1646  */
6117 > #line 6118 "conf_parser.c" /* yacc.c:1646  */
6118      break;
6119  
6120    case 597:
6121 < #line 2875 "conf_parser.y" /* yacc.c:1646  */
6121 > #line 2737 "conf_parser.y" /* yacc.c:1646  */
6122      {
6123    ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6124   }
6125 < #line 6264 "conf_parser.c" /* yacc.c:1646  */
6125 > #line 6126 "conf_parser.c" /* yacc.c:1646  */
6126      break;
6127  
6128    case 598:
6129 < #line 2878 "conf_parser.y" /* yacc.c:1646  */
6129 > #line 2740 "conf_parser.y" /* yacc.c:1646  */
6130      {
6131    ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6132   }
6133 < #line 6272 "conf_parser.c" /* yacc.c:1646  */
6133 > #line 6134 "conf_parser.c" /* yacc.c:1646  */
6134      break;
6135  
6136    case 599:
6137 < #line 2881 "conf_parser.y" /* yacc.c:1646  */
6137 > #line 2743 "conf_parser.y" /* yacc.c:1646  */
6138      {
6139    ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6140   }
6141 < #line 6280 "conf_parser.c" /* yacc.c:1646  */
6141 > #line 6142 "conf_parser.c" /* yacc.c:1646  */
6142      break;
6143  
6144    case 600:
6145 < #line 2884 "conf_parser.y" /* yacc.c:1646  */
6145 > #line 2746 "conf_parser.y" /* yacc.c:1646  */
6146      {
6147    ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6148   }
6149 < #line 6288 "conf_parser.c" /* yacc.c:1646  */
6149 > #line 6150 "conf_parser.c" /* yacc.c:1646  */
6150      break;
6151  
6152    case 601:
6153 < #line 2887 "conf_parser.y" /* yacc.c:1646  */
6153 > #line 2749 "conf_parser.y" /* yacc.c:1646  */
6154      {
6155    ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6156   }
6157 < #line 6296 "conf_parser.c" /* yacc.c:1646  */
6157 > #line 6158 "conf_parser.c" /* yacc.c:1646  */
6158      break;
6159  
6160    case 602:
6161 < #line 2890 "conf_parser.y" /* yacc.c:1646  */
6161 > #line 2752 "conf_parser.y" /* yacc.c:1646  */
6162      {
6163    ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6164   }
6165 < #line 6304 "conf_parser.c" /* yacc.c:1646  */
6165 > #line 6166 "conf_parser.c" /* yacc.c:1646  */
6166      break;
6167  
6168    case 603:
6169 < #line 2893 "conf_parser.y" /* yacc.c:1646  */
6169 > #line 2755 "conf_parser.y" /* yacc.c:1646  */
6170      {
6171    ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6172   }
6173 < #line 6312 "conf_parser.c" /* yacc.c:1646  */
6173 > #line 6174 "conf_parser.c" /* yacc.c:1646  */
6174      break;
6175  
6176    case 604:
6177 < #line 2896 "conf_parser.y" /* yacc.c:1646  */
6177 > #line 2758 "conf_parser.y" /* yacc.c:1646  */
6178      {
6179    ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6180   }
6181 < #line 6320 "conf_parser.c" /* yacc.c:1646  */
6181 > #line 6182 "conf_parser.c" /* yacc.c:1646  */
6182      break;
6183  
6184    case 605:
6185 < #line 2899 "conf_parser.y" /* yacc.c:1646  */
6185 > #line 2761 "conf_parser.y" /* yacc.c:1646  */
6186      {
6187    ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6188   }
6189 < #line 6328 "conf_parser.c" /* yacc.c:1646  */
6189 > #line 6190 "conf_parser.c" /* yacc.c:1646  */
6190      break;
6191  
6192    case 606:
6193 < #line 2902 "conf_parser.y" /* yacc.c:1646  */
6193 > #line 2764 "conf_parser.y" /* yacc.c:1646  */
6194      {
6195    ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6196   }
6197 < #line 6336 "conf_parser.c" /* yacc.c:1646  */
6197 > #line 6198 "conf_parser.c" /* yacc.c:1646  */
6198      break;
6199  
6200    case 607:
6201 < #line 2905 "conf_parser.y" /* yacc.c:1646  */
6201 > #line 2767 "conf_parser.y" /* yacc.c:1646  */
6202      {
6203    ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6204   }
6205 < #line 6344 "conf_parser.c" /* yacc.c:1646  */
6205 > #line 6206 "conf_parser.c" /* yacc.c:1646  */
6206      break;
6207  
6208    case 608:
6209 < #line 2908 "conf_parser.y" /* yacc.c:1646  */
6209 > #line 2770 "conf_parser.y" /* yacc.c:1646  */
6210      {
6211    ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6212   }
6213 < #line 6352 "conf_parser.c" /* yacc.c:1646  */
6213 > #line 6214 "conf_parser.c" /* yacc.c:1646  */
6214      break;
6215  
6216    case 609:
6217 < #line 2911 "conf_parser.y" /* yacc.c:1646  */
6217 > #line 2773 "conf_parser.y" /* yacc.c:1646  */
6218      {
6219    ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6220   }
6221 < #line 6360 "conf_parser.c" /* yacc.c:1646  */
6221 > #line 6222 "conf_parser.c" /* yacc.c:1646  */
6222      break;
6223  
6224    case 610:
6225 < #line 2914 "conf_parser.y" /* yacc.c:1646  */
6225 > #line 2776 "conf_parser.y" /* yacc.c:1646  */
6226      {
6227    ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6228   }
6229 < #line 6368 "conf_parser.c" /* yacc.c:1646  */
6229 > #line 6230 "conf_parser.c" /* yacc.c:1646  */
6230      break;
6231  
6232    case 611:
6233 < #line 2917 "conf_parser.y" /* yacc.c:1646  */
6233 > #line 2779 "conf_parser.y" /* yacc.c:1646  */
6234      {
6235    ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6236   }
6237 < #line 6376 "conf_parser.c" /* yacc.c:1646  */
6237 > #line 6238 "conf_parser.c" /* yacc.c:1646  */
6238      break;
6239  
6240    case 612:
6241 < #line 2922 "conf_parser.y" /* yacc.c:1646  */
6241 > #line 2784 "conf_parser.y" /* yacc.c:1646  */
6242      {
6243    ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6244   }
6245 < #line 6384 "conf_parser.c" /* yacc.c:1646  */
6245 > #line 6246 "conf_parser.c" /* yacc.c:1646  */
6246      break;
6247  
6248    case 613:
6249 < #line 2927 "conf_parser.y" /* yacc.c:1646  */
6249 > #line 2789 "conf_parser.y" /* yacc.c:1646  */
6250      {
6251    ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6252   }
6253 < #line 6392 "conf_parser.c" /* yacc.c:1646  */
6253 > #line 6254 "conf_parser.c" /* yacc.c:1646  */
6254      break;
6255  
6256    case 614:
6257 < #line 2932 "conf_parser.y" /* yacc.c:1646  */
6257 > #line 2794 "conf_parser.y" /* yacc.c:1646  */
6258      {
6259    ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6260   }
6261 < #line 6400 "conf_parser.c" /* yacc.c:1646  */
6261 > #line 6262 "conf_parser.c" /* yacc.c:1646  */
6262      break;
6263  
6264    case 630:
6265 < #line 2957 "conf_parser.y" /* yacc.c:1646  */
6265 > #line 2819 "conf_parser.y" /* yacc.c:1646  */
6266      {
6267    ConfigChannel.disable_fake_channels = yylval.number;
6268   }
6269 < #line 6408 "conf_parser.c" /* yacc.c:1646  */
6269 > #line 6270 "conf_parser.c" /* yacc.c:1646  */
6270      break;
6271  
6272    case 631:
6273 < #line 2962 "conf_parser.y" /* yacc.c:1646  */
6273 > #line 2824 "conf_parser.y" /* yacc.c:1646  */
6274      {
6275    ConfigChannel.invite_client_count = (yyvsp[-1].number);
6276   }
6277 < #line 6416 "conf_parser.c" /* yacc.c:1646  */
6277 > #line 6278 "conf_parser.c" /* yacc.c:1646  */
6278      break;
6279  
6280    case 632:
6281 < #line 2967 "conf_parser.y" /* yacc.c:1646  */
6281 > #line 2829 "conf_parser.y" /* yacc.c:1646  */
6282      {
6283    ConfigChannel.invite_client_time = (yyvsp[-1].number);
6284   }
6285 < #line 6424 "conf_parser.c" /* yacc.c:1646  */
6285 > #line 6286 "conf_parser.c" /* yacc.c:1646  */
6286      break;
6287  
6288    case 633:
6289 < #line 2972 "conf_parser.y" /* yacc.c:1646  */
6289 > #line 2834 "conf_parser.y" /* yacc.c:1646  */
6290      {
6291    ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6292   }
6293 < #line 6432 "conf_parser.c" /* yacc.c:1646  */
6293 > #line 6294 "conf_parser.c" /* yacc.c:1646  */
6294      break;
6295  
6296    case 634:
6297 < #line 2977 "conf_parser.y" /* yacc.c:1646  */
6297 > #line 2839 "conf_parser.y" /* yacc.c:1646  */
6298      {
6299    ConfigChannel.knock_client_count = (yyvsp[-1].number);
6300   }
6301 < #line 6440 "conf_parser.c" /* yacc.c:1646  */
6301 > #line 6302 "conf_parser.c" /* yacc.c:1646  */
6302      break;
6303  
6304    case 635:
6305 < #line 2982 "conf_parser.y" /* yacc.c:1646  */
6305 > #line 2844 "conf_parser.y" /* yacc.c:1646  */
6306      {
6307    ConfigChannel.knock_client_time = (yyvsp[-1].number);
6308   }
6309 < #line 6448 "conf_parser.c" /* yacc.c:1646  */
6309 > #line 6310 "conf_parser.c" /* yacc.c:1646  */
6310      break;
6311  
6312    case 636:
6313 < #line 2987 "conf_parser.y" /* yacc.c:1646  */
6313 > #line 2849 "conf_parser.y" /* yacc.c:1646  */
6314      {
6315    ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6316   }
6317 < #line 6456 "conf_parser.c" /* yacc.c:1646  */
6317 > #line 6318 "conf_parser.c" /* yacc.c:1646  */
6318      break;
6319  
6320    case 637:
6321 < #line 2992 "conf_parser.y" /* yacc.c:1646  */
6321 > #line 2854 "conf_parser.y" /* yacc.c:1646  */
6322      {
6323    ConfigChannel.max_channels = (yyvsp[-1].number);
6324   }
6325 < #line 6464 "conf_parser.c" /* yacc.c:1646  */
6325 > #line 6326 "conf_parser.c" /* yacc.c:1646  */
6326      break;
6327  
6328    case 638:
6329 < #line 2997 "conf_parser.y" /* yacc.c:1646  */
6329 > #line 2859 "conf_parser.y" /* yacc.c:1646  */
6330      {
6331    ConfigChannel.max_bans = (yyvsp[-1].number);
6332   }
6333 < #line 6472 "conf_parser.c" /* yacc.c:1646  */
6333 > #line 6334 "conf_parser.c" /* yacc.c:1646  */
6334      break;
6335  
6336    case 639:
6337 < #line 3002 "conf_parser.y" /* yacc.c:1646  */
6337 > #line 2864 "conf_parser.y" /* yacc.c:1646  */
6338      {
6339    ConfigChannel.default_join_flood_count = yylval.number;
6340   }
6341 < #line 6480 "conf_parser.c" /* yacc.c:1646  */
6341 > #line 6342 "conf_parser.c" /* yacc.c:1646  */
6342      break;
6343  
6344    case 640:
6345 < #line 3007 "conf_parser.y" /* yacc.c:1646  */
6345 > #line 2869 "conf_parser.y" /* yacc.c:1646  */
6346      {
6347    ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6348   }
6349 < #line 6488 "conf_parser.c" /* yacc.c:1646  */
6349 > #line 6350 "conf_parser.c" /* yacc.c:1646  */
6350      break;
6351  
6352    case 654:
6353 < #line 3030 "conf_parser.y" /* yacc.c:1646  */
6353 > #line 2892 "conf_parser.y" /* yacc.c:1646  */
6354      {
6355    if (conf_parser_ctx.pass == 2)
6356      ConfigServerHide.flatten_links = yylval.number;
6357   }
6358 < #line 6497 "conf_parser.c" /* yacc.c:1646  */
6358 > #line 6359 "conf_parser.c" /* yacc.c:1646  */
6359      break;
6360  
6361    case 655:
6362 < #line 3036 "conf_parser.y" /* yacc.c:1646  */
6362 > #line 2898 "conf_parser.y" /* yacc.c:1646  */
6363      {
6364    if (conf_parser_ctx.pass == 2)
6365    {
# Line 6512 | Line 6374 | yyreduce:
6374      ConfigServerHide.flatten_links_delay = (yyvsp[-1].number);
6375    }
6376   }
6377 < #line 6516 "conf_parser.c" /* yacc.c:1646  */
6377 > #line 6378 "conf_parser.c" /* yacc.c:1646  */
6378      break;
6379  
6380    case 656:
6381 < #line 3052 "conf_parser.y" /* yacc.c:1646  */
6381 > #line 2914 "conf_parser.y" /* yacc.c:1646  */
6382      {
6383    if (conf_parser_ctx.pass == 2)
6384    {
# Line 6524 | Line 6386 | yyreduce:
6386      ConfigServerHide.flatten_links_file = xstrdup(yylval.string);
6387    }
6388   }
6389 < #line 6528 "conf_parser.c" /* yacc.c:1646  */
6389 > #line 6390 "conf_parser.c" /* yacc.c:1646  */
6390      break;
6391  
6392    case 657:
6393 < #line 3061 "conf_parser.y" /* yacc.c:1646  */
6393 > #line 2923 "conf_parser.y" /* yacc.c:1646  */
6394      {
6395    if (conf_parser_ctx.pass == 2)
6396      ConfigServerHide.disable_remote_commands = yylval.number;
6397   }
6398 < #line 6537 "conf_parser.c" /* yacc.c:1646  */
6398 > #line 6399 "conf_parser.c" /* yacc.c:1646  */
6399      break;
6400  
6401    case 658:
6402 < #line 3067 "conf_parser.y" /* yacc.c:1646  */
6402 > #line 2929 "conf_parser.y" /* yacc.c:1646  */
6403      {
6404    if (conf_parser_ctx.pass == 2)
6405      ConfigServerHide.hide_servers = yylval.number;
6406   }
6407 < #line 6546 "conf_parser.c" /* yacc.c:1646  */
6407 > #line 6408 "conf_parser.c" /* yacc.c:1646  */
6408      break;
6409  
6410    case 659:
6411 < #line 3073 "conf_parser.y" /* yacc.c:1646  */
6411 > #line 2935 "conf_parser.y" /* yacc.c:1646  */
6412      {
6413    if (conf_parser_ctx.pass == 2)
6414      ConfigServerHide.hide_services = yylval.number;
6415   }
6416 < #line 6555 "conf_parser.c" /* yacc.c:1646  */
6416 > #line 6417 "conf_parser.c" /* yacc.c:1646  */
6417      break;
6418  
6419    case 660:
6420 < #line 3079 "conf_parser.y" /* yacc.c:1646  */
6420 > #line 2941 "conf_parser.y" /* yacc.c:1646  */
6421      {
6422    if (conf_parser_ctx.pass == 2)
6423    {
# Line 6563 | Line 6425 | yyreduce:
6425      ConfigServerHide.hidden_name = xstrdup(yylval.string);
6426    }
6427   }
6428 < #line 6567 "conf_parser.c" /* yacc.c:1646  */
6428 > #line 6429 "conf_parser.c" /* yacc.c:1646  */
6429      break;
6430  
6431    case 661:
6432 < #line 3088 "conf_parser.y" /* yacc.c:1646  */
6432 > #line 2950 "conf_parser.y" /* yacc.c:1646  */
6433      {
6434    if (conf_parser_ctx.pass == 2)
6435      ConfigServerHide.hidden = yylval.number;
6436   }
6437 < #line 6576 "conf_parser.c" /* yacc.c:1646  */
6437 > #line 6438 "conf_parser.c" /* yacc.c:1646  */
6438      break;
6439  
6440    case 662:
6441 < #line 3094 "conf_parser.y" /* yacc.c:1646  */
6441 > #line 2956 "conf_parser.y" /* yacc.c:1646  */
6442      {
6443    if (conf_parser_ctx.pass == 2)
6444      ConfigServerHide.hide_server_ips = yylval.number;
6445   }
6446 < #line 6585 "conf_parser.c" /* yacc.c:1646  */
6446 > #line 6447 "conf_parser.c" /* yacc.c:1646  */
6447      break;
6448  
6449  
6450 < #line 6589 "conf_parser.c" /* yacc.c:1646  */
6450 > #line 6451 "conf_parser.c" /* yacc.c:1646  */
6451        default: break;
6452      }
6453    /* User semantic actions sometimes alter yychar, and that requires

Diff Legend

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