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

Comparing ircd-hybrid/trunk/src/conf_parser.c (file contents):
Revision 1631 by michael, Thu Nov 1 21:08:56 2012 UTC vs.
Revision 1632 by michael, Sun Nov 4 15:37:10 2012 UTC

# Line 75 | Line 75
75   #include "ircd.h"
76   #include "list.h"
77   #include "conf.h"
78 + #include "conf_class.h"
79   #include "event.h"
80   #include "log.h"
81   #include "client.h"     /* for UMODE_ALL only */
# Line 100 | Line 101
101   int yylex(void);
102  
103   static char *class_name = NULL;
104 < static struct ConfItem *yy_conf = NULL;
104 < static struct AccessItem *yy_aconf = NULL;
105 < static struct MatchItem *yy_match_item = NULL;
104 > static struct MaskItem *yy_conf = NULL;
105   static struct ClassItem *yy_class = NULL;
106   static char *yy_class_name = NULL;
107  
# Line 149 | Line 148 | free_collect_item(struct CollectItem *it
148  
149  
150   /* Line 358 of yacc.c  */
151 < #line 153 "conf_parser.c"
151 > #line 152 "conf_parser.c"
152  
153   # ifndef YY_NULL
154   #  if defined __cplusplus && 201103L <= __cplusplus
# Line 619 | Line 618 | extern int yydebug;
618   typedef union YYSTYPE
619   {
620   /* Line 374 of yacc.c  */
621 < #line 110 "conf_parser.y"
621 > #line 109 "conf_parser.y"
622  
623    int number;
624    char *string;
625  
626  
627   /* Line 374 of yacc.c  */
628 < #line 630 "conf_parser.c"
628 > #line 629 "conf_parser.c"
629   } YYSTYPE;
630   # define YYSTYPE_IS_TRIVIAL 1
631   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
# Line 654 | Line 653 | int yyparse ();
653   /* Copy the second part of user declarations.  */
654  
655   /* Line 377 of yacc.c  */
656 < #line 658 "conf_parser.c"
656 > #line 657 "conf_parser.c"
657  
658   #ifdef short
659   # undef short
# Line 1213 | Line 1212 | static const yytype_int16 yyrhs[] =
1212   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1213   static const yytype_uint16 yyrline[] =
1214   {
1215 <       0,   330,   330,   331,   334,   335,   336,   337,   338,   339,
1216 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1217 <     350,   351,   352,   353,   354,   355,   359,   359,   360,   364,
1218 <     368,   372,   376,   380,   386,   386,   387,   388,   389,   390,
1219 <     397,   400,   400,   401,   401,   401,   403,   409,   416,   418,
1220 <     418,   419,   419,   420,   420,   421,   421,   422,   422,   423,
1221 <     423,   424,   424,   425,   425,   426,   427,   430,   431,   433,
1222 <     433,   434,   440,   448,   448,   449,   455,   463,   502,   561,
1223 <     589,   597,   612,   627,   636,   650,   659,   687,   717,   740,
1224 <     749,   751,   751,   752,   752,   753,   753,   755,   764,   773,
1225 <     785,   786,   786,   788,   788,   789,   791,   798,   798,   808,
1226 <     809,   811,   811,   812,   812,   814,   819,   822,   828,   827,
1227 <     833,   833,   834,   838,   842,   846,   850,   854,   858,   869,
1228 <     868,   966,   966,   967,   967,   967,   968,   968,   968,   969,
1229 <     969,   969,   971,   980,  1017,  1029,  1040,  1082,  1092,  1091,
1230 <    1097,  1097,  1098,  1102,  1106,  1110,  1114,  1118,  1122,  1126,
1231 <    1130,  1134,  1138,  1142,  1146,  1150,  1154,  1158,  1162,  1166,
1232 <    1170,  1174,  1181,  1180,  1186,  1186,  1187,  1191,  1195,  1199,
1233 <    1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,
1234 <    1243,  1247,  1251,  1255,  1259,  1270,  1269,  1319,  1319,  1320,
1235 <    1321,  1321,  1322,  1323,  1324,  1325,  1326,  1327,  1328,  1329,
1236 <    1330,  1331,  1331,  1332,  1334,  1343,  1349,  1355,  1361,  1367,
1237 <    1373,  1379,  1385,  1391,  1397,  1404,  1410,  1416,  1426,  1425,
1238 <    1442,  1441,  1446,  1446,  1447,  1451,  1455,  1463,  1463,  1464,
1239 <    1464,  1464,  1464,  1464,  1466,  1466,  1468,  1468,  1470,  1484,
1240 <    1504,  1513,  1526,  1525,  1594,  1594,  1595,  1595,  1595,  1595,
1241 <    1596,  1596,  1596,  1597,  1597,  1599,  1634,  1647,  1656,  1668,
1242 <    1667,  1671,  1671,  1672,  1676,  1680,  1684,  1688,  1692,  1696,
1243 <    1700,  1704,  1710,  1729,  1739,  1753,  1752,  1768,  1768,  1769,
1244 <    1769,  1769,  1769,  1771,  1780,  1795,  1808,  1810,  1810,  1811,
1245 <    1811,  1813,  1829,  1828,  1844,  1844,  1845,  1845,  1845,  1845,
1246 <    1847,  1856,  1879,  1878,  1884,  1884,  1885,  1889,  1893,  1897,
1247 <    1901,  1905,  1909,  1913,  1917,  1921,  1931,  1930,  1947,  1947,
1248 <    1948,  1948,  1948,  1950,  1957,  1956,  1962,  1962,  1963,  1967,
1249 <    1971,  1975,  1979,  1983,  1987,  1991,  1995,  1999,  2009,  2008,
1250 <    2059,  2059,  2060,  2060,  2060,  2061,  2061,  2062,  2062,  2062,
1251 <    2063,  2063,  2063,  2064,  2064,  2065,  2067,  2076,  2085,  2111,
1252 <    2129,  2147,  2153,  2157,  2166,  2165,  2169,  2169,  2170,  2174,
1253 <    2180,  2191,  2202,  2213,  2222,  2241,  2240,  2304,  2303,  2307,
1254 <    2307,  2308,  2314,  2314,  2315,  2315,  2315,  2315,  2317,  2336,
1255 <    2346,  2345,  2368,  2368,  2369,  2369,  2369,  2371,  2377,  2386,
1256 <    2388,  2388,  2389,  2389,  2391,  2410,  2409,  2457,  2456,  2460,
1257 <    2460,  2461,  2467,  2467,  2468,  2468,  2468,  2468,  2470,  2476,
1258 <    2485,  2488,  2488,  2489,  2489,  2490,  2490,  2491,  2491,  2492,
1259 <    2492,  2493,  2493,  2494,  2495,  2496,  2496,  2497,  2497,  2498,
1260 <    2498,  2499,  2499,  2500,  2500,  2501,  2501,  2502,  2503,  2503,
1261 <    2504,  2504,  2505,  2505,  2506,  2506,  2507,  2507,  2508,  2509,
1262 <    2509,  2510,  2511,  2512,  2512,  2513,  2513,  2514,  2515,  2516,
1263 <    2517,  2517,  2518,  2521,  2526,  2532,  2538,  2544,  2549,  2554,
1264 <    2559,  2564,  2569,  2574,  2579,  2584,  2589,  2594,  2599,  2604,
1265 <    2609,  2614,  2620,  2631,  2636,  2641,  2646,  2651,  2656,  2659,
1266 <    2664,  2667,  2672,  2677,  2682,  2687,  2692,  2697,  2702,  2707,
1267 <    2712,  2723,  2728,  2733,  2738,  2747,  2756,  2761,  2766,  2772,
1268 <    2771,  2776,  2776,  2777,  2780,  2783,  2786,  2789,  2792,  2795,
1269 <    2798,  2801,  2804,  2807,  2810,  2813,  2816,  2819,  2822,  2825,
1270 <    2828,  2831,  2834,  2840,  2839,  2844,  2844,  2845,  2848,  2851,
1271 <    2854,  2857,  2860,  2863,  2866,  2869,  2872,  2875,  2878,  2881,
1272 <    2884,  2887,  2890,  2893,  2896,  2899,  2902,  2907,  2912,  2917,
1273 <    2926,  2929,  2929,  2930,  2931,  2931,  2932,  2932,  2933,  2933,
1274 <    2934,  2935,  2935,  2936,  2937,  2937,  2938,  2938,  2940,  2945,
1275 <    2950,  2955,  2960,  2965,  2970,  2975,  2980,  2985,  2990,  2995,
1276 <    3000,  3005,  3013,  3016,  3016,  3017,  3017,  3018,  3019,  3019,
1277 <    3020,  3021,  3023,  3029,  3035,  3044,  3058,  3064
1215 >       0,   329,   329,   330,   333,   334,   335,   336,   337,   338,
1216 >     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
1217 >     349,   350,   351,   352,   353,   354,   358,   358,   359,   363,
1218 >     367,   371,   375,   379,   385,   385,   386,   387,   388,   389,
1219 >     396,   399,   399,   400,   400,   400,   402,   408,   415,   417,
1220 >     417,   418,   418,   419,   419,   420,   420,   421,   421,   422,
1221 >     422,   423,   423,   424,   424,   425,   426,   429,   430,   432,
1222 >     432,   433,   439,   447,   447,   448,   454,   462,   501,   560,
1223 >     588,   596,   611,   626,   635,   649,   658,   686,   716,   739,
1224 >     748,   750,   750,   751,   751,   752,   752,   754,   763,   772,
1225 >     784,   785,   785,   787,   787,   788,   790,   797,   797,   807,
1226 >     808,   810,   810,   811,   811,   813,   818,   821,   827,   826,
1227 >     832,   832,   833,   837,   841,   845,   849,   853,   857,   868,
1228 >     867,   959,   959,   960,   960,   960,   961,   961,   961,   962,
1229 >     962,   962,   964,   973,  1010,  1022,  1033,  1075,  1085,  1084,
1230 >    1090,  1090,  1091,  1095,  1099,  1103,  1107,  1111,  1115,  1119,
1231 >    1123,  1127,  1131,  1135,  1139,  1143,  1147,  1151,  1155,  1159,
1232 >    1163,  1167,  1174,  1173,  1179,  1179,  1180,  1184,  1188,  1192,
1233 >    1196,  1200,  1204,  1208,  1212,  1216,  1220,  1224,  1228,  1232,
1234 >    1236,  1240,  1244,  1248,  1252,  1263,  1262,  1308,  1308,  1309,
1235 >    1310,  1310,  1311,  1312,  1313,  1314,  1315,  1316,  1317,  1318,
1236 >    1319,  1320,  1320,  1321,  1323,  1332,  1338,  1344,  1350,  1356,
1237 >    1362,  1368,  1374,  1380,  1386,  1393,  1399,  1405,  1415,  1414,
1238 >    1431,  1430,  1435,  1435,  1436,  1440,  1444,  1452,  1452,  1453,
1239 >    1453,  1453,  1453,  1453,  1455,  1455,  1457,  1457,  1459,  1473,
1240 >    1493,  1502,  1515,  1514,  1577,  1577,  1578,  1578,  1578,  1578,
1241 >    1579,  1579,  1579,  1580,  1580,  1582,  1617,  1630,  1639,  1651,
1242 >    1650,  1654,  1654,  1655,  1659,  1663,  1667,  1671,  1675,  1679,
1243 >    1683,  1687,  1693,  1712,  1722,  1736,  1735,  1751,  1751,  1752,
1244 >    1752,  1752,  1752,  1754,  1763,  1778,  1791,  1793,  1793,  1794,
1245 >    1794,  1796,  1812,  1811,  1826,  1826,  1827,  1827,  1827,  1827,
1246 >    1829,  1838,  1861,  1860,  1866,  1866,  1867,  1871,  1875,  1879,
1247 >    1883,  1887,  1891,  1895,  1899,  1903,  1913,  1912,  1928,  1928,
1248 >    1929,  1929,  1929,  1931,  1938,  1937,  1943,  1943,  1944,  1948,
1249 >    1952,  1956,  1960,  1964,  1968,  1972,  1976,  1980,  1990,  1989,
1250 >    2038,  2038,  2039,  2039,  2039,  2040,  2040,  2041,  2041,  2041,
1251 >    2042,  2042,  2042,  2043,  2043,  2044,  2046,  2055,  2064,  2090,
1252 >    2108,  2126,  2132,  2136,  2145,  2144,  2148,  2148,  2149,  2153,
1253 >    2159,  2170,  2181,  2192,  2201,  2220,  2219,  2283,  2282,  2286,
1254 >    2286,  2287,  2293,  2293,  2294,  2294,  2294,  2294,  2296,  2315,
1255 >    2325,  2324,  2347,  2347,  2348,  2348,  2348,  2350,  2356,  2365,
1256 >    2367,  2367,  2368,  2368,  2370,  2389,  2388,  2435,  2434,  2438,
1257 >    2438,  2439,  2445,  2445,  2446,  2446,  2446,  2446,  2448,  2454,
1258 >    2463,  2466,  2466,  2467,  2467,  2468,  2468,  2469,  2469,  2470,
1259 >    2470,  2471,  2471,  2472,  2473,  2474,  2474,  2475,  2475,  2476,
1260 >    2476,  2477,  2477,  2478,  2478,  2479,  2479,  2480,  2481,  2481,
1261 >    2482,  2482,  2483,  2483,  2484,  2484,  2485,  2485,  2486,  2487,
1262 >    2487,  2488,  2489,  2490,  2490,  2491,  2491,  2492,  2493,  2494,
1263 >    2495,  2495,  2496,  2499,  2504,  2510,  2516,  2522,  2527,  2532,
1264 >    2537,  2542,  2547,  2552,  2557,  2562,  2567,  2572,  2577,  2582,
1265 >    2587,  2592,  2598,  2609,  2614,  2619,  2624,  2629,  2634,  2637,
1266 >    2642,  2645,  2650,  2655,  2660,  2665,  2670,  2675,  2680,  2685,
1267 >    2690,  2701,  2706,  2711,  2716,  2725,  2734,  2739,  2744,  2750,
1268 >    2749,  2754,  2754,  2755,  2758,  2761,  2764,  2767,  2770,  2773,
1269 >    2776,  2779,  2782,  2785,  2788,  2791,  2794,  2797,  2800,  2803,
1270 >    2806,  2809,  2812,  2818,  2817,  2822,  2822,  2823,  2826,  2829,
1271 >    2832,  2835,  2838,  2841,  2844,  2847,  2850,  2853,  2856,  2859,
1272 >    2862,  2865,  2868,  2871,  2874,  2877,  2880,  2885,  2890,  2895,
1273 >    2904,  2907,  2907,  2908,  2909,  2909,  2910,  2910,  2911,  2911,
1274 >    2912,  2913,  2913,  2914,  2915,  2915,  2916,  2916,  2918,  2923,
1275 >    2928,  2933,  2938,  2943,  2948,  2953,  2958,  2963,  2968,  2973,
1276 >    2978,  2983,  2991,  2994,  2994,  2995,  2995,  2996,  2997,  2997,
1277 >    2998,  2999,  3001,  3007,  3013,  3022,  3036,  3042
1278   };
1279   #endif
1280  
# Line 3139 | Line 3138 | yyreduce:
3138      {
3139          case 26:
3140   /* Line 1813 of yacc.c  */
3141 < #line 359 "conf_parser.y"
3141 > #line 358 "conf_parser.y"
3142      { (yyval.number) = 0; }
3143      break;
3144  
3145    case 28:
3146   /* Line 1813 of yacc.c  */
3147 < #line 361 "conf_parser.y"
3147 > #line 360 "conf_parser.y"
3148      {
3149                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3150                  }
# Line 3153 | Line 3152 | yyreduce:
3152  
3153    case 29:
3154   /* Line 1813 of yacc.c  */
3155 < #line 365 "conf_parser.y"
3155 > #line 364 "conf_parser.y"
3156      {
3157                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3158                  }
# Line 3161 | Line 3160 | yyreduce:
3160  
3161    case 30:
3162   /* Line 1813 of yacc.c  */
3163 < #line 369 "conf_parser.y"
3163 > #line 368 "conf_parser.y"
3164      {
3165                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3166                  }
# Line 3169 | Line 3168 | yyreduce:
3168  
3169    case 31:
3170   /* Line 1813 of yacc.c  */
3171 < #line 373 "conf_parser.y"
3171 > #line 372 "conf_parser.y"
3172      {
3173                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3174                  }
# Line 3177 | Line 3176 | yyreduce:
3176  
3177    case 32:
3178   /* Line 1813 of yacc.c  */
3179 < #line 377 "conf_parser.y"
3179 > #line 376 "conf_parser.y"
3180      {
3181                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3182                  }
# Line 3185 | Line 3184 | yyreduce:
3184  
3185    case 33:
3186   /* Line 1813 of yacc.c  */
3187 < #line 381 "conf_parser.y"
3187 > #line 380 "conf_parser.y"
3188      {
3189                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3190                  }
# Line 3193 | Line 3192 | yyreduce:
3192  
3193    case 34:
3194   /* Line 1813 of yacc.c  */
3195 < #line 386 "conf_parser.y"
3195 > #line 385 "conf_parser.y"
3196      { (yyval.number) = 0; }
3197      break;
3198  
3199    case 36:
3200   /* Line 1813 of yacc.c  */
3201 < #line 387 "conf_parser.y"
3201 > #line 386 "conf_parser.y"
3202      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3203      break;
3204  
3205    case 37:
3206   /* Line 1813 of yacc.c  */
3207 < #line 388 "conf_parser.y"
3207 > #line 387 "conf_parser.y"
3208      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3209      break;
3210  
3211    case 38:
3212   /* Line 1813 of yacc.c  */
3213 < #line 389 "conf_parser.y"
3213 > #line 388 "conf_parser.y"
3214      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3215      break;
3216  
3217    case 39:
3218   /* Line 1813 of yacc.c  */
3219 < #line 390 "conf_parser.y"
3219 > #line 389 "conf_parser.y"
3220      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3221      break;
3222  
3223    case 46:
3224   /* Line 1813 of yacc.c  */
3225 < #line 404 "conf_parser.y"
3225 > #line 403 "conf_parser.y"
3226      {
3227    if (conf_parser_ctx.pass == 2)
3228      add_conf_module(libio_basename(yylval.string));
# Line 3232 | Line 3231 | yyreduce:
3231  
3232    case 47:
3233   /* Line 1813 of yacc.c  */
3234 < #line 410 "conf_parser.y"
3234 > #line 409 "conf_parser.y"
3235      {
3236    if (conf_parser_ctx.pass == 2)
3237      mod_add_path(yylval.string);
# Line 3241 | Line 3240 | yyreduce:
3240  
3241    case 71:
3242   /* Line 1813 of yacc.c  */
3243 < #line 435 "conf_parser.y"
3243 > #line 434 "conf_parser.y"
3244      {
3245   #ifdef HAVE_LIBCRYPTO
3246    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3252 | Line 3251 | yyreduce:
3251  
3252    case 72:
3253   /* Line 1813 of yacc.c  */
3254 < #line 441 "conf_parser.y"
3254 > #line 440 "conf_parser.y"
3255      {
3256   #ifdef HAVE_LIBCRYPTO
3257    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3263 | Line 3262 | yyreduce:
3262  
3263    case 75:
3264   /* Line 1813 of yacc.c  */
3265 < #line 450 "conf_parser.y"
3265 > #line 449 "conf_parser.y"
3266      {
3267   #ifdef HAVE_LIBCRYPTO
3268    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3274 | Line 3273 | yyreduce:
3273  
3274    case 76:
3275   /* Line 1813 of yacc.c  */
3276 < #line 456 "conf_parser.y"
3276 > #line 455 "conf_parser.y"
3277      {
3278   #ifdef HAVE_LIBCRYPTO
3279    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3285 | Line 3284 | yyreduce:
3284  
3285    case 77:
3286   /* Line 1813 of yacc.c  */
3287 < #line 464 "conf_parser.y"
3287 > #line 463 "conf_parser.y"
3288      {
3289   #ifdef HAVE_LIBCRYPTO
3290    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3327 | Line 3326 | yyreduce:
3326  
3327    case 78:
3328   /* Line 1813 of yacc.c  */
3329 < #line 503 "conf_parser.y"
3329 > #line 502 "conf_parser.y"
3330      {
3331   #ifdef HAVE_LIBCRYPTO
3332    if (conf_parser_ctx.pass == 1)
# Line 3389 | Line 3388 | yyreduce:
3388  
3389    case 79:
3390   /* Line 1813 of yacc.c  */
3391 < #line 562 "conf_parser.y"
3391 > #line 561 "conf_parser.y"
3392      {
3393   /* TBD - XXX: error reporting */
3394   #ifdef HAVE_LIBCRYPTO
# Line 3420 | Line 3419 | yyreduce:
3419  
3420    case 80:
3421   /* Line 1813 of yacc.c  */
3422 < #line 590 "conf_parser.y"
3422 > #line 589 "conf_parser.y"
3423      {
3424   #ifdef HAVE_LIBCRYPTO
3425    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3431 | Line 3430 | yyreduce:
3430  
3431    case 81:
3432   /* Line 1813 of yacc.c  */
3433 < #line 598 "conf_parser.y"
3433 > #line 597 "conf_parser.y"
3434      {
3435    /* this isn't rehashable */
3436    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
# Line 3449 | Line 3448 | yyreduce:
3448  
3449    case 82:
3450   /* Line 1813 of yacc.c  */
3451 < #line 613 "conf_parser.y"
3451 > #line 612 "conf_parser.y"
3452      {
3453    /* this isn't rehashable */
3454    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
# Line 3467 | Line 3466 | yyreduce:
3466  
3467    case 83:
3468   /* Line 1813 of yacc.c  */
3469 < #line 628 "conf_parser.y"
3469 > #line 627 "conf_parser.y"
3470      {
3471    if (conf_parser_ctx.pass == 2)
3472    {
# Line 3479 | Line 3478 | yyreduce:
3478  
3479    case 84:
3480   /* Line 1813 of yacc.c  */
3481 < #line 637 "conf_parser.y"
3481 > #line 636 "conf_parser.y"
3482      {
3483    if (conf_parser_ctx.pass == 2)
3484    {
# Line 3496 | Line 3495 | yyreduce:
3495  
3496    case 85:
3497   /* Line 1813 of yacc.c  */
3498 < #line 651 "conf_parser.y"
3498 > #line 650 "conf_parser.y"
3499      {
3500    if (conf_parser_ctx.pass == 2)
3501    {
# Line 3508 | Line 3507 | yyreduce:
3507  
3508    case 86:
3509   /* Line 1813 of yacc.c  */
3510 < #line 660 "conf_parser.y"
3510 > #line 659 "conf_parser.y"
3511      {
3512    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3513    {
# Line 3539 | Line 3538 | yyreduce:
3538  
3539    case 87:
3540   /* Line 1813 of yacc.c  */
3541 < #line 688 "conf_parser.y"
3541 > #line 687 "conf_parser.y"
3542      {
3543   #ifdef IPV6
3544    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3572 | Line 3571 | yyreduce:
3571  
3572    case 88:
3573   /* Line 1813 of yacc.c  */
3574 < #line 718 "conf_parser.y"
3574 > #line 717 "conf_parser.y"
3575      {
3576    if (conf_parser_ctx.pass == 2)
3577    {
# Line 3598 | Line 3597 | yyreduce:
3597  
3598    case 89:
3599   /* Line 1813 of yacc.c  */
3600 < #line 741 "conf_parser.y"
3600 > #line 740 "conf_parser.y"
3601      {
3602    if (conf_parser_ctx.pass == 2)
3603      ServerInfo.hub = yylval.number;
# Line 3607 | Line 3606 | yyreduce:
3606  
3607    case 97:
3608   /* Line 1813 of yacc.c  */
3609 < #line 756 "conf_parser.y"
3609 > #line 755 "conf_parser.y"
3610      {
3611    if (conf_parser_ctx.pass == 2)
3612    {
# Line 3619 | Line 3618 | yyreduce:
3618  
3619    case 98:
3620   /* Line 1813 of yacc.c  */
3621 < #line 765 "conf_parser.y"
3621 > #line 764 "conf_parser.y"
3622      {
3623    if (conf_parser_ctx.pass == 2)
3624    {
# Line 3631 | Line 3630 | yyreduce:
3630  
3631    case 99:
3632   /* Line 1813 of yacc.c  */
3633 < #line 774 "conf_parser.y"
3633 > #line 773 "conf_parser.y"
3634      {
3635    if (conf_parser_ctx.pass == 2)
3636    {
# Line 3643 | Line 3642 | yyreduce:
3642  
3643    case 106:
3644   /* Line 1813 of yacc.c  */
3645 < #line 792 "conf_parser.y"
3645 > #line 791 "conf_parser.y"
3646      {
3647    if (conf_parser_ctx.pass == 2)
3648      ConfigLoggingEntry.use_logging = yylval.number;
# Line 3652 | Line 3651 | yyreduce:
3651  
3652    case 107:
3653   /* Line 1813 of yacc.c  */
3654 < #line 798 "conf_parser.y"
3654 > #line 797 "conf_parser.y"
3655      {
3656    lfile[0] = '\0';
3657    ltype = 0;
# Line 3662 | Line 3661 | yyreduce:
3661  
3662    case 108:
3663   /* Line 1813 of yacc.c  */
3664 < #line 803 "conf_parser.y"
3664 > #line 802 "conf_parser.y"
3665      {
3666    if (conf_parser_ctx.pass == 2 && ltype > 0)
3667      log_add_file(ltype, lsize, lfile);
# Line 3671 | Line 3670 | yyreduce:
3670  
3671    case 115:
3672   /* Line 1813 of yacc.c  */
3673 < #line 815 "conf_parser.y"
3673 > #line 814 "conf_parser.y"
3674      {
3675    strlcpy(lfile, yylval.string, sizeof(lfile));
3676   }
# Line 3679 | Line 3678 | yyreduce:
3678  
3679    case 116:
3680   /* Line 1813 of yacc.c  */
3681 < #line 820 "conf_parser.y"
3681 > #line 819 "conf_parser.y"
3682      {
3683    lsize = (yyvsp[(3) - (4)].number);
3684   }
# Line 3687 | Line 3686 | yyreduce:
3686  
3687    case 117:
3688   /* Line 1813 of yacc.c  */
3689 < #line 823 "conf_parser.y"
3689 > #line 822 "conf_parser.y"
3690      {
3691    lsize = 0;
3692   }
# Line 3695 | Line 3694 | yyreduce:
3694  
3695    case 118:
3696   /* Line 1813 of yacc.c  */
3697 < #line 828 "conf_parser.y"
3697 > #line 827 "conf_parser.y"
3698      {
3699    if (conf_parser_ctx.pass == 2)
3700      ltype = 0;
# Line 3704 | Line 3703 | yyreduce:
3703  
3704    case 122:
3705   /* Line 1813 of yacc.c  */
3706 < #line 835 "conf_parser.y"
3706 > #line 834 "conf_parser.y"
3707      {
3708    if (conf_parser_ctx.pass == 2)
3709      ltype = LOG_TYPE_USER;
# Line 3713 | Line 3712 | yyreduce:
3712  
3713    case 123:
3714   /* Line 1813 of yacc.c  */
3715 < #line 839 "conf_parser.y"
3715 > #line 838 "conf_parser.y"
3716      {
3717    if (conf_parser_ctx.pass == 2)
3718      ltype = LOG_TYPE_OPER;
# Line 3722 | Line 3721 | yyreduce:
3721  
3722    case 124:
3723   /* Line 1813 of yacc.c  */
3724 < #line 843 "conf_parser.y"
3724 > #line 842 "conf_parser.y"
3725      {
3726    if (conf_parser_ctx.pass == 2)
3727      ltype = LOG_TYPE_GLINE;
# Line 3731 | Line 3730 | yyreduce:
3730  
3731    case 125:
3732   /* Line 1813 of yacc.c  */
3733 < #line 847 "conf_parser.y"
3733 > #line 846 "conf_parser.y"
3734      {
3735    if (conf_parser_ctx.pass == 2)
3736      ltype = LOG_TYPE_DLINE;
# Line 3740 | Line 3739 | yyreduce:
3739  
3740    case 126:
3741   /* Line 1813 of yacc.c  */
3742 < #line 851 "conf_parser.y"
3742 > #line 850 "conf_parser.y"
3743      {
3744    if (conf_parser_ctx.pass == 2)
3745      ltype = LOG_TYPE_KLINE;
# Line 3749 | Line 3748 | yyreduce:
3748  
3749    case 127:
3750   /* Line 1813 of yacc.c  */
3751 < #line 855 "conf_parser.y"
3751 > #line 854 "conf_parser.y"
3752      {
3753    if (conf_parser_ctx.pass == 2)
3754      ltype = LOG_TYPE_KILL;
# Line 3758 | Line 3757 | yyreduce:
3757  
3758    case 128:
3759   /* Line 1813 of yacc.c  */
3760 < #line 859 "conf_parser.y"
3760 > #line 858 "conf_parser.y"
3761      {
3762    if (conf_parser_ctx.pass == 2)
3763      ltype = LOG_TYPE_DEBUG;
# Line 3767 | Line 3766 | yyreduce:
3766  
3767    case 129:
3768   /* Line 1813 of yacc.c  */
3769 < #line 869 "conf_parser.y"
3769 > #line 868 "conf_parser.y"
3770      {
3771    if (conf_parser_ctx.pass == 2)
3772    {
3773 <    yy_conf = make_conf_item(OPER_TYPE);
3774 <    yy_aconf = map_to_conf(yy_conf);
3776 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3773 >    yy_conf = conf_make(CONF_OPER);
3774 >    SetConfEncrypted(yy_conf); /* Yes, the default is encrypted */
3775    }
3776    else
3777    {
# Line 3785 | Line 3783 | yyreduce:
3783  
3784    case 130:
3785   /* Line 1813 of yacc.c  */
3786 < #line 882 "conf_parser.y"
3786 > #line 880 "conf_parser.y"
3787      {
3788    if (conf_parser_ctx.pass == 2)
3789    {
# Line 3801 | Line 3799 | yyreduce:
3799  
3800      DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3801      {
3802 <      struct AccessItem *new_aconf;
3805 <      struct ConfItem *new_conf;
3802 >      struct MaskItem *new_conf;
3803        yy_tmp = ptr->data;
3804  
3805 <      new_conf = make_conf_item(OPER_TYPE);
3806 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3810 <
3811 <      new_aconf->flags = yy_aconf->flags;
3805 >      new_conf = conf_make(CONF_OPER);
3806 >      new_conf->flags = yy_conf->flags;
3807  
3808        if (yy_conf->name != NULL)
3809          DupString(new_conf->name, yy_conf->name);
3810        if (yy_tmp->user != NULL)
3811 <        DupString(new_aconf->user, yy_tmp->user);
3811 >        DupString(new_conf->user, yy_tmp->user);
3812        else
3813 <        DupString(new_aconf->user, "*");
3813 >        DupString(new_conf->user, "*");
3814        if (yy_tmp->host != NULL)
3815 <        DupString(new_aconf->host, yy_tmp->host);
3815 >        DupString(new_conf->host, yy_tmp->host);
3816        else
3817 <        DupString(new_aconf->host, "*");
3817 >        DupString(new_conf->host, "*");
3818  
3819 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3820 <                                     &new_aconf->bits);
3819 >      new_conf->htype = parse_netmask(new_conf->host, &new_conf->addr,
3820 >                                     &new_conf->bits);
3821  
3822        conf_add_class_to_conf(new_conf, class_name);
3823 <      if (yy_aconf->passwd != NULL)
3824 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3823 >      if (yy_conf->passwd != NULL)
3824 >        DupString(new_conf->passwd, yy_conf->passwd);
3825  
3826 <      new_aconf->port = yy_aconf->port;
3826 >      new_conf->port = yy_conf->port;
3827   #ifdef HAVE_LIBCRYPTO
3828 <      if (yy_aconf->rsa_public_key_file != NULL)
3828 >      if (yy_conf->rsa_public_key_file != NULL)
3829        {
3830          BIO *file;
3831  
3832 <        DupString(new_aconf->rsa_public_key_file,
3833 <                  yy_aconf->rsa_public_key_file);
3832 >        DupString(new_conf->rsa_public_key_file,
3833 >                  yy_conf->rsa_public_key_file);
3834  
3835 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3836 <        new_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file,
3835 >        file = BIO_new_file(yy_conf->rsa_public_key_file, "r");
3836 >        new_conf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file,
3837                                                             NULL, 0, NULL);
3838          BIO_set_close(file, BIO_CLOSE);
3839          BIO_free(file);
# Line 3846 | Line 3841 | yyreduce:
3841   #endif
3842  
3843   #ifdef HAVE_LIBCRYPTO
3844 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3844 >      if (yy_tmp->name && (yy_tmp->passwd || yy_conf->rsa_public_key)
3845            && yy_tmp->host)
3846   #else
3847        if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
# Line 3862 | Line 3857 | yyreduce:
3857      }
3858  
3859      yy_conf = NULL;
3865    yy_aconf = NULL;
3866
3860  
3861      MyFree(class_name);
3862      class_name = NULL;
# Line 3873 | Line 3866 | yyreduce:
3866  
3867    case 142:
3868   /* Line 1813 of yacc.c  */
3869 < #line 972 "conf_parser.y"
3869 > #line 965 "conf_parser.y"
3870      {
3871    if (conf_parser_ctx.pass == 2)
3872    {
# Line 3885 | Line 3878 | yyreduce:
3878  
3879    case 143:
3880   /* Line 1813 of yacc.c  */
3881 < #line 981 "conf_parser.y"
3881 > #line 974 "conf_parser.y"
3882      {
3883    if (conf_parser_ctx.pass == 2)
3884    {
# Line 3902 | Line 3895 | yyreduce:
3895  
3896      split_nuh(&nuh);
3897  
3898 <    if (yy_aconf->user == NULL)
3898 >    if (yy_conf->user == NULL)
3899      {
3900 <      DupString(yy_aconf->user, userbuf);
3901 <      DupString(yy_aconf->host, hostbuf);
3900 >      DupString(yy_conf->user, userbuf);
3901 >      DupString(yy_conf->host, hostbuf);
3902  
3903 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
3904 <                                    &yy_aconf->bits);
3903 >      yy_conf->htype = parse_netmask(yy_conf->host, &yy_conf->addr,
3904 >                                    &yy_conf->bits);
3905      }
3906      else
3907      {
# Line 3925 | Line 3918 | yyreduce:
3918  
3919    case 144:
3920   /* Line 1813 of yacc.c  */
3921 < #line 1018 "conf_parser.y"
3921 > #line 1011 "conf_parser.y"
3922      {
3923    if (conf_parser_ctx.pass == 2)
3924    {
3925 <    if (yy_aconf->passwd != NULL)
3926 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3925 >    if (yy_conf->passwd != NULL)
3926 >      memset(yy_conf->passwd, 0, strlen(yy_conf->passwd));
3927  
3928 <    MyFree(yy_aconf->passwd);
3929 <    DupString(yy_aconf->passwd, yylval.string);
3928 >    MyFree(yy_conf->passwd);
3929 >    DupString(yy_conf->passwd, yylval.string);
3930    }
3931   }
3932      break;
3933  
3934    case 145:
3935   /* Line 1813 of yacc.c  */
3936 < #line 1030 "conf_parser.y"
3936 > #line 1023 "conf_parser.y"
3937      {
3938    if (conf_parser_ctx.pass == 2)
3939    {
3940      if (yylval.number)
3941 <      SetConfEncrypted(yy_aconf);
3941 >      SetConfEncrypted(yy_conf);
3942      else
3943 <      ClearConfEncrypted(yy_aconf);
3943 >      ClearConfEncrypted(yy_conf);
3944    }
3945   }
3946      break;
3947  
3948    case 146:
3949   /* Line 1813 of yacc.c  */
3950 < #line 1041 "conf_parser.y"
3950 > #line 1034 "conf_parser.y"
3951      {
3952   #ifdef HAVE_LIBCRYPTO
3953    if (conf_parser_ctx.pass == 2)
3954    {
3955      BIO *file;
3956  
3957 <    if (yy_aconf->rsa_public_key != NULL)
3957 >    if (yy_conf->rsa_public_key != NULL)
3958      {
3959 <      RSA_free(yy_aconf->rsa_public_key);
3960 <      yy_aconf->rsa_public_key = NULL;
3959 >      RSA_free(yy_conf->rsa_public_key);
3960 >      yy_conf->rsa_public_key = NULL;
3961      }
3962  
3963 <    if (yy_aconf->rsa_public_key_file != NULL)
3963 >    if (yy_conf->rsa_public_key_file != NULL)
3964      {
3965 <      MyFree(yy_aconf->rsa_public_key_file);
3966 <      yy_aconf->rsa_public_key_file = NULL;
3965 >      MyFree(yy_conf->rsa_public_key_file);
3966 >      yy_conf->rsa_public_key_file = NULL;
3967      }
3968  
3969 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3969 >    DupString(yy_conf->rsa_public_key_file, yylval.string);
3970      file = BIO_new_file(yylval.string, "r");
3971  
3972      if (file == NULL)
# Line 3982 | Line 3975 | yyreduce:
3975        break;
3976      }
3977  
3978 <    yy_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3978 >    yy_conf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3979  
3980 <    if (yy_aconf->rsa_public_key == NULL)
3980 >    if (yy_conf->rsa_public_key == NULL)
3981      {
3982        yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3983        break;
# Line 3999 | Line 3992 | yyreduce:
3992  
3993    case 147:
3994   /* Line 1813 of yacc.c  */
3995 < #line 1083 "conf_parser.y"
3995 > #line 1076 "conf_parser.y"
3996      {
3997    if (conf_parser_ctx.pass == 2)
3998    {
# Line 4011 | Line 4004 | yyreduce:
4004  
4005    case 148:
4006   /* Line 1813 of yacc.c  */
4007 < #line 1092 "conf_parser.y"
4007 > #line 1085 "conf_parser.y"
4008      {
4009    if (conf_parser_ctx.pass == 2)
4010 <    yy_aconf->modes = 0;
4010 >    yy_conf->modes = 0;
4011   }
4012      break;
4013  
4014    case 152:
4015   /* Line 1813 of yacc.c  */
4016 < #line 1099 "conf_parser.y"
4016 > #line 1092 "conf_parser.y"
4017      {
4018    if (conf_parser_ctx.pass == 2)
4019 <    yy_aconf->modes |= UMODE_BOTS;
4019 >    yy_conf->modes |= UMODE_BOTS;
4020   }
4021      break;
4022  
4023    case 153:
4024   /* Line 1813 of yacc.c  */
4025 < #line 1103 "conf_parser.y"
4025 > #line 1096 "conf_parser.y"
4026      {
4027    if (conf_parser_ctx.pass == 2)
4028 <    yy_aconf->modes |= UMODE_CCONN;
4028 >    yy_conf->modes |= UMODE_CCONN;
4029   }
4030      break;
4031  
4032    case 154:
4033   /* Line 1813 of yacc.c  */
4034 < #line 1107 "conf_parser.y"
4034 > #line 1100 "conf_parser.y"
4035      {
4036    if (conf_parser_ctx.pass == 2)
4037 <    yy_aconf->modes |= UMODE_CCONN_FULL;
4037 >    yy_conf->modes |= UMODE_CCONN_FULL;
4038   }
4039      break;
4040  
4041    case 155:
4042   /* Line 1813 of yacc.c  */
4043 < #line 1111 "conf_parser.y"
4043 > #line 1104 "conf_parser.y"
4044      {
4045    if (conf_parser_ctx.pass == 2)
4046 <    yy_aconf->modes |= UMODE_DEAF;
4046 >    yy_conf->modes |= UMODE_DEAF;
4047   }
4048      break;
4049  
4050    case 156:
4051   /* Line 1813 of yacc.c  */
4052 < #line 1115 "conf_parser.y"
4052 > #line 1108 "conf_parser.y"
4053      {
4054    if (conf_parser_ctx.pass == 2)
4055 <    yy_aconf->modes |= UMODE_DEBUG;
4055 >    yy_conf->modes |= UMODE_DEBUG;
4056   }
4057      break;
4058  
4059    case 157:
4060   /* Line 1813 of yacc.c  */
4061 < #line 1119 "conf_parser.y"
4061 > #line 1112 "conf_parser.y"
4062      {
4063    if (conf_parser_ctx.pass == 2)
4064 <    yy_aconf->modes |= UMODE_FULL;
4064 >    yy_conf->modes |= UMODE_FULL;
4065   }
4066      break;
4067  
4068    case 158:
4069   /* Line 1813 of yacc.c  */
4070 < #line 1123 "conf_parser.y"
4070 > #line 1116 "conf_parser.y"
4071      {
4072    if (conf_parser_ctx.pass == 2)
4073 <    yy_aconf->modes |= UMODE_HIDDEN;
4073 >    yy_conf->modes |= UMODE_HIDDEN;
4074   }
4075      break;
4076  
4077    case 159:
4078   /* Line 1813 of yacc.c  */
4079 < #line 1127 "conf_parser.y"
4079 > #line 1120 "conf_parser.y"
4080      {
4081    if (conf_parser_ctx.pass == 2)
4082 <    yy_aconf->modes |= UMODE_SKILL;
4082 >    yy_conf->modes |= UMODE_SKILL;
4083   }
4084      break;
4085  
4086    case 160:
4087   /* Line 1813 of yacc.c  */
4088 < #line 1131 "conf_parser.y"
4088 > #line 1124 "conf_parser.y"
4089      {
4090    if (conf_parser_ctx.pass == 2)
4091 <    yy_aconf->modes |= UMODE_NCHANGE;
4091 >    yy_conf->modes |= UMODE_NCHANGE;
4092   }
4093      break;
4094  
4095    case 161:
4096   /* Line 1813 of yacc.c  */
4097 < #line 1135 "conf_parser.y"
4097 > #line 1128 "conf_parser.y"
4098      {
4099    if (conf_parser_ctx.pass == 2)
4100 <    yy_aconf->modes |= UMODE_REJ;
4100 >    yy_conf->modes |= UMODE_REJ;
4101   }
4102      break;
4103  
4104    case 162:
4105   /* Line 1813 of yacc.c  */
4106 < #line 1139 "conf_parser.y"
4106 > #line 1132 "conf_parser.y"
4107      {
4108    if (conf_parser_ctx.pass == 2)
4109 <    yy_aconf->modes |= UMODE_UNAUTH;
4109 >    yy_conf->modes |= UMODE_UNAUTH;
4110   }
4111      break;
4112  
4113    case 163:
4114   /* Line 1813 of yacc.c  */
4115 < #line 1143 "conf_parser.y"
4115 > #line 1136 "conf_parser.y"
4116      {
4117    if (conf_parser_ctx.pass == 2)
4118 <    yy_aconf->modes |= UMODE_SPY;
4118 >    yy_conf->modes |= UMODE_SPY;
4119   }
4120      break;
4121  
4122    case 164:
4123   /* Line 1813 of yacc.c  */
4124 < #line 1147 "conf_parser.y"
4124 > #line 1140 "conf_parser.y"
4125      {
4126    if (conf_parser_ctx.pass == 2)
4127 <    yy_aconf->modes |= UMODE_EXTERNAL;
4127 >    yy_conf->modes |= UMODE_EXTERNAL;
4128   }
4129      break;
4130  
4131    case 165:
4132   /* Line 1813 of yacc.c  */
4133 < #line 1151 "conf_parser.y"
4133 > #line 1144 "conf_parser.y"
4134      {
4135    if (conf_parser_ctx.pass == 2)
4136 <    yy_aconf->modes |= UMODE_OPERWALL;
4136 >    yy_conf->modes |= UMODE_OPERWALL;
4137   }
4138      break;
4139  
4140    case 166:
4141   /* Line 1813 of yacc.c  */
4142 < #line 1155 "conf_parser.y"
4142 > #line 1148 "conf_parser.y"
4143      {
4144    if (conf_parser_ctx.pass == 2)
4145 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4145 >    yy_conf->modes |= UMODE_SERVNOTICE;
4146   }
4147      break;
4148  
4149    case 167:
4150   /* Line 1813 of yacc.c  */
4151 < #line 1159 "conf_parser.y"
4151 > #line 1152 "conf_parser.y"
4152      {
4153    if (conf_parser_ctx.pass == 2)
4154 <    yy_aconf->modes |= UMODE_INVISIBLE;
4154 >    yy_conf->modes |= UMODE_INVISIBLE;
4155   }
4156      break;
4157  
4158    case 168:
4159   /* Line 1813 of yacc.c  */
4160 < #line 1163 "conf_parser.y"
4160 > #line 1156 "conf_parser.y"
4161      {
4162    if (conf_parser_ctx.pass == 2)
4163 <    yy_aconf->modes |= UMODE_WALLOP;
4163 >    yy_conf->modes |= UMODE_WALLOP;
4164   }
4165      break;
4166  
4167    case 169:
4168   /* Line 1813 of yacc.c  */
4169 < #line 1167 "conf_parser.y"
4169 > #line 1160 "conf_parser.y"
4170      {
4171    if (conf_parser_ctx.pass == 2)
4172 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4172 >    yy_conf->modes |= UMODE_SOFTCALLERID;
4173   }
4174      break;
4175  
4176    case 170:
4177   /* Line 1813 of yacc.c  */
4178 < #line 1171 "conf_parser.y"
4178 > #line 1164 "conf_parser.y"
4179      {
4180    if (conf_parser_ctx.pass == 2)
4181 <    yy_aconf->modes |= UMODE_CALLERID;
4181 >    yy_conf->modes |= UMODE_CALLERID;
4182   }
4183      break;
4184  
4185    case 171:
4186   /* Line 1813 of yacc.c  */
4187 < #line 1175 "conf_parser.y"
4187 > #line 1168 "conf_parser.y"
4188      {
4189    if (conf_parser_ctx.pass == 2)
4190 <    yy_aconf->modes |= UMODE_LOCOPS;
4190 >    yy_conf->modes |= UMODE_LOCOPS;
4191   }
4192      break;
4193  
4194    case 172:
4195   /* Line 1813 of yacc.c  */
4196 < #line 1181 "conf_parser.y"
4196 > #line 1174 "conf_parser.y"
4197      {
4198    if (conf_parser_ctx.pass == 2)
4199 <    yy_aconf->port = 0;
4199 >    yy_conf->port = 0;
4200   }
4201      break;
4202  
4203    case 176:
4204   /* Line 1813 of yacc.c  */
4205 < #line 1188 "conf_parser.y"
4205 > #line 1181 "conf_parser.y"
4206      {
4207    if (conf_parser_ctx.pass == 2)
4208 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4208 >    yy_conf->port |= OPER_FLAG_GLOBAL_KILL;
4209   }
4210      break;
4211  
4212    case 177:
4213   /* Line 1813 of yacc.c  */
4214 < #line 1192 "conf_parser.y"
4214 > #line 1185 "conf_parser.y"
4215      {
4216    if (conf_parser_ctx.pass == 2)
4217 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4217 >    yy_conf->port |= OPER_FLAG_REMOTE;
4218   }
4219      break;
4220  
4221    case 178:
4222   /* Line 1813 of yacc.c  */
4223 < #line 1196 "conf_parser.y"
4223 > #line 1189 "conf_parser.y"
4224      {
4225    if (conf_parser_ctx.pass == 2)
4226 <    yy_aconf->port |= OPER_FLAG_K;
4226 >    yy_conf->port |= OPER_FLAG_K;
4227   }
4228      break;
4229  
4230    case 179:
4231   /* Line 1813 of yacc.c  */
4232 < #line 1200 "conf_parser.y"
4232 > #line 1193 "conf_parser.y"
4233      {
4234    if (conf_parser_ctx.pass == 2)
4235 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4235 >    yy_conf->port |= OPER_FLAG_UNKLINE;
4236   }
4237      break;
4238  
4239    case 180:
4240   /* Line 1813 of yacc.c  */
4241 < #line 1204 "conf_parser.y"
4241 > #line 1197 "conf_parser.y"
4242      {
4243    if (conf_parser_ctx.pass == 2)
4244 <    yy_aconf->port |= OPER_FLAG_DLINE;
4244 >    yy_conf->port |= OPER_FLAG_DLINE;
4245   }
4246      break;
4247  
4248    case 181:
4249   /* Line 1813 of yacc.c  */
4250 < #line 1208 "conf_parser.y"
4250 > #line 1201 "conf_parser.y"
4251      {
4252    if (conf_parser_ctx.pass == 2)
4253 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4253 >    yy_conf->port |= OPER_FLAG_UNDLINE;
4254   }
4255      break;
4256  
4257    case 182:
4258   /* Line 1813 of yacc.c  */
4259 < #line 1212 "conf_parser.y"
4259 > #line 1205 "conf_parser.y"
4260      {
4261    if (conf_parser_ctx.pass == 2)
4262 <    yy_aconf->port |= OPER_FLAG_X;
4262 >    yy_conf->port |= OPER_FLAG_X;
4263   }
4264      break;
4265  
4266    case 183:
4267   /* Line 1813 of yacc.c  */
4268 < #line 1216 "conf_parser.y"
4268 > #line 1209 "conf_parser.y"
4269      {
4270    if (conf_parser_ctx.pass == 2)
4271 <    yy_aconf->port |= OPER_FLAG_GLINE;
4271 >    yy_conf->port |= OPER_FLAG_GLINE;
4272   }
4273      break;
4274  
4275    case 184:
4276   /* Line 1813 of yacc.c  */
4277 < #line 1220 "conf_parser.y"
4277 > #line 1213 "conf_parser.y"
4278      {
4279    if (conf_parser_ctx.pass == 2)
4280 <    yy_aconf->port |= OPER_FLAG_DIE;
4280 >    yy_conf->port |= OPER_FLAG_DIE;
4281   }
4282      break;
4283  
4284    case 185:
4285   /* Line 1813 of yacc.c  */
4286 < #line 1224 "conf_parser.y"
4286 > #line 1217 "conf_parser.y"
4287      {
4288    if (conf_parser_ctx.pass == 2)
4289 <    yy_aconf->port |= OPER_FLAG_RESTART;
4289 >    yy_conf->port |= OPER_FLAG_RESTART;
4290   }
4291      break;
4292  
4293    case 186:
4294   /* Line 1813 of yacc.c  */
4295 < #line 1228 "conf_parser.y"
4295 > #line 1221 "conf_parser.y"
4296      {
4297    if (conf_parser_ctx.pass == 2)
4298 <    yy_aconf->port |= OPER_FLAG_REHASH;
4298 >    yy_conf->port |= OPER_FLAG_REHASH;
4299   }
4300      break;
4301  
4302    case 187:
4303   /* Line 1813 of yacc.c  */
4304 < #line 1232 "conf_parser.y"
4304 > #line 1225 "conf_parser.y"
4305      {
4306    if (conf_parser_ctx.pass == 2)
4307 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4307 >    yy_conf->port |= OPER_FLAG_ADMIN;
4308   }
4309      break;
4310  
4311    case 188:
4312   /* Line 1813 of yacc.c  */
4313 < #line 1236 "conf_parser.y"
4313 > #line 1229 "conf_parser.y"
4314      {
4315    if (conf_parser_ctx.pass == 2)
4316 <    yy_aconf->port |= OPER_FLAG_N;
4316 >    yy_conf->port |= OPER_FLAG_N;
4317   }
4318      break;
4319  
4320    case 189:
4321   /* Line 1813 of yacc.c  */
4322 < #line 1240 "conf_parser.y"
4322 > #line 1233 "conf_parser.y"
4323      {
4324    if (conf_parser_ctx.pass == 2)
4325 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4325 >    yy_conf->port |= OPER_FLAG_OPERWALL;
4326   }
4327      break;
4328  
4329    case 190:
4330   /* Line 1813 of yacc.c  */
4331 < #line 1244 "conf_parser.y"
4331 > #line 1237 "conf_parser.y"
4332      {
4333    if (conf_parser_ctx.pass == 2)
4334 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4334 >    yy_conf->port |= OPER_FLAG_GLOBOPS;
4335   }
4336      break;
4337  
4338    case 191:
4339   /* Line 1813 of yacc.c  */
4340 < #line 1248 "conf_parser.y"
4340 > #line 1241 "conf_parser.y"
4341      {
4342    if (conf_parser_ctx.pass == 2)
4343 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4343 >    yy_conf->port |= OPER_FLAG_OPER_SPY;
4344   }
4345      break;
4346  
4347    case 192:
4348   /* Line 1813 of yacc.c  */
4349 < #line 1252 "conf_parser.y"
4349 > #line 1245 "conf_parser.y"
4350      {
4351    if (conf_parser_ctx.pass == 2)
4352 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4352 >    yy_conf->port |= OPER_FLAG_REMOTEBAN;
4353   }
4354      break;
4355  
4356    case 193:
4357   /* Line 1813 of yacc.c  */
4358 < #line 1256 "conf_parser.y"
4358 > #line 1249 "conf_parser.y"
4359      {
4360    if (conf_parser_ctx.pass == 2)
4361 <    yy_aconf->port |= OPER_FLAG_SET;
4361 >    yy_conf->port |= OPER_FLAG_SET;
4362   }
4363      break;
4364  
4365    case 194:
4366   /* Line 1813 of yacc.c  */
4367 < #line 1260 "conf_parser.y"
4367 > #line 1253 "conf_parser.y"
4368      {
4369    if (conf_parser_ctx.pass == 2)
4370 <    yy_aconf->port |= OPER_FLAG_MODULE;
4370 >    yy_conf->port |= OPER_FLAG_MODULE;
4371   }
4372      break;
4373  
4374    case 195:
4375   /* Line 1813 of yacc.c  */
4376 < #line 1270 "conf_parser.y"
4376 > #line 1263 "conf_parser.y"
4377      {
4378    if (conf_parser_ctx.pass == 1)
4379    {
4380 <    yy_conf = make_conf_item(CLASS_TYPE);
4388 <    yy_class = map_to_conf(yy_conf);
4380 >    yy_class = class_make();
4381    }
4382   }
4383      break;
4384  
4385    case 196:
4386   /* Line 1813 of yacc.c  */
4387 < #line 1277 "conf_parser.y"
4387 > #line 1269 "conf_parser.y"
4388      {
4389    if (conf_parser_ctx.pass == 1)
4390    {
4399    struct ConfItem *cconf = NULL;
4391      struct ClassItem *class = NULL;
4392  
4393      if (yy_class_name == NULL)
4394 <      delete_conf_item(yy_conf);
4394 >      class_free(yy_class);
4395      else
4396      {
4397 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4397 >      class = class_find(yy_class_name, 0);
4398  
4399 <      if (cconf != NULL)                /* The class existed already */
4399 >      if (class != NULL)                /* The class existed already */
4400        {
4401          int user_count = 0;
4402  
4403 <        rebuild_cidr_class(cconf, yy_class);
4413 <
4414 <        class = map_to_conf(cconf);
4403 >        rebuild_cidr_class(class, yy_class);
4404  
4405 <        user_count = class->curr_user_count;
4405 >        user_count = class->ref_count;
4406          memcpy(class, yy_class, sizeof(*class));
4407 <        class->curr_user_count = user_count;
4407 >        class->ref_count = user_count;
4408          class->active = 1;
4409  
4410 <        delete_conf_item(yy_conf);
4410 >        class_free(yy_class);
4411  
4412 <        MyFree(cconf->name);            /* Allows case change of class name */
4413 <        cconf->name = yy_class_name;
4412 >        MyFree(class->name);            /* Allows case change of class name */
4413 >        class->name = yy_class_name;
4414        }
4415        else      /* Brand new class */
4416        {
4417 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4418 <        yy_conf->name = yy_class_name;
4417 >        MyFree(yy_class->name);          /* just in case it was allocated */
4418 >        yy_class->name = yy_class_name;
4419          yy_class->active = 1;
4420        }
4421      }
# Line 4438 | Line 4427 | yyreduce:
4427  
4428    case 214:
4429   /* Line 1813 of yacc.c  */
4430 < #line 1335 "conf_parser.y"
4430 > #line 1324 "conf_parser.y"
4431      {
4432    if (conf_parser_ctx.pass == 1)
4433    {
# Line 4450 | Line 4439 | yyreduce:
4439  
4440    case 215:
4441   /* Line 1813 of yacc.c  */
4442 < #line 1344 "conf_parser.y"
4442 > #line 1333 "conf_parser.y"
4443      {
4444    if (conf_parser_ctx.pass == 1)
4445      yy_class->ping_freq = (yyvsp[(3) - (4)].number);
# Line 4459 | Line 4448 | yyreduce:
4448  
4449    case 216:
4450   /* Line 1813 of yacc.c  */
4451 < #line 1350 "conf_parser.y"
4451 > #line 1339 "conf_parser.y"
4452      {
4453    if (conf_parser_ctx.pass == 1)
4454      yy_class->ping_warning = (yyvsp[(3) - (4)].number);
# Line 4468 | Line 4457 | yyreduce:
4457  
4458    case 217:
4459   /* Line 1813 of yacc.c  */
4460 < #line 1356 "conf_parser.y"
4460 > #line 1345 "conf_parser.y"
4461      {
4462    if (conf_parser_ctx.pass == 1)
4463      yy_class->max_perip = (yyvsp[(3) - (4)].number);
# Line 4477 | Line 4466 | yyreduce:
4466  
4467    case 218:
4468   /* Line 1813 of yacc.c  */
4469 < #line 1362 "conf_parser.y"
4469 > #line 1351 "conf_parser.y"
4470      {
4471    if (conf_parser_ctx.pass == 1)
4472      yy_class->con_freq = (yyvsp[(3) - (4)].number);
# Line 4486 | Line 4475 | yyreduce:
4475  
4476    case 219:
4477   /* Line 1813 of yacc.c  */
4478 < #line 1368 "conf_parser.y"
4478 > #line 1357 "conf_parser.y"
4479      {
4480    if (conf_parser_ctx.pass == 1)
4481      yy_class->max_total = (yyvsp[(3) - (4)].number);
# Line 4495 | Line 4484 | yyreduce:
4484  
4485    case 220:
4486   /* Line 1813 of yacc.c  */
4487 < #line 1374 "conf_parser.y"
4487 > #line 1363 "conf_parser.y"
4488      {
4489    if (conf_parser_ctx.pass == 1)
4490      yy_class->max_global = (yyvsp[(3) - (4)].number);
# Line 4504 | Line 4493 | yyreduce:
4493  
4494    case 221:
4495   /* Line 1813 of yacc.c  */
4496 < #line 1380 "conf_parser.y"
4496 > #line 1369 "conf_parser.y"
4497      {
4498    if (conf_parser_ctx.pass == 1)
4499      yy_class->max_local = (yyvsp[(3) - (4)].number);
# Line 4513 | Line 4502 | yyreduce:
4502  
4503    case 222:
4504   /* Line 1813 of yacc.c  */
4505 < #line 1386 "conf_parser.y"
4505 > #line 1375 "conf_parser.y"
4506      {
4507    if (conf_parser_ctx.pass == 1)
4508      yy_class->max_ident = (yyvsp[(3) - (4)].number);
# Line 4522 | Line 4511 | yyreduce:
4511  
4512    case 223:
4513   /* Line 1813 of yacc.c  */
4514 < #line 1392 "conf_parser.y"
4514 > #line 1381 "conf_parser.y"
4515      {
4516    if (conf_parser_ctx.pass == 1)
4517      yy_class->max_sendq = (yyvsp[(3) - (4)].number);
# Line 4531 | Line 4520 | yyreduce:
4520  
4521    case 224:
4522   /* Line 1813 of yacc.c  */
4523 < #line 1398 "conf_parser.y"
4523 > #line 1387 "conf_parser.y"
4524      {
4525    if (conf_parser_ctx.pass == 1)
4526      if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
# Line 4541 | Line 4530 | yyreduce:
4530  
4531    case 225:
4532   /* Line 1813 of yacc.c  */
4533 < #line 1405 "conf_parser.y"
4533 > #line 1394 "conf_parser.y"
4534      {
4535    if (conf_parser_ctx.pass == 1)
4536      yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
# Line 4550 | Line 4539 | yyreduce:
4539  
4540    case 226:
4541   /* Line 1813 of yacc.c  */
4542 < #line 1411 "conf_parser.y"
4542 > #line 1400 "conf_parser.y"
4543      {
4544    if (conf_parser_ctx.pass == 1)
4545      yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
# Line 4559 | Line 4548 | yyreduce:
4548  
4549    case 227:
4550   /* Line 1813 of yacc.c  */
4551 < #line 1417 "conf_parser.y"
4551 > #line 1406 "conf_parser.y"
4552      {
4553    if (conf_parser_ctx.pass == 1)
4554      yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
# Line 4568 | Line 4557 | yyreduce:
4557  
4558    case 228:
4559   /* Line 1813 of yacc.c  */
4560 < #line 1426 "conf_parser.y"
4560 > #line 1415 "conf_parser.y"
4561      {
4562    if (conf_parser_ctx.pass == 2)
4563    {
# Line 4580 | Line 4569 | yyreduce:
4569  
4570    case 229:
4571   /* Line 1813 of yacc.c  */
4572 < #line 1433 "conf_parser.y"
4572 > #line 1422 "conf_parser.y"
4573      {
4574    if (conf_parser_ctx.pass == 2)
4575    {
# Line 4592 | Line 4581 | yyreduce:
4581  
4582    case 230:
4583   /* Line 1813 of yacc.c  */
4584 < #line 1442 "conf_parser.y"
4584 > #line 1431 "conf_parser.y"
4585      {
4586    listener_flags = 0;
4587   }
# Line 4600 | Line 4589 | yyreduce:
4589  
4590    case 234:
4591   /* Line 1813 of yacc.c  */
4592 < #line 1448 "conf_parser.y"
4592 > #line 1437 "conf_parser.y"
4593      {
4594    if (conf_parser_ctx.pass == 2)
4595      listener_flags |= LISTENER_SSL;
# Line 4609 | Line 4598 | yyreduce:
4598  
4599    case 235:
4600   /* Line 1813 of yacc.c  */
4601 < #line 1452 "conf_parser.y"
4601 > #line 1441 "conf_parser.y"
4602      {
4603    if (conf_parser_ctx.pass == 2)
4604      listener_flags |= LISTENER_HIDDEN;
# Line 4618 | Line 4607 | yyreduce:
4607  
4608    case 236:
4609   /* Line 1813 of yacc.c  */
4610 < #line 1456 "conf_parser.y"
4610 > #line 1445 "conf_parser.y"
4611      {
4612    if (conf_parser_ctx.pass == 2)
4613      listener_flags |= LISTENER_SERVER;
# Line 4627 | Line 4616 | yyreduce:
4616  
4617    case 244:
4618   /* Line 1813 of yacc.c  */
4619 < #line 1466 "conf_parser.y"
4619 > #line 1455 "conf_parser.y"
4620      { listener_flags = 0; }
4621      break;
4622  
4623    case 248:
4624   /* Line 1813 of yacc.c  */
4625 < #line 1471 "conf_parser.y"
4625 > #line 1460 "conf_parser.y"
4626      {
4627    if (conf_parser_ctx.pass == 2)
4628    {
# Line 4652 | Line 4641 | yyreduce:
4641  
4642    case 249:
4643   /* Line 1813 of yacc.c  */
4644 < #line 1485 "conf_parser.y"
4644 > #line 1474 "conf_parser.y"
4645      {
4646    if (conf_parser_ctx.pass == 2)
4647    {
# Line 4675 | Line 4664 | yyreduce:
4664  
4665    case 250:
4666   /* Line 1813 of yacc.c  */
4667 < #line 1505 "conf_parser.y"
4667 > #line 1494 "conf_parser.y"
4668      {
4669    if (conf_parser_ctx.pass == 2)
4670    {
# Line 4687 | Line 4676 | yyreduce:
4676  
4677    case 251:
4678   /* Line 1813 of yacc.c  */
4679 < #line 1514 "conf_parser.y"
4679 > #line 1503 "conf_parser.y"
4680      {
4681    if (conf_parser_ctx.pass == 2)
4682    {
# Line 4699 | Line 4688 | yyreduce:
4688  
4689    case 252:
4690   /* Line 1813 of yacc.c  */
4691 < #line 1526 "conf_parser.y"
4691 > #line 1515 "conf_parser.y"
4692      {
4693    if (conf_parser_ctx.pass == 2)
4694    {
4695 <    yy_conf = make_conf_item(CLIENT_TYPE);
4707 <    yy_aconf = map_to_conf(yy_conf);
4695 >    yy_conf = conf_make(CONF_CLIENT);
4696    }
4697    else
4698    {
# Line 4716 | Line 4704 | yyreduce:
4704  
4705    case 253:
4706   /* Line 1813 of yacc.c  */
4707 < #line 1538 "conf_parser.y"
4707 > #line 1526 "conf_parser.y"
4708      {
4709    if (conf_parser_ctx.pass == 2)
4710    {
4711      struct CollectItem *yy_tmp = NULL;
4712      dlink_node *ptr = NULL, *next_ptr = NULL;
4713  
4714 <    if (yy_aconf->user && yy_aconf->host)
4714 >    if (yy_conf->user && yy_conf->host)
4715      {
4716        conf_add_class_to_conf(yy_conf, class_name);
4717 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4717 >      add_conf_by_address(CONF_CLIENT, yy_conf);
4718      }
4719      else
4720 <      delete_conf_item(yy_conf);
4720 >      conf_free(yy_conf);
4721  
4722      /* copy over settings from first struct */
4723      DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4724      {
4725 <      struct AccessItem *new_aconf;
4738 <      struct ConfItem *new_conf;
4739 <
4740 <      new_conf = make_conf_item(CLIENT_TYPE);
4741 <      new_aconf = map_to_conf(new_conf);
4725 >      struct MaskItem *new_conf = conf_make(CONF_CLIENT);
4726  
4727        yy_tmp = ptr->data;
4728  
4729        assert(yy_tmp->user && yy_tmp->host);
4730  
4731 <      if (yy_aconf->passwd != NULL)
4732 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4731 >      if (yy_conf->passwd != NULL)
4732 >        DupString(new_conf->passwd, yy_conf->passwd);
4733        if (yy_conf->name != NULL)
4734          DupString(new_conf->name, yy_conf->name);
4735 <      if (yy_aconf->passwd != NULL)
4736 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4735 >      if (yy_conf->passwd != NULL)
4736 >        DupString(new_conf->passwd, yy_conf->passwd);
4737  
4738 <      new_aconf->flags = yy_aconf->flags;
4739 <      new_aconf->port  = yy_aconf->port;
4738 >      new_conf->flags = yy_conf->flags;
4739 >      new_conf->port  = yy_conf->port;
4740  
4741 <      DupString(new_aconf->user, yy_tmp->user);
4742 <      collapse(new_aconf->user);
4741 >      DupString(new_conf->user, yy_tmp->user);
4742 >      collapse(new_conf->user);
4743  
4744 <      DupString(new_aconf->host, yy_tmp->host);
4745 <      collapse(new_aconf->host);
4744 >      DupString(new_conf->host, yy_tmp->host);
4745 >      collapse(new_conf->host);
4746  
4747        conf_add_class_to_conf(new_conf, class_name);
4748 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4748 >      add_conf_by_address(CONF_CLIENT, new_conf);
4749        dlinkDelete(&yy_tmp->node, &col_conf_list);
4750        free_collect_item(yy_tmp);
4751      }
# Line 4769 | Line 4753 | yyreduce:
4753      MyFree(class_name);
4754      class_name = NULL;
4755      yy_conf = NULL;
4772    yy_aconf = NULL;
4756    }
4757   }
4758      break;
4759  
4760    case 265:
4761   /* Line 1813 of yacc.c  */
4762 < #line 1600 "conf_parser.y"
4762 > #line 1583 "conf_parser.y"
4763      {
4764    if (conf_parser_ctx.pass == 2)
4765    {
# Line 4794 | Line 4777 | yyreduce:
4777  
4778      split_nuh(&nuh);
4779  
4780 <    if (yy_aconf->user == NULL)
4780 >    if (yy_conf->user == NULL)
4781      {
4782 <      DupString(yy_aconf->user, userbuf);
4783 <      DupString(yy_aconf->host, hostbuf);
4782 >      DupString(yy_conf->user, userbuf);
4783 >      DupString(yy_conf->host, hostbuf);
4784      }
4785      else
4786      {
# Line 4814 | Line 4797 | yyreduce:
4797  
4798    case 266:
4799   /* Line 1813 of yacc.c  */
4800 < #line 1635 "conf_parser.y"
4800 > #line 1618 "conf_parser.y"
4801      {
4802    if (conf_parser_ctx.pass == 2)
4803    {
4804      /* be paranoid */
4805 <    if (yy_aconf->passwd != NULL)
4806 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4805 >    if (yy_conf->passwd != NULL)
4806 >      memset(yy_conf->passwd, 0, strlen(yy_conf->passwd));
4807  
4808 <    MyFree(yy_aconf->passwd);
4809 <    DupString(yy_aconf->passwd, yylval.string);
4808 >    MyFree(yy_conf->passwd);
4809 >    DupString(yy_conf->passwd, yylval.string);
4810    }
4811   }
4812      break;
4813  
4814    case 267:
4815   /* Line 1813 of yacc.c  */
4816 < #line 1648 "conf_parser.y"
4816 > #line 1631 "conf_parser.y"
4817      {
4818    if (conf_parser_ctx.pass == 2)
4819    {
# Line 4842 | Line 4825 | yyreduce:
4825  
4826    case 268:
4827   /* Line 1813 of yacc.c  */
4828 < #line 1657 "conf_parser.y"
4828 > #line 1640 "conf_parser.y"
4829      {
4830    if (conf_parser_ctx.pass == 2)
4831    {
4832      if (yylval.number)
4833 <      SetConfEncrypted(yy_aconf);
4833 >      SetConfEncrypted(yy_conf);
4834      else
4835 <      ClearConfEncrypted(yy_aconf);
4835 >      ClearConfEncrypted(yy_conf);
4836    }
4837   }
4838      break;
4839  
4840    case 269:
4841   /* Line 1813 of yacc.c  */
4842 < #line 1668 "conf_parser.y"
4842 > #line 1651 "conf_parser.y"
4843      {
4844   }
4845      break;
4846  
4847    case 273:
4848   /* Line 1813 of yacc.c  */
4849 < #line 1673 "conf_parser.y"
4849 > #line 1656 "conf_parser.y"
4850      {
4851    if (conf_parser_ctx.pass == 2)
4852 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4852 >    yy_conf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4853   }
4854      break;
4855  
4856    case 274:
4857   /* Line 1813 of yacc.c  */
4858 < #line 1677 "conf_parser.y"
4858 > #line 1660 "conf_parser.y"
4859      {
4860    if (conf_parser_ctx.pass == 2)
4861 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4861 >    yy_conf->flags |= CONF_FLAGS_NOLIMIT;
4862   }
4863      break;
4864  
4865    case 275:
4866   /* Line 1813 of yacc.c  */
4867 < #line 1681 "conf_parser.y"
4867 > #line 1664 "conf_parser.y"
4868      {
4869    if (conf_parser_ctx.pass == 2)
4870 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4870 >    yy_conf->flags |= CONF_FLAGS_EXEMPTKLINE;
4871   }
4872      break;
4873  
4874    case 276:
4875   /* Line 1813 of yacc.c  */
4876 < #line 1685 "conf_parser.y"
4876 > #line 1668 "conf_parser.y"
4877      {
4878    if (conf_parser_ctx.pass == 2)
4879 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4879 >    yy_conf->flags |= CONF_FLAGS_NEED_IDENTD;
4880   }
4881      break;
4882  
4883    case 277:
4884   /* Line 1813 of yacc.c  */
4885 < #line 1689 "conf_parser.y"
4885 > #line 1672 "conf_parser.y"
4886      {
4887    if (conf_parser_ctx.pass == 2)
4888 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4888 >    yy_conf->flags |= CONF_FLAGS_CAN_FLOOD;
4889   }
4890      break;
4891  
4892    case 278:
4893   /* Line 1813 of yacc.c  */
4894 < #line 1693 "conf_parser.y"
4894 > #line 1676 "conf_parser.y"
4895      {
4896    if (conf_parser_ctx.pass == 2)
4897 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4897 >    yy_conf->flags |= CONF_FLAGS_NO_TILDE;
4898   }
4899      break;
4900  
4901    case 279:
4902   /* Line 1813 of yacc.c  */
4903 < #line 1697 "conf_parser.y"
4903 > #line 1680 "conf_parser.y"
4904      {
4905    if (conf_parser_ctx.pass == 2)
4906 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4906 >    yy_conf->flags |= CONF_FLAGS_EXEMPTGLINE;
4907   }
4908      break;
4909  
4910    case 280:
4911   /* Line 1813 of yacc.c  */
4912 < #line 1701 "conf_parser.y"
4912 > #line 1684 "conf_parser.y"
4913      {
4914    if (conf_parser_ctx.pass == 2)
4915 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4915 >    yy_conf->flags |= CONF_FLAGS_EXEMPTRESV;
4916   }
4917      break;
4918  
4919    case 281:
4920   /* Line 1813 of yacc.c  */
4921 < #line 1705 "conf_parser.y"
4921 > #line 1688 "conf_parser.y"
4922      {
4923    if (conf_parser_ctx.pass == 2)
4924 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4924 >    yy_conf->flags |= CONF_FLAGS_NEED_PASSWORD;
4925   }
4926      break;
4927  
4928    case 282:
4929   /* Line 1813 of yacc.c  */
4930 < #line 1711 "conf_parser.y"
4930 > #line 1694 "conf_parser.y"
4931      {
4932    if (conf_parser_ctx.pass == 2)
4933    {
# Line 4953 | Line 4936 | yyreduce:
4936      if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4937      {    
4938        DupString(yy_conf->name, yylval.string);
4939 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
4939 >      yy_conf->flags |= CONF_FLAGS_SPOOF_IP;
4940      }
4941      else
4942      {
# Line 4966 | Line 4949 | yyreduce:
4949  
4950    case 283:
4951   /* Line 1813 of yacc.c  */
4952 < #line 1730 "conf_parser.y"
4952 > #line 1713 "conf_parser.y"
4953      {
4954    if (conf_parser_ctx.pass == 2)
4955    {
4956 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4956 >    yy_conf->flags |= CONF_FLAGS_REDIR;
4957      MyFree(yy_conf->name);
4958      DupString(yy_conf->name, yylval.string);
4959    }
# Line 4979 | Line 4962 | yyreduce:
4962  
4963    case 284:
4964   /* Line 1813 of yacc.c  */
4965 < #line 1740 "conf_parser.y"
4965 > #line 1723 "conf_parser.y"
4966      {
4967    if (conf_parser_ctx.pass == 2)
4968    {
4969 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4970 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4969 >    yy_conf->flags |= CONF_FLAGS_REDIR;
4970 >    yy_conf->port = (yyvsp[(3) - (4)].number);
4971    }
4972   }
4973      break;
4974  
4975    case 285:
4976   /* Line 1813 of yacc.c  */
4977 < #line 1753 "conf_parser.y"
4977 > #line 1736 "conf_parser.y"
4978      {
4979    if (conf_parser_ctx.pass == 2)
4980    {
# Line 5003 | Line 4986 | yyreduce:
4986  
4987    case 286:
4988   /* Line 1813 of yacc.c  */
4989 < #line 1760 "conf_parser.y"
4989 > #line 1743 "conf_parser.y"
4990      {
4991    if (conf_parser_ctx.pass == 2)
4992    {
# Line 5015 | Line 4998 | yyreduce:
4998  
4999    case 293:
5000   /* Line 1813 of yacc.c  */
5001 < #line 1772 "conf_parser.y"
5001 > #line 1755 "conf_parser.y"
5002      {
5003    if (conf_parser_ctx.pass == 2)
5004    {
# Line 5027 | Line 5010 | yyreduce:
5010  
5011    case 294:
5012   /* Line 1813 of yacc.c  */
5013 < #line 1781 "conf_parser.y"
5013 > #line 1764 "conf_parser.y"
5014      {
5015    if (conf_parser_ctx.pass == 2)
5016    {
# Line 5045 | Line 5028 | yyreduce:
5028  
5029    case 295:
5030   /* Line 1813 of yacc.c  */
5031 < #line 1796 "conf_parser.y"
5031 > #line 1779 "conf_parser.y"
5032      {
5033    if (conf_parser_ctx.pass == 2)
5034    {
# Line 5058 | Line 5041 | yyreduce:
5041  
5042    case 301:
5043   /* Line 1813 of yacc.c  */
5044 < #line 1814 "conf_parser.y"
5044 > #line 1797 "conf_parser.y"
5045      {
5046    if (conf_parser_ctx.pass == 2)
5047    {
5048      if (valid_servname(yylval.string))
5049      {
5050 <      yy_conf = make_conf_item(SERVICE_TYPE);
5050 >      yy_conf = conf_make(CONF_SERVICE);
5051        DupString(yy_conf->name, yylval.string);
5052      }
5053    }
# Line 5073 | Line 5056 | yyreduce:
5056  
5057    case 302:
5058   /* Line 1813 of yacc.c  */
5059 < #line 1829 "conf_parser.y"
5059 > #line 1812 "conf_parser.y"
5060      {
5061    if (conf_parser_ctx.pass == 2)
5062    {
5063 <    yy_conf = make_conf_item(ULINE_TYPE);
5064 <    yy_match_item = map_to_conf(yy_conf);
5082 <    yy_match_item->action = SHARED_ALL;
5063 >    yy_conf = conf_make(CONF_ULINE);
5064 >    yy_conf->action = SHARED_ALL;
5065    }
5066   }
5067      break;
5068  
5069    case 303:
5070   /* Line 1813 of yacc.c  */
5071 < #line 1837 "conf_parser.y"
5071 > #line 1819 "conf_parser.y"
5072      {
5073    if (conf_parser_ctx.pass == 2)
5074    {
# Line 5097 | Line 5079 | yyreduce:
5079  
5080    case 310:
5081   /* Line 1813 of yacc.c  */
5082 < #line 1848 "conf_parser.y"
5082 > #line 1830 "conf_parser.y"
5083      {
5084    if (conf_parser_ctx.pass == 2)
5085    {
# Line 5109 | Line 5091 | yyreduce:
5091  
5092    case 311:
5093   /* Line 1813 of yacc.c  */
5094 < #line 1857 "conf_parser.y"
5094 > #line 1839 "conf_parser.y"
5095      {
5096    if (conf_parser_ctx.pass == 2)
5097    {
# Line 5126 | Line 5108 | yyreduce:
5108  
5109      split_nuh(&nuh);
5110  
5111 <    DupString(yy_match_item->user, userbuf);
5112 <    DupString(yy_match_item->host, hostbuf);
5111 >    DupString(yy_conf->user, userbuf);
5112 >    DupString(yy_conf->host, hostbuf);
5113    }
5114   }
5115      break;
5116  
5117    case 312:
5118   /* Line 1813 of yacc.c  */
5119 < #line 1879 "conf_parser.y"
5119 > #line 1861 "conf_parser.y"
5120      {
5121    if (conf_parser_ctx.pass == 2)
5122 <    yy_match_item->action = 0;
5122 >    yy_conf->action = 0;
5123   }
5124      break;
5125  
5126    case 316:
5127   /* Line 1813 of yacc.c  */
5128 < #line 1886 "conf_parser.y"
5128 > #line 1868 "conf_parser.y"
5129      {
5130    if (conf_parser_ctx.pass == 2)
5131 <    yy_match_item->action |= SHARED_KLINE;
5131 >    yy_conf->action |= SHARED_KLINE;
5132   }
5133      break;
5134  
5135    case 317:
5136   /* Line 1813 of yacc.c  */
5137 < #line 1890 "conf_parser.y"
5137 > #line 1872 "conf_parser.y"
5138      {
5139    if (conf_parser_ctx.pass == 2)
5140 <    yy_match_item->action |= SHARED_UNKLINE;
5140 >    yy_conf->action |= SHARED_UNKLINE;
5141   }
5142      break;
5143  
5144    case 318:
5145   /* Line 1813 of yacc.c  */
5146 < #line 1894 "conf_parser.y"
5146 > #line 1876 "conf_parser.y"
5147      {
5148    if (conf_parser_ctx.pass == 2)
5149 <    yy_match_item->action |= SHARED_DLINE;
5149 >    yy_conf->action |= SHARED_DLINE;
5150   }
5151      break;
5152  
5153    case 319:
5154   /* Line 1813 of yacc.c  */
5155 < #line 1898 "conf_parser.y"
5155 > #line 1880 "conf_parser.y"
5156      {
5157    if (conf_parser_ctx.pass == 2)
5158 <    yy_match_item->action |= SHARED_UNDLINE;
5158 >    yy_conf->action |= SHARED_UNDLINE;
5159   }
5160      break;
5161  
5162    case 320:
5163   /* Line 1813 of yacc.c  */
5164 < #line 1902 "conf_parser.y"
5164 > #line 1884 "conf_parser.y"
5165      {
5166    if (conf_parser_ctx.pass == 2)
5167 <    yy_match_item->action |= SHARED_XLINE;
5167 >    yy_conf->action |= SHARED_XLINE;
5168   }
5169      break;
5170  
5171    case 321:
5172   /* Line 1813 of yacc.c  */
5173 < #line 1906 "conf_parser.y"
5173 > #line 1888 "conf_parser.y"
5174      {
5175    if (conf_parser_ctx.pass == 2)
5176 <    yy_match_item->action |= SHARED_UNXLINE;
5176 >    yy_conf->action |= SHARED_UNXLINE;
5177   }
5178      break;
5179  
5180    case 322:
5181   /* Line 1813 of yacc.c  */
5182 < #line 1910 "conf_parser.y"
5182 > #line 1892 "conf_parser.y"
5183      {
5184    if (conf_parser_ctx.pass == 2)
5185 <    yy_match_item->action |= SHARED_RESV;
5185 >    yy_conf->action |= SHARED_RESV;
5186   }
5187      break;
5188  
5189    case 323:
5190   /* Line 1813 of yacc.c  */
5191 < #line 1914 "conf_parser.y"
5191 > #line 1896 "conf_parser.y"
5192      {
5193    if (conf_parser_ctx.pass == 2)
5194 <    yy_match_item->action |= SHARED_UNRESV;
5194 >    yy_conf->action |= SHARED_UNRESV;
5195   }
5196      break;
5197  
5198    case 324:
5199   /* Line 1813 of yacc.c  */
5200 < #line 1918 "conf_parser.y"
5200 > #line 1900 "conf_parser.y"
5201      {
5202    if (conf_parser_ctx.pass == 2)
5203 <    yy_match_item->action |= SHARED_LOCOPS;
5203 >    yy_conf->action |= SHARED_LOCOPS;
5204   }
5205      break;
5206  
5207    case 325:
5208   /* Line 1813 of yacc.c  */
5209 < #line 1922 "conf_parser.y"
5209 > #line 1904 "conf_parser.y"
5210      {
5211    if (conf_parser_ctx.pass == 2)
5212 <    yy_match_item->action = SHARED_ALL;
5212 >    yy_conf->action = SHARED_ALL;
5213   }
5214      break;
5215  
5216    case 326:
5217   /* Line 1813 of yacc.c  */
5218 < #line 1931 "conf_parser.y"
5218 > #line 1913 "conf_parser.y"
5219      {
5220    if (conf_parser_ctx.pass == 2)
5221    {
5222 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5241 <    yy_conf->flags = SHARED_ALL;
5222 >    yy_conf = conf_make(CONF_CLUSTER);
5223    }
5224   }
5225      break;
5226  
5227    case 327:
5228   /* Line 1813 of yacc.c  */
5229 < #line 1938 "conf_parser.y"
5229 > #line 1919 "conf_parser.y"
5230      {
5231    if (conf_parser_ctx.pass == 2)
5232    {
# Line 5258 | Line 5239 | yyreduce:
5239  
5240    case 333:
5241   /* Line 1813 of yacc.c  */
5242 < #line 1951 "conf_parser.y"
5242 > #line 1932 "conf_parser.y"
5243      {
5244    if (conf_parser_ctx.pass == 2)
5245      DupString(yy_conf->name, yylval.string);
# Line 5267 | Line 5248 | yyreduce:
5248  
5249    case 334:
5250   /* Line 1813 of yacc.c  */
5251 < #line 1957 "conf_parser.y"
5251 > #line 1938 "conf_parser.y"
5252      {
5253    if (conf_parser_ctx.pass == 2)
5254      yy_conf->flags = 0;
# Line 5276 | Line 5257 | yyreduce:
5257  
5258    case 338:
5259   /* Line 1813 of yacc.c  */
5260 < #line 1964 "conf_parser.y"
5260 > #line 1945 "conf_parser.y"
5261      {
5262    if (conf_parser_ctx.pass == 2)
5263      yy_conf->flags |= SHARED_KLINE;
# Line 5285 | Line 5266 | yyreduce:
5266  
5267    case 339:
5268   /* Line 1813 of yacc.c  */
5269 < #line 1968 "conf_parser.y"
5269 > #line 1949 "conf_parser.y"
5270      {
5271    if (conf_parser_ctx.pass == 2)
5272      yy_conf->flags |= SHARED_UNKLINE;
# Line 5294 | Line 5275 | yyreduce:
5275  
5276    case 340:
5277   /* Line 1813 of yacc.c  */
5278 < #line 1972 "conf_parser.y"
5278 > #line 1953 "conf_parser.y"
5279      {
5280    if (conf_parser_ctx.pass == 2)
5281      yy_conf->flags |= SHARED_DLINE;
# Line 5303 | Line 5284 | yyreduce:
5284  
5285    case 341:
5286   /* Line 1813 of yacc.c  */
5287 < #line 1976 "conf_parser.y"
5287 > #line 1957 "conf_parser.y"
5288      {
5289    if (conf_parser_ctx.pass == 2)
5290      yy_conf->flags |= SHARED_UNDLINE;
# Line 5312 | Line 5293 | yyreduce:
5293  
5294    case 342:
5295   /* Line 1813 of yacc.c  */
5296 < #line 1980 "conf_parser.y"
5296 > #line 1961 "conf_parser.y"
5297      {
5298    if (conf_parser_ctx.pass == 2)
5299      yy_conf->flags |= SHARED_XLINE;
# Line 5321 | Line 5302 | yyreduce:
5302  
5303    case 343:
5304   /* Line 1813 of yacc.c  */
5305 < #line 1984 "conf_parser.y"
5305 > #line 1965 "conf_parser.y"
5306      {
5307    if (conf_parser_ctx.pass == 2)
5308      yy_conf->flags |= SHARED_UNXLINE;
# Line 5330 | Line 5311 | yyreduce:
5311  
5312    case 344:
5313   /* Line 1813 of yacc.c  */
5314 < #line 1988 "conf_parser.y"
5314 > #line 1969 "conf_parser.y"
5315      {
5316    if (conf_parser_ctx.pass == 2)
5317      yy_conf->flags |= SHARED_RESV;
# Line 5339 | Line 5320 | yyreduce:
5320  
5321    case 345:
5322   /* Line 1813 of yacc.c  */
5323 < #line 1992 "conf_parser.y"
5323 > #line 1973 "conf_parser.y"
5324      {
5325    if (conf_parser_ctx.pass == 2)
5326      yy_conf->flags |= SHARED_UNRESV;
# Line 5348 | Line 5329 | yyreduce:
5329  
5330    case 346:
5331   /* Line 1813 of yacc.c  */
5332 < #line 1996 "conf_parser.y"
5332 > #line 1977 "conf_parser.y"
5333      {
5334    if (conf_parser_ctx.pass == 2)
5335      yy_conf->flags |= SHARED_LOCOPS;
# Line 5357 | Line 5338 | yyreduce:
5338  
5339    case 347:
5340   /* Line 1813 of yacc.c  */
5341 < #line 2000 "conf_parser.y"
5341 > #line 1981 "conf_parser.y"
5342      {
5343    if (conf_parser_ctx.pass == 2)
5344      yy_conf->flags = SHARED_ALL;
# Line 5366 | Line 5347 | yyreduce:
5347  
5348    case 348:
5349   /* Line 1813 of yacc.c  */
5350 < #line 2009 "conf_parser.y"
5350 > #line 1990 "conf_parser.y"
5351      {
5352    if (conf_parser_ctx.pass == 2)
5353    {
5354 <    yy_conf = make_conf_item(SERVER_TYPE);
5374 <    yy_aconf = map_to_conf(yy_conf);
5354 >    yy_conf = conf_make(CONF_SERVER);
5355  
5356      /* defaults */
5357 <    yy_aconf->port = PORTNUM;
5357 >    yy_conf->port = PORTNUM;
5358    }
5359    else
5360    {
# Line 5386 | Line 5366 | yyreduce:
5366  
5367    case 349:
5368   /* Line 1813 of yacc.c  */
5369 < #line 2024 "conf_parser.y"
5369 > #line 2004 "conf_parser.y"
5370      {
5371    if (conf_parser_ctx.pass == 2)
5372    {
5373 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5373 >    if (yy_conf->host && yy_conf->passwd && yy_conf->spasswd)
5374      {
5375        if (conf_add_server(yy_conf, class_name) == -1)
5376 <        delete_conf_item(yy_conf);
5376 >        conf_free(yy_conf);
5377      }
5378      else
5379      {
5380        if (yy_conf->name != NULL)
5381        {
5382 <        if (yy_aconf->host == NULL)
5382 >        if (yy_conf->host == NULL)
5383            yyerror("Ignoring connect block -- missing host");
5384 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5384 >        else if (!yy_conf->passwd || !yy_conf->spasswd)
5385            yyerror("Ignoring connect block -- missing password");
5386        }
5387  
# Line 5412 | Line 5392 | yyreduce:
5392         * rewrite ASAP. make_conf_item() shouldn't really add things onto
5393         * a doubly linked list immediately without any sanity checks!  -Michael
5394         */
5395 <      delete_conf_item(yy_conf);
5395 >      conf_free(yy_conf);
5396      }
5397  
5398      MyFree(class_name);
5399      class_name = NULL;
5400      yy_conf = NULL;
5421    yy_aconf = NULL;
5401    }
5402   }
5403      break;
5404  
5405    case 366:
5406   /* Line 1813 of yacc.c  */
5407 < #line 2068 "conf_parser.y"
5407 > #line 2047 "conf_parser.y"
5408      {
5409    if (conf_parser_ctx.pass == 2)
5410    {
# Line 5437 | Line 5416 | yyreduce:
5416  
5417    case 367:
5418   /* Line 1813 of yacc.c  */
5419 < #line 2077 "conf_parser.y"
5419 > #line 2056 "conf_parser.y"
5420      {
5421    if (conf_parser_ctx.pass == 2)
5422    {
5423 <    MyFree(yy_aconf->host);
5424 <    DupString(yy_aconf->host, yylval.string);
5423 >    MyFree(yy_conf->host);
5424 >    DupString(yy_conf->host, yylval.string);
5425    }
5426   }
5427      break;
5428  
5429    case 368:
5430   /* Line 1813 of yacc.c  */
5431 < #line 2086 "conf_parser.y"
5431 > #line 2065 "conf_parser.y"
5432      {
5433    if (conf_parser_ctx.pass == 2)
5434    {
# Line 5467 | Line 5446 | yyreduce:
5446      {
5447        assert(res != NULL);
5448  
5449 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5450 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5451 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5449 >      memcpy(&yy_conf->bind, res->ai_addr, res->ai_addrlen);
5450 >      yy_conf->bind.ss.ss_family = res->ai_family;
5451 >      yy_conf->bind.ss_len = res->ai_addrlen;
5452        freeaddrinfo(res);
5453      }
5454    }
# Line 5478 | Line 5457 | yyreduce:
5457  
5458    case 369:
5459   /* Line 1813 of yacc.c  */
5460 < #line 2112 "conf_parser.y"
5460 > #line 2091 "conf_parser.y"
5461      {
5462    if (conf_parser_ctx.pass == 2)
5463    {
# Line 5487 | Line 5466 | yyreduce:
5466      else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5467        yyerror("Server passwords cannot contain spaces");
5468      else {
5469 <      if (yy_aconf->spasswd != NULL)
5470 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5469 >      if (yy_conf->spasswd != NULL)
5470 >        memset(yy_conf->spasswd, 0, strlen(yy_conf->spasswd));
5471  
5472 <      MyFree(yy_aconf->spasswd);
5473 <      DupString(yy_aconf->spasswd, yylval.string);
5472 >      MyFree(yy_conf->spasswd);
5473 >      DupString(yy_conf->spasswd, yylval.string);
5474      }
5475    }
5476   }
# Line 5499 | Line 5478 | yyreduce:
5478  
5479    case 370:
5480   /* Line 1813 of yacc.c  */
5481 < #line 2130 "conf_parser.y"
5481 > #line 2109 "conf_parser.y"
5482      {
5483    if (conf_parser_ctx.pass == 2)
5484    {
# Line 5508 | Line 5487 | yyreduce:
5487      else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5488        yyerror("Server passwords cannot contain spaces");
5489      else {
5490 <      if (yy_aconf->passwd != NULL)
5491 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5490 >      if (yy_conf->passwd != NULL)
5491 >        memset(yy_conf->passwd, 0, strlen(yy_conf->passwd));
5492  
5493 <      MyFree(yy_aconf->passwd);
5494 <      DupString(yy_aconf->passwd, yylval.string);
5493 >      MyFree(yy_conf->passwd);
5494 >      DupString(yy_conf->passwd, yylval.string);
5495      }
5496    }
5497   }
# Line 5520 | Line 5499 | yyreduce:
5499  
5500    case 371:
5501   /* Line 1813 of yacc.c  */
5502 < #line 2148 "conf_parser.y"
5502 > #line 2127 "conf_parser.y"
5503      {
5504    if (conf_parser_ctx.pass == 2)
5505 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5505 >    yy_conf->port = (yyvsp[(3) - (4)].number);
5506   }
5507      break;
5508  
5509    case 372:
5510   /* Line 1813 of yacc.c  */
5511 < #line 2154 "conf_parser.y"
5511 > #line 2133 "conf_parser.y"
5512      {
5513    if (conf_parser_ctx.pass == 2)
5514 <    yy_aconf->aftype = AF_INET;
5514 >    yy_conf->aftype = AF_INET;
5515   }
5516      break;
5517  
5518    case 373:
5519   /* Line 1813 of yacc.c  */
5520 < #line 2158 "conf_parser.y"
5520 > #line 2137 "conf_parser.y"
5521      {
5522   #ifdef IPV6
5523    if (conf_parser_ctx.pass == 2)
5524 <    yy_aconf->aftype = AF_INET6;
5524 >    yy_conf->aftype = AF_INET6;
5525   #endif
5526   }
5527      break;
5528  
5529    case 374:
5530   /* Line 1813 of yacc.c  */
5531 < #line 2166 "conf_parser.y"
5531 > #line 2145 "conf_parser.y"
5532      {
5533   }
5534      break;
5535  
5536    case 378:
5537   /* Line 1813 of yacc.c  */
5538 < #line 2171 "conf_parser.y"
5538 > #line 2150 "conf_parser.y"
5539      {
5540    if (conf_parser_ctx.pass == 2)
5541 <    SetConfAllowAutoConn(yy_aconf);
5541 >    SetConfAllowAutoConn(yy_conf);
5542   }
5543      break;
5544  
5545    case 379:
5546   /* Line 1813 of yacc.c  */
5547 < #line 2175 "conf_parser.y"
5547 > #line 2154 "conf_parser.y"
5548      {
5549    if (conf_parser_ctx.pass == 2)
5550 <    SetConfSSL(yy_aconf);
5550 >    SetConfSSL(yy_conf);
5551   }
5552      break;
5553  
5554    case 380:
5555   /* Line 1813 of yacc.c  */
5556 < #line 2181 "conf_parser.y"
5556 > #line 2160 "conf_parser.y"
5557      {
5558    if (conf_parser_ctx.pass == 2)
5559    {
5560      if (yylval.number)
5561 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5561 >      yy_conf->flags |= CONF_FLAGS_ENCRYPTED;
5562      else
5563 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5563 >      yy_conf->flags &= ~CONF_FLAGS_ENCRYPTED;
5564    }
5565   }
5566      break;
5567  
5568    case 381:
5569   /* Line 1813 of yacc.c  */
5570 < #line 2192 "conf_parser.y"
5570 > #line 2171 "conf_parser.y"
5571      {
5572    if (conf_parser_ctx.pass == 2)
5573    {
5574      char *mask;
5575  
5576      DupString(mask, yylval.string);
5577 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5577 >    dlinkAdd(mask, make_dlink_node(), &yy_conf->hub_list);
5578    }
5579   }
5580      break;
5581  
5582    case 382:
5583   /* Line 1813 of yacc.c  */
5584 < #line 2203 "conf_parser.y"
5584 > #line 2182 "conf_parser.y"
5585      {
5586    if (conf_parser_ctx.pass == 2)
5587    {
5588      char *mask;
5589  
5590      DupString(mask, yylval.string);
5591 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5591 >    dlinkAdd(mask, make_dlink_node(), &yy_conf->leaf_list);
5592    }
5593   }
5594      break;
5595  
5596    case 383:
5597   /* Line 1813 of yacc.c  */
5598 < #line 2214 "conf_parser.y"
5598 > #line 2193 "conf_parser.y"
5599      {
5600    if (conf_parser_ctx.pass == 2)
5601    {
# Line 5628 | Line 5607 | yyreduce:
5607  
5608    case 384:
5609   /* Line 1813 of yacc.c  */
5610 < #line 2223 "conf_parser.y"
5610 > #line 2202 "conf_parser.y"
5611      {
5612   #ifdef HAVE_LIBCRYPTO
5613    if (conf_parser_ctx.pass == 2)
5614    {
5615 <    MyFree(yy_aconf->cipher_list);
5616 <    DupString(yy_aconf->cipher_list, yylval.string);
5615 >    MyFree(yy_conf->cipher_list);
5616 >    DupString(yy_conf->cipher_list, yylval.string);
5617    }
5618   #else
5619    if (conf_parser_ctx.pass == 2)
# Line 5645 | Line 5624 | yyreduce:
5624  
5625    case 385:
5626   /* Line 1813 of yacc.c  */
5627 < #line 2241 "conf_parser.y"
5627 > #line 2220 "conf_parser.y"
5628      {
5629    if (conf_parser_ctx.pass == 2)
5630    {
# Line 5657 | Line 5636 | yyreduce:
5636  
5637    case 386:
5638   /* Line 1813 of yacc.c  */
5639 < #line 2248 "conf_parser.y"
5639 > #line 2227 "conf_parser.y"
5640      {
5641    if (conf_parser_ctx.pass == 2)
5642    {
# Line 5678 | Line 5657 | yyreduce:
5657            break;
5658          }
5659  
5660 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5661 <        yy_aconf->regexuser = exp_user;
5662 <        yy_aconf->regexhost = exp_host;
5660 >        yy_conf = conf_make(CONF_RKLINE);
5661 >        yy_conf->regexuser = exp_user;
5662 >        yy_conf->regexhost = exp_host;
5663  
5664 <        DupString(yy_aconf->user, userbuf);
5665 <        DupString(yy_aconf->host, hostbuf);
5664 >        DupString(yy_conf->user, userbuf);
5665 >        DupString(yy_conf->host, hostbuf);
5666  
5667          if (reasonbuf[0])
5668 <          DupString(yy_aconf->reason, reasonbuf);
5668 >          DupString(yy_conf->reason, reasonbuf);
5669          else
5670 <          DupString(yy_aconf->reason, "No reason");
5670 >          DupString(yy_conf->reason, "No reason");
5671   #else
5672          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5673          break;
# Line 5696 | Line 5675 | yyreduce:
5675        }
5676        else
5677        {
5678 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5678 >        yy_conf = conf_make(CONF_KLINE);
5679  
5680 <        DupString(yy_aconf->user, userbuf);
5681 <        DupString(yy_aconf->host, hostbuf);
5680 >        DupString(yy_conf->user, userbuf);
5681 >        DupString(yy_conf->host, hostbuf);
5682  
5683          if (reasonbuf[0])
5684 <          DupString(yy_aconf->reason, reasonbuf);
5684 >          DupString(yy_conf->reason, reasonbuf);
5685          else
5686 <          DupString(yy_aconf->reason, "No reason");
5687 <        add_conf_by_address(CONF_KLINE, yy_aconf);
5686 >          DupString(yy_conf->reason, "No reason");
5687 >        add_conf_by_address(CONF_KLINE, yy_conf);
5688        }
5689      }
5690  
5691 <    yy_aconf = NULL;
5691 >    yy_conf = NULL;
5692    }
5693   }
5694      break;
5695  
5696    case 387:
5697   /* Line 1813 of yacc.c  */
5698 < #line 2304 "conf_parser.y"
5698 > #line 2283 "conf_parser.y"
5699      {
5700   }
5701      break;
5702  
5703    case 391:
5704   /* Line 1813 of yacc.c  */
5705 < #line 2309 "conf_parser.y"
5705 > #line 2288 "conf_parser.y"
5706      {
5707    if (conf_parser_ctx.pass == 2)
5708      regex_ban = 1;
# Line 5732 | Line 5711 | yyreduce:
5711  
5712    case 398:
5713   /* Line 1813 of yacc.c  */
5714 < #line 2318 "conf_parser.y"
5714 > #line 2297 "conf_parser.y"
5715      {
5716    if (conf_parser_ctx.pass == 2)
5717    {
# Line 5754 | Line 5733 | yyreduce:
5733  
5734    case 399:
5735   /* Line 1813 of yacc.c  */
5736 < #line 2337 "conf_parser.y"
5736 > #line 2316 "conf_parser.y"
5737      {
5738    if (conf_parser_ctx.pass == 2)
5739      strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
# Line 5763 | Line 5742 | yyreduce:
5742  
5743    case 400:
5744   /* Line 1813 of yacc.c  */
5745 < #line 2346 "conf_parser.y"
5745 > #line 2325 "conf_parser.y"
5746      {
5747    if (conf_parser_ctx.pass == 2)
5748      hostbuf[0] = reasonbuf[0] = '\0';
# Line 5772 | Line 5751 | yyreduce:
5751  
5752    case 401:
5753   /* Line 1813 of yacc.c  */
5754 < #line 2350 "conf_parser.y"
5754 > #line 2329 "conf_parser.y"
5755      {
5756    if (conf_parser_ctx.pass == 2)
5757    {
5758      if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5759      {
5760 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5761 <      DupString(yy_aconf->host, hostbuf);
5760 >      yy_conf = conf_make(CONF_DLINE);
5761 >      DupString(yy_conf->host, hostbuf);
5762  
5763        if (reasonbuf[0])
5764 <        DupString(yy_aconf->reason, reasonbuf);
5764 >        DupString(yy_conf->reason, reasonbuf);
5765        else
5766 <        DupString(yy_aconf->reason, "No reason");
5767 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5768 <      yy_aconf = NULL;
5766 >        DupString(yy_conf->reason, "No reason");
5767 >      add_conf_by_address(CONF_DLINE, yy_conf);
5768 >      yy_conf = NULL;
5769      }
5770    }
5771   }
# Line 5794 | Line 5773 | yyreduce:
5773  
5774    case 407:
5775   /* Line 1813 of yacc.c  */
5776 < #line 2372 "conf_parser.y"
5776 > #line 2351 "conf_parser.y"
5777      {
5778    if (conf_parser_ctx.pass == 2)
5779      strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
# Line 5803 | Line 5782 | yyreduce:
5782  
5783    case 408:
5784   /* Line 1813 of yacc.c  */
5785 < #line 2378 "conf_parser.y"
5785 > #line 2357 "conf_parser.y"
5786      {
5787    if (conf_parser_ctx.pass == 2)
5788      strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
# Line 5812 | Line 5791 | yyreduce:
5791  
5792    case 414:
5793   /* Line 1813 of yacc.c  */
5794 < #line 2392 "conf_parser.y"
5794 > #line 2371 "conf_parser.y"
5795      {
5796    if (conf_parser_ctx.pass == 2)
5797    {
5798      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5799      {
5800 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5801 <      DupString(yy_aconf->host, yylval.string);
5800 >      yy_conf = conf_make(CONF_EXEMPT);
5801 >      DupString(yy_conf->host, yylval.string);
5802  
5803 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5804 <      yy_aconf = NULL;
5803 >      add_conf_by_address(CONF_EXEMPT, yy_conf);
5804 >      yy_conf = NULL;
5805      }
5806    }
5807   }
# Line 5830 | Line 5809 | yyreduce:
5809  
5810    case 415:
5811   /* Line 1813 of yacc.c  */
5812 < #line 2410 "conf_parser.y"
5812 > #line 2389 "conf_parser.y"
5813      {
5814    if (conf_parser_ctx.pass == 2)
5815    {
# Line 5842 | Line 5821 | yyreduce:
5821  
5822    case 416:
5823   /* Line 1813 of yacc.c  */
5824 < #line 2417 "conf_parser.y"
5824 > #line 2396 "conf_parser.y"
5825      {
5826    if (conf_parser_ctx.pass == 2)
5827    {
# Line 5861 | Line 5840 | yyreduce:
5840            break;
5841          }
5842  
5843 <        yy_conf = make_conf_item(RXLINE_TYPE);
5844 <        yy_conf->regexpname = exp_p;
5843 >        yy_conf = conf_make(CONF_RXLINE);
5844 >        yy_conf->regexuser = exp_p;
5845   #else
5846          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5847          break;
5848   #endif
5849        }
5850        else
5851 <        yy_conf = make_conf_item(XLINE_TYPE);
5851 >        yy_conf = conf_make(CONF_XLINE);
5852  
5874      yy_match_item = map_to_conf(yy_conf);
5853        DupString(yy_conf->name, gecos_name);
5854  
5855        if (reasonbuf[0])
5856 <        DupString(yy_match_item->reason, reasonbuf);
5856 >        DupString(yy_conf->reason, reasonbuf);
5857        else
5858 <        DupString(yy_match_item->reason, "No reason");
5858 >        DupString(yy_conf->reason, "No reason");
5859      }
5860    }
5861   }
# Line 5885 | Line 5863 | yyreduce:
5863  
5864    case 417:
5865   /* Line 1813 of yacc.c  */
5866 < #line 2457 "conf_parser.y"
5866 > #line 2435 "conf_parser.y"
5867      {
5868   }
5869      break;
5870  
5871    case 421:
5872   /* Line 1813 of yacc.c  */
5873 < #line 2462 "conf_parser.y"
5873 > #line 2440 "conf_parser.y"
5874      {
5875    if (conf_parser_ctx.pass == 2)
5876      regex_ban = 1;
# Line 5901 | Line 5879 | yyreduce:
5879  
5880    case 428:
5881   /* Line 1813 of yacc.c  */
5882 < #line 2471 "conf_parser.y"
5882 > #line 2449 "conf_parser.y"
5883      {
5884    if (conf_parser_ctx.pass == 2)
5885      strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
# Line 5910 | Line 5888 | yyreduce:
5888  
5889    case 429:
5890   /* Line 1813 of yacc.c  */
5891 < #line 2477 "conf_parser.y"
5891 > #line 2455 "conf_parser.y"
5892      {
5893    if (conf_parser_ctx.pass == 2)
5894      strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
# Line 5919 | Line 5897 | yyreduce:
5897  
5898    case 483:
5899   /* Line 1813 of yacc.c  */
5900 < #line 2522 "conf_parser.y"
5900 > #line 2500 "conf_parser.y"
5901      {
5902    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5903   }
# Line 5927 | Line 5905 | yyreduce:
5905  
5906    case 484:
5907   /* Line 1813 of yacc.c  */
5908 < #line 2527 "conf_parser.y"
5908 > #line 2505 "conf_parser.y"
5909      {
5910    if (conf_parser_ctx.pass == 2)
5911      ConfigFileEntry.glines = yylval.number;
# Line 5936 | Line 5914 | yyreduce:
5914  
5915    case 485:
5916   /* Line 1813 of yacc.c  */
5917 < #line 2533 "conf_parser.y"
5917 > #line 2511 "conf_parser.y"
5918      {
5919    if (conf_parser_ctx.pass == 2)
5920      ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
# Line 5945 | Line 5923 | yyreduce:
5923  
5924    case 486:
5925   /* Line 1813 of yacc.c  */
5926 < #line 2539 "conf_parser.y"
5926 > #line 2517 "conf_parser.y"
5927      {
5928    if (conf_parser_ctx.pass == 2)
5929      ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
# Line 5954 | Line 5932 | yyreduce:
5932  
5933    case 487:
5934   /* Line 1813 of yacc.c  */
5935 < #line 2545 "conf_parser.y"
5935 > #line 2523 "conf_parser.y"
5936      {
5937    ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5938   }
# Line 5962 | Line 5940 | yyreduce:
5940  
5941    case 488:
5942   /* Line 1813 of yacc.c  */
5943 < #line 2550 "conf_parser.y"
5943 > #line 2528 "conf_parser.y"
5944      {
5945    ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5946   }
# Line 5970 | Line 5948 | yyreduce:
5948  
5949    case 489:
5950   /* Line 1813 of yacc.c  */
5951 < #line 2555 "conf_parser.y"
5951 > #line 2533 "conf_parser.y"
5952      {
5953    ConfigFileEntry.tkline_expire_notices = yylval.number;
5954   }
# Line 5978 | Line 5956 | yyreduce:
5956  
5957    case 490:
5958   /* Line 1813 of yacc.c  */
5959 < #line 2560 "conf_parser.y"
5959 > #line 2538 "conf_parser.y"
5960      {
5961    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5962   }
# Line 5986 | Line 5964 | yyreduce:
5964  
5965    case 491:
5966   /* Line 1813 of yacc.c  */
5967 < #line 2565 "conf_parser.y"
5967 > #line 2543 "conf_parser.y"
5968      {
5969    ConfigFileEntry.hide_spoof_ips = yylval.number;
5970   }
# Line 5994 | Line 5972 | yyreduce:
5972  
5973    case 492:
5974   /* Line 1813 of yacc.c  */
5975 < #line 2570 "conf_parser.y"
5975 > #line 2548 "conf_parser.y"
5976      {
5977    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5978   }
# Line 6002 | Line 5980 | yyreduce:
5980  
5981    case 493:
5982   /* Line 1813 of yacc.c  */
5983 < #line 2575 "conf_parser.y"
5983 > #line 2553 "conf_parser.y"
5984      {
5985    ConfigFileEntry.disable_remote = yylval.number;
5986   }
# Line 6010 | Line 5988 | yyreduce:
5988  
5989    case 494:
5990   /* Line 1813 of yacc.c  */
5991 < #line 2580 "conf_parser.y"
5991 > #line 2558 "conf_parser.y"
5992      {
5993    ConfigFileEntry.failed_oper_notice = yylval.number;
5994   }
# Line 6018 | Line 5996 | yyreduce:
5996  
5997    case 495:
5998   /* Line 1813 of yacc.c  */
5999 < #line 2585 "conf_parser.y"
5999 > #line 2563 "conf_parser.y"
6000      {
6001    ConfigFileEntry.anti_nick_flood = yylval.number;
6002   }
# Line 6026 | Line 6004 | yyreduce:
6004  
6005    case 496:
6006   /* Line 1813 of yacc.c  */
6007 < #line 2590 "conf_parser.y"
6007 > #line 2568 "conf_parser.y"
6008      {
6009    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
6010   }
# Line 6034 | Line 6012 | yyreduce:
6012  
6013    case 497:
6014   /* Line 1813 of yacc.c  */
6015 < #line 2595 "conf_parser.y"
6015 > #line 2573 "conf_parser.y"
6016      {
6017    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
6018   }
# Line 6042 | Line 6020 | yyreduce:
6020  
6021    case 498:
6022   /* Line 1813 of yacc.c  */
6023 < #line 2600 "conf_parser.y"
6023 > #line 2578 "conf_parser.y"
6024      {
6025    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
6026   }
# Line 6050 | Line 6028 | yyreduce:
6028  
6029    case 499:
6030   /* Line 1813 of yacc.c  */
6031 < #line 2605 "conf_parser.y"
6031 > #line 2583 "conf_parser.y"
6032      {
6033    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
6034   }
# Line 6058 | Line 6036 | yyreduce:
6036  
6037    case 500:
6038   /* Line 1813 of yacc.c  */
6039 < #line 2610 "conf_parser.y"
6039 > #line 2588 "conf_parser.y"
6040      {
6041    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
6042   }
# Line 6066 | Line 6044 | yyreduce:
6044  
6045    case 501:
6046   /* Line 1813 of yacc.c  */
6047 < #line 2615 "conf_parser.y"
6047 > #line 2593 "conf_parser.y"
6048      {
6049    if (conf_parser_ctx.pass == 2)
6050      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
# Line 6075 | Line 6053 | yyreduce:
6053  
6054    case 502:
6055   /* Line 1813 of yacc.c  */
6056 < #line 2621 "conf_parser.y"
6056 > #line 2599 "conf_parser.y"
6057      {
6058    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6059    {
# Line 6089 | Line 6067 | yyreduce:
6067  
6068    case 503:
6069   /* Line 1813 of yacc.c  */
6070 < #line 2632 "conf_parser.y"
6070 > #line 2610 "conf_parser.y"
6071      {
6072    ConfigFileEntry.invisible_on_connect = yylval.number;
6073   }
# Line 6097 | Line 6075 | yyreduce:
6075  
6076    case 504:
6077   /* Line 1813 of yacc.c  */
6078 < #line 2637 "conf_parser.y"
6078 > #line 2615 "conf_parser.y"
6079      {
6080    ConfigFileEntry.warn_no_nline = yylval.number;
6081   }
# Line 6105 | Line 6083 | yyreduce:
6083  
6084    case 505:
6085   /* Line 1813 of yacc.c  */
6086 < #line 2642 "conf_parser.y"
6086 > #line 2620 "conf_parser.y"
6087      {
6088    ConfigFileEntry.stats_e_disabled = yylval.number;
6089   }
# Line 6113 | Line 6091 | yyreduce:
6091  
6092    case 506:
6093   /* Line 1813 of yacc.c  */
6094 < #line 2647 "conf_parser.y"
6094 > #line 2625 "conf_parser.y"
6095      {
6096    ConfigFileEntry.stats_o_oper_only = yylval.number;
6097   }
# Line 6121 | Line 6099 | yyreduce:
6099  
6100    case 507:
6101   /* Line 1813 of yacc.c  */
6102 < #line 2652 "conf_parser.y"
6102 > #line 2630 "conf_parser.y"
6103      {
6104    ConfigFileEntry.stats_P_oper_only = yylval.number;
6105   }
# Line 6129 | Line 6107 | yyreduce:
6107  
6108    case 508:
6109   /* Line 1813 of yacc.c  */
6110 < #line 2657 "conf_parser.y"
6110 > #line 2635 "conf_parser.y"
6111      {
6112    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6113   }
# Line 6137 | Line 6115 | yyreduce:
6115  
6116    case 509:
6117   /* Line 1813 of yacc.c  */
6118 < #line 2660 "conf_parser.y"
6118 > #line 2638 "conf_parser.y"
6119      {
6120    ConfigFileEntry.stats_k_oper_only = 1;
6121   }
# Line 6145 | Line 6123 | yyreduce:
6123  
6124    case 510:
6125   /* Line 1813 of yacc.c  */
6126 < #line 2665 "conf_parser.y"
6126 > #line 2643 "conf_parser.y"
6127      {
6128    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6129   }
# Line 6153 | Line 6131 | yyreduce:
6131  
6132    case 511:
6133   /* Line 1813 of yacc.c  */
6134 < #line 2668 "conf_parser.y"
6134 > #line 2646 "conf_parser.y"
6135      {
6136    ConfigFileEntry.stats_i_oper_only = 1;
6137   }
# Line 6161 | Line 6139 | yyreduce:
6139  
6140    case 512:
6141   /* Line 1813 of yacc.c  */
6142 < #line 2673 "conf_parser.y"
6142 > #line 2651 "conf_parser.y"
6143      {
6144    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6145   }
# Line 6169 | Line 6147 | yyreduce:
6147  
6148    case 513:
6149   /* Line 1813 of yacc.c  */
6150 < #line 2678 "conf_parser.y"
6150 > #line 2656 "conf_parser.y"
6151      {
6152    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6153   }
# Line 6177 | Line 6155 | yyreduce:
6155  
6156    case 514:
6157   /* Line 1813 of yacc.c  */
6158 < #line 2683 "conf_parser.y"
6158 > #line 2661 "conf_parser.y"
6159      {
6160    ConfigFileEntry.opers_bypass_callerid = yylval.number;
6161   }
# Line 6185 | Line 6163 | yyreduce:
6163  
6164    case 515:
6165   /* Line 1813 of yacc.c  */
6166 < #line 2688 "conf_parser.y"
6166 > #line 2666 "conf_parser.y"
6167      {
6168    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6169   }
# Line 6193 | Line 6171 | yyreduce:
6171  
6172    case 516:
6173   /* Line 1813 of yacc.c  */
6174 < #line 2693 "conf_parser.y"
6174 > #line 2671 "conf_parser.y"
6175      {
6176    ConfigFileEntry.short_motd = yylval.number;
6177   }
# Line 6201 | Line 6179 | yyreduce:
6179  
6180    case 517:
6181   /* Line 1813 of yacc.c  */
6182 < #line 2698 "conf_parser.y"
6182 > #line 2676 "conf_parser.y"
6183      {
6184    ConfigFileEntry.no_oper_flood = yylval.number;
6185   }
# Line 6209 | Line 6187 | yyreduce:
6187  
6188    case 518:
6189   /* Line 1813 of yacc.c  */
6190 < #line 2703 "conf_parser.y"
6190 > #line 2681 "conf_parser.y"
6191      {
6192    ConfigFileEntry.true_no_oper_flood = yylval.number;
6193   }
# Line 6217 | Line 6195 | yyreduce:
6195  
6196    case 519:
6197   /* Line 1813 of yacc.c  */
6198 < #line 2708 "conf_parser.y"
6198 > #line 2686 "conf_parser.y"
6199      {
6200    ConfigFileEntry.oper_pass_resv = yylval.number;
6201   }
# Line 6225 | Line 6203 | yyreduce:
6203  
6204    case 520:
6205   /* Line 1813 of yacc.c  */
6206 < #line 2713 "conf_parser.y"
6206 > #line 2691 "conf_parser.y"
6207      {
6208    if (conf_parser_ctx.pass == 2)
6209    {
# Line 6239 | Line 6217 | yyreduce:
6217  
6218    case 521:
6219   /* Line 1813 of yacc.c  */
6220 < #line 2724 "conf_parser.y"
6220 > #line 2702 "conf_parser.y"
6221      {
6222    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6223   }
# Line 6247 | Line 6225 | yyreduce:
6225  
6226    case 522:
6227   /* Line 1813 of yacc.c  */
6228 < #line 2729 "conf_parser.y"
6228 > #line 2707 "conf_parser.y"
6229      {
6230    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6231   }
# Line 6255 | Line 6233 | yyreduce:
6233  
6234    case 523:
6235   /* Line 1813 of yacc.c  */
6236 < #line 2734 "conf_parser.y"
6236 > #line 2712 "conf_parser.y"
6237      {
6238    ConfigFileEntry.use_egd = yylval.number;
6239   }
# Line 6263 | Line 6241 | yyreduce:
6241  
6242    case 524:
6243   /* Line 1813 of yacc.c  */
6244 < #line 2739 "conf_parser.y"
6244 > #line 2717 "conf_parser.y"
6245      {
6246    if (conf_parser_ctx.pass == 2)
6247    {
# Line 6275 | Line 6253 | yyreduce:
6253  
6254    case 525:
6255   /* Line 1813 of yacc.c  */
6256 < #line 2748 "conf_parser.y"
6256 > #line 2726 "conf_parser.y"
6257      {
6258    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6259    {
# Line 6287 | Line 6265 | yyreduce:
6265  
6266    case 526:
6267   /* Line 1813 of yacc.c  */
6268 < #line 2757 "conf_parser.y"
6268 > #line 2735 "conf_parser.y"
6269      {
6270    ConfigFileEntry.ping_cookie = yylval.number;
6271   }
# Line 6295 | Line 6273 | yyreduce:
6273  
6274    case 527:
6275   /* Line 1813 of yacc.c  */
6276 < #line 2762 "conf_parser.y"
6276 > #line 2740 "conf_parser.y"
6277      {
6278    ConfigFileEntry.disable_auth = yylval.number;
6279   }
# Line 6303 | Line 6281 | yyreduce:
6281  
6282    case 528:
6283   /* Line 1813 of yacc.c  */
6284 < #line 2767 "conf_parser.y"
6284 > #line 2745 "conf_parser.y"
6285      {
6286    ConfigFileEntry.throttle_time = yylval.number;
6287   }
# Line 6311 | Line 6289 | yyreduce:
6289  
6290    case 529:
6291   /* Line 1813 of yacc.c  */
6292 < #line 2772 "conf_parser.y"
6292 > #line 2750 "conf_parser.y"
6293      {
6294    ConfigFileEntry.oper_umodes = 0;
6295   }
# Line 6319 | Line 6297 | yyreduce:
6297  
6298    case 533:
6299   /* Line 1813 of yacc.c  */
6300 < #line 2778 "conf_parser.y"
6300 > #line 2756 "conf_parser.y"
6301      {
6302    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6303   }
# Line 6327 | Line 6305 | yyreduce:
6305  
6306    case 534:
6307   /* Line 1813 of yacc.c  */
6308 < #line 2781 "conf_parser.y"
6308 > #line 2759 "conf_parser.y"
6309      {
6310    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6311   }
# Line 6335 | Line 6313 | yyreduce:
6313  
6314    case 535:
6315   /* Line 1813 of yacc.c  */
6316 < #line 2784 "conf_parser.y"
6316 > #line 2762 "conf_parser.y"
6317      {
6318    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6319   }
# Line 6343 | Line 6321 | yyreduce:
6321  
6322    case 536:
6323   /* Line 1813 of yacc.c  */
6324 < #line 2787 "conf_parser.y"
6324 > #line 2765 "conf_parser.y"
6325      {
6326    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6327   }
# Line 6351 | Line 6329 | yyreduce:
6329  
6330    case 537:
6331   /* Line 1813 of yacc.c  */
6332 < #line 2790 "conf_parser.y"
6332 > #line 2768 "conf_parser.y"
6333      {
6334    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6335   }
# Line 6359 | Line 6337 | yyreduce:
6337  
6338    case 538:
6339   /* Line 1813 of yacc.c  */
6340 < #line 2793 "conf_parser.y"
6340 > #line 2771 "conf_parser.y"
6341      {
6342    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6343   }
# Line 6367 | Line 6345 | yyreduce:
6345  
6346    case 539:
6347   /* Line 1813 of yacc.c  */
6348 < #line 2796 "conf_parser.y"
6348 > #line 2774 "conf_parser.y"
6349      {
6350    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6351   }
# Line 6375 | Line 6353 | yyreduce:
6353  
6354    case 540:
6355   /* Line 1813 of yacc.c  */
6356 < #line 2799 "conf_parser.y"
6356 > #line 2777 "conf_parser.y"
6357      {
6358    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6359   }
# Line 6383 | Line 6361 | yyreduce:
6361  
6362    case 541:
6363   /* Line 1813 of yacc.c  */
6364 < #line 2802 "conf_parser.y"
6364 > #line 2780 "conf_parser.y"
6365      {
6366    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6367   }
# Line 6391 | Line 6369 | yyreduce:
6369  
6370    case 542:
6371   /* Line 1813 of yacc.c  */
6372 < #line 2805 "conf_parser.y"
6372 > #line 2783 "conf_parser.y"
6373      {
6374    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6375   }
# Line 6399 | Line 6377 | yyreduce:
6377  
6378    case 543:
6379   /* Line 1813 of yacc.c  */
6380 < #line 2808 "conf_parser.y"
6380 > #line 2786 "conf_parser.y"
6381      {
6382    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6383   }
# Line 6407 | Line 6385 | yyreduce:
6385  
6386    case 544:
6387   /* Line 1813 of yacc.c  */
6388 < #line 2811 "conf_parser.y"
6388 > #line 2789 "conf_parser.y"
6389      {
6390    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6391   }
# Line 6415 | Line 6393 | yyreduce:
6393  
6394    case 545:
6395   /* Line 1813 of yacc.c  */
6396 < #line 2814 "conf_parser.y"
6396 > #line 2792 "conf_parser.y"
6397      {
6398    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6399   }
# Line 6423 | Line 6401 | yyreduce:
6401  
6402    case 546:
6403   /* Line 1813 of yacc.c  */
6404 < #line 2817 "conf_parser.y"
6404 > #line 2795 "conf_parser.y"
6405      {
6406    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6407   }
# Line 6431 | Line 6409 | yyreduce:
6409  
6410    case 547:
6411   /* Line 1813 of yacc.c  */
6412 < #line 2820 "conf_parser.y"
6412 > #line 2798 "conf_parser.y"
6413      {
6414    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6415   }
# Line 6439 | Line 6417 | yyreduce:
6417  
6418    case 548:
6419   /* Line 1813 of yacc.c  */
6420 < #line 2823 "conf_parser.y"
6420 > #line 2801 "conf_parser.y"
6421      {
6422    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6423   }
# Line 6447 | Line 6425 | yyreduce:
6425  
6426    case 549:
6427   /* Line 1813 of yacc.c  */
6428 < #line 2826 "conf_parser.y"
6428 > #line 2804 "conf_parser.y"
6429      {
6430    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6431   }
# Line 6455 | Line 6433 | yyreduce:
6433  
6434    case 550:
6435   /* Line 1813 of yacc.c  */
6436 < #line 2829 "conf_parser.y"
6436 > #line 2807 "conf_parser.y"
6437      {
6438    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6439   }
# Line 6463 | Line 6441 | yyreduce:
6441  
6442    case 551:
6443   /* Line 1813 of yacc.c  */
6444 < #line 2832 "conf_parser.y"
6444 > #line 2810 "conf_parser.y"
6445      {
6446    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6447   }
# Line 6471 | Line 6449 | yyreduce:
6449  
6450    case 552:
6451   /* Line 1813 of yacc.c  */
6452 < #line 2835 "conf_parser.y"
6452 > #line 2813 "conf_parser.y"
6453      {
6454    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6455   }
# Line 6479 | Line 6457 | yyreduce:
6457  
6458    case 553:
6459   /* Line 1813 of yacc.c  */
6460 < #line 2840 "conf_parser.y"
6460 > #line 2818 "conf_parser.y"
6461      {
6462    ConfigFileEntry.oper_only_umodes = 0;
6463   }
# Line 6487 | Line 6465 | yyreduce:
6465  
6466    case 557:
6467   /* Line 1813 of yacc.c  */
6468 < #line 2846 "conf_parser.y"
6468 > #line 2824 "conf_parser.y"
6469      {
6470    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6471   }
# Line 6495 | Line 6473 | yyreduce:
6473  
6474    case 558:
6475   /* Line 1813 of yacc.c  */
6476 < #line 2849 "conf_parser.y"
6476 > #line 2827 "conf_parser.y"
6477      {
6478    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6479   }
# Line 6503 | Line 6481 | yyreduce:
6481  
6482    case 559:
6483   /* Line 1813 of yacc.c  */
6484 < #line 2852 "conf_parser.y"
6484 > #line 2830 "conf_parser.y"
6485      {
6486    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6487   }
# Line 6511 | Line 6489 | yyreduce:
6489  
6490    case 560:
6491   /* Line 1813 of yacc.c  */
6492 < #line 2855 "conf_parser.y"
6492 > #line 2833 "conf_parser.y"
6493      {
6494    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6495   }
# Line 6519 | Line 6497 | yyreduce:
6497  
6498    case 561:
6499   /* Line 1813 of yacc.c  */
6500 < #line 2858 "conf_parser.y"
6500 > #line 2836 "conf_parser.y"
6501      {
6502    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6503   }
# Line 6527 | Line 6505 | yyreduce:
6505  
6506    case 562:
6507   /* Line 1813 of yacc.c  */
6508 < #line 2861 "conf_parser.y"
6508 > #line 2839 "conf_parser.y"
6509      {
6510    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6511   }
# Line 6535 | Line 6513 | yyreduce:
6513  
6514    case 563:
6515   /* Line 1813 of yacc.c  */
6516 < #line 2864 "conf_parser.y"
6516 > #line 2842 "conf_parser.y"
6517      {
6518    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6519   }
# Line 6543 | Line 6521 | yyreduce:
6521  
6522    case 564:
6523   /* Line 1813 of yacc.c  */
6524 < #line 2867 "conf_parser.y"
6524 > #line 2845 "conf_parser.y"
6525      {
6526    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6527   }
# Line 6551 | Line 6529 | yyreduce:
6529  
6530    case 565:
6531   /* Line 1813 of yacc.c  */
6532 < #line 2870 "conf_parser.y"
6532 > #line 2848 "conf_parser.y"
6533      {
6534    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6535   }
# Line 6559 | Line 6537 | yyreduce:
6537  
6538    case 566:
6539   /* Line 1813 of yacc.c  */
6540 < #line 2873 "conf_parser.y"
6540 > #line 2851 "conf_parser.y"
6541      {
6542    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6543   }
# Line 6567 | Line 6545 | yyreduce:
6545  
6546    case 567:
6547   /* Line 1813 of yacc.c  */
6548 < #line 2876 "conf_parser.y"
6548 > #line 2854 "conf_parser.y"
6549      {
6550    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6551   }
# Line 6575 | Line 6553 | yyreduce:
6553  
6554    case 568:
6555   /* Line 1813 of yacc.c  */
6556 < #line 2879 "conf_parser.y"
6556 > #line 2857 "conf_parser.y"
6557      {
6558    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6559   }
# Line 6583 | Line 6561 | yyreduce:
6561  
6562    case 569:
6563   /* Line 1813 of yacc.c  */
6564 < #line 2882 "conf_parser.y"
6564 > #line 2860 "conf_parser.y"
6565      {
6566    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6567   }
# Line 6591 | Line 6569 | yyreduce:
6569  
6570    case 570:
6571   /* Line 1813 of yacc.c  */
6572 < #line 2885 "conf_parser.y"
6572 > #line 2863 "conf_parser.y"
6573      {
6574    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6575   }
# Line 6599 | Line 6577 | yyreduce:
6577  
6578    case 571:
6579   /* Line 1813 of yacc.c  */
6580 < #line 2888 "conf_parser.y"
6580 > #line 2866 "conf_parser.y"
6581      {
6582    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6583   }
# Line 6607 | Line 6585 | yyreduce:
6585  
6586    case 572:
6587   /* Line 1813 of yacc.c  */
6588 < #line 2891 "conf_parser.y"
6588 > #line 2869 "conf_parser.y"
6589      {
6590    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6591   }
# Line 6615 | Line 6593 | yyreduce:
6593  
6594    case 573:
6595   /* Line 1813 of yacc.c  */
6596 < #line 2894 "conf_parser.y"
6596 > #line 2872 "conf_parser.y"
6597      {
6598    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6599   }
# Line 6623 | Line 6601 | yyreduce:
6601  
6602    case 574:
6603   /* Line 1813 of yacc.c  */
6604 < #line 2897 "conf_parser.y"
6604 > #line 2875 "conf_parser.y"
6605      {
6606    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6607   }
# Line 6631 | Line 6609 | yyreduce:
6609  
6610    case 575:
6611   /* Line 1813 of yacc.c  */
6612 < #line 2900 "conf_parser.y"
6612 > #line 2878 "conf_parser.y"
6613      {
6614    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6615   }
# Line 6639 | Line 6617 | yyreduce:
6617  
6618    case 576:
6619   /* Line 1813 of yacc.c  */
6620 < #line 2903 "conf_parser.y"
6620 > #line 2881 "conf_parser.y"
6621      {
6622    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6623   }
# Line 6647 | Line 6625 | yyreduce:
6625  
6626    case 577:
6627   /* Line 1813 of yacc.c  */
6628 < #line 2908 "conf_parser.y"
6628 > #line 2886 "conf_parser.y"
6629      {
6630    ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6631   }
# Line 6655 | Line 6633 | yyreduce:
6633  
6634    case 578:
6635   /* Line 1813 of yacc.c  */
6636 < #line 2913 "conf_parser.y"
6636 > #line 2891 "conf_parser.y"
6637      {
6638    ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6639   }
# Line 6663 | Line 6641 | yyreduce:
6641  
6642    case 579:
6643   /* Line 1813 of yacc.c  */
6644 < #line 2918 "conf_parser.y"
6644 > #line 2896 "conf_parser.y"
6645      {
6646    ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6647   }
# Line 6671 | Line 6649 | yyreduce:
6649  
6650    case 598:
6651   /* Line 1813 of yacc.c  */
6652 < #line 2941 "conf_parser.y"
6652 > #line 2919 "conf_parser.y"
6653      {
6654    ConfigChannel.disable_fake_channels = yylval.number;
6655   }
# Line 6679 | Line 6657 | yyreduce:
6657  
6658    case 599:
6659   /* Line 1813 of yacc.c  */
6660 < #line 2946 "conf_parser.y"
6660 > #line 2924 "conf_parser.y"
6661      {
6662    ConfigChannel.restrict_channels = yylval.number;
6663   }
# Line 6687 | Line 6665 | yyreduce:
6665  
6666    case 600:
6667   /* Line 1813 of yacc.c  */
6668 < #line 2951 "conf_parser.y"
6668 > #line 2929 "conf_parser.y"
6669      {
6670    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6671   }
# Line 6695 | Line 6673 | yyreduce:
6673  
6674    case 601:
6675   /* Line 1813 of yacc.c  */
6676 < #line 2956 "conf_parser.y"
6676 > #line 2934 "conf_parser.y"
6677      {
6678    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6679   }
# Line 6703 | Line 6681 | yyreduce:
6681  
6682    case 602:
6683   /* Line 1813 of yacc.c  */
6684 < #line 2961 "conf_parser.y"
6684 > #line 2939 "conf_parser.y"
6685      {
6686    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6687   }
# Line 6711 | Line 6689 | yyreduce:
6689  
6690    case 603:
6691   /* Line 1813 of yacc.c  */
6692 < #line 2966 "conf_parser.y"
6692 > #line 2944 "conf_parser.y"
6693      {
6694    ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6695   }
# Line 6719 | Line 6697 | yyreduce:
6697  
6698    case 604:
6699   /* Line 1813 of yacc.c  */
6700 < #line 2971 "conf_parser.y"
6700 > #line 2949 "conf_parser.y"
6701      {
6702    ConfigChannel.quiet_on_ban = yylval.number;
6703   }
# Line 6727 | Line 6705 | yyreduce:
6705  
6706    case 605:
6707   /* Line 1813 of yacc.c  */
6708 < #line 2976 "conf_parser.y"
6708 > #line 2954 "conf_parser.y"
6709      {
6710    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6711   }
# Line 6735 | Line 6713 | yyreduce:
6713  
6714    case 606:
6715   /* Line 1813 of yacc.c  */
6716 < #line 2981 "conf_parser.y"
6716 > #line 2959 "conf_parser.y"
6717      {
6718    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6719   }
# Line 6743 | Line 6721 | yyreduce:
6721  
6722    case 607:
6723   /* Line 1813 of yacc.c  */
6724 < #line 2986 "conf_parser.y"
6724 > #line 2964 "conf_parser.y"
6725      {
6726    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6727   }
# Line 6751 | Line 6729 | yyreduce:
6729  
6730    case 608:
6731   /* Line 1813 of yacc.c  */
6732 < #line 2991 "conf_parser.y"
6732 > #line 2969 "conf_parser.y"
6733      {
6734    ConfigChannel.no_create_on_split = yylval.number;
6735   }
# Line 6759 | Line 6737 | yyreduce:
6737  
6738    case 609:
6739   /* Line 1813 of yacc.c  */
6740 < #line 2996 "conf_parser.y"
6740 > #line 2974 "conf_parser.y"
6741      {
6742    ConfigChannel.no_join_on_split = yylval.number;
6743   }
# Line 6767 | Line 6745 | yyreduce:
6745  
6746    case 610:
6747   /* Line 1813 of yacc.c  */
6748 < #line 3001 "conf_parser.y"
6748 > #line 2979 "conf_parser.y"
6749      {
6750    GlobalSetOptions.joinfloodcount = yylval.number;
6751   }
# Line 6775 | Line 6753 | yyreduce:
6753  
6754    case 611:
6755   /* Line 1813 of yacc.c  */
6756 < #line 3006 "conf_parser.y"
6756 > #line 2984 "conf_parser.y"
6757      {
6758    GlobalSetOptions.joinfloodtime = yylval.number;
6759   }
# Line 6783 | Line 6761 | yyreduce:
6761  
6762    case 622:
6763   /* Line 1813 of yacc.c  */
6764 < #line 3024 "conf_parser.y"
6764 > #line 3002 "conf_parser.y"
6765      {
6766    if (conf_parser_ctx.pass == 2)
6767      ConfigServerHide.flatten_links = yylval.number;
# Line 6792 | Line 6770 | yyreduce:
6770  
6771    case 623:
6772   /* Line 1813 of yacc.c  */
6773 < #line 3030 "conf_parser.y"
6773 > #line 3008 "conf_parser.y"
6774      {
6775    if (conf_parser_ctx.pass == 2)
6776      ConfigServerHide.hide_servers = yylval.number;
# Line 6801 | Line 6779 | yyreduce:
6779  
6780    case 624:
6781   /* Line 1813 of yacc.c  */
6782 < #line 3036 "conf_parser.y"
6782 > #line 3014 "conf_parser.y"
6783      {
6784    if (conf_parser_ctx.pass == 2)
6785    {
# Line 6813 | Line 6791 | yyreduce:
6791  
6792    case 625:
6793   /* Line 1813 of yacc.c  */
6794 < #line 3045 "conf_parser.y"
6794 > #line 3023 "conf_parser.y"
6795      {
6796    if (conf_parser_ctx.pass == 2)
6797    {
# Line 6830 | Line 6808 | yyreduce:
6808  
6809    case 626:
6810   /* Line 1813 of yacc.c  */
6811 < #line 3059 "conf_parser.y"
6811 > #line 3037 "conf_parser.y"
6812      {
6813    if (conf_parser_ctx.pass == 2)
6814      ConfigServerHide.hidden = yylval.number;
# Line 6839 | Line 6817 | yyreduce:
6817  
6818    case 627:
6819   /* Line 1813 of yacc.c  */
6820 < #line 3065 "conf_parser.y"
6820 > #line 3043 "conf_parser.y"
6821      {
6822    if (conf_parser_ctx.pass == 2)
6823      ConfigServerHide.hide_server_ips = yylval.number;
# Line 6848 | Line 6826 | yyreduce:
6826  
6827  
6828   /* Line 1813 of yacc.c  */
6829 < #line 6852 "conf_parser.c"
6829 > #line 6830 "conf_parser.c"
6830        default: break;
6831      }
6832    /* User semantic actions sometimes alter yychar, and that requires

Diff Legend

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