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/branches/8.2.x/src/conf_parser.c (file contents):
Revision 3377 by michael, Thu Apr 24 16:15:51 2014 UTC vs.
Revision 3474 by michael, Sun May 4 15:45:10 2014 UTC

# Line 103 | Line 103 | int yylex(void);
103  
104   static struct
105   {
106 <  struct {
106 >  struct
107 >  {
108      dlink_list list;
109    } mask,
110      leaf,
111      hub;
112  
113 <  struct {
113 >  struct
114 >  {
115      char buf[IRCD_BUFSIZE];
116    } name,
117      user,
# Line 123 | Line 125 | static struct
125      spass,
126      class;
127  
128 <  struct {
128 >  struct
129 >  {
130      unsigned int value;
131    } flags,
132      modes,
# Line 177 | Line 180 | reset_block_state(void)
180   }
181  
182  
183 < #line 181 "conf_parser.c" /* yacc.c:339  */
183 > #line 184 "conf_parser.c" /* yacc.c:339  */
184  
185   # ifndef YY_NULLPTR
186   #  if defined __cplusplus && 201103L <= __cplusplus
# Line 434 | Line 437 | extern int yydebug;
437      USER = 477,
438      VHOST = 478,
439      VHOST6 = 479,
440 <    WARN_NO_NLINE = 480,
440 >    WARN_NO_CONNECT_BLOCK = 480,
441      XLINE = 481
442    };
443   #endif
# Line 661 | Line 664 | extern int yydebug;
664   #define USER 477
665   #define VHOST 478
666   #define VHOST6 479
667 < #define WARN_NO_NLINE 480
667 > #define WARN_NO_CONNECT_BLOCK 480
668   #define XLINE 481
669  
670   /* Value type.  */
# Line 669 | Line 672 | extern int yydebug;
672   typedef union YYSTYPE YYSTYPE;
673   union YYSTYPE
674   {
675 < #line 143 "conf_parser.y" /* yacc.c:355  */
675 > #line 146 "conf_parser.y" /* yacc.c:355  */
676  
677    int number;
678    char *string;
679  
680 < #line 678 "conf_parser.c" /* yacc.c:355  */
680 > #line 681 "conf_parser.c" /* yacc.c:355  */
681   };
682   # define YYSTYPE_IS_TRIVIAL 1
683   # define YYSTYPE_IS_DECLARED 1
# Line 689 | Line 692 | int yyparse (void);
692  
693   /* Copy the second part of user declarations.  */
694  
695 < #line 693 "conf_parser.c" /* yacc.c:358  */
695 > #line 696 "conf_parser.c" /* yacc.c:358  */
696  
697   #ifdef short
698   # undef short
# Line 1009 | Line 1012 | static const yytype_uint8 yytranslate[]
1012    /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1013   static const yytype_uint16 yyrline[] =
1014   {
1015 <       0,   373,   373,   374,   377,   378,   379,   380,   381,   382,
1016 <     383,   384,   385,   386,   387,   388,   389,   390,   391,   392,
1017 <     393,   394,   395,   396,   397,   398,   399,   403,   403,   404,
1018 <     408,   412,   416,   420,   424,   428,   432,   438,   438,   439,
1019 <     440,   441,   442,   449,   452,   452,   453,   453,   453,   455,
1020 <     461,   468,   470,   470,   471,   471,   472,   472,   473,   473,
1021 <     474,   474,   475,   475,   476,   476,   477,   477,   478,   478,
1022 <     479,   480,   483,   484,   486,   486,   487,   493,   501,   501,
1023 <     502,   508,   516,   558,   616,   644,   652,   667,   682,   691,
1024 <     705,   714,   742,   772,   797,   819,   841,   850,   852,   852,
1025 <     853,   853,   854,   854,   856,   865,   874,   887,   886,   904,
1026 <     904,   905,   905,   905,   907,   913,   922,   923,   923,   925,
1027 <     925,   926,   928,   935,   935,   948,   949,   951,   951,   952,
1028 <     952,   954,   962,   965,   971,   970,   976,   976,   977,   981,
1029 <     985,   989,   993,   997,  1001,  1005,  1009,  1020,  1019,  1099,
1030 <    1099,  1100,  1100,  1100,  1101,  1101,  1101,  1102,  1102,  1103,
1031 <    1104,  1104,  1106,  1112,  1118,  1124,  1135,  1141,  1147,  1158,
1032 <    1165,  1164,  1170,  1170,  1171,  1175,  1179,  1183,  1187,  1191,
1033 <    1195,  1199,  1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,
1034 <    1235,  1239,  1243,  1247,  1251,  1258,  1257,  1263,  1263,  1264,
1035 <    1268,  1272,  1276,  1280,  1284,  1288,  1292,  1296,  1300,  1304,
1036 <    1308,  1312,  1316,  1320,  1324,  1328,  1332,  1336,  1340,  1344,
1037 <    1348,  1352,  1356,  1367,  1366,  1427,  1427,  1428,  1429,  1429,
1038 <    1430,  1431,  1432,  1433,  1434,  1435,  1436,  1437,  1438,  1438,
1039 <    1439,  1440,  1441,  1442,  1444,  1450,  1456,  1462,  1468,  1474,
1040 <    1480,  1486,  1492,  1498,  1505,  1511,  1517,  1523,  1532,  1542,
1041 <    1541,  1547,  1547,  1548,  1552,  1563,  1562,  1569,  1568,  1573,
1042 <    1573,  1574,  1578,  1582,  1588,  1588,  1589,  1589,  1589,  1589,
1043 <    1589,  1591,  1591,  1593,  1593,  1595,  1609,  1629,  1635,  1645,
1044 <    1644,  1686,  1686,  1687,  1687,  1687,  1687,  1688,  1688,  1688,
1045 <    1689,  1689,  1691,  1697,  1703,  1709,  1721,  1720,  1726,  1726,
1015 >       0,   376,   376,   377,   380,   381,   382,   383,   384,   385,
1016 >     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
1017 >     396,   397,   398,   399,   400,   401,   402,   406,   406,   407,
1018 >     408,   409,   410,   411,   412,   413,   414,   417,   417,   418,
1019 >     419,   420,   421,   428,   431,   431,   432,   432,   432,   434,
1020 >     440,   447,   449,   449,   450,   451,   452,   453,   454,   455,
1021 >     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1022 >     466,   467,   470,   471,   473,   473,   474,   480,   488,   488,
1023 >     489,   495,   503,   545,   603,   631,   639,   654,   669,   678,
1024 >     692,   701,   729,   759,   784,   806,   828,   837,   839,   839,
1025 >     840,   841,   842,   843,   845,   854,   863,   876,   875,   893,
1026 >     893,   894,   894,   894,   896,   902,   911,   912,   912,   914,
1027 >     914,   915,   917,   924,   924,   937,   938,   940,   940,   941,
1028 >     941,   943,   951,   954,   960,   959,   965,   965,   966,   970,
1029 >     974,   978,   982,   986,   990,   994,   998,  1009,  1008,  1088,
1030 >    1088,  1089,  1090,  1091,  1092,  1093,  1094,  1095,  1096,  1097,
1031 >    1098,  1099,  1101,  1107,  1113,  1119,  1130,  1136,  1142,  1153,
1032 >    1160,  1159,  1165,  1165,  1166,  1170,  1174,  1178,  1182,  1186,
1033 >    1190,  1194,  1198,  1202,  1206,  1210,  1214,  1218,  1222,  1226,
1034 >    1230,  1234,  1238,  1242,  1246,  1253,  1252,  1258,  1258,  1259,
1035 >    1263,  1267,  1271,  1275,  1279,  1283,  1287,  1291,  1295,  1299,
1036 >    1303,  1307,  1311,  1315,  1319,  1323,  1327,  1331,  1335,  1339,
1037 >    1343,  1347,  1351,  1362,  1361,  1422,  1422,  1423,  1424,  1425,
1038 >    1426,  1427,  1428,  1429,  1430,  1431,  1432,  1433,  1434,  1434,
1039 >    1435,  1436,  1437,  1438,  1440,  1446,  1452,  1458,  1464,  1470,
1040 >    1476,  1482,  1488,  1494,  1501,  1507,  1513,  1519,  1528,  1538,
1041 >    1537,  1543,  1543,  1544,  1548,  1559,  1558,  1565,  1564,  1569,
1042 >    1569,  1570,  1574,  1578,  1584,  1584,  1585,  1585,  1585,  1585,
1043 >    1585,  1587,  1587,  1589,  1589,  1591,  1605,  1623,  1629,  1639,
1044 >    1638,  1680,  1680,  1681,  1682,  1683,  1684,  1685,  1686,  1687,
1045 >    1688,  1689,  1691,  1697,  1703,  1709,  1721,  1720,  1726,  1726,
1046      1727,  1731,  1735,  1739,  1743,  1747,  1751,  1755,  1759,  1763,
1047      1769,  1783,  1792,  1806,  1805,  1820,  1820,  1821,  1821,  1821,
1048      1821,  1823,  1829,  1835,  1845,  1847,  1847,  1848,  1848,  1850,
# Line 1048 | Line 1051 | static const yytype_uint16 yyrline[] =
1051      1949,  1953,  1957,  1961,  1971,  1970,  1991,  1991,  1992,  1992,
1052      1992,  1994,  2001,  2000,  2006,  2006,  2007,  2011,  2015,  2019,
1053      2023,  2027,  2031,  2035,  2039,  2043,  2053,  2052,  2124,  2124,
1054 <    2125,  2125,  2125,  2126,  2126,  2127,  2128,  2128,  2128,  2129,
1055 <    2129,  2129,  2130,  2130,  2131,  2133,  2139,  2145,  2151,  2164,
1056 <    2177,  2183,  2189,  2193,  2202,  2201,  2206,  2206,  2207,  2211,
1057 <    2217,  2228,  2234,  2240,  2246,  2262,  2261,  2287,  2287,  2288,
1058 <    2288,  2288,  2290,  2310,  2320,  2319,  2346,  2346,  2347,  2347,
1059 <    2347,  2349,  2355,  2364,  2366,  2366,  2367,  2367,  2369,  2387,
1060 <    2386,  2409,  2409,  2410,  2410,  2410,  2412,  2418,  2427,  2430,
1061 <    2430,  2431,  2431,  2432,  2432,  2433,  2433,  2434,  2434,  2435,
1062 <    2435,  2436,  2437,  2438,  2438,  2439,  2439,  2440,  2440,  2441,
1063 <    2441,  2442,  2443,  2443,  2444,  2444,  2445,  2445,  2446,  2446,
1064 <    2447,  2447,  2448,  2448,  2449,  2449,  2450,  2450,  2451,  2452,
1065 <    2453,  2453,  2454,  2454,  2455,  2456,  2457,  2458,  2458,  2459,
1066 <    2460,  2463,  2468,  2474,  2480,  2486,  2492,  2497,  2502,  2507,
1067 <    2512,  2517,  2522,  2527,  2532,  2537,  2542,  2547,  2552,  2557,
1068 <    2563,  2574,  2579,  2584,  2589,  2594,  2599,  2604,  2607,  2612,
1069 <    2615,  2620,  2625,  2630,  2635,  2640,  2645,  2650,  2655,  2660,
1070 <    2665,  2670,  2675,  2684,  2693,  2698,  2703,  2709,  2708,  2713,
1071 <    2713,  2714,  2717,  2720,  2723,  2726,  2729,  2732,  2735,  2738,
1072 <    2741,  2744,  2747,  2750,  2753,  2756,  2759,  2762,  2765,  2768,
1073 <    2771,  2774,  2780,  2779,  2784,  2784,  2785,  2788,  2791,  2794,
1074 <    2797,  2800,  2803,  2806,  2809,  2812,  2815,  2818,  2821,  2824,
1075 <    2827,  2830,  2833,  2836,  2839,  2842,  2845,  2850,  2855,  2860,
1076 <    2869,  2872,  2872,  2873,  2874,  2874,  2875,  2875,  2876,  2877,
1077 <    2878,  2879,  2880,  2880,  2881,  2881,  2883,  2888,  2893,  2898,
1078 <    2903,  2908,  2913,  2918,  2923,  2928,  2933,  2938,  2946,  2949,
1079 <    2949,  2950,  2950,  2951,  2952,  2953,  2954,  2954,  2955,  2956,
1080 <    2958,  2964,  2970,  2976,  2982,  2991,  3005,  3011
1054 >    2125,  2126,  2127,  2128,  2129,  2130,  2131,  2132,  2133,  2134,
1055 >    2135,  2136,  2137,  2138,  2139,  2141,  2147,  2153,  2159,  2172,
1056 >    2185,  2191,  2197,  2201,  2210,  2209,  2214,  2214,  2215,  2219,
1057 >    2225,  2236,  2242,  2248,  2254,  2270,  2269,  2295,  2295,  2296,
1058 >    2296,  2296,  2298,  2318,  2328,  2327,  2354,  2354,  2355,  2355,
1059 >    2355,  2357,  2363,  2372,  2374,  2374,  2375,  2375,  2377,  2395,
1060 >    2394,  2417,  2417,  2418,  2418,  2418,  2420,  2426,  2435,  2438,
1061 >    2438,  2439,  2440,  2441,  2442,  2443,  2444,  2445,  2446,  2447,
1062 >    2448,  2449,  2450,  2451,  2452,  2453,  2454,  2455,  2456,  2457,
1063 >    2458,  2459,  2460,  2461,  2462,  2463,  2464,  2465,  2466,  2467,
1064 >    2468,  2469,  2470,  2471,  2472,  2473,  2474,  2475,  2476,  2477,
1065 >    2478,  2479,  2480,  2481,  2482,  2483,  2484,  2485,  2486,  2487,
1066 >    2488,  2491,  2496,  2502,  2508,  2514,  2520,  2525,  2530,  2535,
1067 >    2540,  2545,  2550,  2555,  2560,  2565,  2570,  2575,  2580,  2585,
1068 >    2591,  2602,  2607,  2612,  2617,  2622,  2627,  2632,  2635,  2640,
1069 >    2643,  2648,  2653,  2658,  2663,  2668,  2673,  2678,  2683,  2688,
1070 >    2693,  2698,  2703,  2712,  2721,  2726,  2731,  2737,  2736,  2741,
1071 >    2741,  2742,  2745,  2748,  2751,  2754,  2757,  2760,  2763,  2766,
1072 >    2769,  2772,  2775,  2778,  2781,  2784,  2787,  2790,  2793,  2796,
1073 >    2799,  2802,  2808,  2807,  2812,  2812,  2813,  2816,  2819,  2822,
1074 >    2825,  2828,  2831,  2834,  2837,  2840,  2843,  2846,  2849,  2852,
1075 >    2855,  2858,  2861,  2864,  2867,  2870,  2873,  2878,  2883,  2888,
1076 >    2897,  2900,  2900,  2901,  2902,  2903,  2904,  2905,  2906,  2907,
1077 >    2908,  2909,  2910,  2911,  2912,  2913,  2915,  2920,  2925,  2930,
1078 >    2935,  2940,  2945,  2950,  2955,  2960,  2965,  2970,  2978,  2981,
1079 >    2981,  2982,  2983,  2984,  2985,  2986,  2987,  2988,  2989,  2990,
1080 >    2992,  2998,  3004,  3010,  3016,  3025,  3039,  3045
1081   };
1082   #endif
1083  
# Line 1132 | Line 1135 | static const char *const yytname[] =
1135    "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1136    "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1137    "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1138 <  "WARN_NO_NLINE", "XLINE", "';'", "'}'", "'{'", "'='", "','", "':'",
1139 <  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1140 <  "sizespec", "modules_entry", "modules_items", "modules_item",
1141 <  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1142 <  "serverinfo_item", "serverinfo_ssl_client_method",
1138 >  "WARN_NO_CONNECT_BLOCK", "XLINE", "';'", "'}'", "'{'", "'='", "','",
1139 >  "':'", "$accept", "conf", "conf_item", "timespec_", "timespec",
1140 >  "sizespec_", "sizespec", "modules_entry", "modules_items",
1141 >  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1142 >  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_client_method",
1143    "serverinfo_ssl_server_method", "client_method_types",
1144    "client_method_type_item", "server_method_types",
1145    "server_method_type_item", "serverinfo_ssl_certificate_file",
# Line 1200 | Line 1203 | static const char *const yytname[] =
1203    "general_max_accept", "general_anti_spam_exit_message_time",
1204    "general_ts_warn_delta", "general_ts_max_delta",
1205    "general_havent_read_conf", "general_invisible_on_connect",
1206 <  "general_warn_no_nline", "general_stats_e_disabled",
1206 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1207    "general_stats_o_oper_only", "general_stats_P_oper_only",
1208    "general_stats_u_oper_only", "general_stats_k_oper_only",
1209    "general_stats_i_oper_only", "general_pace_wait",
# Line 2821 | Line 2824 | yyreduce:
2824    switch (yyn)
2825      {
2826          case 27:
2827 < #line 403 "conf_parser.y" /* yacc.c:1646  */
2827 > #line 406 "conf_parser.y" /* yacc.c:1646  */
2828      { (yyval.number) = 0; }
2829 < #line 2827 "conf_parser.c" /* yacc.c:1646  */
2829 > #line 2830 "conf_parser.c" /* yacc.c:1646  */
2830      break;
2831  
2832    case 29:
2833 < #line 405 "conf_parser.y" /* yacc.c:1646  */
2834 <    {
2835 <                        (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number);
2833 <                }
2834 < #line 2835 "conf_parser.c" /* yacc.c:1646  */
2833 > #line 407 "conf_parser.y" /* yacc.c:1646  */
2834 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2835 > #line 2836 "conf_parser.c" /* yacc.c:1646  */
2836      break;
2837  
2838    case 30:
2839 < #line 409 "conf_parser.y" /* yacc.c:1646  */
2840 <    {
2841 <                        (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number);
2841 <                }
2842 < #line 2843 "conf_parser.c" /* yacc.c:1646  */
2839 > #line 408 "conf_parser.y" /* yacc.c:1646  */
2840 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2841 > #line 2842 "conf_parser.c" /* yacc.c:1646  */
2842      break;
2843  
2844    case 31:
2845 < #line 413 "conf_parser.y" /* yacc.c:1646  */
2846 <    {
2847 <                        (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number);
2849 <                }
2850 < #line 2851 "conf_parser.c" /* yacc.c:1646  */
2845 > #line 409 "conf_parser.y" /* yacc.c:1646  */
2846 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2847 > #line 2848 "conf_parser.c" /* yacc.c:1646  */
2848      break;
2849  
2850    case 32:
2851 < #line 417 "conf_parser.y" /* yacc.c:1646  */
2852 <    {
2853 <                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number);
2857 <                }
2858 < #line 2859 "conf_parser.c" /* yacc.c:1646  */
2851 > #line 410 "conf_parser.y" /* yacc.c:1646  */
2852 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2853 > #line 2854 "conf_parser.c" /* yacc.c:1646  */
2854      break;
2855  
2856    case 33:
2857 < #line 421 "conf_parser.y" /* yacc.c:1646  */
2858 <    {
2859 <                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number);
2865 <                }
2866 < #line 2867 "conf_parser.c" /* yacc.c:1646  */
2857 > #line 411 "conf_parser.y" /* yacc.c:1646  */
2858 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2859 > #line 2860 "conf_parser.c" /* yacc.c:1646  */
2860      break;
2861  
2862    case 34:
2863 < #line 425 "conf_parser.y" /* yacc.c:1646  */
2864 <    {
2865 <                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number);
2873 <                }
2874 < #line 2875 "conf_parser.c" /* yacc.c:1646  */
2863 > #line 412 "conf_parser.y" /* yacc.c:1646  */
2864 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2865 > #line 2866 "conf_parser.c" /* yacc.c:1646  */
2866      break;
2867  
2868    case 35:
2869 < #line 429 "conf_parser.y" /* yacc.c:1646  */
2870 <    {
2871 <                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number);
2881 <                }
2882 < #line 2883 "conf_parser.c" /* yacc.c:1646  */
2869 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2870 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2871 > #line 2872 "conf_parser.c" /* yacc.c:1646  */
2872      break;
2873  
2874    case 36:
2875 < #line 433 "conf_parser.y" /* yacc.c:1646  */
2876 <    {
2877 <                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number);
2889 <                }
2890 < #line 2891 "conf_parser.c" /* yacc.c:1646  */
2875 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2876 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2877 > #line 2878 "conf_parser.c" /* yacc.c:1646  */
2878      break;
2879  
2880    case 37:
2881 < #line 438 "conf_parser.y" /* yacc.c:1646  */
2881 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2882      { (yyval.number) = 0; }
2883 < #line 2897 "conf_parser.c" /* yacc.c:1646  */
2883 > #line 2884 "conf_parser.c" /* yacc.c:1646  */
2884      break;
2885  
2886    case 39:
2887 < #line 439 "conf_parser.y" /* yacc.c:1646  */
2887 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2888      { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2889 < #line 2903 "conf_parser.c" /* yacc.c:1646  */
2889 > #line 2890 "conf_parser.c" /* yacc.c:1646  */
2890      break;
2891  
2892    case 40:
2893 < #line 440 "conf_parser.y" /* yacc.c:1646  */
2893 > #line 419 "conf_parser.y" /* yacc.c:1646  */
2894      { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2895 < #line 2909 "conf_parser.c" /* yacc.c:1646  */
2895 > #line 2896 "conf_parser.c" /* yacc.c:1646  */
2896      break;
2897  
2898    case 41:
2899 < #line 441 "conf_parser.y" /* yacc.c:1646  */
2899 > #line 420 "conf_parser.y" /* yacc.c:1646  */
2900      { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2901 < #line 2915 "conf_parser.c" /* yacc.c:1646  */
2901 > #line 2902 "conf_parser.c" /* yacc.c:1646  */
2902      break;
2903  
2904    case 42:
2905 < #line 442 "conf_parser.y" /* yacc.c:1646  */
2905 > #line 421 "conf_parser.y" /* yacc.c:1646  */
2906      { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2907 < #line 2921 "conf_parser.c" /* yacc.c:1646  */
2907 > #line 2908 "conf_parser.c" /* yacc.c:1646  */
2908      break;
2909  
2910    case 49:
2911 < #line 456 "conf_parser.y" /* yacc.c:1646  */
2911 > #line 435 "conf_parser.y" /* yacc.c:1646  */
2912      {
2913    if (conf_parser_ctx.pass == 2)
2914      add_conf_module(libio_basename(yylval.string));
2915   }
2916 < #line 2930 "conf_parser.c" /* yacc.c:1646  */
2916 > #line 2917 "conf_parser.c" /* yacc.c:1646  */
2917      break;
2918  
2919    case 50:
2920 < #line 462 "conf_parser.y" /* yacc.c:1646  */
2920 > #line 441 "conf_parser.y" /* yacc.c:1646  */
2921      {
2922    if (conf_parser_ctx.pass == 2)
2923      mod_add_path(yylval.string);
2924   }
2925 < #line 2939 "conf_parser.c" /* yacc.c:1646  */
2925 > #line 2926 "conf_parser.c" /* yacc.c:1646  */
2926      break;
2927  
2928    case 76:
2929 < #line 488 "conf_parser.y" /* yacc.c:1646  */
2929 > #line 475 "conf_parser.y" /* yacc.c:1646  */
2930      {
2931   #ifdef HAVE_LIBCRYPTO
2932    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2933      SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
2934   #endif
2935   }
2936 < #line 2950 "conf_parser.c" /* yacc.c:1646  */
2936 > #line 2937 "conf_parser.c" /* yacc.c:1646  */
2937      break;
2938  
2939    case 77:
2940 < #line 494 "conf_parser.y" /* yacc.c:1646  */
2940 > #line 481 "conf_parser.y" /* yacc.c:1646  */
2941      {
2942   #ifdef HAVE_LIBCRYPTO
2943    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2944      SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
2945   #endif
2946   }
2947 < #line 2961 "conf_parser.c" /* yacc.c:1646  */
2947 > #line 2948 "conf_parser.c" /* yacc.c:1646  */
2948      break;
2949  
2950    case 80:
2951 < #line 503 "conf_parser.y" /* yacc.c:1646  */
2951 > #line 490 "conf_parser.y" /* yacc.c:1646  */
2952      {
2953   #ifdef HAVE_LIBCRYPTO
2954    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2955      SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
2956   #endif
2957   }
2958 < #line 2972 "conf_parser.c" /* yacc.c:1646  */
2958 > #line 2959 "conf_parser.c" /* yacc.c:1646  */
2959      break;
2960  
2961    case 81:
2962 < #line 509 "conf_parser.y" /* yacc.c:1646  */
2962 > #line 496 "conf_parser.y" /* yacc.c:1646  */
2963      {
2964   #ifdef HAVE_LIBCRYPTO
2965    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2966      SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
2967   #endif
2968   }
2969 < #line 2983 "conf_parser.c" /* yacc.c:1646  */
2969 > #line 2970 "conf_parser.c" /* yacc.c:1646  */
2970      break;
2971  
2972    case 82:
2973 < #line 517 "conf_parser.y" /* yacc.c:1646  */
2973 > #line 504 "conf_parser.y" /* yacc.c:1646  */
2974      {
2975   #ifdef HAVE_LIBCRYPTO
2976    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3024 | Line 3011 | yyreduce:
3011    }
3012   #endif
3013   }
3014 < #line 3028 "conf_parser.c" /* yacc.c:1646  */
3014 > #line 3015 "conf_parser.c" /* yacc.c:1646  */
3015      break;
3016  
3017    case 83:
3018 < #line 559 "conf_parser.y" /* yacc.c:1646  */
3018 > #line 546 "conf_parser.y" /* yacc.c:1646  */
3019      {
3020   #ifdef HAVE_LIBCRYPTO
3021    BIO *file = NULL;
# Line 3085 | Line 3072 | yyreduce:
3072    }
3073   #endif
3074   }
3075 < #line 3089 "conf_parser.c" /* yacc.c:1646  */
3075 > #line 3076 "conf_parser.c" /* yacc.c:1646  */
3076      break;
3077  
3078    case 84:
3079 < #line 617 "conf_parser.y" /* yacc.c:1646  */
3079 > #line 604 "conf_parser.y" /* yacc.c:1646  */
3080      {
3081   /* TBD - XXX: error reporting */
3082   #ifdef HAVE_LIBCRYPTO
# Line 3116 | Line 3103 | yyreduce:
3103    }
3104   #endif
3105   }
3106 < #line 3120 "conf_parser.c" /* yacc.c:1646  */
3106 > #line 3107 "conf_parser.c" /* yacc.c:1646  */
3107      break;
3108  
3109    case 85:
3110 < #line 645 "conf_parser.y" /* yacc.c:1646  */
3110 > #line 632 "conf_parser.y" /* yacc.c:1646  */
3111      {
3112   #ifdef HAVE_LIBCRYPTO
3113    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3114      SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3115   #endif
3116   }
3117 < #line 3131 "conf_parser.c" /* yacc.c:1646  */
3117 > #line 3118 "conf_parser.c" /* yacc.c:1646  */
3118      break;
3119  
3120    case 86:
3121 < #line 653 "conf_parser.y" /* yacc.c:1646  */
3121 > #line 640 "conf_parser.y" /* yacc.c:1646  */
3122      {
3123    /* this isn't rehashable */
3124    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
# Line 3145 | Line 3132 | yyreduce:
3132      }
3133    }
3134   }
3135 < #line 3149 "conf_parser.c" /* yacc.c:1646  */
3135 > #line 3136 "conf_parser.c" /* yacc.c:1646  */
3136      break;
3137  
3138    case 87:
3139 < #line 668 "conf_parser.y" /* yacc.c:1646  */
3139 > #line 655 "conf_parser.y" /* yacc.c:1646  */
3140      {
3141    /* this isn't rehashable */
3142    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
# Line 3163 | Line 3150 | yyreduce:
3150      }
3151    }
3152   }
3153 < #line 3167 "conf_parser.c" /* yacc.c:1646  */
3153 > #line 3154 "conf_parser.c" /* yacc.c:1646  */
3154      break;
3155  
3156    case 88:
3157 < #line 683 "conf_parser.y" /* yacc.c:1646  */
3157 > #line 670 "conf_parser.y" /* yacc.c:1646  */
3158      {
3159    if (conf_parser_ctx.pass == 2)
3160    {
# Line 3175 | Line 3162 | yyreduce:
3162      ServerInfo.description = xstrdup(yylval.string);
3163    }
3164   }
3165 < #line 3179 "conf_parser.c" /* yacc.c:1646  */
3165 > #line 3166 "conf_parser.c" /* yacc.c:1646  */
3166      break;
3167  
3168    case 89:
3169 < #line 692 "conf_parser.y" /* yacc.c:1646  */
3169 > #line 679 "conf_parser.y" /* yacc.c:1646  */
3170      {
3171    if (conf_parser_ctx.pass == 2)
3172    {
3173      char *p;
3174  
3175 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3175 >    if ((p = strchr(yylval.string, ' ')))
3176        p = '\0';
3177  
3178      MyFree(ServerInfo.network_name);
3179      ServerInfo.network_name = xstrdup(yylval.string);
3180    }
3181   }
3182 < #line 3196 "conf_parser.c" /* yacc.c:1646  */
3182 > #line 3183 "conf_parser.c" /* yacc.c:1646  */
3183      break;
3184  
3185    case 90:
3186 < #line 706 "conf_parser.y" /* yacc.c:1646  */
3186 > #line 693 "conf_parser.y" /* yacc.c:1646  */
3187      {
3188    if (conf_parser_ctx.pass != 2)
3189      break;
# Line 3204 | Line 3191 | yyreduce:
3191    MyFree(ServerInfo.network_desc);
3192    ServerInfo.network_desc = xstrdup(yylval.string);
3193   }
3194 < #line 3208 "conf_parser.c" /* yacc.c:1646  */
3194 > #line 3195 "conf_parser.c" /* yacc.c:1646  */
3195      break;
3196  
3197    case 91:
3198 < #line 715 "conf_parser.y" /* yacc.c:1646  */
3198 > #line 702 "conf_parser.y" /* yacc.c:1646  */
3199      {
3200    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3201    {
# Line 3224 | Line 3211 | yyreduce:
3211        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3212      else
3213      {
3214 <      assert(res != NULL);
3214 >      assert(res);
3215  
3216        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3217        ServerInfo.ip.ss.ss_family = res->ai_family;
# Line 3235 | Line 3222 | yyreduce:
3222      }
3223    }
3224   }
3225 < #line 3239 "conf_parser.c" /* yacc.c:1646  */
3225 > #line 3226 "conf_parser.c" /* yacc.c:1646  */
3226      break;
3227  
3228    case 92:
3229 < #line 743 "conf_parser.y" /* yacc.c:1646  */
3229 > #line 730 "conf_parser.y" /* yacc.c:1646  */
3230      {
3231   #ifdef IPV6
3232    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3256 | Line 3243 | yyreduce:
3243        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3244      else
3245      {
3246 <      assert(res != NULL);
3246 >      assert(res);
3247  
3248        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3249        ServerInfo.ip6.ss.ss_family = res->ai_family;
# Line 3268 | Line 3255 | yyreduce:
3255    }
3256   #endif
3257   }
3258 < #line 3272 "conf_parser.c" /* yacc.c:1646  */
3258 > #line 3259 "conf_parser.c" /* yacc.c:1646  */
3259      break;
3260  
3261    case 93:
3262 < #line 773 "conf_parser.y" /* yacc.c:1646  */
3262 > #line 760 "conf_parser.y" /* yacc.c:1646  */
3263      {
3264    if (conf_parser_ctx.pass != 2)
3265      break;
3266  
3267    if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3268    {
3269 <    char buf[IRCD_BUFSIZE];
3269 >    char buf[IRCD_BUFSIZE] = "";
3270  
3271      snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3272      conf_error_report(buf);
# Line 3287 | Line 3274 | yyreduce:
3274    }
3275    else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3276    {
3277 <    char buf[IRCD_BUFSIZE];
3277 >    char buf[IRCD_BUFSIZE] = "";
3278  
3279      snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3280      conf_error_report(buf);
# Line 3296 | Line 3283 | yyreduce:
3283    else
3284      ServerInfo.max_clients = (yyvsp[-1].number);
3285   }
3286 < #line 3300 "conf_parser.c" /* yacc.c:1646  */
3286 > #line 3287 "conf_parser.c" /* yacc.c:1646  */
3287      break;
3288  
3289    case 94:
3290 < #line 798 "conf_parser.y" /* yacc.c:1646  */
3290 > #line 785 "conf_parser.y" /* yacc.c:1646  */
3291      {
3292    if (conf_parser_ctx.pass != 2)
3293      break;
# Line 3312 | Line 3299 | yyreduce:
3299    }
3300    else if ((yyvsp[-1].number) > NICKLEN)
3301    {
3302 <    char buf[IRCD_BUFSIZE];
3302 >    char buf[IRCD_BUFSIZE] = "";
3303  
3304      snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3305      conf_error_report(buf);
# Line 3321 | Line 3308 | yyreduce:
3308    else
3309      ServerInfo.max_nick_length = (yyvsp[-1].number);
3310   }
3311 < #line 3325 "conf_parser.c" /* yacc.c:1646  */
3311 > #line 3312 "conf_parser.c" /* yacc.c:1646  */
3312      break;
3313  
3314    case 95:
3315 < #line 820 "conf_parser.y" /* yacc.c:1646  */
3315 > #line 807 "conf_parser.y" /* yacc.c:1646  */
3316      {
3317    if (conf_parser_ctx.pass != 2)
3318      break;
# Line 3337 | Line 3324 | yyreduce:
3324    }
3325    else if ((yyvsp[-1].number) > TOPICLEN)
3326    {
3327 <    char buf[IRCD_BUFSIZE];
3327 >    char buf[IRCD_BUFSIZE] = "";
3328  
3329      snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3330      conf_error_report(buf);
# Line 3346 | Line 3333 | yyreduce:
3333    else
3334      ServerInfo.max_topic_length = (yyvsp[-1].number);
3335   }
3336 < #line 3350 "conf_parser.c" /* yacc.c:1646  */
3336 > #line 3337 "conf_parser.c" /* yacc.c:1646  */
3337      break;
3338  
3339    case 96:
3340 < #line 842 "conf_parser.y" /* yacc.c:1646  */
3340 > #line 829 "conf_parser.y" /* yacc.c:1646  */
3341      {
3342    if (conf_parser_ctx.pass == 2)
3343      ServerInfo.hub = yylval.number;
3344   }
3345 < #line 3359 "conf_parser.c" /* yacc.c:1646  */
3345 > #line 3346 "conf_parser.c" /* yacc.c:1646  */
3346      break;
3347  
3348    case 104:
3349 < #line 857 "conf_parser.y" /* yacc.c:1646  */
3349 > #line 846 "conf_parser.y" /* yacc.c:1646  */
3350      {
3351    if (conf_parser_ctx.pass != 2)
3352      break;
# Line 3367 | Line 3354 | yyreduce:
3354    MyFree(AdminInfo.name);
3355    AdminInfo.name = xstrdup(yylval.string);
3356   }
3357 < #line 3371 "conf_parser.c" /* yacc.c:1646  */
3357 > #line 3358 "conf_parser.c" /* yacc.c:1646  */
3358      break;
3359  
3360    case 105:
3361 < #line 866 "conf_parser.y" /* yacc.c:1646  */
3361 > #line 855 "conf_parser.y" /* yacc.c:1646  */
3362      {
3363    if (conf_parser_ctx.pass != 2)
3364      break;
# Line 3379 | Line 3366 | yyreduce:
3366    MyFree(AdminInfo.email);
3367    AdminInfo.email = xstrdup(yylval.string);
3368   }
3369 < #line 3383 "conf_parser.c" /* yacc.c:1646  */
3369 > #line 3370 "conf_parser.c" /* yacc.c:1646  */
3370      break;
3371  
3372    case 106:
3373 < #line 875 "conf_parser.y" /* yacc.c:1646  */
3373 > #line 864 "conf_parser.y" /* yacc.c:1646  */
3374      {
3375    if (conf_parser_ctx.pass != 2)
3376      break;
# Line 3391 | Line 3378 | yyreduce:
3378    MyFree(AdminInfo.description);
3379    AdminInfo.description = xstrdup(yylval.string);
3380   }
3381 < #line 3395 "conf_parser.c" /* yacc.c:1646  */
3381 > #line 3382 "conf_parser.c" /* yacc.c:1646  */
3382      break;
3383  
3384    case 107:
3385 < #line 887 "conf_parser.y" /* yacc.c:1646  */
3385 > #line 876 "conf_parser.y" /* yacc.c:1646  */
3386      {
3387    if (conf_parser_ctx.pass == 2)
3388      reset_block_state();
3389   }
3390 < #line 3404 "conf_parser.c" /* yacc.c:1646  */
3390 > #line 3391 "conf_parser.c" /* yacc.c:1646  */
3391      break;
3392  
3393    case 108:
3394 < #line 891 "conf_parser.y" /* yacc.c:1646  */
3394 > #line 880 "conf_parser.y" /* yacc.c:1646  */
3395      {
3396    dlink_node *ptr = NULL;
3397  
# Line 3417 | Line 3404 | yyreduce:
3404    DLINK_FOREACH(ptr, block_state.mask.list.head)
3405      motd_add(ptr->data, block_state.file.buf);
3406   }
3407 < #line 3421 "conf_parser.c" /* yacc.c:1646  */
3407 > #line 3408 "conf_parser.c" /* yacc.c:1646  */
3408      break;
3409  
3410    case 114:
3411 < #line 908 "conf_parser.y" /* yacc.c:1646  */
3411 > #line 897 "conf_parser.y" /* yacc.c:1646  */
3412      {
3413    if (conf_parser_ctx.pass == 2)
3414      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3415   }
3416 < #line 3430 "conf_parser.c" /* yacc.c:1646  */
3416 > #line 3417 "conf_parser.c" /* yacc.c:1646  */
3417      break;
3418  
3419    case 115:
3420 < #line 914 "conf_parser.y" /* yacc.c:1646  */
3420 > #line 903 "conf_parser.y" /* yacc.c:1646  */
3421      {
3422    if (conf_parser_ctx.pass == 2)
3423      strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3424   }
3425 < #line 3439 "conf_parser.c" /* yacc.c:1646  */
3425 > #line 3426 "conf_parser.c" /* yacc.c:1646  */
3426      break;
3427  
3428    case 122:
3429 < #line 929 "conf_parser.y" /* yacc.c:1646  */
3429 > #line 918 "conf_parser.y" /* yacc.c:1646  */
3430      {
3431    if (conf_parser_ctx.pass == 2)
3432      ConfigLoggingEntry.use_logging = yylval.number;
3433   }
3434 < #line 3448 "conf_parser.c" /* yacc.c:1646  */
3434 > #line 3435 "conf_parser.c" /* yacc.c:1646  */
3435      break;
3436  
3437    case 123:
3438 < #line 935 "conf_parser.y" /* yacc.c:1646  */
3438 > #line 924 "conf_parser.y" /* yacc.c:1646  */
3439      {
3440    if (conf_parser_ctx.pass == 2)
3441      reset_block_state();
3442   }
3443 < #line 3457 "conf_parser.c" /* yacc.c:1646  */
3443 > #line 3444 "conf_parser.c" /* yacc.c:1646  */
3444      break;
3445  
3446    case 124:
3447 < #line 939 "conf_parser.y" /* yacc.c:1646  */
3447 > #line 928 "conf_parser.y" /* yacc.c:1646  */
3448      {
3449    if (conf_parser_ctx.pass != 2)
3450      break;
# Line 3466 | Line 3453 | yyreduce:
3453      log_set_file(block_state.type.value, block_state.size.value,
3454                   block_state.file.buf);
3455   }
3456 < #line 3470 "conf_parser.c" /* yacc.c:1646  */
3456 > #line 3457 "conf_parser.c" /* yacc.c:1646  */
3457      break;
3458  
3459    case 131:
3460 < #line 955 "conf_parser.y" /* yacc.c:1646  */
3460 > #line 944 "conf_parser.y" /* yacc.c:1646  */
3461      {
3462    if (conf_parser_ctx.pass != 2)
3463      break;
3464  
3465    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3466   }
3467 < #line 3481 "conf_parser.c" /* yacc.c:1646  */
3467 > #line 3468 "conf_parser.c" /* yacc.c:1646  */
3468      break;
3469  
3470    case 132:
3471 < #line 963 "conf_parser.y" /* yacc.c:1646  */
3471 > #line 952 "conf_parser.y" /* yacc.c:1646  */
3472      {
3473    block_state.size.value = (yyvsp[-1].number);
3474   }
3475 < #line 3489 "conf_parser.c" /* yacc.c:1646  */
3475 > #line 3476 "conf_parser.c" /* yacc.c:1646  */
3476      break;
3477  
3478    case 133:
3479 < #line 966 "conf_parser.y" /* yacc.c:1646  */
3479 > #line 955 "conf_parser.y" /* yacc.c:1646  */
3480      {
3481    block_state.size.value = 0;
3482   }
3483 < #line 3497 "conf_parser.c" /* yacc.c:1646  */
3483 > #line 3484 "conf_parser.c" /* yacc.c:1646  */
3484      break;
3485  
3486    case 134:
3487 < #line 971 "conf_parser.y" /* yacc.c:1646  */
3487 > #line 960 "conf_parser.y" /* yacc.c:1646  */
3488      {
3489    if (conf_parser_ctx.pass == 2)
3490      block_state.type.value = 0;
3491   }
3492 < #line 3506 "conf_parser.c" /* yacc.c:1646  */
3492 > #line 3493 "conf_parser.c" /* yacc.c:1646  */
3493      break;
3494  
3495    case 138:
3496 < #line 978 "conf_parser.y" /* yacc.c:1646  */
3496 > #line 967 "conf_parser.y" /* yacc.c:1646  */
3497      {
3498    if (conf_parser_ctx.pass == 2)
3499      block_state.type.value = LOG_TYPE_USER;
3500   }
3501 < #line 3515 "conf_parser.c" /* yacc.c:1646  */
3501 > #line 3502 "conf_parser.c" /* yacc.c:1646  */
3502      break;
3503  
3504    case 139:
3505 < #line 982 "conf_parser.y" /* yacc.c:1646  */
3505 > #line 971 "conf_parser.y" /* yacc.c:1646  */
3506      {
3507    if (conf_parser_ctx.pass == 2)
3508      block_state.type.value = LOG_TYPE_OPER;
3509   }
3510 < #line 3524 "conf_parser.c" /* yacc.c:1646  */
3510 > #line 3511 "conf_parser.c" /* yacc.c:1646  */
3511      break;
3512  
3513    case 140:
3514 < #line 986 "conf_parser.y" /* yacc.c:1646  */
3514 > #line 975 "conf_parser.y" /* yacc.c:1646  */
3515      {
3516    if (conf_parser_ctx.pass == 2)
3517      block_state.type.value = LOG_TYPE_GLINE;
3518   }
3519 < #line 3533 "conf_parser.c" /* yacc.c:1646  */
3519 > #line 3520 "conf_parser.c" /* yacc.c:1646  */
3520      break;
3521  
3522    case 141:
3523 < #line 990 "conf_parser.y" /* yacc.c:1646  */
3523 > #line 979 "conf_parser.y" /* yacc.c:1646  */
3524      {
3525    if (conf_parser_ctx.pass == 2)
3526      block_state.type.value = LOG_TYPE_XLINE;
3527   }
3528 < #line 3542 "conf_parser.c" /* yacc.c:1646  */
3528 > #line 3529 "conf_parser.c" /* yacc.c:1646  */
3529      break;
3530  
3531    case 142:
3532 < #line 994 "conf_parser.y" /* yacc.c:1646  */
3532 > #line 983 "conf_parser.y" /* yacc.c:1646  */
3533      {
3534    if (conf_parser_ctx.pass == 2)
3535      block_state.type.value = LOG_TYPE_RESV;
3536   }
3537 < #line 3551 "conf_parser.c" /* yacc.c:1646  */
3537 > #line 3538 "conf_parser.c" /* yacc.c:1646  */
3538      break;
3539  
3540    case 143:
3541 < #line 998 "conf_parser.y" /* yacc.c:1646  */
3541 > #line 987 "conf_parser.y" /* yacc.c:1646  */
3542      {
3543    if (conf_parser_ctx.pass == 2)
3544      block_state.type.value = LOG_TYPE_DLINE;
3545   }
3546 < #line 3560 "conf_parser.c" /* yacc.c:1646  */
3546 > #line 3547 "conf_parser.c" /* yacc.c:1646  */
3547      break;
3548  
3549    case 144:
3550 < #line 1002 "conf_parser.y" /* yacc.c:1646  */
3550 > #line 991 "conf_parser.y" /* yacc.c:1646  */
3551      {
3552    if (conf_parser_ctx.pass == 2)
3553      block_state.type.value = LOG_TYPE_KLINE;
3554   }
3555 < #line 3569 "conf_parser.c" /* yacc.c:1646  */
3555 > #line 3556 "conf_parser.c" /* yacc.c:1646  */
3556      break;
3557  
3558    case 145:
3559 < #line 1006 "conf_parser.y" /* yacc.c:1646  */
3559 > #line 995 "conf_parser.y" /* yacc.c:1646  */
3560      {
3561    if (conf_parser_ctx.pass == 2)
3562      block_state.type.value = LOG_TYPE_KILL;
3563   }
3564 < #line 3578 "conf_parser.c" /* yacc.c:1646  */
3564 > #line 3565 "conf_parser.c" /* yacc.c:1646  */
3565      break;
3566  
3567    case 146:
3568 < #line 1010 "conf_parser.y" /* yacc.c:1646  */
3568 > #line 999 "conf_parser.y" /* yacc.c:1646  */
3569      {
3570    if (conf_parser_ctx.pass == 2)
3571      block_state.type.value = LOG_TYPE_DEBUG;
3572   }
3573 < #line 3587 "conf_parser.c" /* yacc.c:1646  */
3573 > #line 3574 "conf_parser.c" /* yacc.c:1646  */
3574      break;
3575  
3576    case 147:
3577 < #line 1020 "conf_parser.y" /* yacc.c:1646  */
3577 > #line 1009 "conf_parser.y" /* yacc.c:1646  */
3578      {
3579    if (conf_parser_ctx.pass != 2)
3580      break;
# Line 3595 | Line 3582 | yyreduce:
3582    reset_block_state();
3583    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3584   }
3585 < #line 3599 "conf_parser.c" /* yacc.c:1646  */
3585 > #line 3586 "conf_parser.c" /* yacc.c:1646  */
3586      break;
3587  
3588    case 148:
3589 < #line 1027 "conf_parser.y" /* yacc.c:1646  */
3589 > #line 1016 "conf_parser.y" /* yacc.c:1646  */
3590      {
3591    dlink_node *ptr = NULL;
3592  
# Line 3671 | Line 3658 | yyreduce:
3658   #endif /* HAVE_LIBCRYPTO */
3659    }
3660   }
3661 < #line 3675 "conf_parser.c" /* yacc.c:1646  */
3661 > #line 3662 "conf_parser.c" /* yacc.c:1646  */
3662      break;
3663  
3664    case 162:
3665 < #line 1107 "conf_parser.y" /* yacc.c:1646  */
3665 > #line 1102 "conf_parser.y" /* yacc.c:1646  */
3666      {
3667    if (conf_parser_ctx.pass == 2)
3668      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3669   }
3670 < #line 3684 "conf_parser.c" /* yacc.c:1646  */
3670 > #line 3671 "conf_parser.c" /* yacc.c:1646  */
3671      break;
3672  
3673    case 163:
3674 < #line 1113 "conf_parser.y" /* yacc.c:1646  */
3674 > #line 1108 "conf_parser.y" /* yacc.c:1646  */
3675      {
3676    if (conf_parser_ctx.pass == 2)
3677      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3678   }
3679 < #line 3693 "conf_parser.c" /* yacc.c:1646  */
3679 > #line 3680 "conf_parser.c" /* yacc.c:1646  */
3680      break;
3681  
3682    case 164:
3683 < #line 1119 "conf_parser.y" /* yacc.c:1646  */
3683 > #line 1114 "conf_parser.y" /* yacc.c:1646  */
3684      {
3685    if (conf_parser_ctx.pass == 2)
3686      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3687   }
3688 < #line 3702 "conf_parser.c" /* yacc.c:1646  */
3688 > #line 3689 "conf_parser.c" /* yacc.c:1646  */
3689      break;
3690  
3691    case 165:
3692 < #line 1125 "conf_parser.y" /* yacc.c:1646  */
3692 > #line 1120 "conf_parser.y" /* yacc.c:1646  */
3693      {
3694    if (conf_parser_ctx.pass != 2)
3695      break;
# Line 3712 | Line 3699 | yyreduce:
3699    else
3700      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3701   }
3702 < #line 3716 "conf_parser.c" /* yacc.c:1646  */
3702 > #line 3703 "conf_parser.c" /* yacc.c:1646  */
3703      break;
3704  
3705    case 166:
3706 < #line 1136 "conf_parser.y" /* yacc.c:1646  */
3706 > #line 1131 "conf_parser.y" /* yacc.c:1646  */
3707      {
3708    if (conf_parser_ctx.pass == 2)
3709      strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3710   }
3711 < #line 3725 "conf_parser.c" /* yacc.c:1646  */
3711 > #line 3712 "conf_parser.c" /* yacc.c:1646  */
3712      break;
3713  
3714    case 167:
3715 < #line 1142 "conf_parser.y" /* yacc.c:1646  */
3715 > #line 1137 "conf_parser.y" /* yacc.c:1646  */
3716      {
3717    if (conf_parser_ctx.pass == 2)
3718      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3719   }
3720 < #line 3734 "conf_parser.c" /* yacc.c:1646  */
3720 > #line 3721 "conf_parser.c" /* yacc.c:1646  */
3721      break;
3722  
3723    case 168:
3724 < #line 1148 "conf_parser.y" /* yacc.c:1646  */
3724 > #line 1143 "conf_parser.y" /* yacc.c:1646  */
3725      {
3726    if (conf_parser_ctx.pass != 2)
3727      break;
# Line 3744 | Line 3731 | yyreduce:
3731    else
3732      block_state.flags.value &= ~CONF_FLAGS_SSL;
3733   }
3734 < #line 3748 "conf_parser.c" /* yacc.c:1646  */
3734 > #line 3735 "conf_parser.c" /* yacc.c:1646  */
3735      break;
3736  
3737    case 169:
3738 < #line 1159 "conf_parser.y" /* yacc.c:1646  */
3738 > #line 1154 "conf_parser.y" /* yacc.c:1646  */
3739      {
3740    if (conf_parser_ctx.pass == 2)
3741      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3742   }
3743 < #line 3757 "conf_parser.c" /* yacc.c:1646  */
3743 > #line 3744 "conf_parser.c" /* yacc.c:1646  */
3744      break;
3745  
3746    case 170:
3747 < #line 1165 "conf_parser.y" /* yacc.c:1646  */
3747 > #line 1160 "conf_parser.y" /* yacc.c:1646  */
3748      {
3749    if (conf_parser_ctx.pass == 2)
3750      block_state.modes.value = 0;
3751   }
3752 < #line 3766 "conf_parser.c" /* yacc.c:1646  */
3752 > #line 3753 "conf_parser.c" /* yacc.c:1646  */
3753      break;
3754  
3755    case 174:
3756 < #line 1172 "conf_parser.y" /* yacc.c:1646  */
3756 > #line 1167 "conf_parser.y" /* yacc.c:1646  */
3757      {
3758    if (conf_parser_ctx.pass == 2)
3759      block_state.modes.value |= UMODE_BOTS;
3760   }
3761 < #line 3775 "conf_parser.c" /* yacc.c:1646  */
3761 > #line 3762 "conf_parser.c" /* yacc.c:1646  */
3762      break;
3763  
3764    case 175:
3765 < #line 1176 "conf_parser.y" /* yacc.c:1646  */
3765 > #line 1171 "conf_parser.y" /* yacc.c:1646  */
3766      {
3767    if (conf_parser_ctx.pass == 2)
3768      block_state.modes.value |= UMODE_CCONN;
3769   }
3770 < #line 3784 "conf_parser.c" /* yacc.c:1646  */
3770 > #line 3771 "conf_parser.c" /* yacc.c:1646  */
3771      break;
3772  
3773    case 176:
3774 < #line 1180 "conf_parser.y" /* yacc.c:1646  */
3774 > #line 1175 "conf_parser.y" /* yacc.c:1646  */
3775      {
3776    if (conf_parser_ctx.pass == 2)
3777      block_state.modes.value |= UMODE_DEAF;
3778   }
3779 < #line 3793 "conf_parser.c" /* yacc.c:1646  */
3779 > #line 3780 "conf_parser.c" /* yacc.c:1646  */
3780      break;
3781  
3782    case 177:
3783 < #line 1184 "conf_parser.y" /* yacc.c:1646  */
3783 > #line 1179 "conf_parser.y" /* yacc.c:1646  */
3784      {
3785    if (conf_parser_ctx.pass == 2)
3786      block_state.modes.value |= UMODE_DEBUG;
3787   }
3788 < #line 3802 "conf_parser.c" /* yacc.c:1646  */
3788 > #line 3789 "conf_parser.c" /* yacc.c:1646  */
3789      break;
3790  
3791    case 178:
3792 < #line 1188 "conf_parser.y" /* yacc.c:1646  */
3792 > #line 1183 "conf_parser.y" /* yacc.c:1646  */
3793      {
3794    if (conf_parser_ctx.pass == 2)
3795      block_state.modes.value |= UMODE_FULL;
3796   }
3797 < #line 3811 "conf_parser.c" /* yacc.c:1646  */
3797 > #line 3798 "conf_parser.c" /* yacc.c:1646  */
3798      break;
3799  
3800    case 179:
3801 < #line 1192 "conf_parser.y" /* yacc.c:1646  */
3801 > #line 1187 "conf_parser.y" /* yacc.c:1646  */
3802      {
3803    if (conf_parser_ctx.pass == 2)
3804      block_state.modes.value |= UMODE_HIDDEN;
3805   }
3806 < #line 3820 "conf_parser.c" /* yacc.c:1646  */
3806 > #line 3807 "conf_parser.c" /* yacc.c:1646  */
3807      break;
3808  
3809    case 180:
3810 < #line 1196 "conf_parser.y" /* yacc.c:1646  */
3810 > #line 1191 "conf_parser.y" /* yacc.c:1646  */
3811      {
3812    if (conf_parser_ctx.pass == 2)
3813      block_state.modes.value |= UMODE_SKILL;
3814   }
3815 < #line 3829 "conf_parser.c" /* yacc.c:1646  */
3815 > #line 3816 "conf_parser.c" /* yacc.c:1646  */
3816      break;
3817  
3818    case 181:
3819 < #line 1200 "conf_parser.y" /* yacc.c:1646  */
3819 > #line 1195 "conf_parser.y" /* yacc.c:1646  */
3820      {
3821    if (conf_parser_ctx.pass == 2)
3822      block_state.modes.value |= UMODE_NCHANGE;
3823   }
3824 < #line 3838 "conf_parser.c" /* yacc.c:1646  */
3824 > #line 3825 "conf_parser.c" /* yacc.c:1646  */
3825      break;
3826  
3827    case 182:
3828 < #line 1204 "conf_parser.y" /* yacc.c:1646  */
3828 > #line 1199 "conf_parser.y" /* yacc.c:1646  */
3829      {
3830    if (conf_parser_ctx.pass == 2)
3831      block_state.modes.value |= UMODE_REJ;
3832   }
3833 < #line 3847 "conf_parser.c" /* yacc.c:1646  */
3833 > #line 3834 "conf_parser.c" /* yacc.c:1646  */
3834      break;
3835  
3836    case 183:
3837 < #line 1208 "conf_parser.y" /* yacc.c:1646  */
3837 > #line 1203 "conf_parser.y" /* yacc.c:1646  */
3838      {
3839    if (conf_parser_ctx.pass == 2)
3840      block_state.modes.value |= UMODE_UNAUTH;
3841   }
3842 < #line 3856 "conf_parser.c" /* yacc.c:1646  */
3842 > #line 3843 "conf_parser.c" /* yacc.c:1646  */
3843      break;
3844  
3845    case 184:
3846 < #line 1212 "conf_parser.y" /* yacc.c:1646  */
3846 > #line 1207 "conf_parser.y" /* yacc.c:1646  */
3847      {
3848    if (conf_parser_ctx.pass == 2)
3849      block_state.modes.value |= UMODE_SPY;
3850   }
3851 < #line 3865 "conf_parser.c" /* yacc.c:1646  */
3851 > #line 3852 "conf_parser.c" /* yacc.c:1646  */
3852      break;
3853  
3854    case 185:
3855 < #line 1216 "conf_parser.y" /* yacc.c:1646  */
3855 > #line 1211 "conf_parser.y" /* yacc.c:1646  */
3856      {
3857    if (conf_parser_ctx.pass == 2)
3858      block_state.modes.value |= UMODE_EXTERNAL;
3859   }
3860 < #line 3874 "conf_parser.c" /* yacc.c:1646  */
3860 > #line 3861 "conf_parser.c" /* yacc.c:1646  */
3861      break;
3862  
3863    case 186:
3864 < #line 1220 "conf_parser.y" /* yacc.c:1646  */
3864 > #line 1215 "conf_parser.y" /* yacc.c:1646  */
3865      {
3866    if (conf_parser_ctx.pass == 2)
3867      block_state.modes.value |= UMODE_OPERWALL;
3868   }
3869 < #line 3883 "conf_parser.c" /* yacc.c:1646  */
3869 > #line 3870 "conf_parser.c" /* yacc.c:1646  */
3870      break;
3871  
3872    case 187:
3873 < #line 1224 "conf_parser.y" /* yacc.c:1646  */
3873 > #line 1219 "conf_parser.y" /* yacc.c:1646  */
3874      {
3875    if (conf_parser_ctx.pass == 2)
3876      block_state.modes.value |= UMODE_SERVNOTICE;
3877   }
3878 < #line 3892 "conf_parser.c" /* yacc.c:1646  */
3878 > #line 3879 "conf_parser.c" /* yacc.c:1646  */
3879      break;
3880  
3881    case 188:
3882 < #line 1228 "conf_parser.y" /* yacc.c:1646  */
3882 > #line 1223 "conf_parser.y" /* yacc.c:1646  */
3883      {
3884    if (conf_parser_ctx.pass == 2)
3885      block_state.modes.value |= UMODE_INVISIBLE;
3886   }
3887 < #line 3901 "conf_parser.c" /* yacc.c:1646  */
3887 > #line 3888 "conf_parser.c" /* yacc.c:1646  */
3888      break;
3889  
3890    case 189:
3891 < #line 1232 "conf_parser.y" /* yacc.c:1646  */
3891 > #line 1227 "conf_parser.y" /* yacc.c:1646  */
3892      {
3893    if (conf_parser_ctx.pass == 2)
3894      block_state.modes.value |= UMODE_WALLOP;
3895   }
3896 < #line 3910 "conf_parser.c" /* yacc.c:1646  */
3896 > #line 3897 "conf_parser.c" /* yacc.c:1646  */
3897      break;
3898  
3899    case 190:
3900 < #line 1236 "conf_parser.y" /* yacc.c:1646  */
3900 > #line 1231 "conf_parser.y" /* yacc.c:1646  */
3901      {
3902    if (conf_parser_ctx.pass == 2)
3903      block_state.modes.value |= UMODE_SOFTCALLERID;
3904   }
3905 < #line 3919 "conf_parser.c" /* yacc.c:1646  */
3905 > #line 3906 "conf_parser.c" /* yacc.c:1646  */
3906      break;
3907  
3908    case 191:
3909 < #line 1240 "conf_parser.y" /* yacc.c:1646  */
3909 > #line 1235 "conf_parser.y" /* yacc.c:1646  */
3910      {
3911    if (conf_parser_ctx.pass == 2)
3912      block_state.modes.value |= UMODE_CALLERID;
3913   }
3914 < #line 3928 "conf_parser.c" /* yacc.c:1646  */
3914 > #line 3915 "conf_parser.c" /* yacc.c:1646  */
3915      break;
3916  
3917    case 192:
3918 < #line 1244 "conf_parser.y" /* yacc.c:1646  */
3918 > #line 1239 "conf_parser.y" /* yacc.c:1646  */
3919      {
3920    if (conf_parser_ctx.pass == 2)
3921      block_state.modes.value |= UMODE_LOCOPS;
3922   }
3923 < #line 3937 "conf_parser.c" /* yacc.c:1646  */
3923 > #line 3924 "conf_parser.c" /* yacc.c:1646  */
3924      break;
3925  
3926    case 193:
3927 < #line 1248 "conf_parser.y" /* yacc.c:1646  */
3927 > #line 1243 "conf_parser.y" /* yacc.c:1646  */
3928      {
3929    if (conf_parser_ctx.pass == 2)
3930      block_state.modes.value |= UMODE_REGONLY;
3931   }
3932 < #line 3946 "conf_parser.c" /* yacc.c:1646  */
3932 > #line 3933 "conf_parser.c" /* yacc.c:1646  */
3933      break;
3934  
3935    case 194:
3936 < #line 1252 "conf_parser.y" /* yacc.c:1646  */
3936 > #line 1247 "conf_parser.y" /* yacc.c:1646  */
3937      {
3938    if (conf_parser_ctx.pass == 2)
3939      block_state.modes.value |= UMODE_FARCONNECT;
3940   }
3941 < #line 3955 "conf_parser.c" /* yacc.c:1646  */
3941 > #line 3942 "conf_parser.c" /* yacc.c:1646  */
3942      break;
3943  
3944    case 195:
3945 < #line 1258 "conf_parser.y" /* yacc.c:1646  */
3945 > #line 1253 "conf_parser.y" /* yacc.c:1646  */
3946      {
3947    if (conf_parser_ctx.pass == 2)
3948      block_state.port.value = 0;
3949   }
3950 < #line 3964 "conf_parser.c" /* yacc.c:1646  */
3950 > #line 3951 "conf_parser.c" /* yacc.c:1646  */
3951      break;
3952  
3953    case 199:
3954 < #line 1265 "conf_parser.y" /* yacc.c:1646  */
3954 > #line 1260 "conf_parser.y" /* yacc.c:1646  */
3955      {
3956    if (conf_parser_ctx.pass == 2)
3957      block_state.port.value |= OPER_FLAG_KILL_REMOTE;
3958   }
3959 < #line 3973 "conf_parser.c" /* yacc.c:1646  */
3959 > #line 3960 "conf_parser.c" /* yacc.c:1646  */
3960      break;
3961  
3962    case 200:
3963 < #line 1269 "conf_parser.y" /* yacc.c:1646  */
3963 > #line 1264 "conf_parser.y" /* yacc.c:1646  */
3964      {
3965    if (conf_parser_ctx.pass == 2)
3966      block_state.port.value |= OPER_FLAG_KILL;
3967   }
3968 < #line 3982 "conf_parser.c" /* yacc.c:1646  */
3968 > #line 3969 "conf_parser.c" /* yacc.c:1646  */
3969      break;
3970  
3971    case 201:
3972 < #line 1273 "conf_parser.y" /* yacc.c:1646  */
3972 > #line 1268 "conf_parser.y" /* yacc.c:1646  */
3973      {
3974    if (conf_parser_ctx.pass == 2)
3975      block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
3976   }
3977 < #line 3991 "conf_parser.c" /* yacc.c:1646  */
3977 > #line 3978 "conf_parser.c" /* yacc.c:1646  */
3978      break;
3979  
3980    case 202:
3981 < #line 1277 "conf_parser.y" /* yacc.c:1646  */
3981 > #line 1272 "conf_parser.y" /* yacc.c:1646  */
3982      {
3983    if (conf_parser_ctx.pass == 2)
3984      block_state.port.value |= OPER_FLAG_CONNECT;
3985   }
3986 < #line 4000 "conf_parser.c" /* yacc.c:1646  */
3986 > #line 3987 "conf_parser.c" /* yacc.c:1646  */
3987      break;
3988  
3989    case 203:
3990 < #line 1281 "conf_parser.y" /* yacc.c:1646  */
3990 > #line 1276 "conf_parser.y" /* yacc.c:1646  */
3991      {
3992    if (conf_parser_ctx.pass == 2)
3993      block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
3994   }
3995 < #line 4009 "conf_parser.c" /* yacc.c:1646  */
3995 > #line 3996 "conf_parser.c" /* yacc.c:1646  */
3996      break;
3997  
3998    case 204:
3999 < #line 1285 "conf_parser.y" /* yacc.c:1646  */
3999 > #line 1280 "conf_parser.y" /* yacc.c:1646  */
4000      {
4001    if (conf_parser_ctx.pass == 2)
4002      block_state.port.value |= OPER_FLAG_SQUIT;
4003   }
4004 < #line 4018 "conf_parser.c" /* yacc.c:1646  */
4004 > #line 4005 "conf_parser.c" /* yacc.c:1646  */
4005      break;
4006  
4007    case 205:
4008 < #line 1289 "conf_parser.y" /* yacc.c:1646  */
4008 > #line 1284 "conf_parser.y" /* yacc.c:1646  */
4009      {
4010    if (conf_parser_ctx.pass == 2)
4011      block_state.port.value |= OPER_FLAG_K;
4012   }
4013 < #line 4027 "conf_parser.c" /* yacc.c:1646  */
4013 > #line 4014 "conf_parser.c" /* yacc.c:1646  */
4014      break;
4015  
4016    case 206:
4017 < #line 1293 "conf_parser.y" /* yacc.c:1646  */
4017 > #line 1288 "conf_parser.y" /* yacc.c:1646  */
4018      {
4019    if (conf_parser_ctx.pass == 2)
4020      block_state.port.value |= OPER_FLAG_UNKLINE;
4021   }
4022 < #line 4036 "conf_parser.c" /* yacc.c:1646  */
4022 > #line 4023 "conf_parser.c" /* yacc.c:1646  */
4023      break;
4024  
4025    case 207:
4026 < #line 1297 "conf_parser.y" /* yacc.c:1646  */
4026 > #line 1292 "conf_parser.y" /* yacc.c:1646  */
4027      {
4028    if (conf_parser_ctx.pass == 2)
4029      block_state.port.value |= OPER_FLAG_DLINE;
4030   }
4031 < #line 4045 "conf_parser.c" /* yacc.c:1646  */
4031 > #line 4032 "conf_parser.c" /* yacc.c:1646  */
4032      break;
4033  
4034    case 208:
4035 < #line 1301 "conf_parser.y" /* yacc.c:1646  */
4035 > #line 1296 "conf_parser.y" /* yacc.c:1646  */
4036      {
4037    if (conf_parser_ctx.pass == 2)
4038      block_state.port.value |= OPER_FLAG_UNDLINE;
4039   }
4040 < #line 4054 "conf_parser.c" /* yacc.c:1646  */
4040 > #line 4041 "conf_parser.c" /* yacc.c:1646  */
4041      break;
4042  
4043    case 209:
4044 < #line 1305 "conf_parser.y" /* yacc.c:1646  */
4044 > #line 1300 "conf_parser.y" /* yacc.c:1646  */
4045      {
4046    if (conf_parser_ctx.pass == 2)
4047      block_state.port.value |= OPER_FLAG_XLINE;
4048   }
4049 < #line 4063 "conf_parser.c" /* yacc.c:1646  */
4049 > #line 4050 "conf_parser.c" /* yacc.c:1646  */
4050      break;
4051  
4052    case 210:
4053 < #line 1309 "conf_parser.y" /* yacc.c:1646  */
4053 > #line 1304 "conf_parser.y" /* yacc.c:1646  */
4054      {
4055    if (conf_parser_ctx.pass == 2)
4056      block_state.port.value |= OPER_FLAG_UNXLINE;
4057   }
4058 < #line 4072 "conf_parser.c" /* yacc.c:1646  */
4058 > #line 4059 "conf_parser.c" /* yacc.c:1646  */
4059      break;
4060  
4061    case 211:
4062 < #line 1313 "conf_parser.y" /* yacc.c:1646  */
4062 > #line 1308 "conf_parser.y" /* yacc.c:1646  */
4063      {
4064    if (conf_parser_ctx.pass == 2)
4065      block_state.port.value |= OPER_FLAG_GLINE;
4066   }
4067 < #line 4081 "conf_parser.c" /* yacc.c:1646  */
4067 > #line 4068 "conf_parser.c" /* yacc.c:1646  */
4068      break;
4069  
4070    case 212:
4071 < #line 1317 "conf_parser.y" /* yacc.c:1646  */
4071 > #line 1312 "conf_parser.y" /* yacc.c:1646  */
4072      {
4073    if (conf_parser_ctx.pass == 2)
4074      block_state.port.value |= OPER_FLAG_DIE;
4075   }
4076 < #line 4090 "conf_parser.c" /* yacc.c:1646  */
4076 > #line 4077 "conf_parser.c" /* yacc.c:1646  */
4077      break;
4078  
4079    case 213:
4080 < #line 1321 "conf_parser.y" /* yacc.c:1646  */
4080 > #line 1316 "conf_parser.y" /* yacc.c:1646  */
4081      {
4082    if (conf_parser_ctx.pass == 2)
4083      block_state.port.value |= OPER_FLAG_RESTART;
4084   }
4085 < #line 4099 "conf_parser.c" /* yacc.c:1646  */
4085 > #line 4086 "conf_parser.c" /* yacc.c:1646  */
4086      break;
4087  
4088    case 214:
4089 < #line 1325 "conf_parser.y" /* yacc.c:1646  */
4089 > #line 1320 "conf_parser.y" /* yacc.c:1646  */
4090      {
4091    if (conf_parser_ctx.pass == 2)
4092      block_state.port.value |= OPER_FLAG_REHASH;
4093   }
4094 < #line 4108 "conf_parser.c" /* yacc.c:1646  */
4094 > #line 4095 "conf_parser.c" /* yacc.c:1646  */
4095      break;
4096  
4097    case 215:
4098 < #line 1329 "conf_parser.y" /* yacc.c:1646  */
4098 > #line 1324 "conf_parser.y" /* yacc.c:1646  */
4099      {
4100    if (conf_parser_ctx.pass == 2)
4101      block_state.port.value |= OPER_FLAG_ADMIN;
4102   }
4103 < #line 4117 "conf_parser.c" /* yacc.c:1646  */
4103 > #line 4104 "conf_parser.c" /* yacc.c:1646  */
4104      break;
4105  
4106    case 216:
4107 < #line 1333 "conf_parser.y" /* yacc.c:1646  */
4107 > #line 1328 "conf_parser.y" /* yacc.c:1646  */
4108      {
4109    if (conf_parser_ctx.pass == 2)
4110      block_state.port.value |= OPER_FLAG_OPERWALL;
4111   }
4112 < #line 4126 "conf_parser.c" /* yacc.c:1646  */
4112 > #line 4113 "conf_parser.c" /* yacc.c:1646  */
4113      break;
4114  
4115    case 217:
4116 < #line 1337 "conf_parser.y" /* yacc.c:1646  */
4116 > #line 1332 "conf_parser.y" /* yacc.c:1646  */
4117      {
4118    if (conf_parser_ctx.pass == 2)
4119      block_state.port.value |= OPER_FLAG_GLOBOPS;
4120   }
4121 < #line 4135 "conf_parser.c" /* yacc.c:1646  */
4121 > #line 4122 "conf_parser.c" /* yacc.c:1646  */
4122      break;
4123  
4124    case 218:
4125 < #line 1341 "conf_parser.y" /* yacc.c:1646  */
4125 > #line 1336 "conf_parser.y" /* yacc.c:1646  */
4126      {
4127    if (conf_parser_ctx.pass == 2)
4128      block_state.port.value |= OPER_FLAG_WALLOPS;
4129   }
4130 < #line 4144 "conf_parser.c" /* yacc.c:1646  */
4130 > #line 4131 "conf_parser.c" /* yacc.c:1646  */
4131      break;
4132  
4133    case 219:
4134 < #line 1345 "conf_parser.y" /* yacc.c:1646  */
4134 > #line 1340 "conf_parser.y" /* yacc.c:1646  */
4135      {
4136    if (conf_parser_ctx.pass == 2)
4137      block_state.port.value |= OPER_FLAG_LOCOPS;
4138   }
4139 < #line 4153 "conf_parser.c" /* yacc.c:1646  */
4139 > #line 4140 "conf_parser.c" /* yacc.c:1646  */
4140      break;
4141  
4142    case 220:
4143 < #line 1349 "conf_parser.y" /* yacc.c:1646  */
4143 > #line 1344 "conf_parser.y" /* yacc.c:1646  */
4144      {
4145    if (conf_parser_ctx.pass == 2)
4146      block_state.port.value |= OPER_FLAG_REMOTEBAN;
4147   }
4148 < #line 4162 "conf_parser.c" /* yacc.c:1646  */
4148 > #line 4149 "conf_parser.c" /* yacc.c:1646  */
4149      break;
4150  
4151    case 221:
4152 < #line 1353 "conf_parser.y" /* yacc.c:1646  */
4152 > #line 1348 "conf_parser.y" /* yacc.c:1646  */
4153      {
4154    if (conf_parser_ctx.pass == 2)
4155      block_state.port.value |= OPER_FLAG_SET;
4156   }
4157 < #line 4171 "conf_parser.c" /* yacc.c:1646  */
4157 > #line 4158 "conf_parser.c" /* yacc.c:1646  */
4158      break;
4159  
4160    case 222:
4161 < #line 1357 "conf_parser.y" /* yacc.c:1646  */
4161 > #line 1352 "conf_parser.y" /* yacc.c:1646  */
4162      {
4163    if (conf_parser_ctx.pass == 2)
4164      block_state.port.value |= OPER_FLAG_MODULE;
4165   }
4166 < #line 4180 "conf_parser.c" /* yacc.c:1646  */
4166 > #line 4167 "conf_parser.c" /* yacc.c:1646  */
4167      break;
4168  
4169    case 223:
4170 < #line 1367 "conf_parser.y" /* yacc.c:1646  */
4170 > #line 1362 "conf_parser.y" /* yacc.c:1646  */
4171      {
4172    if (conf_parser_ctx.pass != 1)
4173      break;
# Line 4193 | Line 4180 | yyreduce:
4180    block_state.max_sendq.value = DEFAULT_SENDQ;
4181    block_state.max_recvq.value = DEFAULT_RECVQ;
4182   }
4183 < #line 4197 "conf_parser.c" /* yacc.c:1646  */
4183 > #line 4184 "conf_parser.c" /* yacc.c:1646  */
4184      break;
4185  
4186    case 224:
4187 < #line 1379 "conf_parser.y" /* yacc.c:1646  */
4187 > #line 1374 "conf_parser.y" /* yacc.c:1646  */
4188      {
4189    struct ClassItem *class = NULL;
4190  
# Line 4245 | Line 4232 | yyreduce:
4232    class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4233    class->number_per_cidr = block_state.number_per_cidr.value;
4234   }
4235 < #line 4249 "conf_parser.c" /* yacc.c:1646  */
4235 > #line 4236 "conf_parser.c" /* yacc.c:1646  */
4236      break;
4237  
4238    case 244:
4239 < #line 1445 "conf_parser.y" /* yacc.c:1646  */
4239 > #line 1441 "conf_parser.y" /* yacc.c:1646  */
4240      {
4241    if (conf_parser_ctx.pass == 1)
4242      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4243   }
4244 < #line 4258 "conf_parser.c" /* yacc.c:1646  */
4244 > #line 4245 "conf_parser.c" /* yacc.c:1646  */
4245      break;
4246  
4247    case 245:
4248 < #line 1451 "conf_parser.y" /* yacc.c:1646  */
4248 > #line 1447 "conf_parser.y" /* yacc.c:1646  */
4249      {
4250    if (conf_parser_ctx.pass == 1)
4251      block_state.ping_freq.value = (yyvsp[-1].number);
4252   }
4253 < #line 4267 "conf_parser.c" /* yacc.c:1646  */
4253 > #line 4254 "conf_parser.c" /* yacc.c:1646  */
4254      break;
4255  
4256    case 246:
4257 < #line 1457 "conf_parser.y" /* yacc.c:1646  */
4257 > #line 1453 "conf_parser.y" /* yacc.c:1646  */
4258      {
4259    if (conf_parser_ctx.pass == 1)
4260      block_state.max_perip.value = (yyvsp[-1].number);
4261   }
4262 < #line 4276 "conf_parser.c" /* yacc.c:1646  */
4262 > #line 4263 "conf_parser.c" /* yacc.c:1646  */
4263      break;
4264  
4265    case 247:
4266 < #line 1463 "conf_parser.y" /* yacc.c:1646  */
4266 > #line 1459 "conf_parser.y" /* yacc.c:1646  */
4267      {
4268    if (conf_parser_ctx.pass == 1)
4269      block_state.con_freq.value = (yyvsp[-1].number);
4270   }
4271 < #line 4285 "conf_parser.c" /* yacc.c:1646  */
4271 > #line 4272 "conf_parser.c" /* yacc.c:1646  */
4272      break;
4273  
4274    case 248:
4275 < #line 1469 "conf_parser.y" /* yacc.c:1646  */
4275 > #line 1465 "conf_parser.y" /* yacc.c:1646  */
4276      {
4277    if (conf_parser_ctx.pass == 1)
4278      block_state.max_total.value = (yyvsp[-1].number);
4279   }
4280 < #line 4294 "conf_parser.c" /* yacc.c:1646  */
4280 > #line 4281 "conf_parser.c" /* yacc.c:1646  */
4281      break;
4282  
4283    case 249:
4284 < #line 1475 "conf_parser.y" /* yacc.c:1646  */
4284 > #line 1471 "conf_parser.y" /* yacc.c:1646  */
4285      {
4286    if (conf_parser_ctx.pass == 1)
4287      block_state.max_global.value = (yyvsp[-1].number);
4288   }
4289 < #line 4303 "conf_parser.c" /* yacc.c:1646  */
4289 > #line 4290 "conf_parser.c" /* yacc.c:1646  */
4290      break;
4291  
4292    case 250:
4293 < #line 1481 "conf_parser.y" /* yacc.c:1646  */
4293 > #line 1477 "conf_parser.y" /* yacc.c:1646  */
4294      {
4295    if (conf_parser_ctx.pass == 1)
4296      block_state.max_local.value = (yyvsp[-1].number);
4297   }
4298 < #line 4312 "conf_parser.c" /* yacc.c:1646  */
4298 > #line 4299 "conf_parser.c" /* yacc.c:1646  */
4299      break;
4300  
4301    case 251:
4302 < #line 1487 "conf_parser.y" /* yacc.c:1646  */
4302 > #line 1483 "conf_parser.y" /* yacc.c:1646  */
4303      {
4304    if (conf_parser_ctx.pass == 1)
4305      block_state.max_ident.value = (yyvsp[-1].number);
4306   }
4307 < #line 4321 "conf_parser.c" /* yacc.c:1646  */
4307 > #line 4308 "conf_parser.c" /* yacc.c:1646  */
4308      break;
4309  
4310    case 252:
4311 < #line 1493 "conf_parser.y" /* yacc.c:1646  */
4311 > #line 1489 "conf_parser.y" /* yacc.c:1646  */
4312      {
4313    if (conf_parser_ctx.pass == 1)
4314      block_state.max_sendq.value = (yyvsp[-1].number);
4315   }
4316 < #line 4330 "conf_parser.c" /* yacc.c:1646  */
4316 > #line 4317 "conf_parser.c" /* yacc.c:1646  */
4317      break;
4318  
4319    case 253:
4320 < #line 1499 "conf_parser.y" /* yacc.c:1646  */
4320 > #line 1495 "conf_parser.y" /* yacc.c:1646  */
4321      {
4322    if (conf_parser_ctx.pass == 1)
4323      if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4324        block_state.max_recvq.value = (yyvsp[-1].number);
4325   }
4326 < #line 4340 "conf_parser.c" /* yacc.c:1646  */
4326 > #line 4327 "conf_parser.c" /* yacc.c:1646  */
4327      break;
4328  
4329    case 254:
4330 < #line 1506 "conf_parser.y" /* yacc.c:1646  */
4330 > #line 1502 "conf_parser.y" /* yacc.c:1646  */
4331      {
4332    if (conf_parser_ctx.pass == 1)
4333      block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4334   }
4335 < #line 4349 "conf_parser.c" /* yacc.c:1646  */
4335 > #line 4336 "conf_parser.c" /* yacc.c:1646  */
4336      break;
4337  
4338    case 255:
4339 < #line 1512 "conf_parser.y" /* yacc.c:1646  */
4339 > #line 1508 "conf_parser.y" /* yacc.c:1646  */
4340      {
4341    if (conf_parser_ctx.pass == 1)
4342      block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4343   }
4344 < #line 4358 "conf_parser.c" /* yacc.c:1646  */
4344 > #line 4345 "conf_parser.c" /* yacc.c:1646  */
4345      break;
4346  
4347    case 256:
4348 < #line 1518 "conf_parser.y" /* yacc.c:1646  */
4348 > #line 1514 "conf_parser.y" /* yacc.c:1646  */
4349      {
4350    if (conf_parser_ctx.pass == 1)
4351      block_state.number_per_cidr.value = (yyvsp[-1].number);
4352   }
4353 < #line 4367 "conf_parser.c" /* yacc.c:1646  */
4353 > #line 4354 "conf_parser.c" /* yacc.c:1646  */
4354      break;
4355  
4356    case 257:
4357 < #line 1524 "conf_parser.y" /* yacc.c:1646  */
4357 > #line 1520 "conf_parser.y" /* yacc.c:1646  */
4358      {
4359    if (conf_parser_ctx.pass != 1)
4360      break;
# Line 4375 | Line 4362 | yyreduce:
4362    block_state.min_idle.value = (yyvsp[-1].number);
4363    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4364   }
4365 < #line 4379 "conf_parser.c" /* yacc.c:1646  */
4365 > #line 4366 "conf_parser.c" /* yacc.c:1646  */
4366      break;
4367  
4368    case 258:
4369 < #line 1533 "conf_parser.y" /* yacc.c:1646  */
4369 > #line 1529 "conf_parser.y" /* yacc.c:1646  */
4370      {
4371    if (conf_parser_ctx.pass != 1)
4372      break;
# Line 4387 | Line 4374 | yyreduce:
4374    block_state.max_idle.value = (yyvsp[-1].number);
4375    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4376   }
4377 < #line 4391 "conf_parser.c" /* yacc.c:1646  */
4377 > #line 4378 "conf_parser.c" /* yacc.c:1646  */
4378      break;
4379  
4380    case 259:
4381 < #line 1542 "conf_parser.y" /* yacc.c:1646  */
4381 > #line 1538 "conf_parser.y" /* yacc.c:1646  */
4382      {
4383    if (conf_parser_ctx.pass == 1)
4384      block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4385   }
4386 < #line 4400 "conf_parser.c" /* yacc.c:1646  */
4386 > #line 4387 "conf_parser.c" /* yacc.c:1646  */
4387      break;
4388  
4389    case 263:
4390 < #line 1549 "conf_parser.y" /* yacc.c:1646  */
4390 > #line 1545 "conf_parser.y" /* yacc.c:1646  */
4391      {
4392    if (conf_parser_ctx.pass == 1)
4393      block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4394   }
4395 < #line 4409 "conf_parser.c" /* yacc.c:1646  */
4395 > #line 4396 "conf_parser.c" /* yacc.c:1646  */
4396      break;
4397  
4398    case 264:
4399 < #line 1553 "conf_parser.y" /* yacc.c:1646  */
4399 > #line 1549 "conf_parser.y" /* yacc.c:1646  */
4400      {
4401    if (conf_parser_ctx.pass == 1)
4402      block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4403   }
4404 < #line 4418 "conf_parser.c" /* yacc.c:1646  */
4404 > #line 4405 "conf_parser.c" /* yacc.c:1646  */
4405      break;
4406  
4407    case 265:
4408 < #line 1563 "conf_parser.y" /* yacc.c:1646  */
4408 > #line 1559 "conf_parser.y" /* yacc.c:1646  */
4409      {
4410    if (conf_parser_ctx.pass == 2)
4411      reset_block_state();
4412   }
4413 < #line 4427 "conf_parser.c" /* yacc.c:1646  */
4413 > #line 4414 "conf_parser.c" /* yacc.c:1646  */
4414      break;
4415  
4416    case 267:
4417 < #line 1569 "conf_parser.y" /* yacc.c:1646  */
4417 > #line 1565 "conf_parser.y" /* yacc.c:1646  */
4418      {
4419    block_state.flags.value = 0;
4420   }
4421 < #line 4435 "conf_parser.c" /* yacc.c:1646  */
4421 > #line 4422 "conf_parser.c" /* yacc.c:1646  */
4422      break;
4423  
4424    case 271:
4425 < #line 1575 "conf_parser.y" /* yacc.c:1646  */
4425 > #line 1571 "conf_parser.y" /* yacc.c:1646  */
4426      {
4427    if (conf_parser_ctx.pass == 2)
4428      block_state.flags.value |= LISTENER_SSL;
4429   }
4430 < #line 4444 "conf_parser.c" /* yacc.c:1646  */
4430 > #line 4431 "conf_parser.c" /* yacc.c:1646  */
4431      break;
4432  
4433    case 272:
4434 < #line 1579 "conf_parser.y" /* yacc.c:1646  */
4434 > #line 1575 "conf_parser.y" /* yacc.c:1646  */
4435      {
4436    if (conf_parser_ctx.pass == 2)
4437      block_state.flags.value |= LISTENER_HIDDEN;
4438   }
4439 < #line 4453 "conf_parser.c" /* yacc.c:1646  */
4439 > #line 4440 "conf_parser.c" /* yacc.c:1646  */
4440      break;
4441  
4442    case 273:
4443 < #line 1583 "conf_parser.y" /* yacc.c:1646  */
4443 > #line 1579 "conf_parser.y" /* yacc.c:1646  */
4444      {
4445    if (conf_parser_ctx.pass == 2)
4446     block_state.flags.value |= LISTENER_SERVER;
4447   }
4448 < #line 4462 "conf_parser.c" /* yacc.c:1646  */
4448 > #line 4449 "conf_parser.c" /* yacc.c:1646  */
4449      break;
4450  
4451    case 281:
4452 < #line 1591 "conf_parser.y" /* yacc.c:1646  */
4452 > #line 1587 "conf_parser.y" /* yacc.c:1646  */
4453      { block_state.flags.value = 0; }
4454 < #line 4468 "conf_parser.c" /* yacc.c:1646  */
4454 > #line 4455 "conf_parser.c" /* yacc.c:1646  */
4455      break;
4456  
4457    case 285:
4458 < #line 1596 "conf_parser.y" /* yacc.c:1646  */
4458 > #line 1592 "conf_parser.y" /* yacc.c:1646  */
4459      {
4460    if (conf_parser_ctx.pass == 2)
4461    {
# Line 4478 | Line 4465 | yyreduce:
4465   #endif
4466        {
4467          conf_error_report("SSL not available - port closed");
4468 <        break;
4468 >        break;
4469        }
4470      add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4471    }
4472   }
4473 < #line 4487 "conf_parser.c" /* yacc.c:1646  */
4473 > #line 4474 "conf_parser.c" /* yacc.c:1646  */
4474      break;
4475  
4476    case 286:
4477 < #line 1610 "conf_parser.y" /* yacc.c:1646  */
4477 > #line 1606 "conf_parser.y" /* yacc.c:1646  */
4478      {
4479    if (conf_parser_ctx.pass == 2)
4480    {
4494    int i;
4495
4481      if (block_state.flags.value & LISTENER_SSL)
4482   #ifdef HAVE_LIBCRYPTO
4483        if (!ServerInfo.server_ctx)
4484   #endif
4485        {
4486          conf_error_report("SSL not available - port closed");
4487 <        break;
4487 >        break;
4488        }
4489  
4490 <    for (i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4490 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4491        add_listener(i, block_state.addr.buf, block_state.flags.value);
4492    }
4493   }
4494 < #line 4510 "conf_parser.c" /* yacc.c:1646  */
4494 > #line 4495 "conf_parser.c" /* yacc.c:1646  */
4495      break;
4496  
4497    case 287:
4498 < #line 1630 "conf_parser.y" /* yacc.c:1646  */
4498 > #line 1624 "conf_parser.y" /* yacc.c:1646  */
4499      {
4500    if (conf_parser_ctx.pass == 2)
4501      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4502   }
4503 < #line 4519 "conf_parser.c" /* yacc.c:1646  */
4503 > #line 4504 "conf_parser.c" /* yacc.c:1646  */
4504      break;
4505  
4506    case 288:
4507 < #line 1636 "conf_parser.y" /* yacc.c:1646  */
4507 > #line 1630 "conf_parser.y" /* yacc.c:1646  */
4508      {
4509    if (conf_parser_ctx.pass == 2)
4510      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4511   }
4512 < #line 4528 "conf_parser.c" /* yacc.c:1646  */
4512 > #line 4513 "conf_parser.c" /* yacc.c:1646  */
4513      break;
4514  
4515    case 289:
4516 < #line 1645 "conf_parser.y" /* yacc.c:1646  */
4516 > #line 1639 "conf_parser.y" /* yacc.c:1646  */
4517      {
4518    if (conf_parser_ctx.pass == 2)
4519      reset_block_state();
4520   }
4521 < #line 4537 "conf_parser.c" /* yacc.c:1646  */
4521 > #line 4522 "conf_parser.c" /* yacc.c:1646  */
4522      break;
4523  
4524    case 290:
4525 < #line 1649 "conf_parser.y" /* yacc.c:1646  */
4525 > #line 1643 "conf_parser.y" /* yacc.c:1646  */
4526      {
4527    dlink_node *ptr = NULL;
4528  
# Line 4574 | Line 4559 | yyreduce:
4559      add_conf_by_address(CONF_CLIENT, conf);
4560    }
4561   }
4562 < #line 4578 "conf_parser.c" /* yacc.c:1646  */
4562 > #line 4563 "conf_parser.c" /* yacc.c:1646  */
4563      break;
4564  
4565    case 302:
# Line 4583 | Line 4568 | yyreduce:
4568    if (conf_parser_ctx.pass == 2)
4569      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4570   }
4571 < #line 4587 "conf_parser.c" /* yacc.c:1646  */
4571 > #line 4572 "conf_parser.c" /* yacc.c:1646  */
4572      break;
4573  
4574    case 303:
# Line 4592 | Line 4577 | yyreduce:
4577    if (conf_parser_ctx.pass == 2)
4578      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4579   }
4580 < #line 4596 "conf_parser.c" /* yacc.c:1646  */
4580 > #line 4581 "conf_parser.c" /* yacc.c:1646  */
4581      break;
4582  
4583    case 304:
# Line 4601 | Line 4586 | yyreduce:
4586    if (conf_parser_ctx.pass == 2)
4587      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4588   }
4589 < #line 4605 "conf_parser.c" /* yacc.c:1646  */
4589 > #line 4590 "conf_parser.c" /* yacc.c:1646  */
4590      break;
4591  
4592    case 305:
# Line 4615 | Line 4600 | yyreduce:
4600        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4601    }
4602   }
4603 < #line 4619 "conf_parser.c" /* yacc.c:1646  */
4603 > #line 4604 "conf_parser.c" /* yacc.c:1646  */
4604      break;
4605  
4606    case 306:
# Line 4624 | Line 4609 | yyreduce:
4609    if (conf_parser_ctx.pass == 2)
4610      block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4611   }
4612 < #line 4628 "conf_parser.c" /* yacc.c:1646  */
4612 > #line 4613 "conf_parser.c" /* yacc.c:1646  */
4613      break;
4614  
4615    case 310:
# Line 4633 | Line 4618 | yyreduce:
4618    if (conf_parser_ctx.pass == 2)
4619      block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4620   }
4621 < #line 4637 "conf_parser.c" /* yacc.c:1646  */
4621 > #line 4622 "conf_parser.c" /* yacc.c:1646  */
4622      break;
4623  
4624    case 311:
# Line 4642 | Line 4627 | yyreduce:
4627    if (conf_parser_ctx.pass == 2)
4628      block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4629   }
4630 < #line 4646 "conf_parser.c" /* yacc.c:1646  */
4630 > #line 4631 "conf_parser.c" /* yacc.c:1646  */
4631      break;
4632  
4633    case 312:
# Line 4651 | Line 4636 | yyreduce:
4636    if (conf_parser_ctx.pass == 2)
4637      block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4638   }
4639 < #line 4655 "conf_parser.c" /* yacc.c:1646  */
4639 > #line 4640 "conf_parser.c" /* yacc.c:1646  */
4640      break;
4641  
4642    case 313:
# Line 4660 | Line 4645 | yyreduce:
4645    if (conf_parser_ctx.pass == 2)
4646      block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4647   }
4648 < #line 4664 "conf_parser.c" /* yacc.c:1646  */
4648 > #line 4649 "conf_parser.c" /* yacc.c:1646  */
4649      break;
4650  
4651    case 314:
# Line 4669 | Line 4654 | yyreduce:
4654    if (conf_parser_ctx.pass == 2)
4655      block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4656   }
4657 < #line 4673 "conf_parser.c" /* yacc.c:1646  */
4657 > #line 4658 "conf_parser.c" /* yacc.c:1646  */
4658      break;
4659  
4660    case 315:
# Line 4678 | Line 4663 | yyreduce:
4663    if (conf_parser_ctx.pass == 2)
4664      block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4665   }
4666 < #line 4682 "conf_parser.c" /* yacc.c:1646  */
4666 > #line 4667 "conf_parser.c" /* yacc.c:1646  */
4667      break;
4668  
4669    case 316:
# Line 4687 | Line 4672 | yyreduce:
4672    if (conf_parser_ctx.pass == 2)
4673      block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4674   }
4675 < #line 4691 "conf_parser.c" /* yacc.c:1646  */
4675 > #line 4676 "conf_parser.c" /* yacc.c:1646  */
4676      break;
4677  
4678    case 317:
# Line 4696 | Line 4681 | yyreduce:
4681    if (conf_parser_ctx.pass == 2)
4682      block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4683   }
4684 < #line 4700 "conf_parser.c" /* yacc.c:1646  */
4684 > #line 4685 "conf_parser.c" /* yacc.c:1646  */
4685      break;
4686  
4687    case 318:
# Line 4705 | Line 4690 | yyreduce:
4690    if (conf_parser_ctx.pass == 2)
4691      block_state.flags.value |= CONF_FLAGS_WEBIRC;
4692   }
4693 < #line 4709 "conf_parser.c" /* yacc.c:1646  */
4693 > #line 4694 "conf_parser.c" /* yacc.c:1646  */
4694      break;
4695  
4696    case 319:
# Line 4714 | Line 4699 | yyreduce:
4699    if (conf_parser_ctx.pass == 2)
4700      block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4701   }
4702 < #line 4718 "conf_parser.c" /* yacc.c:1646  */
4702 > #line 4703 "conf_parser.c" /* yacc.c:1646  */
4703      break;
4704  
4705    case 320:
# Line 4723 | Line 4708 | yyreduce:
4708    if (conf_parser_ctx.pass != 2)
4709      break;
4710  
4711 <  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4711 >  if (valid_hostname(yylval.string))
4712    {
4713      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4714      block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
# Line 4731 | Line 4716 | yyreduce:
4716    else
4717      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4718   }
4719 < #line 4735 "conf_parser.c" /* yacc.c:1646  */
4719 > #line 4720 "conf_parser.c" /* yacc.c:1646  */
4720      break;
4721  
4722    case 321:
# Line 4743 | Line 4728 | yyreduce:
4728    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4729    block_state.flags.value |= CONF_FLAGS_REDIR;
4730   }
4731 < #line 4747 "conf_parser.c" /* yacc.c:1646  */
4731 > #line 4732 "conf_parser.c" /* yacc.c:1646  */
4732      break;
4733  
4734    case 322:
# Line 4755 | Line 4740 | yyreduce:
4740    block_state.flags.value |= CONF_FLAGS_REDIR;
4741    block_state.port.value = (yyvsp[-1].number);
4742   }
4743 < #line 4759 "conf_parser.c" /* yacc.c:1646  */
4743 > #line 4744 "conf_parser.c" /* yacc.c:1646  */
4744      break;
4745  
4746    case 323:
# Line 4767 | Line 4752 | yyreduce:
4752    reset_block_state();
4753    strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4754   }
4755 < #line 4771 "conf_parser.c" /* yacc.c:1646  */
4755 > #line 4756 "conf_parser.c" /* yacc.c:1646  */
4756      break;
4757  
4758    case 324:
# Line 4778 | Line 4763 | yyreduce:
4763  
4764    create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4765   }
4766 < #line 4782 "conf_parser.c" /* yacc.c:1646  */
4766 > #line 4767 "conf_parser.c" /* yacc.c:1646  */
4767      break;
4768  
4769    case 331:
# Line 4787 | Line 4772 | yyreduce:
4772    if (conf_parser_ctx.pass == 2)
4773      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4774   }
4775 < #line 4791 "conf_parser.c" /* yacc.c:1646  */
4775 > #line 4776 "conf_parser.c" /* yacc.c:1646  */
4776      break;
4777  
4778    case 332:
# Line 4796 | Line 4781 | yyreduce:
4781    if (conf_parser_ctx.pass == 2)
4782      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4783   }
4784 < #line 4800 "conf_parser.c" /* yacc.c:1646  */
4784 > #line 4785 "conf_parser.c" /* yacc.c:1646  */
4785      break;
4786  
4787    case 333:
# Line 4805 | Line 4790 | yyreduce:
4790    if (conf_parser_ctx.pass == 2)
4791      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4792   }
4793 < #line 4809 "conf_parser.c" /* yacc.c:1646  */
4793 > #line 4794 "conf_parser.c" /* yacc.c:1646  */
4794      break;
4795  
4796    case 339:
# Line 4820 | Line 4805 | yyreduce:
4805      conf->name = xstrdup(yylval.string);
4806    }
4807   }
4808 < #line 4824 "conf_parser.c" /* yacc.c:1646  */
4808 > #line 4809 "conf_parser.c" /* yacc.c:1646  */
4809      break;
4810  
4811    case 340:
# Line 4836 | Line 4821 | yyreduce:
4821    strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4822    block_state.flags.value = SHARED_ALL;
4823   }
4824 < #line 4840 "conf_parser.c" /* yacc.c:1646  */
4824 > #line 4825 "conf_parser.c" /* yacc.c:1646  */
4825      break;
4826  
4827    case 341:
# Line 4853 | Line 4838 | yyreduce:
4838    conf->user = xstrdup(block_state.user.buf);
4839    conf->host = xstrdup(block_state.host.buf);
4840   }
4841 < #line 4857 "conf_parser.c" /* yacc.c:1646  */
4841 > #line 4842 "conf_parser.c" /* yacc.c:1646  */
4842      break;
4843  
4844    case 348:
# Line 4862 | Line 4847 | yyreduce:
4847    if (conf_parser_ctx.pass == 2)
4848      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4849   }
4850 < #line 4866 "conf_parser.c" /* yacc.c:1646  */
4850 > #line 4851 "conf_parser.c" /* yacc.c:1646  */
4851      break;
4852  
4853    case 349:
# Line 4884 | Line 4869 | yyreduce:
4869      split_nuh(&nuh);
4870    }
4871   }
4872 < #line 4888 "conf_parser.c" /* yacc.c:1646  */
4872 > #line 4873 "conf_parser.c" /* yacc.c:1646  */
4873      break;
4874  
4875    case 350:
# Line 4893 | Line 4878 | yyreduce:
4878    if (conf_parser_ctx.pass == 2)
4879      block_state.flags.value = 0;
4880   }
4881 < #line 4897 "conf_parser.c" /* yacc.c:1646  */
4881 > #line 4882 "conf_parser.c" /* yacc.c:1646  */
4882      break;
4883  
4884    case 354:
# Line 4902 | Line 4887 | yyreduce:
4887    if (conf_parser_ctx.pass == 2)
4888      block_state.flags.value |= SHARED_KLINE;
4889   }
4890 < #line 4906 "conf_parser.c" /* yacc.c:1646  */
4890 > #line 4891 "conf_parser.c" /* yacc.c:1646  */
4891      break;
4892  
4893    case 355:
# Line 4911 | Line 4896 | yyreduce:
4896    if (conf_parser_ctx.pass == 2)
4897      block_state.flags.value |= SHARED_UNKLINE;
4898   }
4899 < #line 4915 "conf_parser.c" /* yacc.c:1646  */
4899 > #line 4900 "conf_parser.c" /* yacc.c:1646  */
4900      break;
4901  
4902    case 356:
# Line 4920 | Line 4905 | yyreduce:
4905    if (conf_parser_ctx.pass == 2)
4906      block_state.flags.value |= SHARED_DLINE;
4907   }
4908 < #line 4924 "conf_parser.c" /* yacc.c:1646  */
4908 > #line 4909 "conf_parser.c" /* yacc.c:1646  */
4909      break;
4910  
4911    case 357:
# Line 4929 | Line 4914 | yyreduce:
4914    if (conf_parser_ctx.pass == 2)
4915      block_state.flags.value |= SHARED_UNDLINE;
4916   }
4917 < #line 4933 "conf_parser.c" /* yacc.c:1646  */
4917 > #line 4918 "conf_parser.c" /* yacc.c:1646  */
4918      break;
4919  
4920    case 358:
# Line 4938 | Line 4923 | yyreduce:
4923    if (conf_parser_ctx.pass == 2)
4924      block_state.flags.value |= SHARED_XLINE;
4925   }
4926 < #line 4942 "conf_parser.c" /* yacc.c:1646  */
4926 > #line 4927 "conf_parser.c" /* yacc.c:1646  */
4927      break;
4928  
4929    case 359:
# Line 4947 | Line 4932 | yyreduce:
4932    if (conf_parser_ctx.pass == 2)
4933      block_state.flags.value |= SHARED_UNXLINE;
4934   }
4935 < #line 4951 "conf_parser.c" /* yacc.c:1646  */
4935 > #line 4936 "conf_parser.c" /* yacc.c:1646  */
4936      break;
4937  
4938    case 360:
# Line 4956 | Line 4941 | yyreduce:
4941    if (conf_parser_ctx.pass == 2)
4942      block_state.flags.value |= SHARED_RESV;
4943   }
4944 < #line 4960 "conf_parser.c" /* yacc.c:1646  */
4944 > #line 4945 "conf_parser.c" /* yacc.c:1646  */
4945      break;
4946  
4947    case 361:
# Line 4965 | Line 4950 | yyreduce:
4950    if (conf_parser_ctx.pass == 2)
4951      block_state.flags.value |= SHARED_UNRESV;
4952   }
4953 < #line 4969 "conf_parser.c" /* yacc.c:1646  */
4953 > #line 4954 "conf_parser.c" /* yacc.c:1646  */
4954      break;
4955  
4956    case 362:
# Line 4974 | Line 4959 | yyreduce:
4959    if (conf_parser_ctx.pass == 2)
4960      block_state.flags.value |= SHARED_LOCOPS;
4961   }
4962 < #line 4978 "conf_parser.c" /* yacc.c:1646  */
4962 > #line 4963 "conf_parser.c" /* yacc.c:1646  */
4963      break;
4964  
4965    case 363:
# Line 4983 | Line 4968 | yyreduce:
4968    if (conf_parser_ctx.pass == 2)
4969      block_state.flags.value = SHARED_ALL;
4970   }
4971 < #line 4987 "conf_parser.c" /* yacc.c:1646  */
4971 > #line 4972 "conf_parser.c" /* yacc.c:1646  */
4972      break;
4973  
4974    case 364:
# Line 4997 | Line 4982 | yyreduce:
4982    strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4983    block_state.flags.value = SHARED_ALL;
4984   }
4985 < #line 5001 "conf_parser.c" /* yacc.c:1646  */
4985 > #line 4986 "conf_parser.c" /* yacc.c:1646  */
4986      break;
4987  
4988    case 365:
# Line 5012 | Line 4997 | yyreduce:
4997    conf->flags = block_state.flags.value;
4998    conf->name = xstrdup(block_state.name.buf);
4999   }
5000 < #line 5016 "conf_parser.c" /* yacc.c:1646  */
5000 > #line 5001 "conf_parser.c" /* yacc.c:1646  */
5001      break;
5002  
5003    case 371:
# Line 5021 | Line 5006 | yyreduce:
5006    if (conf_parser_ctx.pass == 2)
5007      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5008   }
5009 < #line 5025 "conf_parser.c" /* yacc.c:1646  */
5009 > #line 5010 "conf_parser.c" /* yacc.c:1646  */
5010      break;
5011  
5012    case 372:
# Line 5030 | Line 5015 | yyreduce:
5015    if (conf_parser_ctx.pass == 2)
5016      block_state.flags.value = 0;
5017   }
5018 < #line 5034 "conf_parser.c" /* yacc.c:1646  */
5018 > #line 5019 "conf_parser.c" /* yacc.c:1646  */
5019      break;
5020  
5021    case 376:
# Line 5039 | Line 5024 | yyreduce:
5024    if (conf_parser_ctx.pass == 2)
5025      block_state.flags.value |= SHARED_KLINE;
5026   }
5027 < #line 5043 "conf_parser.c" /* yacc.c:1646  */
5027 > #line 5028 "conf_parser.c" /* yacc.c:1646  */
5028      break;
5029  
5030    case 377:
# Line 5048 | Line 5033 | yyreduce:
5033    if (conf_parser_ctx.pass == 2)
5034      block_state.flags.value |= SHARED_UNKLINE;
5035   }
5036 < #line 5052 "conf_parser.c" /* yacc.c:1646  */
5036 > #line 5037 "conf_parser.c" /* yacc.c:1646  */
5037      break;
5038  
5039    case 378:
# Line 5057 | Line 5042 | yyreduce:
5042    if (conf_parser_ctx.pass == 2)
5043      block_state.flags.value |= SHARED_DLINE;
5044   }
5045 < #line 5061 "conf_parser.c" /* yacc.c:1646  */
5045 > #line 5046 "conf_parser.c" /* yacc.c:1646  */
5046      break;
5047  
5048    case 379:
# Line 5066 | Line 5051 | yyreduce:
5051    if (conf_parser_ctx.pass == 2)
5052      block_state.flags.value |= SHARED_UNDLINE;
5053   }
5054 < #line 5070 "conf_parser.c" /* yacc.c:1646  */
5054 > #line 5055 "conf_parser.c" /* yacc.c:1646  */
5055      break;
5056  
5057    case 380:
# Line 5075 | Line 5060 | yyreduce:
5060    if (conf_parser_ctx.pass == 2)
5061      block_state.flags.value |= SHARED_XLINE;
5062   }
5063 < #line 5079 "conf_parser.c" /* yacc.c:1646  */
5063 > #line 5064 "conf_parser.c" /* yacc.c:1646  */
5064      break;
5065  
5066    case 381:
# Line 5084 | Line 5069 | yyreduce:
5069    if (conf_parser_ctx.pass == 2)
5070      block_state.flags.value |= SHARED_UNXLINE;
5071   }
5072 < #line 5088 "conf_parser.c" /* yacc.c:1646  */
5072 > #line 5073 "conf_parser.c" /* yacc.c:1646  */
5073      break;
5074  
5075    case 382:
# Line 5093 | Line 5078 | yyreduce:
5078    if (conf_parser_ctx.pass == 2)
5079      block_state.flags.value |= SHARED_RESV;
5080   }
5081 < #line 5097 "conf_parser.c" /* yacc.c:1646  */
5081 > #line 5082 "conf_parser.c" /* yacc.c:1646  */
5082      break;
5083  
5084    case 383:
# Line 5102 | Line 5087 | yyreduce:
5087    if (conf_parser_ctx.pass == 2)
5088      block_state.flags.value |= SHARED_UNRESV;
5089   }
5090 < #line 5106 "conf_parser.c" /* yacc.c:1646  */
5090 > #line 5091 "conf_parser.c" /* yacc.c:1646  */
5091      break;
5092  
5093    case 384:
# Line 5111 | Line 5096 | yyreduce:
5096    if (conf_parser_ctx.pass == 2)
5097      block_state.flags.value |= SHARED_LOCOPS;
5098   }
5099 < #line 5115 "conf_parser.c" /* yacc.c:1646  */
5099 > #line 5100 "conf_parser.c" /* yacc.c:1646  */
5100      break;
5101  
5102    case 385:
# Line 5120 | Line 5105 | yyreduce:
5105    if (conf_parser_ctx.pass == 2)
5106      block_state.flags.value = SHARED_ALL;
5107   }
5108 < #line 5124 "conf_parser.c" /* yacc.c:1646  */
5108 > #line 5109 "conf_parser.c" /* yacc.c:1646  */
5109      break;
5110  
5111    case 386:
# Line 5134 | Line 5119 | yyreduce:
5119    block_state.aftype.value = AF_INET;
5120    block_state.port.value = PORTNUM;
5121   }
5122 < #line 5138 "conf_parser.c" /* yacc.c:1646  */
5122 > #line 5123 "conf_parser.c" /* yacc.c:1646  */
5123      break;
5124  
5125    case 387:
# Line 5188 | Line 5173 | yyreduce:
5173        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5174      else
5175      {
5176 <      assert(res != NULL);
5176 >      assert(res);
5177  
5178        memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5179        conf->bind.ss.ss_family = res->ai_family;
# Line 5200 | Line 5185 | yyreduce:
5185    conf_add_class_to_conf(conf, block_state.class.buf);
5186    lookup_confhost(conf);
5187   }
5188 < #line 5204 "conf_parser.c" /* yacc.c:1646  */
5188 > #line 5189 "conf_parser.c" /* yacc.c:1646  */
5189      break;
5190  
5191    case 405:
5192 < #line 2134 "conf_parser.y" /* yacc.c:1646  */
5192 > #line 2142 "conf_parser.y" /* yacc.c:1646  */
5193      {
5194    if (conf_parser_ctx.pass == 2)
5195      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5196   }
5197 < #line 5213 "conf_parser.c" /* yacc.c:1646  */
5197 > #line 5198 "conf_parser.c" /* yacc.c:1646  */
5198      break;
5199  
5200    case 406:
5201 < #line 2140 "conf_parser.y" /* yacc.c:1646  */
5201 > #line 2148 "conf_parser.y" /* yacc.c:1646  */
5202      {
5203    if (conf_parser_ctx.pass == 2)
5204      strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5205   }
5206 < #line 5222 "conf_parser.c" /* yacc.c:1646  */
5206 > #line 5207 "conf_parser.c" /* yacc.c:1646  */
5207      break;
5208  
5209    case 407:
5210 < #line 2146 "conf_parser.y" /* yacc.c:1646  */
5210 > #line 2154 "conf_parser.y" /* yacc.c:1646  */
5211      {
5212    if (conf_parser_ctx.pass == 2)
5213      strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5214   }
5215 < #line 5231 "conf_parser.c" /* yacc.c:1646  */
5215 > #line 5216 "conf_parser.c" /* yacc.c:1646  */
5216      break;
5217  
5218    case 408:
5219 < #line 2152 "conf_parser.y" /* yacc.c:1646  */
5219 > #line 2160 "conf_parser.y" /* yacc.c:1646  */
5220      {
5221    if (conf_parser_ctx.pass != 2)
5222      break;
5223  
5224    if ((yyvsp[-1].string)[0] == ':')
5225      conf_error_report("Server passwords cannot begin with a colon");
5226 <  else if (strchr((yyvsp[-1].string), ' ') != NULL)
5226 >  else if (strchr((yyvsp[-1].string), ' '))
5227      conf_error_report("Server passwords cannot contain spaces");
5228    else
5229      strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5230   }
5231 < #line 5247 "conf_parser.c" /* yacc.c:1646  */
5231 > #line 5232 "conf_parser.c" /* yacc.c:1646  */
5232      break;
5233  
5234    case 409:
5235 < #line 2165 "conf_parser.y" /* yacc.c:1646  */
5235 > #line 2173 "conf_parser.y" /* yacc.c:1646  */
5236      {
5237    if (conf_parser_ctx.pass != 2)
5238      break;
5239  
5240    if ((yyvsp[-1].string)[0] == ':')
5241      conf_error_report("Server passwords cannot begin with a colon");
5242 <  else if (strchr((yyvsp[-1].string), ' ') != NULL)
5242 >  else if (strchr((yyvsp[-1].string), ' '))
5243      conf_error_report("Server passwords cannot contain spaces");
5244    else
5245      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5246   }
5247 < #line 5263 "conf_parser.c" /* yacc.c:1646  */
5247 > #line 5248 "conf_parser.c" /* yacc.c:1646  */
5248      break;
5249  
5250    case 410:
5251 < #line 2178 "conf_parser.y" /* yacc.c:1646  */
5251 > #line 2186 "conf_parser.y" /* yacc.c:1646  */
5252      {
5253    if (conf_parser_ctx.pass == 2)
5254      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5255   }
5256 < #line 5272 "conf_parser.c" /* yacc.c:1646  */
5256 > #line 5257 "conf_parser.c" /* yacc.c:1646  */
5257      break;
5258  
5259    case 411:
5260 < #line 2184 "conf_parser.y" /* yacc.c:1646  */
5260 > #line 2192 "conf_parser.y" /* yacc.c:1646  */
5261      {
5262    if (conf_parser_ctx.pass == 2)
5263      block_state.port.value = (yyvsp[-1].number);
5264   }
5265 < #line 5281 "conf_parser.c" /* yacc.c:1646  */
5265 > #line 5266 "conf_parser.c" /* yacc.c:1646  */
5266      break;
5267  
5268    case 412:
5269 < #line 2190 "conf_parser.y" /* yacc.c:1646  */
5269 > #line 2198 "conf_parser.y" /* yacc.c:1646  */
5270      {
5271    if (conf_parser_ctx.pass == 2)
5272      block_state.aftype.value = AF_INET;
5273   }
5274 < #line 5290 "conf_parser.c" /* yacc.c:1646  */
5274 > #line 5275 "conf_parser.c" /* yacc.c:1646  */
5275      break;
5276  
5277    case 413:
5278 < #line 2194 "conf_parser.y" /* yacc.c:1646  */
5278 > #line 2202 "conf_parser.y" /* yacc.c:1646  */
5279      {
5280   #ifdef IPV6
5281    if (conf_parser_ctx.pass == 2)
5282      block_state.aftype.value = AF_INET6;
5283   #endif
5284   }
5285 < #line 5301 "conf_parser.c" /* yacc.c:1646  */
5285 > #line 5286 "conf_parser.c" /* yacc.c:1646  */
5286      break;
5287  
5288    case 414:
5289 < #line 2202 "conf_parser.y" /* yacc.c:1646  */
5289 > #line 2210 "conf_parser.y" /* yacc.c:1646  */
5290      {
5291    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5292   }
5293 < #line 5309 "conf_parser.c" /* yacc.c:1646  */
5293 > #line 5294 "conf_parser.c" /* yacc.c:1646  */
5294      break;
5295  
5296    case 418:
5297 < #line 2208 "conf_parser.y" /* yacc.c:1646  */
5297 > #line 2216 "conf_parser.y" /* yacc.c:1646  */
5298      {
5299    if (conf_parser_ctx.pass == 2)
5300      block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5301   }
5302 < #line 5318 "conf_parser.c" /* yacc.c:1646  */
5302 > #line 5303 "conf_parser.c" /* yacc.c:1646  */
5303      break;
5304  
5305    case 419:
5306 < #line 2212 "conf_parser.y" /* yacc.c:1646  */
5306 > #line 2220 "conf_parser.y" /* yacc.c:1646  */
5307      {
5308    if (conf_parser_ctx.pass == 2)
5309      block_state.flags.value |= CONF_FLAGS_SSL;
5310   }
5311 < #line 5327 "conf_parser.c" /* yacc.c:1646  */
5311 > #line 5312 "conf_parser.c" /* yacc.c:1646  */
5312      break;
5313  
5314    case 420:
5315 < #line 2218 "conf_parser.y" /* yacc.c:1646  */
5315 > #line 2226 "conf_parser.y" /* yacc.c:1646  */
5316      {
5317    if (conf_parser_ctx.pass == 2)
5318    {
# Line 5337 | Line 5322 | yyreduce:
5322        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5323    }
5324   }
5325 < #line 5341 "conf_parser.c" /* yacc.c:1646  */
5325 > #line 5326 "conf_parser.c" /* yacc.c:1646  */
5326      break;
5327  
5328    case 421:
5329 < #line 2229 "conf_parser.y" /* yacc.c:1646  */
5329 > #line 2237 "conf_parser.y" /* yacc.c:1646  */
5330      {
5331    if (conf_parser_ctx.pass == 2)
5332      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5333   }
5334 < #line 5350 "conf_parser.c" /* yacc.c:1646  */
5334 > #line 5335 "conf_parser.c" /* yacc.c:1646  */
5335      break;
5336  
5337    case 422:
5338 < #line 2235 "conf_parser.y" /* yacc.c:1646  */
5338 > #line 2243 "conf_parser.y" /* yacc.c:1646  */
5339      {
5340    if (conf_parser_ctx.pass == 2)
5341      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5342   }
5343 < #line 5359 "conf_parser.c" /* yacc.c:1646  */
5343 > #line 5344 "conf_parser.c" /* yacc.c:1646  */
5344      break;
5345  
5346    case 423:
5347 < #line 2241 "conf_parser.y" /* yacc.c:1646  */
5347 > #line 2249 "conf_parser.y" /* yacc.c:1646  */
5348      {
5349    if (conf_parser_ctx.pass == 2)
5350      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5351   }
5352 < #line 5368 "conf_parser.c" /* yacc.c:1646  */
5352 > #line 5353 "conf_parser.c" /* yacc.c:1646  */
5353      break;
5354  
5355    case 424:
5356 < #line 2247 "conf_parser.y" /* yacc.c:1646  */
5356 > #line 2255 "conf_parser.y" /* yacc.c:1646  */
5357      {
5358   #ifdef HAVE_LIBCRYPTO
5359    if (conf_parser_ctx.pass == 2)
# Line 5378 | Line 5363 | yyreduce:
5363      conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5364   #endif
5365   }
5366 < #line 5382 "conf_parser.c" /* yacc.c:1646  */
5366 > #line 5367 "conf_parser.c" /* yacc.c:1646  */
5367      break;
5368  
5369    case 425:
5370 < #line 2262 "conf_parser.y" /* yacc.c:1646  */
5370 > #line 2270 "conf_parser.y" /* yacc.c:1646  */
5371      {
5372    if (conf_parser_ctx.pass == 2)
5373      reset_block_state();
5374   }
5375 < #line 5391 "conf_parser.c" /* yacc.c:1646  */
5375 > #line 5376 "conf_parser.c" /* yacc.c:1646  */
5376      break;
5377  
5378    case 426:
5379 < #line 2266 "conf_parser.y" /* yacc.c:1646  */
5379 > #line 2274 "conf_parser.y" /* yacc.c:1646  */
5380      {
5381    struct MaskItem *conf = NULL;
5382  
# Line 5412 | Line 5397 | yyreduce:
5397      conf->reason = xstrdup(CONF_NOREASON);
5398    add_conf_by_address(CONF_KLINE, conf);
5399   }
5400 < #line 5416 "conf_parser.c" /* yacc.c:1646  */
5400 > #line 5401 "conf_parser.c" /* yacc.c:1646  */
5401      break;
5402  
5403    case 432:
5404 < #line 2291 "conf_parser.y" /* yacc.c:1646  */
5404 > #line 2299 "conf_parser.y" /* yacc.c:1646  */
5405      {
5406  
5407    if (conf_parser_ctx.pass == 2)
# Line 5435 | Line 5420 | yyreduce:
5420      split_nuh(&nuh);
5421    }
5422   }
5423 < #line 5439 "conf_parser.c" /* yacc.c:1646  */
5423 > #line 5424 "conf_parser.c" /* yacc.c:1646  */
5424      break;
5425  
5426    case 433:
5427 < #line 2311 "conf_parser.y" /* yacc.c:1646  */
5427 > #line 2319 "conf_parser.y" /* yacc.c:1646  */
5428      {
5429    if (conf_parser_ctx.pass == 2)
5430      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5431   }
5432 < #line 5448 "conf_parser.c" /* yacc.c:1646  */
5432 > #line 5433 "conf_parser.c" /* yacc.c:1646  */
5433      break;
5434  
5435    case 434:
5436 < #line 2320 "conf_parser.y" /* yacc.c:1646  */
5436 > #line 2328 "conf_parser.y" /* yacc.c:1646  */
5437      {
5438    if (conf_parser_ctx.pass == 2)
5439      reset_block_state();
5440   }
5441 < #line 5457 "conf_parser.c" /* yacc.c:1646  */
5441 > #line 5442 "conf_parser.c" /* yacc.c:1646  */
5442      break;
5443  
5444    case 435:
5445 < #line 2324 "conf_parser.y" /* yacc.c:1646  */
5445 > #line 2332 "conf_parser.y" /* yacc.c:1646  */
5446      {
5447    struct MaskItem *conf = NULL;
5448  
# Line 5479 | Line 5464 | yyreduce:
5464      add_conf_by_address(CONF_DLINE, conf);
5465    }
5466   }
5467 < #line 5483 "conf_parser.c" /* yacc.c:1646  */
5467 > #line 5468 "conf_parser.c" /* yacc.c:1646  */
5468      break;
5469  
5470    case 441:
5471 < #line 2350 "conf_parser.y" /* yacc.c:1646  */
5471 > #line 2358 "conf_parser.y" /* yacc.c:1646  */
5472      {
5473    if (conf_parser_ctx.pass == 2)
5474      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5475   }
5476 < #line 5492 "conf_parser.c" /* yacc.c:1646  */
5476 > #line 5477 "conf_parser.c" /* yacc.c:1646  */
5477      break;
5478  
5479    case 442:
5480 < #line 2356 "conf_parser.y" /* yacc.c:1646  */
5480 > #line 2364 "conf_parser.y" /* yacc.c:1646  */
5481      {
5482    if (conf_parser_ctx.pass == 2)
5483      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5484   }
5485 < #line 5501 "conf_parser.c" /* yacc.c:1646  */
5485 > #line 5486 "conf_parser.c" /* yacc.c:1646  */
5486      break;
5487  
5488    case 448:
5489 < #line 2370 "conf_parser.y" /* yacc.c:1646  */
5489 > #line 2378 "conf_parser.y" /* yacc.c:1646  */
5490      {
5491    if (conf_parser_ctx.pass == 2)
5492    {
# Line 5514 | Line 5499 | yyreduce:
5499      }
5500    }
5501   }
5502 < #line 5518 "conf_parser.c" /* yacc.c:1646  */
5502 > #line 5503 "conf_parser.c" /* yacc.c:1646  */
5503      break;
5504  
5505    case 449:
5506 < #line 2387 "conf_parser.y" /* yacc.c:1646  */
5506 > #line 2395 "conf_parser.y" /* yacc.c:1646  */
5507      {
5508    if (conf_parser_ctx.pass == 2)
5509      reset_block_state();
5510   }
5511 < #line 5527 "conf_parser.c" /* yacc.c:1646  */
5511 > #line 5512 "conf_parser.c" /* yacc.c:1646  */
5512      break;
5513  
5514    case 450:
5515 < #line 2391 "conf_parser.y" /* yacc.c:1646  */
5515 > #line 2399 "conf_parser.y" /* yacc.c:1646  */
5516      {
5517    struct MaskItem *conf = NULL;
5518  
# Line 5545 | Line 5530 | yyreduce:
5530    else
5531      conf->reason = xstrdup(CONF_NOREASON);
5532   }
5533 < #line 5549 "conf_parser.c" /* yacc.c:1646  */
5533 > #line 5534 "conf_parser.c" /* yacc.c:1646  */
5534      break;
5535  
5536    case 456:
5537 < #line 2413 "conf_parser.y" /* yacc.c:1646  */
5537 > #line 2421 "conf_parser.y" /* yacc.c:1646  */
5538      {
5539    if (conf_parser_ctx.pass == 2)
5540      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5541   }
5542 < #line 5558 "conf_parser.c" /* yacc.c:1646  */
5542 > #line 5543 "conf_parser.c" /* yacc.c:1646  */
5543      break;
5544  
5545    case 457:
5546 < #line 2419 "conf_parser.y" /* yacc.c:1646  */
5546 > #line 2427 "conf_parser.y" /* yacc.c:1646  */
5547      {
5548    if (conf_parser_ctx.pass == 2)
5549      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5550   }
5551 < #line 5567 "conf_parser.c" /* yacc.c:1646  */
5551 > #line 5552 "conf_parser.c" /* yacc.c:1646  */
5552      break;
5553  
5554    case 511:
5555 < #line 2464 "conf_parser.y" /* yacc.c:1646  */
5555 > #line 2492 "conf_parser.y" /* yacc.c:1646  */
5556      {
5557    ConfigFileEntry.max_watch = (yyvsp[-1].number);
5558   }
5559 < #line 5575 "conf_parser.c" /* yacc.c:1646  */
5559 > #line 5560 "conf_parser.c" /* yacc.c:1646  */
5560      break;
5561  
5562    case 512:
5563 < #line 2469 "conf_parser.y" /* yacc.c:1646  */
5563 > #line 2497 "conf_parser.y" /* yacc.c:1646  */
5564      {
5565    if (conf_parser_ctx.pass == 2)
5566      ConfigFileEntry.cycle_on_host_change = yylval.number;
5567   }
5568 < #line 5584 "conf_parser.c" /* yacc.c:1646  */
5568 > #line 5569 "conf_parser.c" /* yacc.c:1646  */
5569      break;
5570  
5571    case 513:
5572 < #line 2475 "conf_parser.y" /* yacc.c:1646  */
5572 > #line 2503 "conf_parser.y" /* yacc.c:1646  */
5573      {
5574    if (conf_parser_ctx.pass == 2)
5575      ConfigFileEntry.glines = yylval.number;
5576   }
5577 < #line 5593 "conf_parser.c" /* yacc.c:1646  */
5577 > #line 5578 "conf_parser.c" /* yacc.c:1646  */
5578      break;
5579  
5580    case 514:
5581 < #line 2481 "conf_parser.y" /* yacc.c:1646  */
5581 > #line 2509 "conf_parser.y" /* yacc.c:1646  */
5582      {
5583    if (conf_parser_ctx.pass == 2)
5584      ConfigFileEntry.gline_time = (yyvsp[-1].number);
5585   }
5586 < #line 5602 "conf_parser.c" /* yacc.c:1646  */
5586 > #line 5587 "conf_parser.c" /* yacc.c:1646  */
5587      break;
5588  
5589    case 515:
5590 < #line 2487 "conf_parser.y" /* yacc.c:1646  */
5590 > #line 2515 "conf_parser.y" /* yacc.c:1646  */
5591      {
5592    if (conf_parser_ctx.pass == 2)
5593      ConfigFileEntry.gline_request_time = (yyvsp[-1].number);
5594   }
5595 < #line 5611 "conf_parser.c" /* yacc.c:1646  */
5595 > #line 5596 "conf_parser.c" /* yacc.c:1646  */
5596      break;
5597  
5598    case 516:
5599 < #line 2493 "conf_parser.y" /* yacc.c:1646  */
5599 > #line 2521 "conf_parser.y" /* yacc.c:1646  */
5600      {
5601    ConfigFileEntry.gline_min_cidr = (yyvsp[-1].number);
5602   }
5603 < #line 5619 "conf_parser.c" /* yacc.c:1646  */
5603 > #line 5604 "conf_parser.c" /* yacc.c:1646  */
5604      break;
5605  
5606    case 517:
5607 < #line 2498 "conf_parser.y" /* yacc.c:1646  */
5607 > #line 2526 "conf_parser.y" /* yacc.c:1646  */
5608      {
5609    ConfigFileEntry.gline_min_cidr6 = (yyvsp[-1].number);
5610   }
5611 < #line 5627 "conf_parser.c" /* yacc.c:1646  */
5611 > #line 5612 "conf_parser.c" /* yacc.c:1646  */
5612      break;
5613  
5614    case 518:
5615 < #line 2503 "conf_parser.y" /* yacc.c:1646  */
5615 > #line 2531 "conf_parser.y" /* yacc.c:1646  */
5616      {
5617    ConfigFileEntry.tkline_expire_notices = yylval.number;
5618   }
5619 < #line 5635 "conf_parser.c" /* yacc.c:1646  */
5619 > #line 5620 "conf_parser.c" /* yacc.c:1646  */
5620      break;
5621  
5622    case 519:
5623 < #line 2508 "conf_parser.y" /* yacc.c:1646  */
5623 > #line 2536 "conf_parser.y" /* yacc.c:1646  */
5624      {
5625    ConfigFileEntry.kill_chase_time_limit = (yyvsp[-1].number);
5626   }
5627 < #line 5643 "conf_parser.c" /* yacc.c:1646  */
5627 > #line 5628 "conf_parser.c" /* yacc.c:1646  */
5628      break;
5629  
5630    case 520:
5631 < #line 2513 "conf_parser.y" /* yacc.c:1646  */
5631 > #line 2541 "conf_parser.y" /* yacc.c:1646  */
5632      {
5633    ConfigFileEntry.hide_spoof_ips = yylval.number;
5634   }
5635 < #line 5651 "conf_parser.c" /* yacc.c:1646  */
5635 > #line 5636 "conf_parser.c" /* yacc.c:1646  */
5636      break;
5637  
5638    case 521:
5639 < #line 2518 "conf_parser.y" /* yacc.c:1646  */
5639 > #line 2546 "conf_parser.y" /* yacc.c:1646  */
5640      {
5641    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5642   }
5643 < #line 5659 "conf_parser.c" /* yacc.c:1646  */
5643 > #line 5644 "conf_parser.c" /* yacc.c:1646  */
5644      break;
5645  
5646    case 522:
5647 < #line 2523 "conf_parser.y" /* yacc.c:1646  */
5647 > #line 2551 "conf_parser.y" /* yacc.c:1646  */
5648      {
5649    ConfigFileEntry.failed_oper_notice = yylval.number;
5650   }
5651 < #line 5667 "conf_parser.c" /* yacc.c:1646  */
5651 > #line 5652 "conf_parser.c" /* yacc.c:1646  */
5652      break;
5653  
5654    case 523:
5655 < #line 2528 "conf_parser.y" /* yacc.c:1646  */
5655 > #line 2556 "conf_parser.y" /* yacc.c:1646  */
5656      {
5657    ConfigFileEntry.anti_nick_flood = yylval.number;
5658   }
5659 < #line 5675 "conf_parser.c" /* yacc.c:1646  */
5659 > #line 5660 "conf_parser.c" /* yacc.c:1646  */
5660      break;
5661  
5662    case 524:
5663 < #line 2533 "conf_parser.y" /* yacc.c:1646  */
5663 > #line 2561 "conf_parser.y" /* yacc.c:1646  */
5664      {
5665    ConfigFileEntry.max_nick_time = (yyvsp[-1].number);
5666   }
5667 < #line 5683 "conf_parser.c" /* yacc.c:1646  */
5667 > #line 5668 "conf_parser.c" /* yacc.c:1646  */
5668      break;
5669  
5670    case 525:
5671 < #line 2538 "conf_parser.y" /* yacc.c:1646  */
5671 > #line 2566 "conf_parser.y" /* yacc.c:1646  */
5672      {
5673    ConfigFileEntry.max_nick_changes = (yyvsp[-1].number);
5674   }
5675 < #line 5691 "conf_parser.c" /* yacc.c:1646  */
5675 > #line 5676 "conf_parser.c" /* yacc.c:1646  */
5676      break;
5677  
5678    case 526:
5679 < #line 2543 "conf_parser.y" /* yacc.c:1646  */
5679 > #line 2571 "conf_parser.y" /* yacc.c:1646  */
5680      {
5681    ConfigFileEntry.max_accept = (yyvsp[-1].number);
5682   }
5683 < #line 5699 "conf_parser.c" /* yacc.c:1646  */
5683 > #line 5684 "conf_parser.c" /* yacc.c:1646  */
5684      break;
5685  
5686    case 527:
5687 < #line 2548 "conf_parser.y" /* yacc.c:1646  */
5687 > #line 2576 "conf_parser.y" /* yacc.c:1646  */
5688      {
5689    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[-1].number);
5690   }
5691 < #line 5707 "conf_parser.c" /* yacc.c:1646  */
5691 > #line 5692 "conf_parser.c" /* yacc.c:1646  */
5692      break;
5693  
5694    case 528:
5695 < #line 2553 "conf_parser.y" /* yacc.c:1646  */
5695 > #line 2581 "conf_parser.y" /* yacc.c:1646  */
5696      {
5697    ConfigFileEntry.ts_warn_delta = (yyvsp[-1].number);
5698   }
5699 < #line 5715 "conf_parser.c" /* yacc.c:1646  */
5699 > #line 5700 "conf_parser.c" /* yacc.c:1646  */
5700      break;
5701  
5702    case 529:
5703 < #line 2558 "conf_parser.y" /* yacc.c:1646  */
5703 > #line 2586 "conf_parser.y" /* yacc.c:1646  */
5704      {
5705    if (conf_parser_ctx.pass == 2)
5706      ConfigFileEntry.ts_max_delta = (yyvsp[-1].number);
5707   }
5708 < #line 5724 "conf_parser.c" /* yacc.c:1646  */
5708 > #line 5709 "conf_parser.c" /* yacc.c:1646  */
5709      break;
5710  
5711    case 530:
5712 < #line 2564 "conf_parser.y" /* yacc.c:1646  */
5712 > #line 2592 "conf_parser.y" /* yacc.c:1646  */
5713      {
5714    if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5715    {
# Line 5734 | Line 5719 | yyreduce:
5719      exit(0);
5720    }
5721   }
5722 < #line 5738 "conf_parser.c" /* yacc.c:1646  */
5722 > #line 5723 "conf_parser.c" /* yacc.c:1646  */
5723      break;
5724  
5725    case 531:
5726 < #line 2575 "conf_parser.y" /* yacc.c:1646  */
5726 > #line 2603 "conf_parser.y" /* yacc.c:1646  */
5727      {
5728    ConfigFileEntry.invisible_on_connect = yylval.number;
5729   }
5730 < #line 5746 "conf_parser.c" /* yacc.c:1646  */
5730 > #line 5731 "conf_parser.c" /* yacc.c:1646  */
5731      break;
5732  
5733    case 532:
5734 < #line 2580 "conf_parser.y" /* yacc.c:1646  */
5734 > #line 2608 "conf_parser.y" /* yacc.c:1646  */
5735      {
5736 <  ConfigFileEntry.warn_no_nline = yylval.number;
5736 >  ConfigFileEntry.warn_no_connect_block = yylval.number;
5737   }
5738 < #line 5754 "conf_parser.c" /* yacc.c:1646  */
5738 > #line 5739 "conf_parser.c" /* yacc.c:1646  */
5739      break;
5740  
5741    case 533:
5742 < #line 2585 "conf_parser.y" /* yacc.c:1646  */
5742 > #line 2613 "conf_parser.y" /* yacc.c:1646  */
5743      {
5744    ConfigFileEntry.stats_e_disabled = yylval.number;
5745   }
5746 < #line 5762 "conf_parser.c" /* yacc.c:1646  */
5746 > #line 5747 "conf_parser.c" /* yacc.c:1646  */
5747      break;
5748  
5749    case 534:
5750 < #line 2590 "conf_parser.y" /* yacc.c:1646  */
5750 > #line 2618 "conf_parser.y" /* yacc.c:1646  */
5751      {
5752    ConfigFileEntry.stats_o_oper_only = yylval.number;
5753   }
5754 < #line 5770 "conf_parser.c" /* yacc.c:1646  */
5754 > #line 5755 "conf_parser.c" /* yacc.c:1646  */
5755      break;
5756  
5757    case 535:
5758 < #line 2595 "conf_parser.y" /* yacc.c:1646  */
5758 > #line 2623 "conf_parser.y" /* yacc.c:1646  */
5759      {
5760    ConfigFileEntry.stats_P_oper_only = yylval.number;
5761   }
5762 < #line 5778 "conf_parser.c" /* yacc.c:1646  */
5762 > #line 5763 "conf_parser.c" /* yacc.c:1646  */
5763      break;
5764  
5765    case 536:
5766 < #line 2600 "conf_parser.y" /* yacc.c:1646  */
5766 > #line 2628 "conf_parser.y" /* yacc.c:1646  */
5767      {
5768    ConfigFileEntry.stats_u_oper_only = yylval.number;
5769   }
5770 < #line 5786 "conf_parser.c" /* yacc.c:1646  */
5770 > #line 5771 "conf_parser.c" /* yacc.c:1646  */
5771      break;
5772  
5773    case 537:
5774 < #line 2605 "conf_parser.y" /* yacc.c:1646  */
5774 > #line 2633 "conf_parser.y" /* yacc.c:1646  */
5775      {
5776    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5777   }
5778 < #line 5794 "conf_parser.c" /* yacc.c:1646  */
5778 > #line 5779 "conf_parser.c" /* yacc.c:1646  */
5779      break;
5780  
5781    case 538:
5782 < #line 2608 "conf_parser.y" /* yacc.c:1646  */
5782 > #line 2636 "conf_parser.y" /* yacc.c:1646  */
5783      {
5784    ConfigFileEntry.stats_k_oper_only = 1;
5785   }
5786 < #line 5802 "conf_parser.c" /* yacc.c:1646  */
5786 > #line 5787 "conf_parser.c" /* yacc.c:1646  */
5787      break;
5788  
5789    case 539:
5790 < #line 2613 "conf_parser.y" /* yacc.c:1646  */
5790 > #line 2641 "conf_parser.y" /* yacc.c:1646  */
5791      {
5792    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5793   }
5794 < #line 5810 "conf_parser.c" /* yacc.c:1646  */
5794 > #line 5795 "conf_parser.c" /* yacc.c:1646  */
5795      break;
5796  
5797    case 540:
5798 < #line 2616 "conf_parser.y" /* yacc.c:1646  */
5798 > #line 2644 "conf_parser.y" /* yacc.c:1646  */
5799      {
5800    ConfigFileEntry.stats_i_oper_only = 1;
5801   }
5802 < #line 5818 "conf_parser.c" /* yacc.c:1646  */
5802 > #line 5803 "conf_parser.c" /* yacc.c:1646  */
5803      break;
5804  
5805    case 541:
5806 < #line 2621 "conf_parser.y" /* yacc.c:1646  */
5806 > #line 2649 "conf_parser.y" /* yacc.c:1646  */
5807      {
5808    ConfigFileEntry.pace_wait = (yyvsp[-1].number);
5809   }
5810 < #line 5826 "conf_parser.c" /* yacc.c:1646  */
5810 > #line 5811 "conf_parser.c" /* yacc.c:1646  */
5811      break;
5812  
5813    case 542:
5814 < #line 2626 "conf_parser.y" /* yacc.c:1646  */
5814 > #line 2654 "conf_parser.y" /* yacc.c:1646  */
5815      {
5816    ConfigFileEntry.caller_id_wait = (yyvsp[-1].number);
5817   }
5818 < #line 5834 "conf_parser.c" /* yacc.c:1646  */
5818 > #line 5819 "conf_parser.c" /* yacc.c:1646  */
5819      break;
5820  
5821    case 543:
5822 < #line 2631 "conf_parser.y" /* yacc.c:1646  */
5822 > #line 2659 "conf_parser.y" /* yacc.c:1646  */
5823      {
5824    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5825   }
5826 < #line 5842 "conf_parser.c" /* yacc.c:1646  */
5826 > #line 5827 "conf_parser.c" /* yacc.c:1646  */
5827      break;
5828  
5829    case 544:
5830 < #line 2636 "conf_parser.y" /* yacc.c:1646  */
5830 > #line 2664 "conf_parser.y" /* yacc.c:1646  */
5831      {
5832    ConfigFileEntry.pace_wait_simple = (yyvsp[-1].number);
5833   }
5834 < #line 5850 "conf_parser.c" /* yacc.c:1646  */
5834 > #line 5835 "conf_parser.c" /* yacc.c:1646  */
5835      break;
5836  
5837    case 545:
5838 < #line 2641 "conf_parser.y" /* yacc.c:1646  */
5838 > #line 2669 "conf_parser.y" /* yacc.c:1646  */
5839      {
5840    ConfigFileEntry.short_motd = yylval.number;
5841   }
5842 < #line 5858 "conf_parser.c" /* yacc.c:1646  */
5842 > #line 5843 "conf_parser.c" /* yacc.c:1646  */
5843      break;
5844  
5845    case 546:
5846 < #line 2646 "conf_parser.y" /* yacc.c:1646  */
5846 > #line 2674 "conf_parser.y" /* yacc.c:1646  */
5847      {
5848    ConfigFileEntry.no_oper_flood = yylval.number;
5849   }
5850 < #line 5866 "conf_parser.c" /* yacc.c:1646  */
5850 > #line 5851 "conf_parser.c" /* yacc.c:1646  */
5851      break;
5852  
5853    case 547:
5854 < #line 2651 "conf_parser.y" /* yacc.c:1646  */
5854 > #line 2679 "conf_parser.y" /* yacc.c:1646  */
5855      {
5856    ConfigFileEntry.true_no_oper_flood = yylval.number;
5857   }
5858 < #line 5874 "conf_parser.c" /* yacc.c:1646  */
5858 > #line 5859 "conf_parser.c" /* yacc.c:1646  */
5859      break;
5860  
5861    case 548:
5862 < #line 2656 "conf_parser.y" /* yacc.c:1646  */
5862 > #line 2684 "conf_parser.y" /* yacc.c:1646  */
5863      {
5864    ConfigFileEntry.oper_pass_resv = yylval.number;
5865   }
5866 < #line 5882 "conf_parser.c" /* yacc.c:1646  */
5866 > #line 5867 "conf_parser.c" /* yacc.c:1646  */
5867      break;
5868  
5869    case 549:
5870 < #line 2661 "conf_parser.y" /* yacc.c:1646  */
5870 > #line 2689 "conf_parser.y" /* yacc.c:1646  */
5871      {
5872    ConfigFileEntry.dots_in_ident = (yyvsp[-1].number);
5873   }
5874 < #line 5890 "conf_parser.c" /* yacc.c:1646  */
5874 > #line 5875 "conf_parser.c" /* yacc.c:1646  */
5875      break;
5876  
5877    case 550:
5878 < #line 2666 "conf_parser.y" /* yacc.c:1646  */
5878 > #line 2694 "conf_parser.y" /* yacc.c:1646  */
5879      {
5880    ConfigFileEntry.max_targets = (yyvsp[-1].number);
5881   }
5882 < #line 5898 "conf_parser.c" /* yacc.c:1646  */
5882 > #line 5883 "conf_parser.c" /* yacc.c:1646  */
5883      break;
5884  
5885    case 551:
5886 < #line 2671 "conf_parser.y" /* yacc.c:1646  */
5886 > #line 2699 "conf_parser.y" /* yacc.c:1646  */
5887      {
5888    ConfigFileEntry.use_egd = yylval.number;
5889   }
5890 < #line 5906 "conf_parser.c" /* yacc.c:1646  */
5890 > #line 5891 "conf_parser.c" /* yacc.c:1646  */
5891      break;
5892  
5893    case 552:
5894 < #line 2676 "conf_parser.y" /* yacc.c:1646  */
5894 > #line 2704 "conf_parser.y" /* yacc.c:1646  */
5895      {
5896    if (conf_parser_ctx.pass == 2)
5897    {
# Line 5914 | Line 5899 | yyreduce:
5899      ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
5900    }
5901   }
5902 < #line 5918 "conf_parser.c" /* yacc.c:1646  */
5902 > #line 5903 "conf_parser.c" /* yacc.c:1646  */
5903      break;
5904  
5905    case 553:
5906 < #line 2685 "conf_parser.y" /* yacc.c:1646  */
5906 > #line 2713 "conf_parser.y" /* yacc.c:1646  */
5907      {
5908    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
5909    {
# Line 5926 | Line 5911 | yyreduce:
5911      ConfigFileEntry.service_name = xstrdup(yylval.string);
5912    }
5913   }
5914 < #line 5930 "conf_parser.c" /* yacc.c:1646  */
5914 > #line 5915 "conf_parser.c" /* yacc.c:1646  */
5915      break;
5916  
5917    case 554:
5918 < #line 2694 "conf_parser.y" /* yacc.c:1646  */
5918 > #line 2722 "conf_parser.y" /* yacc.c:1646  */
5919      {
5920    ConfigFileEntry.ping_cookie = yylval.number;
5921   }
5922 < #line 5938 "conf_parser.c" /* yacc.c:1646  */
5922 > #line 5923 "conf_parser.c" /* yacc.c:1646  */
5923      break;
5924  
5925    case 555:
5926 < #line 2699 "conf_parser.y" /* yacc.c:1646  */
5926 > #line 2727 "conf_parser.y" /* yacc.c:1646  */
5927      {
5928    ConfigFileEntry.disable_auth = yylval.number;
5929   }
5930 < #line 5946 "conf_parser.c" /* yacc.c:1646  */
5930 > #line 5931 "conf_parser.c" /* yacc.c:1646  */
5931      break;
5932  
5933    case 556:
5934 < #line 2704 "conf_parser.y" /* yacc.c:1646  */
5934 > #line 2732 "conf_parser.y" /* yacc.c:1646  */
5935      {
5936 <  ConfigFileEntry.throttle_time = yylval.number;
5936 >  ConfigFileEntry.throttle_time = (yyvsp[-1].number);
5937   }
5938 < #line 5954 "conf_parser.c" /* yacc.c:1646  */
5938 > #line 5939 "conf_parser.c" /* yacc.c:1646  */
5939      break;
5940  
5941    case 557:
5942 < #line 2709 "conf_parser.y" /* yacc.c:1646  */
5942 > #line 2737 "conf_parser.y" /* yacc.c:1646  */
5943      {
5944    ConfigFileEntry.oper_umodes = 0;
5945   }
5946 < #line 5962 "conf_parser.c" /* yacc.c:1646  */
5946 > #line 5947 "conf_parser.c" /* yacc.c:1646  */
5947      break;
5948  
5949    case 561:
5950 < #line 2715 "conf_parser.y" /* yacc.c:1646  */
5950 > #line 2743 "conf_parser.y" /* yacc.c:1646  */
5951      {
5952    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5953   }
5954 < #line 5970 "conf_parser.c" /* yacc.c:1646  */
5954 > #line 5955 "conf_parser.c" /* yacc.c:1646  */
5955      break;
5956  
5957    case 562:
5958 < #line 2718 "conf_parser.y" /* yacc.c:1646  */
5958 > #line 2746 "conf_parser.y" /* yacc.c:1646  */
5959      {
5960    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
5961   }
5962 < #line 5978 "conf_parser.c" /* yacc.c:1646  */
5962 > #line 5963 "conf_parser.c" /* yacc.c:1646  */
5963      break;
5964  
5965    case 563:
5966 < #line 2721 "conf_parser.y" /* yacc.c:1646  */
5966 > #line 2749 "conf_parser.y" /* yacc.c:1646  */
5967      {
5968    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
5969   }
5970 < #line 5986 "conf_parser.c" /* yacc.c:1646  */
5970 > #line 5971 "conf_parser.c" /* yacc.c:1646  */
5971      break;
5972  
5973    case 564:
5974 < #line 2724 "conf_parser.y" /* yacc.c:1646  */
5974 > #line 2752 "conf_parser.y" /* yacc.c:1646  */
5975      {
5976    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
5977   }
5978 < #line 5994 "conf_parser.c" /* yacc.c:1646  */
5978 > #line 5979 "conf_parser.c" /* yacc.c:1646  */
5979      break;
5980  
5981    case 565:
5982 < #line 2727 "conf_parser.y" /* yacc.c:1646  */
5982 > #line 2755 "conf_parser.y" /* yacc.c:1646  */
5983      {
5984    ConfigFileEntry.oper_umodes |= UMODE_FULL;
5985   }
5986 < #line 6002 "conf_parser.c" /* yacc.c:1646  */
5986 > #line 5987 "conf_parser.c" /* yacc.c:1646  */
5987      break;
5988  
5989    case 566:
5990 < #line 2730 "conf_parser.y" /* yacc.c:1646  */
5990 > #line 2758 "conf_parser.y" /* yacc.c:1646  */
5991      {
5992    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
5993   }
5994 < #line 6010 "conf_parser.c" /* yacc.c:1646  */
5994 > #line 5995 "conf_parser.c" /* yacc.c:1646  */
5995      break;
5996  
5997    case 567:
5998 < #line 2733 "conf_parser.y" /* yacc.c:1646  */
5998 > #line 2761 "conf_parser.y" /* yacc.c:1646  */
5999      {
6000    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6001   }
6002 < #line 6018 "conf_parser.c" /* yacc.c:1646  */
6002 > #line 6003 "conf_parser.c" /* yacc.c:1646  */
6003      break;
6004  
6005    case 568:
6006 < #line 2736 "conf_parser.y" /* yacc.c:1646  */
6006 > #line 2764 "conf_parser.y" /* yacc.c:1646  */
6007      {
6008    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6009   }
6010 < #line 6026 "conf_parser.c" /* yacc.c:1646  */
6010 > #line 6011 "conf_parser.c" /* yacc.c:1646  */
6011      break;
6012  
6013    case 569:
6014 < #line 2739 "conf_parser.y" /* yacc.c:1646  */
6014 > #line 2767 "conf_parser.y" /* yacc.c:1646  */
6015      {
6016    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6017   }
6018 < #line 6034 "conf_parser.c" /* yacc.c:1646  */
6018 > #line 6019 "conf_parser.c" /* yacc.c:1646  */
6019      break;
6020  
6021    case 570:
6022 < #line 2742 "conf_parser.y" /* yacc.c:1646  */
6022 > #line 2770 "conf_parser.y" /* yacc.c:1646  */
6023      {
6024    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6025   }
6026 < #line 6042 "conf_parser.c" /* yacc.c:1646  */
6026 > #line 6027 "conf_parser.c" /* yacc.c:1646  */
6027      break;
6028  
6029    case 571:
6030 < #line 2745 "conf_parser.y" /* yacc.c:1646  */
6030 > #line 2773 "conf_parser.y" /* yacc.c:1646  */
6031      {
6032    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6033   }
6034 < #line 6050 "conf_parser.c" /* yacc.c:1646  */
6034 > #line 6035 "conf_parser.c" /* yacc.c:1646  */
6035      break;
6036  
6037    case 572:
6038 < #line 2748 "conf_parser.y" /* yacc.c:1646  */
6038 > #line 2776 "conf_parser.y" /* yacc.c:1646  */
6039      {
6040    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6041   }
6042 < #line 6058 "conf_parser.c" /* yacc.c:1646  */
6042 > #line 6043 "conf_parser.c" /* yacc.c:1646  */
6043      break;
6044  
6045    case 573:
6046 < #line 2751 "conf_parser.y" /* yacc.c:1646  */
6046 > #line 2779 "conf_parser.y" /* yacc.c:1646  */
6047      {
6048    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6049   }
6050 < #line 6066 "conf_parser.c" /* yacc.c:1646  */
6050 > #line 6051 "conf_parser.c" /* yacc.c:1646  */
6051      break;
6052  
6053    case 574:
6054 < #line 2754 "conf_parser.y" /* yacc.c:1646  */
6054 > #line 2782 "conf_parser.y" /* yacc.c:1646  */
6055      {
6056    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6057   }
6058 < #line 6074 "conf_parser.c" /* yacc.c:1646  */
6058 > #line 6059 "conf_parser.c" /* yacc.c:1646  */
6059      break;
6060  
6061    case 575:
6062 < #line 2757 "conf_parser.y" /* yacc.c:1646  */
6062 > #line 2785 "conf_parser.y" /* yacc.c:1646  */
6063      {
6064    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6065   }
6066 < #line 6082 "conf_parser.c" /* yacc.c:1646  */
6066 > #line 6067 "conf_parser.c" /* yacc.c:1646  */
6067      break;
6068  
6069    case 576:
6070 < #line 2760 "conf_parser.y" /* yacc.c:1646  */
6070 > #line 2788 "conf_parser.y" /* yacc.c:1646  */
6071      {
6072    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6073   }
6074 < #line 6090 "conf_parser.c" /* yacc.c:1646  */
6074 > #line 6075 "conf_parser.c" /* yacc.c:1646  */
6075      break;
6076  
6077    case 577:
6078 < #line 2763 "conf_parser.y" /* yacc.c:1646  */
6078 > #line 2791 "conf_parser.y" /* yacc.c:1646  */
6079      {
6080    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6081   }
6082 < #line 6098 "conf_parser.c" /* yacc.c:1646  */
6082 > #line 6083 "conf_parser.c" /* yacc.c:1646  */
6083      break;
6084  
6085    case 578:
6086 < #line 2766 "conf_parser.y" /* yacc.c:1646  */
6086 > #line 2794 "conf_parser.y" /* yacc.c:1646  */
6087      {
6088    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6089   }
6090 < #line 6106 "conf_parser.c" /* yacc.c:1646  */
6090 > #line 6091 "conf_parser.c" /* yacc.c:1646  */
6091      break;
6092  
6093    case 579:
6094 < #line 2769 "conf_parser.y" /* yacc.c:1646  */
6094 > #line 2797 "conf_parser.y" /* yacc.c:1646  */
6095      {
6096    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6097   }
6098 < #line 6114 "conf_parser.c" /* yacc.c:1646  */
6098 > #line 6099 "conf_parser.c" /* yacc.c:1646  */
6099      break;
6100  
6101    case 580:
6102 < #line 2772 "conf_parser.y" /* yacc.c:1646  */
6102 > #line 2800 "conf_parser.y" /* yacc.c:1646  */
6103      {
6104    ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6105   }
6106 < #line 6122 "conf_parser.c" /* yacc.c:1646  */
6106 > #line 6107 "conf_parser.c" /* yacc.c:1646  */
6107      break;
6108  
6109    case 581:
6110 < #line 2775 "conf_parser.y" /* yacc.c:1646  */
6110 > #line 2803 "conf_parser.y" /* yacc.c:1646  */
6111      {
6112    ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6113   }
6114 < #line 6130 "conf_parser.c" /* yacc.c:1646  */
6114 > #line 6115 "conf_parser.c" /* yacc.c:1646  */
6115      break;
6116  
6117    case 582:
6118 < #line 2780 "conf_parser.y" /* yacc.c:1646  */
6118 > #line 2808 "conf_parser.y" /* yacc.c:1646  */
6119      {
6120    ConfigFileEntry.oper_only_umodes = 0;
6121   }
6122 < #line 6138 "conf_parser.c" /* yacc.c:1646  */
6122 > #line 6123 "conf_parser.c" /* yacc.c:1646  */
6123      break;
6124  
6125    case 586:
6126 < #line 2786 "conf_parser.y" /* yacc.c:1646  */
6126 > #line 2814 "conf_parser.y" /* yacc.c:1646  */
6127      {
6128    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6129   }
6130 < #line 6146 "conf_parser.c" /* yacc.c:1646  */
6130 > #line 6131 "conf_parser.c" /* yacc.c:1646  */
6131      break;
6132  
6133    case 587:
6134 < #line 2789 "conf_parser.y" /* yacc.c:1646  */
6134 > #line 2817 "conf_parser.y" /* yacc.c:1646  */
6135      {
6136    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6137   }
6138 < #line 6154 "conf_parser.c" /* yacc.c:1646  */
6138 > #line 6139 "conf_parser.c" /* yacc.c:1646  */
6139      break;
6140  
6141    case 588:
6142 < #line 2792 "conf_parser.y" /* yacc.c:1646  */
6142 > #line 2820 "conf_parser.y" /* yacc.c:1646  */
6143      {
6144    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6145   }
6146 < #line 6162 "conf_parser.c" /* yacc.c:1646  */
6146 > #line 6147 "conf_parser.c" /* yacc.c:1646  */
6147      break;
6148  
6149    case 589:
6150 < #line 2795 "conf_parser.y" /* yacc.c:1646  */
6150 > #line 2823 "conf_parser.y" /* yacc.c:1646  */
6151      {
6152    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6153   }
6154 < #line 6170 "conf_parser.c" /* yacc.c:1646  */
6154 > #line 6155 "conf_parser.c" /* yacc.c:1646  */
6155      break;
6156  
6157    case 590:
6158 < #line 2798 "conf_parser.y" /* yacc.c:1646  */
6158 > #line 2826 "conf_parser.y" /* yacc.c:1646  */
6159      {
6160    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6161   }
6162 < #line 6178 "conf_parser.c" /* yacc.c:1646  */
6162 > #line 6163 "conf_parser.c" /* yacc.c:1646  */
6163      break;
6164  
6165    case 591:
6166 < #line 2801 "conf_parser.y" /* yacc.c:1646  */
6166 > #line 2829 "conf_parser.y" /* yacc.c:1646  */
6167      {
6168    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6169   }
6170 < #line 6186 "conf_parser.c" /* yacc.c:1646  */
6170 > #line 6171 "conf_parser.c" /* yacc.c:1646  */
6171      break;
6172  
6173    case 592:
6174 < #line 2804 "conf_parser.y" /* yacc.c:1646  */
6174 > #line 2832 "conf_parser.y" /* yacc.c:1646  */
6175      {
6176    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6177   }
6178 < #line 6194 "conf_parser.c" /* yacc.c:1646  */
6178 > #line 6179 "conf_parser.c" /* yacc.c:1646  */
6179      break;
6180  
6181    case 593:
6182 < #line 2807 "conf_parser.y" /* yacc.c:1646  */
6182 > #line 2835 "conf_parser.y" /* yacc.c:1646  */
6183      {
6184    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6185   }
6186 < #line 6202 "conf_parser.c" /* yacc.c:1646  */
6186 > #line 6187 "conf_parser.c" /* yacc.c:1646  */
6187      break;
6188  
6189    case 594:
6190 < #line 2810 "conf_parser.y" /* yacc.c:1646  */
6190 > #line 2838 "conf_parser.y" /* yacc.c:1646  */
6191      {
6192    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6193   }
6194 < #line 6210 "conf_parser.c" /* yacc.c:1646  */
6194 > #line 6195 "conf_parser.c" /* yacc.c:1646  */
6195      break;
6196  
6197    case 595:
6198 < #line 2813 "conf_parser.y" /* yacc.c:1646  */
6198 > #line 2841 "conf_parser.y" /* yacc.c:1646  */
6199      {
6200    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6201   }
6202 < #line 6218 "conf_parser.c" /* yacc.c:1646  */
6202 > #line 6203 "conf_parser.c" /* yacc.c:1646  */
6203      break;
6204  
6205    case 596:
6206 < #line 2816 "conf_parser.y" /* yacc.c:1646  */
6206 > #line 2844 "conf_parser.y" /* yacc.c:1646  */
6207      {
6208    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6209   }
6210 < #line 6226 "conf_parser.c" /* yacc.c:1646  */
6210 > #line 6211 "conf_parser.c" /* yacc.c:1646  */
6211      break;
6212  
6213    case 597:
6214 < #line 2819 "conf_parser.y" /* yacc.c:1646  */
6214 > #line 2847 "conf_parser.y" /* yacc.c:1646  */
6215      {
6216    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6217   }
6218 < #line 6234 "conf_parser.c" /* yacc.c:1646  */
6218 > #line 6219 "conf_parser.c" /* yacc.c:1646  */
6219      break;
6220  
6221    case 598:
6222 < #line 2822 "conf_parser.y" /* yacc.c:1646  */
6222 > #line 2850 "conf_parser.y" /* yacc.c:1646  */
6223      {
6224    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6225   }
6226 < #line 6242 "conf_parser.c" /* yacc.c:1646  */
6226 > #line 6227 "conf_parser.c" /* yacc.c:1646  */
6227      break;
6228  
6229    case 599:
6230 < #line 2825 "conf_parser.y" /* yacc.c:1646  */
6230 > #line 2853 "conf_parser.y" /* yacc.c:1646  */
6231      {
6232    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6233   }
6234 < #line 6250 "conf_parser.c" /* yacc.c:1646  */
6234 > #line 6235 "conf_parser.c" /* yacc.c:1646  */
6235      break;
6236  
6237    case 600:
6238 < #line 2828 "conf_parser.y" /* yacc.c:1646  */
6238 > #line 2856 "conf_parser.y" /* yacc.c:1646  */
6239      {
6240    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6241   }
6242 < #line 6258 "conf_parser.c" /* yacc.c:1646  */
6242 > #line 6243 "conf_parser.c" /* yacc.c:1646  */
6243      break;
6244  
6245    case 601:
6246 < #line 2831 "conf_parser.y" /* yacc.c:1646  */
6246 > #line 2859 "conf_parser.y" /* yacc.c:1646  */
6247      {
6248    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6249   }
6250 < #line 6266 "conf_parser.c" /* yacc.c:1646  */
6250 > #line 6251 "conf_parser.c" /* yacc.c:1646  */
6251      break;
6252  
6253    case 602:
6254 < #line 2834 "conf_parser.y" /* yacc.c:1646  */
6254 > #line 2862 "conf_parser.y" /* yacc.c:1646  */
6255      {
6256    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6257   }
6258 < #line 6274 "conf_parser.c" /* yacc.c:1646  */
6258 > #line 6259 "conf_parser.c" /* yacc.c:1646  */
6259      break;
6260  
6261    case 603:
6262 < #line 2837 "conf_parser.y" /* yacc.c:1646  */
6262 > #line 2865 "conf_parser.y" /* yacc.c:1646  */
6263      {
6264    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6265   }
6266 < #line 6282 "conf_parser.c" /* yacc.c:1646  */
6266 > #line 6267 "conf_parser.c" /* yacc.c:1646  */
6267      break;
6268  
6269    case 604:
6270 < #line 2840 "conf_parser.y" /* yacc.c:1646  */
6270 > #line 2868 "conf_parser.y" /* yacc.c:1646  */
6271      {
6272    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6273   }
6274 < #line 6290 "conf_parser.c" /* yacc.c:1646  */
6274 > #line 6275 "conf_parser.c" /* yacc.c:1646  */
6275      break;
6276  
6277    case 605:
6278 < #line 2843 "conf_parser.y" /* yacc.c:1646  */
6278 > #line 2871 "conf_parser.y" /* yacc.c:1646  */
6279      {
6280    ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6281   }
6282 < #line 6298 "conf_parser.c" /* yacc.c:1646  */
6282 > #line 6283 "conf_parser.c" /* yacc.c:1646  */
6283      break;
6284  
6285    case 606:
6286 < #line 2846 "conf_parser.y" /* yacc.c:1646  */
6286 > #line 2874 "conf_parser.y" /* yacc.c:1646  */
6287      {
6288    ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6289   }
6290 < #line 6306 "conf_parser.c" /* yacc.c:1646  */
6290 > #line 6291 "conf_parser.c" /* yacc.c:1646  */
6291      break;
6292  
6293    case 607:
6294 < #line 2851 "conf_parser.y" /* yacc.c:1646  */
6294 > #line 2879 "conf_parser.y" /* yacc.c:1646  */
6295      {
6296    ConfigFileEntry.min_nonwildcard = (yyvsp[-1].number);
6297   }
6298 < #line 6314 "conf_parser.c" /* yacc.c:1646  */
6298 > #line 6299 "conf_parser.c" /* yacc.c:1646  */
6299      break;
6300  
6301    case 608:
6302 < #line 2856 "conf_parser.y" /* yacc.c:1646  */
6302 > #line 2884 "conf_parser.y" /* yacc.c:1646  */
6303      {
6304    ConfigFileEntry.min_nonwildcard_simple = (yyvsp[-1].number);
6305   }
6306 < #line 6322 "conf_parser.c" /* yacc.c:1646  */
6306 > #line 6307 "conf_parser.c" /* yacc.c:1646  */
6307      break;
6308  
6309    case 609:
6310 < #line 2861 "conf_parser.y" /* yacc.c:1646  */
6310 > #line 2889 "conf_parser.y" /* yacc.c:1646  */
6311      {
6312    ConfigFileEntry.default_floodcount = (yyvsp[-1].number);
6313   }
6314 < #line 6330 "conf_parser.c" /* yacc.c:1646  */
6314 > #line 6315 "conf_parser.c" /* yacc.c:1646  */
6315      break;
6316  
6317    case 626:
6318 < #line 2884 "conf_parser.y" /* yacc.c:1646  */
6318 > #line 2916 "conf_parser.y" /* yacc.c:1646  */
6319      {
6320    ConfigChannel.disable_fake_channels = yylval.number;
6321   }
6322 < #line 6338 "conf_parser.c" /* yacc.c:1646  */
6322 > #line 6323 "conf_parser.c" /* yacc.c:1646  */
6323      break;
6324  
6325    case 627:
6326 < #line 2889 "conf_parser.y" /* yacc.c:1646  */
6326 > #line 2921 "conf_parser.y" /* yacc.c:1646  */
6327      {
6328    ConfigChannel.knock_delay = (yyvsp[-1].number);
6329   }
6330 < #line 6346 "conf_parser.c" /* yacc.c:1646  */
6330 > #line 6331 "conf_parser.c" /* yacc.c:1646  */
6331      break;
6332  
6333    case 628:
6334 < #line 2894 "conf_parser.y" /* yacc.c:1646  */
6334 > #line 2926 "conf_parser.y" /* yacc.c:1646  */
6335      {
6336    ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6337   }
6338 < #line 6354 "conf_parser.c" /* yacc.c:1646  */
6338 > #line 6339 "conf_parser.c" /* yacc.c:1646  */
6339      break;
6340  
6341    case 629:
6342 < #line 2899 "conf_parser.y" /* yacc.c:1646  */
6342 > #line 2931 "conf_parser.y" /* yacc.c:1646  */
6343      {
6344    ConfigChannel.max_chans_per_user = (yyvsp[-1].number);
6345   }
6346 < #line 6362 "conf_parser.c" /* yacc.c:1646  */
6346 > #line 6347 "conf_parser.c" /* yacc.c:1646  */
6347      break;
6348  
6349    case 630:
6350 < #line 2904 "conf_parser.y" /* yacc.c:1646  */
6350 > #line 2936 "conf_parser.y" /* yacc.c:1646  */
6351      {
6352    ConfigChannel.max_chans_per_oper = (yyvsp[-1].number);
6353   }
6354 < #line 6370 "conf_parser.c" /* yacc.c:1646  */
6354 > #line 6355 "conf_parser.c" /* yacc.c:1646  */
6355      break;
6356  
6357    case 631:
6358 < #line 2909 "conf_parser.y" /* yacc.c:1646  */
6358 > #line 2941 "conf_parser.y" /* yacc.c:1646  */
6359      {
6360    ConfigChannel.max_bans = (yyvsp[-1].number);
6361   }
6362 < #line 6378 "conf_parser.c" /* yacc.c:1646  */
6362 > #line 6363 "conf_parser.c" /* yacc.c:1646  */
6363      break;
6364  
6365    case 632:
6366 < #line 2914 "conf_parser.y" /* yacc.c:1646  */
6366 > #line 2946 "conf_parser.y" /* yacc.c:1646  */
6367      {
6368    ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6369   }
6370 < #line 6386 "conf_parser.c" /* yacc.c:1646  */
6370 > #line 6371 "conf_parser.c" /* yacc.c:1646  */
6371      break;
6372  
6373    case 633:
6374 < #line 2919 "conf_parser.y" /* yacc.c:1646  */
6374 > #line 2951 "conf_parser.y" /* yacc.c:1646  */
6375      {
6376    ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6377   }
6378 < #line 6394 "conf_parser.c" /* yacc.c:1646  */
6378 > #line 6379 "conf_parser.c" /* yacc.c:1646  */
6379      break;
6380  
6381    case 634:
6382 < #line 2924 "conf_parser.y" /* yacc.c:1646  */
6382 > #line 2956 "conf_parser.y" /* yacc.c:1646  */
6383      {
6384    ConfigChannel.no_create_on_split = yylval.number;
6385   }
6386 < #line 6402 "conf_parser.c" /* yacc.c:1646  */
6386 > #line 6387 "conf_parser.c" /* yacc.c:1646  */
6387      break;
6388  
6389    case 635:
6390 < #line 2929 "conf_parser.y" /* yacc.c:1646  */
6390 > #line 2961 "conf_parser.y" /* yacc.c:1646  */
6391      {
6392    ConfigChannel.no_join_on_split = yylval.number;
6393   }
6394 < #line 6410 "conf_parser.c" /* yacc.c:1646  */
6394 > #line 6395 "conf_parser.c" /* yacc.c:1646  */
6395      break;
6396  
6397    case 636:
6398 < #line 2934 "conf_parser.y" /* yacc.c:1646  */
6398 > #line 2966 "conf_parser.y" /* yacc.c:1646  */
6399      {
6400    GlobalSetOptions.joinfloodcount = yylval.number;
6401   }
6402 < #line 6418 "conf_parser.c" /* yacc.c:1646  */
6402 > #line 6403 "conf_parser.c" /* yacc.c:1646  */
6403      break;
6404  
6405    case 637:
6406 < #line 2939 "conf_parser.y" /* yacc.c:1646  */
6406 > #line 2971 "conf_parser.y" /* yacc.c:1646  */
6407      {
6408 <  GlobalSetOptions.joinfloodtime = yylval.number;
6408 >  GlobalSetOptions.joinfloodtime = (yyvsp[-1].number);
6409   }
6410 < #line 6426 "conf_parser.c" /* yacc.c:1646  */
6410 > #line 6411 "conf_parser.c" /* yacc.c:1646  */
6411      break;
6412  
6413    case 650:
6414 < #line 2959 "conf_parser.y" /* yacc.c:1646  */
6414 > #line 2993 "conf_parser.y" /* yacc.c:1646  */
6415      {
6416    if (conf_parser_ctx.pass == 2)
6417      ConfigServerHide.flatten_links = yylval.number;
6418   }
6419 < #line 6435 "conf_parser.c" /* yacc.c:1646  */
6419 > #line 6420 "conf_parser.c" /* yacc.c:1646  */
6420      break;
6421  
6422    case 651:
6423 < #line 2965 "conf_parser.y" /* yacc.c:1646  */
6423 > #line 2999 "conf_parser.y" /* yacc.c:1646  */
6424      {
6425    if (conf_parser_ctx.pass == 2)
6426      ConfigServerHide.disable_remote_commands = yylval.number;
6427   }
6428 < #line 6444 "conf_parser.c" /* yacc.c:1646  */
6428 > #line 6429 "conf_parser.c" /* yacc.c:1646  */
6429      break;
6430  
6431    case 652:
6432 < #line 2971 "conf_parser.y" /* yacc.c:1646  */
6432 > #line 3005 "conf_parser.y" /* yacc.c:1646  */
6433      {
6434    if (conf_parser_ctx.pass == 2)
6435      ConfigServerHide.hide_servers = yylval.number;
6436   }
6437 < #line 6453 "conf_parser.c" /* yacc.c:1646  */
6437 > #line 6438 "conf_parser.c" /* yacc.c:1646  */
6438      break;
6439  
6440    case 653:
6441 < #line 2977 "conf_parser.y" /* yacc.c:1646  */
6441 > #line 3011 "conf_parser.y" /* yacc.c:1646  */
6442      {
6443    if (conf_parser_ctx.pass == 2)
6444      ConfigServerHide.hide_services = yylval.number;
6445   }
6446 < #line 6462 "conf_parser.c" /* yacc.c:1646  */
6446 > #line 6447 "conf_parser.c" /* yacc.c:1646  */
6447      break;
6448  
6449    case 654:
6450 < #line 2983 "conf_parser.y" /* yacc.c:1646  */
6450 > #line 3017 "conf_parser.y" /* yacc.c:1646  */
6451      {
6452    if (conf_parser_ctx.pass == 2)
6453    {
# Line 6470 | Line 6455 | yyreduce:
6455      ConfigServerHide.hidden_name = xstrdup(yylval.string);
6456    }
6457   }
6458 < #line 6474 "conf_parser.c" /* yacc.c:1646  */
6458 > #line 6459 "conf_parser.c" /* yacc.c:1646  */
6459      break;
6460  
6461    case 655:
6462 < #line 2992 "conf_parser.y" /* yacc.c:1646  */
6462 > #line 3026 "conf_parser.y" /* yacc.c:1646  */
6463      {
6464    if (conf_parser_ctx.pass == 2)
6465    {
# Line 6487 | Line 6472 | yyreduce:
6472      ConfigServerHide.links_delay = (yyvsp[-1].number);
6473    }
6474   }
6475 < #line 6491 "conf_parser.c" /* yacc.c:1646  */
6475 > #line 6476 "conf_parser.c" /* yacc.c:1646  */
6476      break;
6477  
6478    case 656:
6479 < #line 3006 "conf_parser.y" /* yacc.c:1646  */
6479 > #line 3040 "conf_parser.y" /* yacc.c:1646  */
6480      {
6481    if (conf_parser_ctx.pass == 2)
6482      ConfigServerHide.hidden = yylval.number;
6483   }
6484 < #line 6500 "conf_parser.c" /* yacc.c:1646  */
6484 > #line 6485 "conf_parser.c" /* yacc.c:1646  */
6485      break;
6486  
6487    case 657:
6488 < #line 3012 "conf_parser.y" /* yacc.c:1646  */
6488 > #line 3046 "conf_parser.y" /* yacc.c:1646  */
6489      {
6490    if (conf_parser_ctx.pass == 2)
6491      ConfigServerHide.hide_server_ips = yylval.number;
6492   }
6493 < #line 6509 "conf_parser.c" /* yacc.c:1646  */
6493 > #line 6494 "conf_parser.c" /* yacc.c:1646  */
6494      break;
6495  
6496  
6497 < #line 6513 "conf_parser.c" /* yacc.c:1646  */
6497 > #line 6498 "conf_parser.c" /* yacc.c:1646  */
6498        default: break;
6499      }
6500    /* User semantic actions sometimes alter yychar, and that requires

Diff Legend

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