/[svn]/ircd-hybrid/trunk/src/conf_parser.c
ViewVC logotype

Diff of /ircd-hybrid/trunk/src/conf_parser.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4623 by michael, Fri Aug 22 08:46:13 2014 UTC revision 4624 by michael, Sun Sep 21 08:41:22 2014 UTC
# Line 1039  static const yytype_uint16 yyrline[] = Line 1039  static const yytype_uint16 yyrline[] =
1039       432,   433,   434,   435,   442,   445,   445,   446,   446,   446,       432,   433,   434,   435,   442,   445,   445,   446,   446,   446,
1040       448,   454,   461,   463,   463,   464,   465,   466,   467,   468,       448,   454,   461,   463,   463,   464,   465,   466,   467,   468,
1041       469,   470,   471,   472,   473,   474,   475,   476,   477,   478,       469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
1042       479,   480,   481,   484,   526,   584,   613,   621,   635,   663,       479,   480,   481,   484,   524,   582,   611,   619,   633,   661,
1043       678,   693,   703,   717,   726,   754,   782,   807,   829,   851,       676,   691,   701,   715,   724,   752,   780,   805,   827,   849,
1044       860,   862,   862,   863,   864,   865,   866,   868,   877,   886,       858,   860,   860,   861,   862,   863,   864,   866,   875,   884,
1045       899,   898,   916,   916,   917,   917,   917,   919,   925,   935,       897,   896,   914,   914,   915,   915,   915,   917,   923,   933,
1046       934,   953,   953,   954,   954,   954,   954,   954,   956,   962,       932,   951,   951,   952,   952,   952,   952,   952,   954,   960,
1047       968,   974,   997,   998,   998,  1000,  1000,  1001,  1003,  1010,       966,   972,   995,   996,   996,   998,   998,   999,  1001,  1008,
1048      1010,  1023,  1024,  1026,  1026,  1027,  1027,  1029,  1037,  1040,      1008,  1021,  1022,  1024,  1024,  1025,  1025,  1027,  1035,  1038,
1049      1046,  1045,  1051,  1051,  1052,  1056,  1060,  1064,  1068,  1072,      1044,  1043,  1049,  1049,  1050,  1054,  1058,  1062,  1066,  1070,
1050      1076,  1080,  1084,  1095,  1094,  1180,  1180,  1181,  1182,  1183,      1074,  1078,  1082,  1093,  1092,  1178,  1178,  1179,  1180,  1181,
1051      1184,  1185,  1186,  1187,  1188,  1189,  1190,  1191,  1193,  1199,      1182,  1183,  1184,  1185,  1186,  1187,  1188,  1189,  1191,  1197,
1052      1205,  1211,  1222,  1228,  1234,  1245,  1252,  1251,  1257,  1257,      1203,  1209,  1220,  1226,  1232,  1243,  1250,  1249,  1255,  1255,
1053      1258,  1262,  1266,  1270,  1274,  1278,  1282,  1286,  1290,  1294,      1256,  1260,  1264,  1268,  1272,  1276,  1280,  1284,  1288,  1292,
1054      1298,  1302,  1306,  1310,  1314,  1318,  1322,  1326,  1330,  1334,      1296,  1300,  1304,  1308,  1312,  1316,  1320,  1324,  1328,  1332,
1055      1338,  1342,  1349,  1348,  1354,  1354,  1355,  1359,  1363,  1367,      1336,  1340,  1347,  1346,  1352,  1352,  1353,  1357,  1361,  1365,
1056      1371,  1375,  1379,  1383,  1387,  1391,  1395,  1399,  1403,  1407,      1369,  1373,  1377,  1381,  1385,  1389,  1393,  1397,  1401,  1405,
1057      1411,  1415,  1419,  1423,  1427,  1431,  1435,  1439,  1443,  1454,      1409,  1413,  1417,  1421,  1425,  1429,  1433,  1437,  1441,  1452,
1058      1453,  1515,  1515,  1516,  1517,  1518,  1519,  1520,  1521,  1522,      1451,  1513,  1513,  1514,  1515,  1516,  1517,  1518,  1519,  1520,
1059      1523,  1524,  1525,  1526,  1527,  1528,  1528,  1529,  1530,  1531,      1521,  1522,  1523,  1524,  1525,  1526,  1526,  1527,  1528,  1529,
1060      1532,  1534,  1540,  1546,  1552,  1558,  1564,  1570,  1576,  1582,      1530,  1532,  1538,  1544,  1550,  1556,  1562,  1568,  1574,  1580,
1061      1588,  1594,  1601,  1607,  1613,  1619,  1628,  1638,  1637,  1643,      1586,  1592,  1599,  1605,  1611,  1617,  1626,  1636,  1635,  1641,
1062      1643,  1644,  1648,  1659,  1658,  1665,  1664,  1669,  1669,  1670,      1641,  1642,  1646,  1657,  1656,  1663,  1662,  1667,  1667,  1668,
1063      1674,  1678,  1684,  1684,  1685,  1685,  1685,  1685,  1685,  1687,      1672,  1676,  1682,  1682,  1683,  1683,  1683,  1683,  1683,  1685,
1064      1687,  1689,  1689,  1691,  1704,  1721,  1727,  1737,  1736,  1778,      1685,  1687,  1687,  1689,  1702,  1719,  1725,  1735,  1734,  1776,
1065      1778,  1779,  1780,  1781,  1782,  1783,  1784,  1785,  1786,  1787,      1776,  1777,  1778,  1779,  1780,  1781,  1782,  1783,  1784,  1785,
1066      1789,  1795,  1801,  1807,  1819,  1818,  1824,  1824,  1825,  1829,      1787,  1793,  1799,  1805,  1817,  1816,  1822,  1822,  1823,  1827,
1067      1833,  1837,  1841,  1845,  1849,  1853,  1857,  1861,  1867,  1881,      1831,  1835,  1839,  1843,  1847,  1851,  1855,  1859,  1865,  1879,
1068      1890,  1904,  1903,  1918,  1918,  1919,  1919,  1919,  1919,  1921,      1888,  1902,  1901,  1916,  1916,  1917,  1917,  1917,  1917,  1919,
1069      1927,  1933,  1943,  1945,  1945,  1946,  1946,  1948,  1964,  1963,      1925,  1931,  1941,  1943,  1943,  1944,  1944,  1946,  1962,  1961,
1070      1988,  1988,  1989,  1989,  1989,  1989,  1991,  1997,  2017,  2016,      1986,  1986,  1987,  1987,  1987,  1987,  1989,  1995,  2015,  2014,
1071      2022,  2022,  2023,  2027,  2031,  2035,  2039,  2043,  2047,  2051,      2020,  2020,  2021,  2025,  2029,  2033,  2037,  2041,  2045,  2049,
1072      2055,  2059,  2069,  2068,  2089,  2089,  2090,  2090,  2090,  2092,      2053,  2057,  2067,  2066,  2087,  2087,  2088,  2088,  2088,  2090,
1073      2099,  2098,  2104,  2104,  2105,  2109,  2113,  2117,  2121,  2125,      2097,  2096,  2102,  2102,  2103,  2107,  2111,  2115,  2119,  2123,
1074      2129,  2133,  2137,  2141,  2151,  2150,  2222,  2222,  2223,  2224,      2127,  2131,  2135,  2139,  2149,  2148,  2220,  2220,  2221,  2222,
1075      2225,  2226,  2227,  2228,  2229,  2230,  2231,  2232,  2233,  2234,      2223,  2224,  2225,  2226,  2227,  2228,  2229,  2230,  2231,  2232,
1076      2235,  2236,  2237,  2239,  2245,  2251,  2257,  2270,  2283,  2289,      2233,  2234,  2235,  2237,  2243,  2249,  2255,  2268,  2281,  2287,
1077      2295,  2299,  2306,  2305,  2310,  2310,  2311,  2315,  2321,  2332,      2293,  2297,  2304,  2303,  2308,  2308,  2309,  2313,  2319,  2330,
1078      2338,  2344,  2350,  2366,  2365,  2391,  2391,  2392,  2392,  2392,      2336,  2342,  2348,  2364,  2363,  2389,  2389,  2390,  2390,  2390,
1079      2394,  2414,  2424,  2423,  2450,  2450,  2451,  2451,  2451,  2453,      2392,  2412,  2422,  2421,  2448,  2448,  2449,  2449,  2449,  2451,
1080      2459,  2468,  2470,  2470,  2471,  2471,  2473,  2491,  2490,  2513,      2457,  2466,  2468,  2468,  2469,  2469,  2471,  2489,  2488,  2511,
1081      2513,  2514,  2514,  2514,  2516,  2522,  2531,  2534,  2534,  2535,      2511,  2512,  2512,  2512,  2514,  2520,  2529,  2532,  2532,  2533,
1082      2536,  2537,  2538,  2539,  2540,  2541,  2542,  2543,  2544,  2545,      2534,  2535,  2536,  2537,  2538,  2539,  2540,  2541,  2542,  2543,
1083      2546,  2547,  2548,  2549,  2550,  2551,  2552,  2553,  2554,  2555,      2544,  2545,  2546,  2547,  2548,  2549,  2550,  2551,  2552,  2553,
1084      2556,  2557,  2558,  2559,  2560,  2561,  2562,  2563,  2564,  2565,      2554,  2555,  2556,  2557,  2558,  2559,  2560,  2561,  2562,  2563,
1085      2566,  2567,  2568,  2569,  2570,  2571,  2572,  2573,  2574,  2575,      2564,  2565,  2566,  2567,  2568,  2569,  2570,  2571,  2572,  2573,
1086      2576,  2577,  2578,  2579,  2580,  2581,  2582,  2583,  2584,  2587,      2574,  2575,  2576,  2577,  2578,  2579,  2580,  2581,  2582,  2585,
1087      2592,  2597,  2602,  2608,  2614,  2620,  2626,  2631,  2636,  2641,      2590,  2595,  2600,  2606,  2612,  2618,  2624,  2629,  2634,  2639,
1088      2646,  2651,  2656,  2661,  2666,  2671,  2676,  2681,  2686,  2691,      2644,  2649,  2654,  2659,  2664,  2669,  2674,  2679,  2684,  2689,
1089      2697,  2708,  2713,  2718,  2723,  2728,  2733,  2738,  2741,  2746,      2695,  2706,  2711,  2716,  2721,  2726,  2731,  2736,  2739,  2744,
1090      2749,  2754,  2759,  2764,  2769,  2774,  2779,  2784,  2789,  2794,      2747,  2752,  2757,  2762,  2767,  2772,  2777,  2782,  2787,  2792,
1091      2799,  2804,  2809,  2814,  2819,  2825,  2824,  2829,  2829,  2830,      2797,  2802,  2807,  2812,  2817,  2823,  2822,  2827,  2827,  2828,
1092      2833,  2836,  2839,  2842,  2845,  2848,  2851,  2854,  2857,  2860,      2831,  2834,  2837,  2840,  2843,  2846,  2849,  2852,  2855,  2858,
1093      2863,  2866,  2869,  2872,  2875,  2878,  2881,  2884,  2887,  2890,      2861,  2864,  2867,  2870,  2873,  2876,  2879,  2882,  2885,  2888,
1094      2893,  2899,  2898,  2903,  2903,  2904,  2907,  2910,  2913,  2916,      2891,  2897,  2896,  2901,  2901,  2902,  2905,  2908,  2911,  2914,
1095      2919,  2922,  2925,  2928,  2931,  2934,  2937,  2940,  2943,  2946,      2917,  2920,  2923,  2926,  2929,  2932,  2935,  2938,  2941,  2944,
1096      2949,  2952,  2955,  2958,  2961,  2966,  2971,  2976,  2985,  2988,      2947,  2950,  2953,  2956,  2959,  2964,  2969,  2974,  2983,  2986,
1097      2988,  2989,  2990,  2991,  2992,  2993,  2994,  2995,  2996,  2997,      2986,  2987,  2988,  2989,  2990,  2991,  2992,  2993,  2994,  2995,
1098      2998,  2999,  3000,  3001,  3002,  3003,  3005,  3010,  3015,  3020,      2996,  2997,  2998,  2999,  3000,  3001,  3003,  3008,  3013,  3018,
1099      3025,  3030,  3035,  3040,  3045,  3050,  3055,  3060,  3065,  3070,      3023,  3028,  3033,  3038,  3043,  3048,  3053,  3058,  3063,  3068,
1100      3078,  3081,  3081,  3082,  3083,  3084,  3085,  3086,  3087,  3088,      3076,  3079,  3079,  3080,  3081,  3082,  3083,  3084,  3085,  3086,
1101      3089,  3090,  3092,  3098,  3104,  3110,  3116,  3125,  3140,  3146      3087,  3088,  3090,  3096,  3102,  3108,  3114,  3123,  3138,  3144
1102  };  };
1103  #endif  #endif
1104    
# Line 2983  yyreduce: Line 2983  yyreduce:
2983        break;        break;
2984      }      }
2985    
2986      if (SSL_CTX_use_certificate_file(ConfigServerInfo.server_ctx, yylval.string,      if (SSL_CTX_use_certificate_chain_file(ConfigServerInfo.server_ctx, yylval.string) <= 0 ||
2987                                       SSL_FILETYPE_PEM) <= 0 ||          SSL_CTX_use_certificate_chain_file(ConfigServerInfo.client_ctx, yylval.string) <= 0)
         SSL_CTX_use_certificate_file(ConfigServerInfo.client_ctx, yylval.string,  
                                      SSL_FILETYPE_PEM) <= 0)  
2988      {      {
2989        report_crypto_errors();        report_crypto_errors();
2990        conf_error_report("Could not open/read certificate file");        conf_error_report("Could not open/read certificate file");
# Line 3013  yyreduce: Line 3011  yyreduce:
3011    }    }
3012  #endif  #endif
3013  }  }
3014  #line 3017 "conf_parser.c" /* yacc.c:1646  */  #line 3015 "conf_parser.c" /* yacc.c:1646  */
3015      break;      break;
3016    
3017    case 74:    case 74:
3018  #line 527 "conf_parser.y" /* yacc.c:1646  */  #line 525 "conf_parser.y" /* yacc.c:1646  */
3019      {      {
3020  #ifdef HAVE_LIBCRYPTO  #ifdef HAVE_LIBCRYPTO
3021    BIO *file = NULL;    BIO *file = NULL;
# Line 3074  yyreduce: Line 3072  yyreduce:
3072    }    }
3073  #endif  #endif
3074  }  }
3075  #line 3078 "conf_parser.c" /* yacc.c:1646  */  #line 3076 "conf_parser.c" /* yacc.c:1646  */
3076      break;      break;
3077    
3078    case 75:    case 75:
3079  #line 585 "conf_parser.y" /* yacc.c:1646  */  #line 583 "conf_parser.y" /* yacc.c:1646  */
3080      {      {
3081  #ifdef HAVE_LIBCRYPTO  #ifdef HAVE_LIBCRYPTO
3082    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
# Line 3106  yyreduce: Line 3104  yyreduce:
3104    }    }
3105  #endif  #endif
3106  }  }
3107  #line 3110 "conf_parser.c" /* yacc.c:1646  */  #line 3108 "conf_parser.c" /* yacc.c:1646  */
3108      break;      break;
3109    
3110    case 76:    case 76:
3111  #line 614 "conf_parser.y" /* yacc.c:1646  */  #line 612 "conf_parser.y" /* yacc.c:1646  */
3112      {      {
3113  #ifdef HAVE_LIBCRYPTO  #ifdef HAVE_LIBCRYPTO
3114    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3115      SSL_CTX_set_cipher_list(ConfigServerInfo.server_ctx, yylval.string);      SSL_CTX_set_cipher_list(ConfigServerInfo.server_ctx, yylval.string);
3116  #endif  #endif
3117  }  }
3118  #line 3121 "conf_parser.c" /* yacc.c:1646  */  #line 3119 "conf_parser.c" /* yacc.c:1646  */
3119      break;      break;
3120    
3121    case 77:    case 77:
3122  #line 622 "conf_parser.y" /* yacc.c:1646  */  #line 620 "conf_parser.y" /* yacc.c:1646  */
3123      {      {
3124  #ifdef HAVE_LIBCRYPTO  #ifdef HAVE_LIBCRYPTO
3125    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
# Line 3134  yyreduce: Line 3132  yyreduce:
3132    }    }
3133  #endif  #endif
3134  }  }
3135  #line 3138 "conf_parser.c" /* yacc.c:1646  */  #line 3136 "conf_parser.c" /* yacc.c:1646  */
3136      break;      break;
3137    
3138    case 78:    case 78:
3139  #line 636 "conf_parser.y" /* yacc.c:1646  */  #line 634 "conf_parser.y" /* yacc.c:1646  */
3140      {      {
3141  #ifdef HAVE_LIBCRYPTO  #ifdef HAVE_LIBCRYPTO
3142  #if OPENSSL_VERSION_NUMBER >= 0x1000005FL && !defined(OPENSSL_NO_ECDH)  #if OPENSSL_VERSION_NUMBER >= 0x1000005FL && !defined(OPENSSL_NO_ECDH)
# Line 3165  yyreduce: Line 3163  yyreduce:
3163  #endif  #endif
3164  #endif  #endif
3165  }  }
3166  #line 3169 "conf_parser.c" /* yacc.c:1646  */  #line 3167 "conf_parser.c" /* yacc.c:1646  */
3167      break;      break;
3168    
3169    case 79:    case 79:
3170  #line 664 "conf_parser.y" /* yacc.c:1646  */  #line 662 "conf_parser.y" /* yacc.c:1646  */
3171      {      {
3172    /* this isn't rehashable */    /* this isn't rehashable */
3173    if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.name)    if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.name)
# Line 3183  yyreduce: Line 3181  yyreduce:
3181      }      }
3182    }    }
3183  }  }
3184  #line 3187 "conf_parser.c" /* yacc.c:1646  */  #line 3185 "conf_parser.c" /* yacc.c:1646  */
3185      break;      break;
3186    
3187    case 80:    case 80:
3188  #line 679 "conf_parser.y" /* yacc.c:1646  */  #line 677 "conf_parser.y" /* yacc.c:1646  */
3189      {      {
3190    /* this isn't rehashable */    /* this isn't rehashable */
3191    if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.sid)    if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.sid)
# Line 3201  yyreduce: Line 3199  yyreduce:
3199      }      }
3200    }    }
3201  }  }
3202  #line 3205 "conf_parser.c" /* yacc.c:1646  */  #line 3203 "conf_parser.c" /* yacc.c:1646  */
3203      break;      break;
3204    
3205    case 81:    case 81:
3206  #line 694 "conf_parser.y" /* yacc.c:1646  */  #line 692 "conf_parser.y" /* yacc.c:1646  */
3207      {      {
3208    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3209    {    {
# Line 3214  yyreduce: Line 3212  yyreduce:
3212      strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));      strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3213    }    }
3214  }  }
3215  #line 3218 "conf_parser.c" /* yacc.c:1646  */  #line 3216 "conf_parser.c" /* yacc.c:1646  */
3216      break;      break;
3217    
3218    case 82:    case 82:
3219  #line 704 "conf_parser.y" /* yacc.c:1646  */  #line 702 "conf_parser.y" /* yacc.c:1646  */
3220      {      {
3221    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3222    {    {
# Line 3231  yyreduce: Line 3229  yyreduce:
3229      ConfigServerInfo.network_name = xstrdup(yylval.string);      ConfigServerInfo.network_name = xstrdup(yylval.string);
3230    }    }
3231  }  }
3232  #line 3235 "conf_parser.c" /* yacc.c:1646  */  #line 3233 "conf_parser.c" /* yacc.c:1646  */
3233      break;      break;
3234    
3235    case 83:    case 83:
3236  #line 718 "conf_parser.y" /* yacc.c:1646  */  #line 716 "conf_parser.y" /* yacc.c:1646  */
3237      {      {
3238    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
3239      break;      break;
# Line 3243  yyreduce: Line 3241  yyreduce:
3241    MyFree(ConfigServerInfo.network_desc);    MyFree(ConfigServerInfo.network_desc);
3242    ConfigServerInfo.network_desc = xstrdup(yylval.string);    ConfigServerInfo.network_desc = xstrdup(yylval.string);
3243  }  }
3244  #line 3247 "conf_parser.c" /* yacc.c:1646  */  #line 3245 "conf_parser.c" /* yacc.c:1646  */
3245      break;      break;
3246    
3247    case 84:    case 84:
3248  #line 727 "conf_parser.y" /* yacc.c:1646  */  #line 725 "conf_parser.y" /* yacc.c:1646  */
3249      {      {
3250    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3251    {    {
# Line 3274  yyreduce: Line 3272  yyreduce:
3272      }      }
3273    }    }
3274  }  }
3275  #line 3278 "conf_parser.c" /* yacc.c:1646  */  #line 3276 "conf_parser.c" /* yacc.c:1646  */
3276      break;      break;
3277    
3278    case 85:    case 85:
3279  #line 755 "conf_parser.y" /* yacc.c:1646  */  #line 753 "conf_parser.y" /* yacc.c:1646  */
3280      {      {
3281    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3282    {    {
# Line 3305  yyreduce: Line 3303  yyreduce:
3303      }      }
3304    }    }
3305  }  }
3306  #line 3309 "conf_parser.c" /* yacc.c:1646  */  #line 3307 "conf_parser.c" /* yacc.c:1646  */
3307      break;      break;
3308    
3309    case 86:    case 86:
3310  #line 783 "conf_parser.y" /* yacc.c:1646  */  #line 781 "conf_parser.y" /* yacc.c:1646  */
3311      {      {
3312    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
3313      break;      break;
# Line 3333  yyreduce: Line 3331  yyreduce:
3331    else    else
3332      ConfigServerInfo.max_clients = (yyvsp[-1].number);      ConfigServerInfo.max_clients = (yyvsp[-1].number);
3333  }  }
3334  #line 3337 "conf_parser.c" /* yacc.c:1646  */  #line 3335 "conf_parser.c" /* yacc.c:1646  */
3335      break;      break;
3336    
3337    case 87:    case 87:
3338  #line 808 "conf_parser.y" /* yacc.c:1646  */  #line 806 "conf_parser.y" /* yacc.c:1646  */
3339      {      {
3340    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
3341      break;      break;
# Line 3358  yyreduce: Line 3356  yyreduce:
3356    else    else
3357      ConfigServerInfo.max_nick_length = (yyvsp[-1].number);      ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3358  }  }
3359  #line 3362 "conf_parser.c" /* yacc.c:1646  */  #line 3360 "conf_parser.c" /* yacc.c:1646  */
3360      break;      break;
3361    
3362    case 88:    case 88:
3363  #line 830 "conf_parser.y" /* yacc.c:1646  */  #line 828 "conf_parser.y" /* yacc.c:1646  */
3364      {      {
3365    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
3366      break;      break;
# Line 3383  yyreduce: Line 3381  yyreduce:
3381    else    else
3382      ConfigServerInfo.max_topic_length = (yyvsp[-1].number);      ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3383  }  }
3384  #line 3387 "conf_parser.c" /* yacc.c:1646  */  #line 3385 "conf_parser.c" /* yacc.c:1646  */
3385      break;      break;
3386    
3387    case 89:    case 89:
3388  #line 852 "conf_parser.y" /* yacc.c:1646  */  #line 850 "conf_parser.y" /* yacc.c:1646  */
3389      {      {
3390    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3391      ConfigServerInfo.hub = yylval.number;      ConfigServerInfo.hub = yylval.number;
3392  }  }
3393  #line 3396 "conf_parser.c" /* yacc.c:1646  */  #line 3394 "conf_parser.c" /* yacc.c:1646  */
3394      break;      break;
3395    
3396    case 97:    case 97:
3397  #line 869 "conf_parser.y" /* yacc.c:1646  */  #line 867 "conf_parser.y" /* yacc.c:1646  */
3398      {      {
3399    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
3400      break;      break;
# Line 3404  yyreduce: Line 3402  yyreduce:
3402    MyFree(ConfigAdminInfo.name);    MyFree(ConfigAdminInfo.name);
3403    ConfigAdminInfo.name = xstrdup(yylval.string);    ConfigAdminInfo.name = xstrdup(yylval.string);
3404  }  }
3405  #line 3408 "conf_parser.c" /* yacc.c:1646  */  #line 3406 "conf_parser.c" /* yacc.c:1646  */
3406      break;      break;
3407    
3408    case 98:    case 98:
3409  #line 878 "conf_parser.y" /* yacc.c:1646  */  #line 876 "conf_parser.y" /* yacc.c:1646  */
3410      {      {
3411    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
3412      break;      break;
# Line 3416  yyreduce: Line 3414  yyreduce:
3414    MyFree(ConfigAdminInfo.email);    MyFree(ConfigAdminInfo.email);
3415    ConfigAdminInfo.email = xstrdup(yylval.string);    ConfigAdminInfo.email = xstrdup(yylval.string);
3416  }  }
3417  #line 3420 "conf_parser.c" /* yacc.c:1646  */  #line 3418 "conf_parser.c" /* yacc.c:1646  */
3418      break;      break;
3419    
3420    case 99:    case 99:
3421  #line 887 "conf_parser.y" /* yacc.c:1646  */  #line 885 "conf_parser.y" /* yacc.c:1646  */
3422      {      {
3423    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
3424      break;      break;
# Line 3428  yyreduce: Line 3426  yyreduce:
3426    MyFree(ConfigAdminInfo.description);    MyFree(ConfigAdminInfo.description);
3427    ConfigAdminInfo.description = xstrdup(yylval.string);    ConfigAdminInfo.description = xstrdup(yylval.string);
3428  }  }
3429  #line 3432 "conf_parser.c" /* yacc.c:1646  */  #line 3430 "conf_parser.c" /* yacc.c:1646  */
3430      break;      break;
3431    
3432    case 100:    case 100:
3433  #line 899 "conf_parser.y" /* yacc.c:1646  */  #line 897 "conf_parser.y" /* yacc.c:1646  */
3434      {      {
3435    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3436      reset_block_state();      reset_block_state();
3437  }  }
3438  #line 3441 "conf_parser.c" /* yacc.c:1646  */  #line 3439 "conf_parser.c" /* yacc.c:1646  */
3439      break;      break;
3440    
3441    case 101:    case 101:
3442  #line 903 "conf_parser.y" /* yacc.c:1646  */  #line 901 "conf_parser.y" /* yacc.c:1646  */
3443      {      {
3444    dlink_node *ptr = NULL;    dlink_node *ptr = NULL;
3445    
# Line 3454  yyreduce: Line 3452  yyreduce:
3452    DLINK_FOREACH(ptr, block_state.mask.list.head)    DLINK_FOREACH(ptr, block_state.mask.list.head)
3453      motd_add(ptr->data, block_state.file.buf);      motd_add(ptr->data, block_state.file.buf);
3454  }  }
3455  #line 3458 "conf_parser.c" /* yacc.c:1646  */  #line 3456 "conf_parser.c" /* yacc.c:1646  */
3456      break;      break;
3457    
3458    case 107:    case 107:
3459  #line 920 "conf_parser.y" /* yacc.c:1646  */  #line 918 "conf_parser.y" /* yacc.c:1646  */
3460      {      {
3461    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3462      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3463  }  }
3464  #line 3467 "conf_parser.c" /* yacc.c:1646  */  #line 3465 "conf_parser.c" /* yacc.c:1646  */
3465      break;      break;
3466    
3467    case 108:    case 108:
3468  #line 926 "conf_parser.y" /* yacc.c:1646  */  #line 924 "conf_parser.y" /* yacc.c:1646  */
3469      {      {
3470    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3471      strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));      strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3472  }  }
3473  #line 3476 "conf_parser.c" /* yacc.c:1646  */  #line 3474 "conf_parser.c" /* yacc.c:1646  */
3474      break;      break;
3475    
3476    case 109:    case 109:
3477  #line 935 "conf_parser.y" /* yacc.c:1646  */  #line 933 "conf_parser.y" /* yacc.c:1646  */
3478      {      {
3479    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3480      reset_block_state();      reset_block_state();
3481  }  }
3482  #line 3485 "conf_parser.c" /* yacc.c:1646  */  #line 3483 "conf_parser.c" /* yacc.c:1646  */
3483      break;      break;
3484    
3485    case 110:    case 110:
3486  #line 939 "conf_parser.y" /* yacc.c:1646  */  #line 937 "conf_parser.y" /* yacc.c:1646  */
3487      {      {
3488    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
3489      break;      break;
# Line 3499  yyreduce: Line 3497  yyreduce:
3497    pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,    pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3498                    block_state.prepend.buf, block_state.command.buf);                    block_state.prepend.buf, block_state.command.buf);
3499  }  }
3500  #line 3503 "conf_parser.c" /* yacc.c:1646  */  #line 3501 "conf_parser.c" /* yacc.c:1646  */
3501      break;      break;
3502    
3503    case 118:    case 118:
3504  #line 957 "conf_parser.y" /* yacc.c:1646  */  #line 955 "conf_parser.y" /* yacc.c:1646  */
3505      {      {
3506    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3507      strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));      strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3508  }  }
3509  #line 3512 "conf_parser.c" /* yacc.c:1646  */  #line 3510 "conf_parser.c" /* yacc.c:1646  */
3510      break;      break;
3511    
3512    case 119:    case 119:
3513  #line 963 "conf_parser.y" /* yacc.c:1646  */  #line 961 "conf_parser.y" /* yacc.c:1646  */
3514      {      {
3515    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3516      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3517  }  }
3518  #line 3521 "conf_parser.c" /* yacc.c:1646  */  #line 3519 "conf_parser.c" /* yacc.c:1646  */
3519      break;      break;
3520    
3521    case 120:    case 120:
3522  #line 969 "conf_parser.y" /* yacc.c:1646  */  #line 967 "conf_parser.y" /* yacc.c:1646  */
3523      {      {
3524    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3525      strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));      strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3526  }  }
3527  #line 3530 "conf_parser.c" /* yacc.c:1646  */  #line 3528 "conf_parser.c" /* yacc.c:1646  */
3528      break;      break;
3529    
3530    case 121:    case 121:
3531  #line 975 "conf_parser.y" /* yacc.c:1646  */  #line 973 "conf_parser.y" /* yacc.c:1646  */
3532      {      {
3533    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3534    {    {
# Line 3549  yyreduce: Line 3547  yyreduce:
3547      strlcpy(block_state.host.buf, nuh.hostptr, sizeof(block_state.host.buf));      strlcpy(block_state.host.buf, nuh.hostptr, sizeof(block_state.host.buf));
3548    }    }
3549  }  }
3550  #line 3553 "conf_parser.c" /* yacc.c:1646  */  #line 3551 "conf_parser.c" /* yacc.c:1646  */
3551      break;      break;
3552    
3553    case 128:    case 128:
3554  #line 1004 "conf_parser.y" /* yacc.c:1646  */  #line 1002 "conf_parser.y" /* yacc.c:1646  */
3555      {      {
3556    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3557      ConfigLog.use_logging = yylval.number;      ConfigLog.use_logging = yylval.number;
3558  }  }
3559  #line 3562 "conf_parser.c" /* yacc.c:1646  */  #line 3560 "conf_parser.c" /* yacc.c:1646  */
3560      break;      break;
3561    
3562    case 129:    case 129:
3563  #line 1010 "conf_parser.y" /* yacc.c:1646  */  #line 1008 "conf_parser.y" /* yacc.c:1646  */
3564      {      {
3565    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3566      reset_block_state();      reset_block_state();
3567  }  }
3568  #line 3571 "conf_parser.c" /* yacc.c:1646  */  #line 3569 "conf_parser.c" /* yacc.c:1646  */
3569      break;      break;
3570    
3571    case 130:    case 130:
3572  #line 1014 "conf_parser.y" /* yacc.c:1646  */  #line 1012 "conf_parser.y" /* yacc.c:1646  */
3573      {      {
3574    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
3575      break;      break;
# Line 3580  yyreduce: Line 3578  yyreduce:
3578      log_set_file(block_state.type.value, block_state.size.value,      log_set_file(block_state.type.value, block_state.size.value,
3579                   block_state.file.buf);                   block_state.file.buf);
3580  }  }
3581  #line 3584 "conf_parser.c" /* yacc.c:1646  */  #line 3582 "conf_parser.c" /* yacc.c:1646  */
3582      break;      break;
3583    
3584    case 137:    case 137:
3585  #line 1030 "conf_parser.y" /* yacc.c:1646  */  #line 1028 "conf_parser.y" /* yacc.c:1646  */
3586      {      {
3587    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
3588      break;      break;
3589    
3590    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3591  }  }
3592  #line 3595 "conf_parser.c" /* yacc.c:1646  */  #line 3593 "conf_parser.c" /* yacc.c:1646  */
3593      break;      break;
3594    
3595    case 138:    case 138:
3596  #line 1038 "conf_parser.y" /* yacc.c:1646  */  #line 1036 "conf_parser.y" /* yacc.c:1646  */
3597      {      {
3598    block_state.size.value = (yyvsp[-1].number);    block_state.size.value = (yyvsp[-1].number);
3599  }  }
3600  #line 3603 "conf_parser.c" /* yacc.c:1646  */  #line 3601 "conf_parser.c" /* yacc.c:1646  */
3601      break;      break;
3602    
3603    case 139:    case 139:
3604  #line 1041 "conf_parser.y" /* yacc.c:1646  */  #line 1039 "conf_parser.y" /* yacc.c:1646  */
3605      {      {
3606    block_state.size.value = 0;    block_state.size.value = 0;
3607  }  }
3608  #line 3611 "conf_parser.c" /* yacc.c:1646  */  #line 3609 "conf_parser.c" /* yacc.c:1646  */
3609      break;      break;
3610    
3611    case 140:    case 140:
3612  #line 1046 "conf_parser.y" /* yacc.c:1646  */  #line 1044 "conf_parser.y" /* yacc.c:1646  */
3613      {      {
3614    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3615      block_state.type.value = 0;      block_state.type.value = 0;
3616  }  }
3617  #line 3620 "conf_parser.c" /* yacc.c:1646  */  #line 3618 "conf_parser.c" /* yacc.c:1646  */
3618      break;      break;
3619    
3620    case 144:    case 144:
3621  #line 1053 "conf_parser.y" /* yacc.c:1646  */  #line 1051 "conf_parser.y" /* yacc.c:1646  */
3622      {      {
3623    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3624      block_state.type.value = LOG_TYPE_USER;      block_state.type.value = LOG_TYPE_USER;
3625  }  }
3626  #line 3629 "conf_parser.c" /* yacc.c:1646  */  #line 3627 "conf_parser.c" /* yacc.c:1646  */
3627      break;      break;
3628    
3629    case 145:    case 145:
3630  #line 1057 "conf_parser.y" /* yacc.c:1646  */  #line 1055 "conf_parser.y" /* yacc.c:1646  */
3631      {      {
3632    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3633      block_state.type.value = LOG_TYPE_OPER;      block_state.type.value = LOG_TYPE_OPER;
3634  }  }
3635  #line 3638 "conf_parser.c" /* yacc.c:1646  */  #line 3636 "conf_parser.c" /* yacc.c:1646  */
3636      break;      break;
3637    
3638    case 146:    case 146:
3639  #line 1061 "conf_parser.y" /* yacc.c:1646  */  #line 1059 "conf_parser.y" /* yacc.c:1646  */
3640      {      {
3641    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3642      block_state.type.value = LOG_TYPE_GLINE;      block_state.type.value = LOG_TYPE_GLINE;
3643  }  }
3644  #line 3647 "conf_parser.c" /* yacc.c:1646  */  #line 3645 "conf_parser.c" /* yacc.c:1646  */
3645      break;      break;
3646    
3647    case 147:    case 147:
3648  #line 1065 "conf_parser.y" /* yacc.c:1646  */  #line 1063 "conf_parser.y" /* yacc.c:1646  */
3649      {      {
3650    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3651      block_state.type.value = LOG_TYPE_XLINE;      block_state.type.value = LOG_TYPE_XLINE;
3652  }  }
3653  #line 3656 "conf_parser.c" /* yacc.c:1646  */  #line 3654 "conf_parser.c" /* yacc.c:1646  */
3654      break;      break;
3655    
3656    case 148:    case 148:
3657  #line 1069 "conf_parser.y" /* yacc.c:1646  */  #line 1067 "conf_parser.y" /* yacc.c:1646  */
3658      {      {
3659    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3660      block_state.type.value = LOG_TYPE_RESV;      block_state.type.value = LOG_TYPE_RESV;
3661  }  }
3662  #line 3665 "conf_parser.c" /* yacc.c:1646  */  #line 3663 "conf_parser.c" /* yacc.c:1646  */
3663      break;      break;
3664    
3665    case 149:    case 149:
3666  #line 1073 "conf_parser.y" /* yacc.c:1646  */  #line 1071 "conf_parser.y" /* yacc.c:1646  */
3667      {      {
3668    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3669      block_state.type.value = LOG_TYPE_DLINE;      block_state.type.value = LOG_TYPE_DLINE;
3670  }  }
3671  #line 3674 "conf_parser.c" /* yacc.c:1646  */  #line 3672 "conf_parser.c" /* yacc.c:1646  */
3672      break;      break;
3673    
3674    case 150:    case 150:
3675  #line 1077 "conf_parser.y" /* yacc.c:1646  */  #line 1075 "conf_parser.y" /* yacc.c:1646  */
3676      {      {
3677    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3678      block_state.type.value = LOG_TYPE_KLINE;      block_state.type.value = LOG_TYPE_KLINE;
3679  }  }
3680  #line 3683 "conf_parser.c" /* yacc.c:1646  */  #line 3681 "conf_parser.c" /* yacc.c:1646  */
3681      break;      break;
3682    
3683    case 151:    case 151:
3684  #line 1081 "conf_parser.y" /* yacc.c:1646  */  #line 1079 "conf_parser.y" /* yacc.c:1646  */
3685      {      {
3686    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3687      block_state.type.value = LOG_TYPE_KILL;      block_state.type.value = LOG_TYPE_KILL;
3688  }  }
3689  #line 3692 "conf_parser.c" /* yacc.c:1646  */  #line 3690 "conf_parser.c" /* yacc.c:1646  */
3690      break;      break;
3691    
3692    case 152:    case 152:
3693  #line 1085 "conf_parser.y" /* yacc.c:1646  */  #line 1083 "conf_parser.y" /* yacc.c:1646  */
3694      {      {
3695    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3696      block_state.type.value = LOG_TYPE_DEBUG;      block_state.type.value = LOG_TYPE_DEBUG;
3697  }  }
3698  #line 3701 "conf_parser.c" /* yacc.c:1646  */  #line 3699 "conf_parser.c" /* yacc.c:1646  */
3699      break;      break;
3700    
3701    case 153:    case 153:
3702  #line 1095 "conf_parser.y" /* yacc.c:1646  */  #line 1093 "conf_parser.y" /* yacc.c:1646  */
3703      {      {
3704    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
3705      break;      break;
# Line 3709  yyreduce: Line 3707  yyreduce:
3707    reset_block_state();    reset_block_state();
3708    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3709  }  }
3710  #line 3713 "conf_parser.c" /* yacc.c:1646  */  #line 3711 "conf_parser.c" /* yacc.c:1646  */
3711      break;      break;
3712    
3713    case 154:    case 154:
3714  #line 1102 "conf_parser.y" /* yacc.c:1646  */  #line 1100 "conf_parser.y" /* yacc.c:1646  */
3715      {      {
3716    dlink_node *ptr = NULL;    dlink_node *ptr = NULL;
3717    
# Line 3791  yyreduce: Line 3789  yyreduce:
3789  #endif /* HAVE_LIBCRYPTO */  #endif /* HAVE_LIBCRYPTO */
3790    }    }
3791  }  }
3792  #line 3795 "conf_parser.c" /* yacc.c:1646  */  #line 3793 "conf_parser.c" /* yacc.c:1646  */
3793      break;      break;
3794    
3795    case 168:    case 168:
3796  #line 1194 "conf_parser.y" /* yacc.c:1646  */  #line 1192 "conf_parser.y" /* yacc.c:1646  */
3797      {      {
3798    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3799      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3800  }  }
3801  #line 3804 "conf_parser.c" /* yacc.c:1646  */  #line 3802 "conf_parser.c" /* yacc.c:1646  */
3802      break;      break;
3803    
3804    case 169:    case 169:
3805  #line 1200 "conf_parser.y" /* yacc.c:1646  */  #line 1198 "conf_parser.y" /* yacc.c:1646  */
3806      {      {
3807    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3808      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3809  }  }
3810  #line 3813 "conf_parser.c" /* yacc.c:1646  */  #line 3811 "conf_parser.c" /* yacc.c:1646  */
3811      break;      break;
3812    
3813    case 170:    case 170:
3814  #line 1206 "conf_parser.y" /* yacc.c:1646  */  #line 1204 "conf_parser.y" /* yacc.c:1646  */
3815      {      {
3816    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3817      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3818  }  }
3819  #line 3822 "conf_parser.c" /* yacc.c:1646  */  #line 3820 "conf_parser.c" /* yacc.c:1646  */
3820      break;      break;
3821    
3822    case 171:    case 171:
3823  #line 1212 "conf_parser.y" /* yacc.c:1646  */  #line 1210 "conf_parser.y" /* yacc.c:1646  */
3824      {      {
3825    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
3826      break;      break;
# Line 3832  yyreduce: Line 3830  yyreduce:
3830    else    else
3831      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3832  }  }
3833  #line 3836 "conf_parser.c" /* yacc.c:1646  */  #line 3834 "conf_parser.c" /* yacc.c:1646  */
3834      break;      break;
3835    
3836    case 172:    case 172:
3837  #line 1223 "conf_parser.y" /* yacc.c:1646  */  #line 1221 "conf_parser.y" /* yacc.c:1646  */
3838      {      {
3839    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3840      strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));      strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3841  }  }
3842  #line 3845 "conf_parser.c" /* yacc.c:1646  */  #line 3843 "conf_parser.c" /* yacc.c:1646  */
3843      break;      break;
3844    
3845    case 173:    case 173:
3846  #line 1229 "conf_parser.y" /* yacc.c:1646  */  #line 1227 "conf_parser.y" /* yacc.c:1646  */
3847      {      {
3848    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3849      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3850  }  }
3851  #line 3854 "conf_parser.c" /* yacc.c:1646  */  #line 3852 "conf_parser.c" /* yacc.c:1646  */
3852      break;      break;
3853    
3854    case 174:    case 174:
3855  #line 1235 "conf_parser.y" /* yacc.c:1646  */  #line 1233 "conf_parser.y" /* yacc.c:1646  */
3856      {      {
3857    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
3858      break;      break;
# Line 3864  yyreduce: Line 3862  yyreduce:
3862    else    else
3863      block_state.flags.value &= ~CONF_FLAGS_SSL;      block_state.flags.value &= ~CONF_FLAGS_SSL;
3864  }  }
3865  #line 3868 "conf_parser.c" /* yacc.c:1646  */  #line 3866 "conf_parser.c" /* yacc.c:1646  */
3866      break;      break;
3867    
3868    case 175:    case 175:
3869  #line 1246 "conf_parser.y" /* yacc.c:1646  */  #line 1244 "conf_parser.y" /* yacc.c:1646  */
3870      {      {
3871    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3872      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3873  }  }
3874  #line 3877 "conf_parser.c" /* yacc.c:1646  */  #line 3875 "conf_parser.c" /* yacc.c:1646  */
3875      break;      break;
3876    
3877    case 176:    case 176:
3878  #line 1252 "conf_parser.y" /* yacc.c:1646  */  #line 1250 "conf_parser.y" /* yacc.c:1646  */
3879      {      {
3880    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3881      block_state.modes.value = 0;      block_state.modes.value = 0;
3882  }  }
3883  #line 3886 "conf_parser.c" /* yacc.c:1646  */  #line 3884 "conf_parser.c" /* yacc.c:1646  */
3884      break;      break;
3885    
3886    case 180:    case 180:
3887  #line 1259 "conf_parser.y" /* yacc.c:1646  */  #line 1257 "conf_parser.y" /* yacc.c:1646  */
3888      {      {
3889    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3890      block_state.modes.value |= UMODE_BOTS;      block_state.modes.value |= UMODE_BOTS;
3891  }  }
3892  #line 3895 "conf_parser.c" /* yacc.c:1646  */  #line 3893 "conf_parser.c" /* yacc.c:1646  */
3893      break;      break;
3894    
3895    case 181:    case 181:
3896  #line 1263 "conf_parser.y" /* yacc.c:1646  */  #line 1261 "conf_parser.y" /* yacc.c:1646  */
3897      {      {
3898    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3899      block_state.modes.value |= UMODE_CCONN;      block_state.modes.value |= UMODE_CCONN;
3900  }  }
3901  #line 3904 "conf_parser.c" /* yacc.c:1646  */  #line 3902 "conf_parser.c" /* yacc.c:1646  */
3902      break;      break;
3903    
3904    case 182:    case 182:
3905  #line 1267 "conf_parser.y" /* yacc.c:1646  */  #line 1265 "conf_parser.y" /* yacc.c:1646  */
3906      {      {
3907    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3908      block_state.modes.value |= UMODE_DEAF;      block_state.modes.value |= UMODE_DEAF;
3909  }  }
3910  #line 3913 "conf_parser.c" /* yacc.c:1646  */  #line 3911 "conf_parser.c" /* yacc.c:1646  */
3911      break;      break;
3912    
3913    case 183:    case 183:
3914  #line 1271 "conf_parser.y" /* yacc.c:1646  */  #line 1269 "conf_parser.y" /* yacc.c:1646  */
3915      {      {
3916    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3917      block_state.modes.value |= UMODE_DEBUG;      block_state.modes.value |= UMODE_DEBUG;
3918  }  }
3919  #line 3922 "conf_parser.c" /* yacc.c:1646  */  #line 3920 "conf_parser.c" /* yacc.c:1646  */
3920      break;      break;
3921    
3922    case 184:    case 184:
3923  #line 1275 "conf_parser.y" /* yacc.c:1646  */  #line 1273 "conf_parser.y" /* yacc.c:1646  */
3924      {      {
3925    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3926      block_state.modes.value |= UMODE_FULL;      block_state.modes.value |= UMODE_FULL;
3927  }  }
3928  #line 3931 "conf_parser.c" /* yacc.c:1646  */  #line 3929 "conf_parser.c" /* yacc.c:1646  */
3929      break;      break;
3930    
3931    case 185:    case 185:
3932  #line 1279 "conf_parser.y" /* yacc.c:1646  */  #line 1277 "conf_parser.y" /* yacc.c:1646  */
3933      {      {
3934    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3935      block_state.modes.value |= UMODE_HIDDEN;      block_state.modes.value |= UMODE_HIDDEN;
3936  }  }
3937  #line 3940 "conf_parser.c" /* yacc.c:1646  */  #line 3938 "conf_parser.c" /* yacc.c:1646  */
3938      break;      break;
3939    
3940    case 186:    case 186:
3941  #line 1283 "conf_parser.y" /* yacc.c:1646  */  #line 1281 "conf_parser.y" /* yacc.c:1646  */
3942      {      {
3943    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3944      block_state.modes.value |= UMODE_HIDECHANS;      block_state.modes.value |= UMODE_HIDECHANS;
3945  }  }
3946  #line 3949 "conf_parser.c" /* yacc.c:1646  */  #line 3947 "conf_parser.c" /* yacc.c:1646  */
3947      break;      break;
3948    
3949    case 187:    case 187:
3950  #line 1287 "conf_parser.y" /* yacc.c:1646  */  #line 1285 "conf_parser.y" /* yacc.c:1646  */
3951      {      {
3952    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3953      block_state.modes.value |= UMODE_HIDEIDLE;      block_state.modes.value |= UMODE_HIDEIDLE;
3954  }  }
3955  #line 3958 "conf_parser.c" /* yacc.c:1646  */  #line 3956 "conf_parser.c" /* yacc.c:1646  */
3956      break;      break;
3957    
3958    case 188:    case 188:
3959  #line 1291 "conf_parser.y" /* yacc.c:1646  */  #line 1289 "conf_parser.y" /* yacc.c:1646  */
3960      {      {
3961    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3962      block_state.modes.value |= UMODE_SKILL;      block_state.modes.value |= UMODE_SKILL;
3963  }  }
3964  #line 3967 "conf_parser.c" /* yacc.c:1646  */  #line 3965 "conf_parser.c" /* yacc.c:1646  */
3965      break;      break;
3966    
3967    case 189:    case 189:
3968  #line 1295 "conf_parser.y" /* yacc.c:1646  */  #line 1293 "conf_parser.y" /* yacc.c:1646  */
3969      {      {
3970    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3971      block_state.modes.value |= UMODE_NCHANGE;      block_state.modes.value |= UMODE_NCHANGE;
3972  }  }
3973  #line 3976 "conf_parser.c" /* yacc.c:1646  */  #line 3974 "conf_parser.c" /* yacc.c:1646  */
3974      break;      break;
3975    
3976    case 190:    case 190:
3977  #line 1299 "conf_parser.y" /* yacc.c:1646  */  #line 1297 "conf_parser.y" /* yacc.c:1646  */
3978      {      {
3979    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3980      block_state.modes.value |= UMODE_REJ;      block_state.modes.value |= UMODE_REJ;
3981  }  }
3982  #line 3985 "conf_parser.c" /* yacc.c:1646  */  #line 3983 "conf_parser.c" /* yacc.c:1646  */
3983      break;      break;
3984    
3985    case 191:    case 191:
3986  #line 1303 "conf_parser.y" /* yacc.c:1646  */  #line 1301 "conf_parser.y" /* yacc.c:1646  */
3987      {      {
3988    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3989      block_state.modes.value |= UMODE_UNAUTH;      block_state.modes.value |= UMODE_UNAUTH;
3990  }  }
3991  #line 3994 "conf_parser.c" /* yacc.c:1646  */  #line 3992 "conf_parser.c" /* yacc.c:1646  */
3992      break;      break;
3993    
3994    case 192:    case 192:
3995  #line 1307 "conf_parser.y" /* yacc.c:1646  */  #line 1305 "conf_parser.y" /* yacc.c:1646  */
3996      {      {
3997    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
3998      block_state.modes.value |= UMODE_SPY;      block_state.modes.value |= UMODE_SPY;
3999  }  }
4000  #line 4003 "conf_parser.c" /* yacc.c:1646  */  #line 4001 "conf_parser.c" /* yacc.c:1646  */
4001      break;      break;
4002    
4003    case 193:    case 193:
4004  #line 1311 "conf_parser.y" /* yacc.c:1646  */  #line 1309 "conf_parser.y" /* yacc.c:1646  */
4005      {      {
4006    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4007      block_state.modes.value |= UMODE_EXTERNAL;      block_state.modes.value |= UMODE_EXTERNAL;
4008  }  }
4009  #line 4012 "conf_parser.c" /* yacc.c:1646  */  #line 4010 "conf_parser.c" /* yacc.c:1646  */
4010      break;      break;
4011    
4012    case 194:    case 194:
4013  #line 1315 "conf_parser.y" /* yacc.c:1646  */  #line 1313 "conf_parser.y" /* yacc.c:1646  */
4014      {      {
4015    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4016      block_state.modes.value |= UMODE_SERVNOTICE;      block_state.modes.value |= UMODE_SERVNOTICE;
4017  }  }
4018  #line 4021 "conf_parser.c" /* yacc.c:1646  */  #line 4019 "conf_parser.c" /* yacc.c:1646  */
4019      break;      break;
4020    
4021    case 195:    case 195:
4022  #line 1319 "conf_parser.y" /* yacc.c:1646  */  #line 1317 "conf_parser.y" /* yacc.c:1646  */
4023      {      {
4024    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4025      block_state.modes.value |= UMODE_INVISIBLE;      block_state.modes.value |= UMODE_INVISIBLE;
4026  }  }
4027  #line 4030 "conf_parser.c" /* yacc.c:1646  */  #line 4028 "conf_parser.c" /* yacc.c:1646  */
4028      break;      break;
4029    
4030    case 196:    case 196:
4031  #line 1323 "conf_parser.y" /* yacc.c:1646  */  #line 1321 "conf_parser.y" /* yacc.c:1646  */
4032      {      {
4033    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4034      block_state.modes.value |= UMODE_WALLOP;      block_state.modes.value |= UMODE_WALLOP;
4035  }  }
4036  #line 4039 "conf_parser.c" /* yacc.c:1646  */  #line 4037 "conf_parser.c" /* yacc.c:1646  */
4037      break;      break;
4038    
4039    case 197:    case 197:
4040  #line 1327 "conf_parser.y" /* yacc.c:1646  */  #line 1325 "conf_parser.y" /* yacc.c:1646  */
4041      {      {
4042    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4043      block_state.modes.value |= UMODE_SOFTCALLERID;      block_state.modes.value |= UMODE_SOFTCALLERID;
4044  }  }
4045  #line 4048 "conf_parser.c" /* yacc.c:1646  */  #line 4046 "conf_parser.c" /* yacc.c:1646  */
4046      break;      break;
4047    
4048    case 198:    case 198:
4049  #line 1331 "conf_parser.y" /* yacc.c:1646  */  #line 1329 "conf_parser.y" /* yacc.c:1646  */
4050      {      {
4051    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4052      block_state.modes.value |= UMODE_CALLERID;      block_state.modes.value |= UMODE_CALLERID;
4053  }  }
4054  #line 4057 "conf_parser.c" /* yacc.c:1646  */  #line 4055 "conf_parser.c" /* yacc.c:1646  */
4055      break;      break;
4056    
4057    case 199:    case 199:
4058  #line 1335 "conf_parser.y" /* yacc.c:1646  */  #line 1333 "conf_parser.y" /* yacc.c:1646  */
4059      {      {
4060    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4061      block_state.modes.value |= UMODE_LOCOPS;      block_state.modes.value |= UMODE_LOCOPS;
4062  }  }
4063  #line 4066 "conf_parser.c" /* yacc.c:1646  */  #line 4064 "conf_parser.c" /* yacc.c:1646  */
4064      break;      break;
4065    
4066    case 200:    case 200:
4067  #line 1339 "conf_parser.y" /* yacc.c:1646  */  #line 1337 "conf_parser.y" /* yacc.c:1646  */
4068      {      {
4069    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4070      block_state.modes.value |= UMODE_REGONLY;      block_state.modes.value |= UMODE_REGONLY;
4071  }  }
4072  #line 4075 "conf_parser.c" /* yacc.c:1646  */  #line 4073 "conf_parser.c" /* yacc.c:1646  */
4073      break;      break;
4074    
4075    case 201:    case 201:
4076  #line 1343 "conf_parser.y" /* yacc.c:1646  */  #line 1341 "conf_parser.y" /* yacc.c:1646  */
4077      {      {
4078    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4079      block_state.modes.value |= UMODE_FARCONNECT;      block_state.modes.value |= UMODE_FARCONNECT;
4080  }  }
4081  #line 4084 "conf_parser.c" /* yacc.c:1646  */  #line 4082 "conf_parser.c" /* yacc.c:1646  */
4082      break;      break;
4083    
4084    case 202:    case 202:
4085  #line 1349 "conf_parser.y" /* yacc.c:1646  */  #line 1347 "conf_parser.y" /* yacc.c:1646  */
4086      {      {
4087    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4088      block_state.port.value = 0;      block_state.port.value = 0;
4089  }  }
4090  #line 4093 "conf_parser.c" /* yacc.c:1646  */  #line 4091 "conf_parser.c" /* yacc.c:1646  */
4091      break;      break;
4092    
4093    case 206:    case 206:
4094  #line 1356 "conf_parser.y" /* yacc.c:1646  */  #line 1354 "conf_parser.y" /* yacc.c:1646  */
4095      {      {
4096    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4097      block_state.port.value |= OPER_FLAG_KILL_REMOTE;      block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4098  }  }
4099  #line 4102 "conf_parser.c" /* yacc.c:1646  */  #line 4100 "conf_parser.c" /* yacc.c:1646  */
4100      break;      break;
4101    
4102    case 207:    case 207:
4103  #line 1360 "conf_parser.y" /* yacc.c:1646  */  #line 1358 "conf_parser.y" /* yacc.c:1646  */
4104      {      {
4105    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4106      block_state.port.value |= OPER_FLAG_KILL;      block_state.port.value |= OPER_FLAG_KILL;
4107  }  }
4108  #line 4111 "conf_parser.c" /* yacc.c:1646  */  #line 4109 "conf_parser.c" /* yacc.c:1646  */
4109      break;      break;
4110    
4111    case 208:    case 208:
4112  #line 1364 "conf_parser.y" /* yacc.c:1646  */  #line 1362 "conf_parser.y" /* yacc.c:1646  */
4113      {      {
4114    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4115      block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;      block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4116  }  }
4117  #line 4120 "conf_parser.c" /* yacc.c:1646  */  #line 4118 "conf_parser.c" /* yacc.c:1646  */
4118      break;      break;
4119    
4120    case 209:    case 209:
4121  #line 1368 "conf_parser.y" /* yacc.c:1646  */  #line 1366 "conf_parser.y" /* yacc.c:1646  */
4122      {      {
4123    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4124      block_state.port.value |= OPER_FLAG_CONNECT;      block_state.port.value |= OPER_FLAG_CONNECT;
4125  }  }
4126  #line 4129 "conf_parser.c" /* yacc.c:1646  */  #line 4127 "conf_parser.c" /* yacc.c:1646  */
4127      break;      break;
4128    
4129    case 210:    case 210:
4130  #line 1372 "conf_parser.y" /* yacc.c:1646  */  #line 1370 "conf_parser.y" /* yacc.c:1646  */
4131      {      {
4132    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4133      block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;      block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4134  }  }
4135  #line 4138 "conf_parser.c" /* yacc.c:1646  */  #line 4136 "conf_parser.c" /* yacc.c:1646  */
4136      break;      break;
4137    
4138    case 211:    case 211:
4139  #line 1376 "conf_parser.y" /* yacc.c:1646  */  #line 1374 "conf_parser.y" /* yacc.c:1646  */
4140      {      {
4141    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4142      block_state.port.value |= OPER_FLAG_SQUIT;      block_state.port.value |= OPER_FLAG_SQUIT;
4143  }  }
4144  #line 4147 "conf_parser.c" /* yacc.c:1646  */  #line 4145 "conf_parser.c" /* yacc.c:1646  */
4145      break;      break;
4146    
4147    case 212:    case 212:
4148  #line 1380 "conf_parser.y" /* yacc.c:1646  */  #line 1378 "conf_parser.y" /* yacc.c:1646  */
4149      {      {
4150    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4151      block_state.port.value |= OPER_FLAG_KLINE;      block_state.port.value |= OPER_FLAG_KLINE;
4152  }  }
4153  #line 4156 "conf_parser.c" /* yacc.c:1646  */  #line 4154 "conf_parser.c" /* yacc.c:1646  */
4154      break;      break;
4155    
4156    case 213:    case 213:
4157  #line 1384 "conf_parser.y" /* yacc.c:1646  */  #line 1382 "conf_parser.y" /* yacc.c:1646  */
4158      {      {
4159    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4160      block_state.port.value |= OPER_FLAG_UNKLINE;      block_state.port.value |= OPER_FLAG_UNKLINE;
4161  }  }
4162  #line 4165 "conf_parser.c" /* yacc.c:1646  */  #line 4163 "conf_parser.c" /* yacc.c:1646  */
4163      break;      break;
4164    
4165    case 214:    case 214:
4166  #line 1388 "conf_parser.y" /* yacc.c:1646  */  #line 1386 "conf_parser.y" /* yacc.c:1646  */
4167      {      {
4168    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4169      block_state.port.value |= OPER_FLAG_DLINE;      block_state.port.value |= OPER_FLAG_DLINE;
4170  }  }
4171  #line 4174 "conf_parser.c" /* yacc.c:1646  */  #line 4172 "conf_parser.c" /* yacc.c:1646  */
4172      break;      break;
4173    
4174    case 215:    case 215:
4175  #line 1392 "conf_parser.y" /* yacc.c:1646  */  #line 1390 "conf_parser.y" /* yacc.c:1646  */
4176      {      {
4177    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4178      block_state.port.value |= OPER_FLAG_UNDLINE;      block_state.port.value |= OPER_FLAG_UNDLINE;
4179  }  }
4180  #line 4183 "conf_parser.c" /* yacc.c:1646  */  #line 4181 "conf_parser.c" /* yacc.c:1646  */
4181      break;      break;
4182    
4183    case 216:    case 216:
4184  #line 1396 "conf_parser.y" /* yacc.c:1646  */  #line 1394 "conf_parser.y" /* yacc.c:1646  */
4185      {      {
4186    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4187      block_state.port.value |= OPER_FLAG_XLINE;      block_state.port.value |= OPER_FLAG_XLINE;
4188  }  }
4189  #line 4192 "conf_parser.c" /* yacc.c:1646  */  #line 4190 "conf_parser.c" /* yacc.c:1646  */
4190      break;      break;
4191    
4192    case 217:    case 217:
4193  #line 1400 "conf_parser.y" /* yacc.c:1646  */  #line 1398 "conf_parser.y" /* yacc.c:1646  */
4194      {      {
4195    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4196      block_state.port.value |= OPER_FLAG_UNXLINE;      block_state.port.value |= OPER_FLAG_UNXLINE;
4197  }  }
4198  #line 4201 "conf_parser.c" /* yacc.c:1646  */  #line 4199 "conf_parser.c" /* yacc.c:1646  */
4199      break;      break;
4200    
4201    case 218:    case 218:
4202  #line 1404 "conf_parser.y" /* yacc.c:1646  */  #line 1402 "conf_parser.y" /* yacc.c:1646  */
4203      {      {
4204    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4205      block_state.port.value |= OPER_FLAG_GLINE;      block_state.port.value |= OPER_FLAG_GLINE;
4206  }  }
4207  #line 4210 "conf_parser.c" /* yacc.c:1646  */  #line 4208 "conf_parser.c" /* yacc.c:1646  */
4208      break;      break;
4209    
4210    case 219:    case 219:
4211  #line 1408 "conf_parser.y" /* yacc.c:1646  */  #line 1406 "conf_parser.y" /* yacc.c:1646  */
4212      {      {
4213    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4214      block_state.port.value |= OPER_FLAG_DIE;      block_state.port.value |= OPER_FLAG_DIE;
4215  }  }
4216  #line 4219 "conf_parser.c" /* yacc.c:1646  */  #line 4217 "conf_parser.c" /* yacc.c:1646  */
4217      break;      break;
4218    
4219    case 220:    case 220:
4220  #line 1412 "conf_parser.y" /* yacc.c:1646  */  #line 1410 "conf_parser.y" /* yacc.c:1646  */
4221      {      {
4222    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4223      block_state.port.value |= OPER_FLAG_RESTART;      block_state.port.value |= OPER_FLAG_RESTART;
4224  }  }
4225  #line 4228 "conf_parser.c" /* yacc.c:1646  */  #line 4226 "conf_parser.c" /* yacc.c:1646  */
4226      break;      break;
4227    
4228    case 221:    case 221:
4229  #line 1416 "conf_parser.y" /* yacc.c:1646  */  #line 1414 "conf_parser.y" /* yacc.c:1646  */
4230      {      {
4231    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4232      block_state.port.value |= OPER_FLAG_REHASH;      block_state.port.value |= OPER_FLAG_REHASH;
4233  }  }
4234  #line 4237 "conf_parser.c" /* yacc.c:1646  */  #line 4235 "conf_parser.c" /* yacc.c:1646  */
4235      break;      break;
4236    
4237    case 222:    case 222:
4238  #line 1420 "conf_parser.y" /* yacc.c:1646  */  #line 1418 "conf_parser.y" /* yacc.c:1646  */
4239      {      {
4240    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4241      block_state.port.value |= OPER_FLAG_ADMIN;      block_state.port.value |= OPER_FLAG_ADMIN;
4242  }  }
4243  #line 4246 "conf_parser.c" /* yacc.c:1646  */  #line 4244 "conf_parser.c" /* yacc.c:1646  */
4244      break;      break;
4245    
4246    case 223:    case 223:
4247  #line 1424 "conf_parser.y" /* yacc.c:1646  */  #line 1422 "conf_parser.y" /* yacc.c:1646  */
4248      {      {
4249    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4250      block_state.port.value |= OPER_FLAG_GLOBOPS;      block_state.port.value |= OPER_FLAG_GLOBOPS;
4251  }  }
4252  #line 4255 "conf_parser.c" /* yacc.c:1646  */  #line 4253 "conf_parser.c" /* yacc.c:1646  */
4253      break;      break;
4254    
4255    case 224:    case 224:
4256  #line 1428 "conf_parser.y" /* yacc.c:1646  */  #line 1426 "conf_parser.y" /* yacc.c:1646  */
4257      {      {
4258    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4259      block_state.port.value |= OPER_FLAG_WALLOPS;      block_state.port.value |= OPER_FLAG_WALLOPS;
4260  }  }
4261  #line 4264 "conf_parser.c" /* yacc.c:1646  */  #line 4262 "conf_parser.c" /* yacc.c:1646  */
4262      break;      break;
4263    
4264    case 225:    case 225:
4265  #line 1432 "conf_parser.y" /* yacc.c:1646  */  #line 1430 "conf_parser.y" /* yacc.c:1646  */
4266      {      {
4267    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4268      block_state.port.value |= OPER_FLAG_LOCOPS;      block_state.port.value |= OPER_FLAG_LOCOPS;
4269  }  }
4270  #line 4273 "conf_parser.c" /* yacc.c:1646  */  #line 4271 "conf_parser.c" /* yacc.c:1646  */
4271      break;      break;
4272    
4273    case 226:    case 226:
4274  #line 1436 "conf_parser.y" /* yacc.c:1646  */  #line 1434 "conf_parser.y" /* yacc.c:1646  */
4275      {      {
4276    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4277      block_state.port.value |= OPER_FLAG_REMOTEBAN;      block_state.port.value |= OPER_FLAG_REMOTEBAN;
4278  }  }
4279  #line 4282 "conf_parser.c" /* yacc.c:1646  */  #line 4280 "conf_parser.c" /* yacc.c:1646  */
4280      break;      break;
4281    
4282    case 227:    case 227:
4283  #line 1440 "conf_parser.y" /* yacc.c:1646  */  #line 1438 "conf_parser.y" /* yacc.c:1646  */
4284      {      {
4285    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4286      block_state.port.value |= OPER_FLAG_SET;      block_state.port.value |= OPER_FLAG_SET;
4287  }  }
4288  #line 4291 "conf_parser.c" /* yacc.c:1646  */  #line 4289 "conf_parser.c" /* yacc.c:1646  */
4289      break;      break;
4290    
4291    case 228:    case 228:
4292  #line 1444 "conf_parser.y" /* yacc.c:1646  */  #line 1442 "conf_parser.y" /* yacc.c:1646  */
4293      {      {
4294    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4295      block_state.port.value |= OPER_FLAG_MODULE;      block_state.port.value |= OPER_FLAG_MODULE;
4296  }  }
4297  #line 4300 "conf_parser.c" /* yacc.c:1646  */  #line 4298 "conf_parser.c" /* yacc.c:1646  */
4298      break;      break;
4299    
4300    case 229:    case 229:
4301  #line 1454 "conf_parser.y" /* yacc.c:1646  */  #line 1452 "conf_parser.y" /* yacc.c:1646  */
4302      {      {
4303    if (conf_parser_ctx.pass != 1)    if (conf_parser_ctx.pass != 1)
4304      break;      break;
# Line 4313  yyreduce: Line 4311  yyreduce:
4311    block_state.max_sendq.value = DEFAULT_SENDQ;    block_state.max_sendq.value = DEFAULT_SENDQ;
4312    block_state.max_recvq.value = DEFAULT_RECVQ;    block_state.max_recvq.value = DEFAULT_RECVQ;
4313  }  }
4314  #line 4317 "conf_parser.c" /* yacc.c:1646  */  #line 4315 "conf_parser.c" /* yacc.c:1646  */
4315      break;      break;
4316    
4317    case 230:    case 230:
4318  #line 1466 "conf_parser.y" /* yacc.c:1646  */  #line 1464 "conf_parser.y" /* yacc.c:1646  */
4319      {      {
4320    struct ClassItem *class = NULL;    struct ClassItem *class = NULL;
4321    
# Line 4366  yyreduce: Line 4364  yyreduce:
4364    class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;    class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4365    class->number_per_cidr = block_state.number_per_cidr.value;    class->number_per_cidr = block_state.number_per_cidr.value;
4366  }  }
4367  #line 4370 "conf_parser.c" /* yacc.c:1646  */  #line 4368 "conf_parser.c" /* yacc.c:1646  */
4368      break;      break;
4369    
4370    case 251:    case 251:
4371  #line 1535 "conf_parser.y" /* yacc.c:1646  */  #line 1533 "conf_parser.y" /* yacc.c:1646  */
4372      {      {
4373    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4374      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4375  }  }
4376  #line 4379 "conf_parser.c" /* yacc.c:1646  */  #line 4377 "conf_parser.c" /* yacc.c:1646  */
4377      break;      break;
4378    
4379    case 252:    case 252:
4380  #line 1541 "conf_parser.y" /* yacc.c:1646  */  #line 1539 "conf_parser.y" /* yacc.c:1646  */
4381      {      {
4382    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4383      block_state.ping_freq.value = (yyvsp[-1].number);      block_state.ping_freq.value = (yyvsp[-1].number);
4384  }  }
4385  #line 4388 "conf_parser.c" /* yacc.c:1646  */  #line 4386 "conf_parser.c" /* yacc.c:1646  */
4386      break;      break;
4387    
4388    case 253:    case 253:
4389  #line 1547 "conf_parser.y" /* yacc.c:1646  */  #line 1545 "conf_parser.y" /* yacc.c:1646  */
4390      {      {
4391    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4392      block_state.max_perip.value = (yyvsp[-1].number);      block_state.max_perip.value = (yyvsp[-1].number);
4393  }  }
4394  #line 4397 "conf_parser.c" /* yacc.c:1646  */  #line 4395 "conf_parser.c" /* yacc.c:1646  */
4395      break;      break;
4396    
4397    case 254:    case 254:
4398  #line 1553 "conf_parser.y" /* yacc.c:1646  */  #line 1551 "conf_parser.y" /* yacc.c:1646  */
4399      {      {
4400    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4401      block_state.con_freq.value = (yyvsp[-1].number);      block_state.con_freq.value = (yyvsp[-1].number);
4402  }  }
4403  #line 4406 "conf_parser.c" /* yacc.c:1646  */  #line 4404 "conf_parser.c" /* yacc.c:1646  */
4404      break;      break;
4405    
4406    case 255:    case 255:
4407  #line 1559 "conf_parser.y" /* yacc.c:1646  */  #line 1557 "conf_parser.y" /* yacc.c:1646  */
4408      {      {
4409    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4410      block_state.max_channels.value = (yyvsp[-1].number);      block_state.max_channels.value = (yyvsp[-1].number);
4411  }  }
4412  #line 4415 "conf_parser.c" /* yacc.c:1646  */  #line 4413 "conf_parser.c" /* yacc.c:1646  */
4413      break;      break;
4414    
4415    case 256:    case 256:
4416  #line 1565 "conf_parser.y" /* yacc.c:1646  */  #line 1563 "conf_parser.y" /* yacc.c:1646  */
4417      {      {
4418    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4419      block_state.max_total.value = (yyvsp[-1].number);      block_state.max_total.value = (yyvsp[-1].number);
4420  }  }
4421  #line 4424 "conf_parser.c" /* yacc.c:1646  */  #line 4422 "conf_parser.c" /* yacc.c:1646  */
4422      break;      break;
4423    
4424    case 257:    case 257:
4425  #line 1571 "conf_parser.y" /* yacc.c:1646  */  #line 1569 "conf_parser.y" /* yacc.c:1646  */
4426      {      {
4427    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4428      block_state.max_global.value = (yyvsp[-1].number);      block_state.max_global.value = (yyvsp[-1].number);
4429  }  }
4430  #line 4433 "conf_parser.c" /* yacc.c:1646  */  #line 4431 "conf_parser.c" /* yacc.c:1646  */
4431      break;      break;
4432    
4433    case 258:    case 258:
4434  #line 1577 "conf_parser.y" /* yacc.c:1646  */  #line 1575 "conf_parser.y" /* yacc.c:1646  */
4435      {      {
4436    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4437      block_state.max_local.value = (yyvsp[-1].number);      block_state.max_local.value = (yyvsp[-1].number);
4438  }  }
4439  #line 4442 "conf_parser.c" /* yacc.c:1646  */  #line 4440 "conf_parser.c" /* yacc.c:1646  */
4440      break;      break;
4441    
4442    case 259:    case 259:
4443  #line 1583 "conf_parser.y" /* yacc.c:1646  */  #line 1581 "conf_parser.y" /* yacc.c:1646  */
4444      {      {
4445    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4446      block_state.max_ident.value = (yyvsp[-1].number);      block_state.max_ident.value = (yyvsp[-1].number);
4447  }  }
4448  #line 4451 "conf_parser.c" /* yacc.c:1646  */  #line 4449 "conf_parser.c" /* yacc.c:1646  */
4449      break;      break;
4450    
4451    case 260:    case 260:
4452  #line 1589 "conf_parser.y" /* yacc.c:1646  */  #line 1587 "conf_parser.y" /* yacc.c:1646  */
4453      {      {
4454    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4455      block_state.max_sendq.value = (yyvsp[-1].number);      block_state.max_sendq.value = (yyvsp[-1].number);
4456  }  }
4457  #line 4460 "conf_parser.c" /* yacc.c:1646  */  #line 4458 "conf_parser.c" /* yacc.c:1646  */
4458      break;      break;
4459    
4460    case 261:    case 261:
4461  #line 1595 "conf_parser.y" /* yacc.c:1646  */  #line 1593 "conf_parser.y" /* yacc.c:1646  */
4462      {      {
4463    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4464      if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)      if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4465        block_state.max_recvq.value = (yyvsp[-1].number);        block_state.max_recvq.value = (yyvsp[-1].number);
4466  }  }
4467  #line 4470 "conf_parser.c" /* yacc.c:1646  */  #line 4468 "conf_parser.c" /* yacc.c:1646  */
4468      break;      break;
4469    
4470    case 262:    case 262:
4471  #line 1602 "conf_parser.y" /* yacc.c:1646  */  #line 1600 "conf_parser.y" /* yacc.c:1646  */
4472      {      {
4473    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4474      block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);      block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4475  }  }
4476  #line 4479 "conf_parser.c" /* yacc.c:1646  */  #line 4477 "conf_parser.c" /* yacc.c:1646  */
4477      break;      break;
4478    
4479    case 263:    case 263:
4480  #line 1608 "conf_parser.y" /* yacc.c:1646  */  #line 1606 "conf_parser.y" /* yacc.c:1646  */
4481      {      {
4482    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4483      block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);      block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4484  }  }
4485  #line 4488 "conf_parser.c" /* yacc.c:1646  */  #line 4486 "conf_parser.c" /* yacc.c:1646  */
4486      break;      break;
4487    
4488    case 264:    case 264:
4489  #line 1614 "conf_parser.y" /* yacc.c:1646  */  #line 1612 "conf_parser.y" /* yacc.c:1646  */
4490      {      {
4491    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4492      block_state.number_per_cidr.value = (yyvsp[-1].number);      block_state.number_per_cidr.value = (yyvsp[-1].number);
4493  }  }
4494  #line 4497 "conf_parser.c" /* yacc.c:1646  */  #line 4495 "conf_parser.c" /* yacc.c:1646  */
4495      break;      break;
4496    
4497    case 265:    case 265:
4498  #line 1620 "conf_parser.y" /* yacc.c:1646  */  #line 1618 "conf_parser.y" /* yacc.c:1646  */
4499      {      {
4500    if (conf_parser_ctx.pass != 1)    if (conf_parser_ctx.pass != 1)
4501      break;      break;
# Line 4505  yyreduce: Line 4503  yyreduce:
4503    block_state.min_idle.value = (yyvsp[-1].number);    block_state.min_idle.value = (yyvsp[-1].number);
4504    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4505  }  }
4506  #line 4509 "conf_parser.c" /* yacc.c:1646  */  #line 4507 "conf_parser.c" /* yacc.c:1646  */
4507      break;      break;
4508    
4509    case 266:    case 266:
4510  #line 1629 "conf_parser.y" /* yacc.c:1646  */  #line 1627 "conf_parser.y" /* yacc.c:1646  */
4511      {      {
4512    if (conf_parser_ctx.pass != 1)    if (conf_parser_ctx.pass != 1)
4513      break;      break;
# Line 4517  yyreduce: Line 4515  yyreduce:
4515    block_state.max_idle.value = (yyvsp[-1].number);    block_state.max_idle.value = (yyvsp[-1].number);
4516    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4517  }  }
4518  #line 4521 "conf_parser.c" /* yacc.c:1646  */  #line 4519 "conf_parser.c" /* yacc.c:1646  */
4519      break;      break;
4520    
4521    case 267:    case 267:
4522  #line 1638 "conf_parser.y" /* yacc.c:1646  */  #line 1636 "conf_parser.y" /* yacc.c:1646  */
4523      {      {
4524    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4525      block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;      block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4526  }  }
4527  #line 4530 "conf_parser.c" /* yacc.c:1646  */  #line 4528 "conf_parser.c" /* yacc.c:1646  */
4528      break;      break;
4529    
4530    case 271:    case 271:
4531  #line 1645 "conf_parser.y" /* yacc.c:1646  */  #line 1643 "conf_parser.y" /* yacc.c:1646  */
4532      {      {
4533    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4534      block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;      block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4535  }  }
4536  #line 4539 "conf_parser.c" /* yacc.c:1646  */  #line 4537 "conf_parser.c" /* yacc.c:1646  */
4537      break;      break;
4538    
4539    case 272:    case 272:
4540  #line 1649 "conf_parser.y" /* yacc.c:1646  */  #line 1647 "conf_parser.y" /* yacc.c:1646  */
4541      {      {
4542    if (conf_parser_ctx.pass == 1)    if (conf_parser_ctx.pass == 1)
4543      block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;      block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4544  }  }
4545  #line 4548 "conf_parser.c" /* yacc.c:1646  */  #line 4546 "conf_parser.c" /* yacc.c:1646  */
4546      break;      break;
4547    
4548    case 273:    case 273:
4549  #line 1659 "conf_parser.y" /* yacc.c:1646  */  #line 1657 "conf_parser.y" /* yacc.c:1646  */
4550      {      {
4551    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4552      reset_block_state();      reset_block_state();
4553  }  }
4554  #line 4557 "conf_parser.c" /* yacc.c:1646  */  #line 4555 "conf_parser.c" /* yacc.c:1646  */
4555      break;      break;
4556    
4557    case 275:    case 275:
4558  #line 1665 "conf_parser.y" /* yacc.c:1646  */  #line 1663 "conf_parser.y" /* yacc.c:1646  */
4559      {      {
4560    block_state.flags.value = 0;    block_state.flags.value = 0;
4561  }  }
4562  #line 4565 "conf_parser.c" /* yacc.c:1646  */  #line 4563 "conf_parser.c" /* yacc.c:1646  */
4563      break;      break;
4564    
4565    case 279:    case 279:
4566  #line 1671 "conf_parser.y" /* yacc.c:1646  */  #line 1669 "conf_parser.y" /* yacc.c:1646  */
4567      {      {
4568    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4569      block_state.flags.value |= LISTENER_SSL;      block_state.flags.value |= LISTENER_SSL;
4570  }  }
4571  #line 4574 "conf_parser.c" /* yacc.c:1646  */  #line 4572 "conf_parser.c" /* yacc.c:1646  */
4572      break;      break;
4573    
4574    case 280:    case 280:
4575  #line 1675 "conf_parser.y" /* yacc.c:1646  */  #line 1673 "conf_parser.y" /* yacc.c:1646  */
4576      {      {
4577    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4578      block_state.flags.value |= LISTENER_HIDDEN;      block_state.flags.value |= LISTENER_HIDDEN;
4579  }  }
4580  #line 4583 "conf_parser.c" /* yacc.c:1646  */  #line 4581 "conf_parser.c" /* yacc.c:1646  */
4581      break;      break;
4582    
4583    case 281:    case 281:
4584  #line 1679 "conf_parser.y" /* yacc.c:1646  */  #line 1677 "conf_parser.y" /* yacc.c:1646  */
4585      {      {
4586    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4587     block_state.flags.value |= LISTENER_SERVER;     block_state.flags.value |= LISTENER_SERVER;
4588  }  }
4589  #line 4592 "conf_parser.c" /* yacc.c:1646  */  #line 4590 "conf_parser.c" /* yacc.c:1646  */
4590      break;      break;
4591    
4592    case 289:    case 289:
4593  #line 1687 "conf_parser.y" /* yacc.c:1646  */  #line 1685 "conf_parser.y" /* yacc.c:1646  */
4594      { block_state.flags.value = 0; }      { block_state.flags.value = 0; }
4595  #line 4598 "conf_parser.c" /* yacc.c:1646  */  #line 4596 "conf_parser.c" /* yacc.c:1646  */
4596      break;      break;
4597    
4598    case 293:    case 293:
4599  #line 1692 "conf_parser.y" /* yacc.c:1646  */  #line 1690 "conf_parser.y" /* yacc.c:1646  */
4600      {      {
4601    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4602    {    {
# Line 4612  yyreduce: Line 4610  yyreduce:
4610      add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);      add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4611    }    }
4612  }  }
4613  #line 4616 "conf_parser.c" /* yacc.c:1646  */  #line 4614 "conf_parser.c" /* yacc.c:1646  */
4614      break;      break;
4615    
4616    case 294:    case 294:
4617  #line 1705 "conf_parser.y" /* yacc.c:1646  */  #line 1703 "conf_parser.y" /* yacc.c:1646  */
4618      {      {
4619    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4620    {    {
# Line 4632  yyreduce: Line 4630  yyreduce:
4630        add_listener(i, block_state.addr.buf, block_state.flags.value);        add_listener(i, block_state.addr.buf, block_state.flags.value);
4631    }    }
4632  }  }
4633  #line 4636 "conf_parser.c" /* yacc.c:1646  */  #line 4634 "conf_parser.c" /* yacc.c:1646  */
4634      break;      break;
4635    
4636    case 295:    case 295:
4637  #line 1722 "conf_parser.y" /* yacc.c:1646  */  #line 1720 "conf_parser.y" /* yacc.c:1646  */
4638      {      {
4639    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4640      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4641  }  }
4642  #line 4645 "conf_parser.c" /* yacc.c:1646  */  #line 4643 "conf_parser.c" /* yacc.c:1646  */
4643      break;      break;
4644    
4645    case 296:    case 296:
4646  #line 1728 "conf_parser.y" /* yacc.c:1646  */  #line 1726 "conf_parser.y" /* yacc.c:1646  */
4647      {      {
4648    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4649      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4650  }  }
4651  #line 4654 "conf_parser.c" /* yacc.c:1646  */  #line 4652 "conf_parser.c" /* yacc.c:1646  */
4652      break;      break;
4653    
4654    case 297:    case 297:
4655  #line 1737 "conf_parser.y" /* yacc.c:1646  */  #line 1735 "conf_parser.y" /* yacc.c:1646  */
4656      {      {
4657    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4658      reset_block_state();      reset_block_state();
4659  }  }
4660  #line 4663 "conf_parser.c" /* yacc.c:1646  */  #line 4661 "conf_parser.c" /* yacc.c:1646  */
4661      break;      break;
4662    
4663    case 298:    case 298:
4664  #line 1741 "conf_parser.y" /* yacc.c:1646  */  #line 1739 "conf_parser.y" /* yacc.c:1646  */
4665      {      {
4666    dlink_node *ptr = NULL;    dlink_node *ptr = NULL;
4667    
# Line 4700  yyreduce: Line 4698  yyreduce:
4698      add_conf_by_address(CONF_CLIENT, conf);      add_conf_by_address(CONF_CLIENT, conf);
4699    }    }
4700  }  }
4701  #line 4704 "conf_parser.c" /* yacc.c:1646  */  #line 4702 "conf_parser.c" /* yacc.c:1646  */
4702      break;      break;
4703    
4704    case 310:    case 310:
4705  #line 1790 "conf_parser.y" /* yacc.c:1646  */  #line 1788 "conf_parser.y" /* yacc.c:1646  */
4706      {      {
4707    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4708      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4709  }  }
4710  #line 4713 "conf_parser.c" /* yacc.c:1646  */  #line 4711 "conf_parser.c" /* yacc.c:1646  */
4711      break;      break;
4712    
4713    case 311:    case 311:
4714  #line 1796 "conf_parser.y" /* yacc.c:1646  */  #line 1794 "conf_parser.y" /* yacc.c:1646  */
4715      {      {
4716    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4717      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4718  }  }
4719  #line 4722 "conf_parser.c" /* yacc.c:1646  */  #line 4720 "conf_parser.c" /* yacc.c:1646  */
4720      break;      break;
4721    
4722    case 312:    case 312:
4723  #line 1802 "conf_parser.y" /* yacc.c:1646  */  #line 1800 "conf_parser.y" /* yacc.c:1646  */
4724      {      {
4725    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4726      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4727  }  }
4728  #line 4731 "conf_parser.c" /* yacc.c:1646  */  #line 4729 "conf_parser.c" /* yacc.c:1646  */
4729      break;      break;
4730    
4731    case 313:    case 313:
4732  #line 1808 "conf_parser.y" /* yacc.c:1646  */  #line 1806 "conf_parser.y" /* yacc.c:1646  */
4733      {      {
4734    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4735    {    {
# Line 4741  yyreduce: Line 4739  yyreduce:
4739        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4740    }    }
4741  }  }
4742  #line 4745 "conf_parser.c" /* yacc.c:1646  */  #line 4743 "conf_parser.c" /* yacc.c:1646  */
4743      break;      break;
4744    
4745    case 314:    case 314:
4746  #line 1819 "conf_parser.y" /* yacc.c:1646  */  #line 1817 "conf_parser.y" /* yacc.c:1646  */
4747      {      {
4748    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4749      block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);      block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4750  }  }
4751  #line 4754 "conf_parser.c" /* yacc.c:1646  */  #line 4752 "conf_parser.c" /* yacc.c:1646  */
4752      break;      break;
4753    
4754    case 318:    case 318:
4755  #line 1826 "conf_parser.y" /* yacc.c:1646  */  #line 1824 "conf_parser.y" /* yacc.c:1646  */
4756      {      {
4757    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4758      block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;      block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4759  }  }
4760  #line 4763 "conf_parser.c" /* yacc.c:1646  */  #line 4761 "conf_parser.c" /* yacc.c:1646  */
4761      break;      break;
4762    
4763    case 319:    case 319:
4764  #line 1830 "conf_parser.y" /* yacc.c:1646  */  #line 1828 "conf_parser.y" /* yacc.c:1646  */
4765      {      {
4766    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4767      block_state.flags.value |= CONF_FLAGS_NOLIMIT;      block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4768  }  }
4769  #line 4772 "conf_parser.c" /* yacc.c:1646  */  #line 4770 "conf_parser.c" /* yacc.c:1646  */
4770      break;      break;
4771    
4772    case 320:    case 320:
4773  #line 1834 "conf_parser.y" /* yacc.c:1646  */  #line 1832 "conf_parser.y" /* yacc.c:1646  */
4774      {      {
4775    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4776      block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;      block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4777  }  }
4778  #line 4781 "conf_parser.c" /* yacc.c:1646  */  #line 4779 "conf_parser.c" /* yacc.c:1646  */
4779      break;      break;
4780    
4781    case 321:    case 321:
4782  #line 1838 "conf_parser.y" /* yacc.c:1646  */  #line 1836 "conf_parser.y" /* yacc.c:1646  */
4783      {      {
4784    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4785      block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;      block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4786  }  }
4787  #line 4790 "conf_parser.c" /* yacc.c:1646  */  #line 4788 "conf_parser.c" /* yacc.c:1646  */
4788      break;      break;
4789    
4790    case 322:    case 322:
4791  #line 1842 "conf_parser.y" /* yacc.c:1646  */  #line 1840 "conf_parser.y" /* yacc.c:1646  */
4792      {      {
4793    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4794      block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;      block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4795  }  }
4796  #line 4799 "conf_parser.c" /* yacc.c:1646  */  #line 4797 "conf_parser.c" /* yacc.c:1646  */
4797      break;      break;
4798    
4799    case 323:    case 323:
4800  #line 1846 "conf_parser.y" /* yacc.c:1646  */  #line 1844 "conf_parser.y" /* yacc.c:1646  */
4801      {      {
4802    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4803      block_state.flags.value |= CONF_FLAGS_NO_TILDE;      block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4804  }  }
4805  #line 4808 "conf_parser.c" /* yacc.c:1646  */  #line 4806 "conf_parser.c" /* yacc.c:1646  */
4806      break;      break;
4807    
4808    case 324:    case 324:
4809  #line 1850 "conf_parser.y" /* yacc.c:1646  */  #line 1848 "conf_parser.y" /* yacc.c:1646  */
4810      {      {
4811    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4812      block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;      block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4813  }  }
4814  #line 4817 "conf_parser.c" /* yacc.c:1646  */  #line 4815 "conf_parser.c" /* yacc.c:1646  */
4815      break;      break;
4816    
4817    case 325:    case 325:
4818  #line 1854 "conf_parser.y" /* yacc.c:1646  */  #line 1852 "conf_parser.y" /* yacc.c:1646  */
4819      {      {
4820    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4821      block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;      block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4822  }  }
4823  #line 4826 "conf_parser.c" /* yacc.c:1646  */  #line 4824 "conf_parser.c" /* yacc.c:1646  */
4824      break;      break;
4825    
4826    case 326:    case 326:
4827  #line 1858 "conf_parser.y" /* yacc.c:1646  */  #line 1856 "conf_parser.y" /* yacc.c:1646  */
4828      {      {
4829    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4830      block_state.flags.value |= CONF_FLAGS_WEBIRC;      block_state.flags.value |= CONF_FLAGS_WEBIRC;
4831  }  }
4832  #line 4835 "conf_parser.c" /* yacc.c:1646  */  #line 4833 "conf_parser.c" /* yacc.c:1646  */
4833      break;      break;
4834    
4835    case 327:    case 327:
4836  #line 1862 "conf_parser.y" /* yacc.c:1646  */  #line 1860 "conf_parser.y" /* yacc.c:1646  */
4837      {      {
4838    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4839      block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;      block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4840  }  }
4841  #line 4844 "conf_parser.c" /* yacc.c:1646  */  #line 4842 "conf_parser.c" /* yacc.c:1646  */
4842      break;      break;
4843    
4844    case 328:    case 328:
4845  #line 1868 "conf_parser.y" /* yacc.c:1646  */  #line 1866 "conf_parser.y" /* yacc.c:1646  */
4846      {      {
4847    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
4848      break;      break;
# Line 4857  yyreduce: Line 4855  yyreduce:
4855    else    else
4856      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4857  }  }
4858  #line 4861 "conf_parser.c" /* yacc.c:1646  */  #line 4859 "conf_parser.c" /* yacc.c:1646  */
4859      break;      break;
4860    
4861    case 329:    case 329:
4862  #line 1882 "conf_parser.y" /* yacc.c:1646  */  #line 1880 "conf_parser.y" /* yacc.c:1646  */
4863      {      {
4864    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
4865      break;      break;
# Line 4869  yyreduce: Line 4867  yyreduce:
4867    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4868    block_state.flags.value |= CONF_FLAGS_REDIR;    block_state.flags.value |= CONF_FLAGS_REDIR;
4869  }  }
4870  #line 4873 "conf_parser.c" /* yacc.c:1646  */  #line 4871 "conf_parser.c" /* yacc.c:1646  */
4871      break;      break;
4872    
4873    case 330:    case 330:
4874  #line 1891 "conf_parser.y" /* yacc.c:1646  */  #line 1889 "conf_parser.y" /* yacc.c:1646  */
4875      {      {
4876    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
4877      break;      break;
# Line 4881  yyreduce: Line 4879  yyreduce:
4879    block_state.flags.value |= CONF_FLAGS_REDIR;    block_state.flags.value |= CONF_FLAGS_REDIR;
4880    block_state.port.value = (yyvsp[-1].number);    block_state.port.value = (yyvsp[-1].number);
4881  }  }
4882  #line 4885 "conf_parser.c" /* yacc.c:1646  */  #line 4883 "conf_parser.c" /* yacc.c:1646  */
4883      break;      break;
4884    
4885    case 331:    case 331:
4886  #line 1904 "conf_parser.y" /* yacc.c:1646  */  #line 1902 "conf_parser.y" /* yacc.c:1646  */
4887      {      {
4888    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
4889      break;      break;
# Line 4893  yyreduce: Line 4891  yyreduce:
4891    reset_block_state();    reset_block_state();
4892    strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));    strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4893  }  }
4894  #line 4897 "conf_parser.c" /* yacc.c:1646  */  #line 4895 "conf_parser.c" /* yacc.c:1646  */
4895      break;      break;
4896    
4897    case 332:    case 332:
4898  #line 1911 "conf_parser.y" /* yacc.c:1646  */  #line 1909 "conf_parser.y" /* yacc.c:1646  */
4899      {      {
4900    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
4901      break;      break;
4902    
4903    create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);    create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4904  }  }
4905  #line 4908 "conf_parser.c" /* yacc.c:1646  */  #line 4906 "conf_parser.c" /* yacc.c:1646  */
4906      break;      break;
4907    
4908    case 339:    case 339:
4909  #line 1922 "conf_parser.y" /* yacc.c:1646  */  #line 1920 "conf_parser.y" /* yacc.c:1646  */
4910      {      {
4911    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4912      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4913  }  }
4914  #line 4917 "conf_parser.c" /* yacc.c:1646  */  #line 4915 "conf_parser.c" /* yacc.c:1646  */
4915      break;      break;
4916    
4917    case 340:    case 340:
4918  #line 1928 "conf_parser.y" /* yacc.c:1646  */  #line 1926 "conf_parser.y" /* yacc.c:1646  */
4919      {      {
4920    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4921      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4922  }  }
4923  #line 4926 "conf_parser.c" /* yacc.c:1646  */  #line 4924 "conf_parser.c" /* yacc.c:1646  */
4924      break;      break;
4925    
4926    case 341:    case 341:
4927  #line 1934 "conf_parser.y" /* yacc.c:1646  */  #line 1932 "conf_parser.y" /* yacc.c:1646  */
4928      {      {
4929    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4930      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4931  }  }
4932  #line 4935 "conf_parser.c" /* yacc.c:1646  */  #line 4933 "conf_parser.c" /* yacc.c:1646  */
4933      break;      break;
4934    
4935    case 347:    case 347:
4936  #line 1949 "conf_parser.y" /* yacc.c:1646  */  #line 1947 "conf_parser.y" /* yacc.c:1646  */
4937      {      {
4938    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
4939      break;      break;
# Line 4946  yyreduce: Line 4944  yyreduce:
4944      conf->name = xstrdup(yylval.string);      conf->name = xstrdup(yylval.string);
4945    }    }
4946  }  }
4947  #line 4950 "conf_parser.c" /* yacc.c:1646  */  #line 4948 "conf_parser.c" /* yacc.c:1646  */
4948      break;      break;
4949    
4950    case 348:    case 348:
4951  #line 1964 "conf_parser.y" /* yacc.c:1646  */  #line 1962 "conf_parser.y" /* yacc.c:1646  */
4952      {      {
4953    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
4954      break;      break;
# Line 4962  yyreduce: Line 4960  yyreduce:
4960    strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));    strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4961    block_state.flags.value = SHARED_ALL;    block_state.flags.value = SHARED_ALL;
4962  }  }
4963  #line 4966 "conf_parser.c" /* yacc.c:1646  */  #line 4964 "conf_parser.c" /* yacc.c:1646  */
4964      break;      break;
4965    
4966    case 349:    case 349:
4967  #line 1975 "conf_parser.y" /* yacc.c:1646  */  #line 1973 "conf_parser.y" /* yacc.c:1646  */
4968      {      {
4969    struct MaskItem *conf = NULL;    struct MaskItem *conf = NULL;
4970    
# Line 4979  yyreduce: Line 4977  yyreduce:
4977    conf->user = xstrdup(block_state.user.buf);    conf->user = xstrdup(block_state.user.buf);
4978    conf->host = xstrdup(block_state.host.buf);    conf->host = xstrdup(block_state.host.buf);
4979  }  }
4980  #line 4983 "conf_parser.c" /* yacc.c:1646  */  #line 4981 "conf_parser.c" /* yacc.c:1646  */
4981      break;      break;
4982    
4983    case 356:    case 356:
4984  #line 1992 "conf_parser.y" /* yacc.c:1646  */  #line 1990 "conf_parser.y" /* yacc.c:1646  */
4985      {      {
4986    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4987      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4988  }  }
4989  #line 4992 "conf_parser.c" /* yacc.c:1646  */  #line 4990 "conf_parser.c" /* yacc.c:1646  */
4990      break;      break;
4991    
4992    case 357:    case 357:
4993  #line 1998 "conf_parser.y" /* yacc.c:1646  */  #line 1996 "conf_parser.y" /* yacc.c:1646  */
4994      {      {
4995    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
4996    {    {
# Line 5010  yyreduce: Line 5008  yyreduce:
5008      split_nuh(&nuh);      split_nuh(&nuh);
5009    }    }
5010  }  }
5011  #line 5014 "conf_parser.c" /* yacc.c:1646  */  #line 5012 "conf_parser.c" /* yacc.c:1646  */
5012      break;      break;
5013    
5014    case 358:    case 358:
5015  #line 2017 "conf_parser.y" /* yacc.c:1646  */  #line 2015 "conf_parser.y" /* yacc.c:1646  */
5016      {      {
5017    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5018      block_state.flags.value = 0;      block_state.flags.value = 0;
5019  }  }
5020  #line 5023 "conf_parser.c" /* yacc.c:1646  */  #line 5021 "conf_parser.c" /* yacc.c:1646  */
5021      break;      break;
5022    
5023    case 362:    case 362:
5024  #line 2024 "conf_parser.y" /* yacc.c:1646  */  #line 2022 "conf_parser.y" /* yacc.c:1646  */
5025      {      {
5026    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5027      block_state.flags.value |= SHARED_KLINE;      block_state.flags.value |= SHARED_KLINE;
5028  }  }
5029  #line 5032 "conf_parser.c" /* yacc.c:1646  */  #line 5030 "conf_parser.c" /* yacc.c:1646  */
5030      break;      break;
5031    
5032    case 363:    case 363:
5033  #line 2028 "conf_parser.y" /* yacc.c:1646  */  #line 2026 "conf_parser.y" /* yacc.c:1646  */
5034      {      {
5035    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5036      block_state.flags.value |= SHARED_UNKLINE;      block_state.flags.value |= SHARED_UNKLINE;
5037  }  }
5038  #line 5041 "conf_parser.c" /* yacc.c:1646  */  #line 5039 "conf_parser.c" /* yacc.c:1646  */
5039      break;      break;
5040    
5041    case 364:    case 364:
5042  #line 2032 "conf_parser.y" /* yacc.c:1646  */  #line 2030 "conf_parser.y" /* yacc.c:1646  */
5043      {      {
5044    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5045      block_state.flags.value |= SHARED_DLINE;      block_state.flags.value |= SHARED_DLINE;
5046  }  }
5047  #line 5050 "conf_parser.c" /* yacc.c:1646  */  #line 5048 "conf_parser.c" /* yacc.c:1646  */
5048      break;      break;
5049    
5050    case 365:    case 365:
5051  #line 2036 "conf_parser.y" /* yacc.c:1646  */  #line 2034 "conf_parser.y" /* yacc.c:1646  */
5052      {      {
5053    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5054      block_state.flags.value |= SHARED_UNDLINE;      block_state.flags.value |= SHARED_UNDLINE;
5055  }  }
5056  #line 5059 "conf_parser.c" /* yacc.c:1646  */  #line 5057 "conf_parser.c" /* yacc.c:1646  */
5057      break;      break;
5058    
5059    case 366:    case 366:
5060  #line 2040 "conf_parser.y" /* yacc.c:1646  */  #line 2038 "conf_parser.y" /* yacc.c:1646  */
5061      {      {
5062    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5063      block_state.flags.value |= SHARED_XLINE;      block_state.flags.value |= SHARED_XLINE;
5064  }  }
5065  #line 5068 "conf_parser.c" /* yacc.c:1646  */  #line 5066 "conf_parser.c" /* yacc.c:1646  */
5066      break;      break;
5067    
5068    case 367:    case 367:
5069  #line 2044 "conf_parser.y" /* yacc.c:1646  */  #line 2042 "conf_parser.y" /* yacc.c:1646  */
5070      {      {
5071    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5072      block_state.flags.value |= SHARED_UNXLINE;      block_state.flags.value |= SHARED_UNXLINE;
5073  }  }
5074  #line 5077 "conf_parser.c" /* yacc.c:1646  */  #line 5075 "conf_parser.c" /* yacc.c:1646  */
5075      break;      break;
5076    
5077    case 368:    case 368:
5078  #line 2048 "conf_parser.y" /* yacc.c:1646  */  #line 2046 "conf_parser.y" /* yacc.c:1646  */
5079      {      {
5080    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5081      block_state.flags.value |= SHARED_RESV;      block_state.flags.value |= SHARED_RESV;
5082  }  }
5083  #line 5086 "conf_parser.c" /* yacc.c:1646  */  #line 5084 "conf_parser.c" /* yacc.c:1646  */
5084      break;      break;
5085    
5086    case 369:    case 369:
5087  #line 2052 "conf_parser.y" /* yacc.c:1646  */  #line 2050 "conf_parser.y" /* yacc.c:1646  */
5088      {      {
5089    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5090      block_state.flags.value |= SHARED_UNRESV;      block_state.flags.value |= SHARED_UNRESV;
5091  }  }
5092  #line 5095 "conf_parser.c" /* yacc.c:1646  */  #line 5093 "conf_parser.c" /* yacc.c:1646  */
5093      break;      break;
5094    
5095    case 370:    case 370:
5096  #line 2056 "conf_parser.y" /* yacc.c:1646  */  #line 2054 "conf_parser.y" /* yacc.c:1646  */
5097      {      {
5098    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5099      block_state.flags.value |= SHARED_LOCOPS;      block_state.flags.value |= SHARED_LOCOPS;
5100  }  }
5101  #line 5104 "conf_parser.c" /* yacc.c:1646  */  #line 5102 "conf_parser.c" /* yacc.c:1646  */
5102      break;      break;
5103    
5104    case 371:    case 371:
5105  #line 2060 "conf_parser.y" /* yacc.c:1646  */  #line 2058 "conf_parser.y" /* yacc.c:1646  */
5106      {      {
5107    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5108      block_state.flags.value = SHARED_ALL;      block_state.flags.value = SHARED_ALL;
5109  }  }
5110  #line 5113 "conf_parser.c" /* yacc.c:1646  */  #line 5111 "conf_parser.c" /* yacc.c:1646  */
5111      break;      break;
5112    
5113    case 372:    case 372:
5114  #line 2069 "conf_parser.y" /* yacc.c:1646  */  #line 2067 "conf_parser.y" /* yacc.c:1646  */
5115      {      {
5116    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
5117      break;      break;
# Line 5123  yyreduce: Line 5121  yyreduce:
5121    strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));    strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5122    block_state.flags.value = SHARED_ALL;    block_state.flags.value = SHARED_ALL;
5123  }  }
5124  #line 5127 "conf_parser.c" /* yacc.c:1646  */  #line 5125 "conf_parser.c" /* yacc.c:1646  */
5125      break;      break;
5126    
5127    case 373:    case 373:
5128  #line 2078 "conf_parser.y" /* yacc.c:1646  */  #line 2076 "conf_parser.y" /* yacc.c:1646  */
5129      {      {
5130    struct MaskItem *conf = NULL;    struct MaskItem *conf = NULL;
5131    
# Line 5138  yyreduce: Line 5136  yyreduce:
5136    conf->flags = block_state.flags.value;    conf->flags = block_state.flags.value;
5137    conf->name = xstrdup(block_state.name.buf);    conf->name = xstrdup(block_state.name.buf);
5138  }  }
5139  #line 5142 "conf_parser.c" /* yacc.c:1646  */  #line 5140 "conf_parser.c" /* yacc.c:1646  */
5140      break;      break;
5141    
5142    case 379:    case 379:
5143  #line 2093 "conf_parser.y" /* yacc.c:1646  */  #line 2091 "conf_parser.y" /* yacc.c:1646  */
5144      {      {
5145    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5146      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5147  }  }
5148  #line 5151 "conf_parser.c" /* yacc.c:1646  */  #line 5149 "conf_parser.c" /* yacc.c:1646  */
5149      break;      break;
5150    
5151    case 380:    case 380:
5152  #line 2099 "conf_parser.y" /* yacc.c:1646  */  #line 2097 "conf_parser.y" /* yacc.c:1646  */
5153      {      {
5154    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5155      block_state.flags.value = 0;      block_state.flags.value = 0;
5156  }  }
5157  #line 5160 "conf_parser.c" /* yacc.c:1646  */  #line 5158 "conf_parser.c" /* yacc.c:1646  */
5158      break;      break;
5159    
5160    case 384:    case 384:
5161  #line 2106 "conf_parser.y" /* yacc.c:1646  */  #line 2104 "conf_parser.y" /* yacc.c:1646  */
5162      {      {
5163    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5164      block_state.flags.value |= SHARED_KLINE;      block_state.flags.value |= SHARED_KLINE;
5165  }  }
5166  #line 5169 "conf_parser.c" /* yacc.c:1646  */  #line 5167 "conf_parser.c" /* yacc.c:1646  */
5167      break;      break;
5168    
5169    case 385:    case 385:
5170  #line 2110 "conf_parser.y" /* yacc.c:1646  */  #line 2108 "conf_parser.y" /* yacc.c:1646  */
5171      {      {
5172    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5173      block_state.flags.value |= SHARED_UNKLINE;      block_state.flags.value |= SHARED_UNKLINE;
5174  }  }
5175  #line 5178 "conf_parser.c" /* yacc.c:1646  */  #line 5176 "conf_parser.c" /* yacc.c:1646  */
5176      break;      break;
5177    
5178    case 386:    case 386:
5179  #line 2114 "conf_parser.y" /* yacc.c:1646  */  #line 2112 "conf_parser.y" /* yacc.c:1646  */
5180      {      {
5181    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5182      block_state.flags.value |= SHARED_DLINE;      block_state.flags.value |= SHARED_DLINE;
5183  }  }
5184  #line 5187 "conf_parser.c" /* yacc.c:1646  */  #line 5185 "conf_parser.c" /* yacc.c:1646  */
5185      break;      break;
5186    
5187    case 387:    case 387:
5188  #line 2118 "conf_parser.y" /* yacc.c:1646  */  #line 2116 "conf_parser.y" /* yacc.c:1646  */
5189      {      {
5190    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5191      block_state.flags.value |= SHARED_UNDLINE;      block_state.flags.value |= SHARED_UNDLINE;
5192  }  }
5193  #line 5196 "conf_parser.c" /* yacc.c:1646  */  #line 5194 "conf_parser.c" /* yacc.c:1646  */
5194      break;      break;
5195    
5196    case 388:    case 388:
5197  #line 2122 "conf_parser.y" /* yacc.c:1646  */  #line 2120 "conf_parser.y" /* yacc.c:1646  */
5198      {      {
5199    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5200      block_state.flags.value |= SHARED_XLINE;      block_state.flags.value |= SHARED_XLINE;
5201  }  }
5202  #line 5205 "conf_parser.c" /* yacc.c:1646  */  #line 5203 "conf_parser.c" /* yacc.c:1646  */
5203      break;      break;
5204    
5205    case 389:    case 389:
5206  #line 2126 "conf_parser.y" /* yacc.c:1646  */  #line 2124 "conf_parser.y" /* yacc.c:1646  */
5207      {      {
5208    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5209      block_state.flags.value |= SHARED_UNXLINE;      block_state.flags.value |= SHARED_UNXLINE;
5210  }  }
5211  #line 5214 "conf_parser.c" /* yacc.c:1646  */  #line 5212 "conf_parser.c" /* yacc.c:1646  */
5212      break;      break;
5213    
5214    case 390:    case 390:
5215  #line 2130 "conf_parser.y" /* yacc.c:1646  */  #line 2128 "conf_parser.y" /* yacc.c:1646  */
5216      {      {
5217    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5218      block_state.flags.value |= SHARED_RESV;      block_state.flags.value |= SHARED_RESV;
5219  }  }
5220  #line 5223 "conf_parser.c" /* yacc.c:1646  */  #line 5221 "conf_parser.c" /* yacc.c:1646  */
5221      break;      break;
5222    
5223    case 391:    case 391:
5224  #line 2134 "conf_parser.y" /* yacc.c:1646  */  #line 2132 "conf_parser.y" /* yacc.c:1646  */
5225      {      {
5226    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5227      block_state.flags.value |= SHARED_UNRESV;      block_state.flags.value |= SHARED_UNRESV;
5228  }  }
5229  #line 5232 "conf_parser.c" /* yacc.c:1646  */  #line 5230 "conf_parser.c" /* yacc.c:1646  */
5230      break;      break;
5231    
5232    case 392:    case 392:
5233  #line 2138 "conf_parser.y" /* yacc.c:1646  */  #line 2136 "conf_parser.y" /* yacc.c:1646  */
5234      {      {
5235    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5236      block_state.flags.value |= SHARED_LOCOPS;      block_state.flags.value |= SHARED_LOCOPS;
5237  }  }
5238  #line 5241 "conf_parser.c" /* yacc.c:1646  */  #line 5239 "conf_parser.c" /* yacc.c:1646  */
5239      break;      break;
5240    
5241    case 393:    case 393:
5242  #line 2142 "conf_parser.y" /* yacc.c:1646  */  #line 2140 "conf_parser.y" /* yacc.c:1646  */
5243      {      {
5244    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5245      block_state.flags.value = SHARED_ALL;      block_state.flags.value = SHARED_ALL;
5246  }  }
5247  #line 5250 "conf_parser.c" /* yacc.c:1646  */  #line 5248 "conf_parser.c" /* yacc.c:1646  */
5248      break;      break;
5249    
5250    case 394:    case 394:
5251  #line 2151 "conf_parser.y" /* yacc.c:1646  */  #line 2149 "conf_parser.y" /* yacc.c:1646  */
5252      {      {
5253    
5254    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
# Line 5260  yyreduce: Line 5258  yyreduce:
5258    block_state.aftype.value = AF_INET;    block_state.aftype.value = AF_INET;
5259    block_state.port.value = PORTNUM;    block_state.port.value = PORTNUM;
5260  }  }
5261  #line 5264 "conf_parser.c" /* yacc.c:1646  */  #line 5262 "conf_parser.c" /* yacc.c:1646  */
5262      break;      break;
5263    
5264    case 395:    case 395:
5265  #line 2160 "conf_parser.y" /* yacc.c:1646  */  #line 2158 "conf_parser.y" /* yacc.c:1646  */
5266      {      {
5267    struct MaskItem *conf = NULL;    struct MaskItem *conf = NULL;
5268    struct addrinfo hints, *res;    struct addrinfo hints, *res;
# Line 5326  yyreduce: Line 5324  yyreduce:
5324    conf_add_class_to_conf(conf, block_state.class.buf);    conf_add_class_to_conf(conf, block_state.class.buf);
5325    lookup_confhost(conf);    lookup_confhost(conf);
5326  }  }
5327  #line 5330 "conf_parser.c" /* yacc.c:1646  */  #line 5328 "conf_parser.c" /* yacc.c:1646  */
5328      break;      break;
5329    
5330    case 413:    case 413:
5331  #line 2240 "conf_parser.y" /* yacc.c:1646  */  #line 2238 "conf_parser.y" /* yacc.c:1646  */
5332      {      {
5333    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5334      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5335  }  }
5336  #line 5339 "conf_parser.c" /* yacc.c:1646  */  #line 5337 "conf_parser.c" /* yacc.c:1646  */
5337      break;      break;
5338    
5339    case 414:    case 414:
5340  #line 2246 "conf_parser.y" /* yacc.c:1646  */  #line 2244 "conf_parser.y" /* yacc.c:1646  */
5341      {      {
5342    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5343      strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));      strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5344  }  }
5345  #line 5348 "conf_parser.c" /* yacc.c:1646  */  #line 5346 "conf_parser.c" /* yacc.c:1646  */
5346      break;      break;
5347    
5348    case 415:    case 415:
5349  #line 2252 "conf_parser.y" /* yacc.c:1646  */  #line 2250 "conf_parser.y" /* yacc.c:1646  */
5350      {      {
5351    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5352      strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));      strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5353  }  }
5354  #line 5357 "conf_parser.c" /* yacc.c:1646  */  #line 5355 "conf_parser.c" /* yacc.c:1646  */
5355      break;      break;
5356    
5357    case 416:    case 416:
5358  #line 2258 "conf_parser.y" /* yacc.c:1646  */  #line 2256 "conf_parser.y" /* yacc.c:1646  */
5359      {      {
5360    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
5361      break;      break;
# Line 5369  yyreduce: Line 5367  yyreduce:
5367    else    else
5368      strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));      strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5369  }  }
5370  #line 5373 "conf_parser.c" /* yacc.c:1646  */  #line 5371 "conf_parser.c" /* yacc.c:1646  */
5371      break;      break;
5372    
5373    case 417:    case 417:
5374  #line 2271 "conf_parser.y" /* yacc.c:1646  */  #line 2269 "conf_parser.y" /* yacc.c:1646  */
5375      {      {
5376    if (conf_parser_ctx.pass != 2)    if (conf_parser_ctx.pass != 2)
5377      break;      break;
# Line 5385  yyreduce: Line 5383  yyreduce:
5383    else    else
5384      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5385  }  }
5386  #line 5389 "conf_parser.c" /* yacc.c:1646  */  #line 5387 "conf_parser.c" /* yacc.c:1646  */
5387      break;      break;
5388    
5389    case 418:    case 418:
5390  #line 2284 "conf_parser.y" /* yacc.c:1646  */  #line 2282 "conf_parser.y" /* yacc.c:1646  */
5391      {      {
5392    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5393      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));      strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5394  }  }
5395  #line 5398 "conf_parser.c" /* yacc.c:1646  */  #line 5396 "conf_parser.c" /* yacc.c:1646  */
5396      break;      break;
5397    
5398    case 419:    case 419:
5399  #line 2290 "conf_parser.y" /* yacc.c:1646  */  #line 2288 "conf_parser.y" /* yacc.c:1646  */
5400      {      {
5401    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5402      block_state.port.value = (yyvsp[-1].number);      block_state.port.value = (yyvsp[-1].number);
5403  }  }
5404  #line 5407 "conf_parser.c" /* yacc.c:1646  */  #line 5405 "conf_parser.c" /* yacc.c:1646  */
5405      break;      break;
5406    
5407    case 420:    case 420:
5408  #line 2296 "conf_parser.y" /* yacc.c:1646  */  #line 2294 "conf_parser.y" /* yacc.c:1646  */
5409      {      {
5410    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5411      block_state.aftype.value = AF_INET;      block_state.aftype.value = AF_INET;
5412  }  }
5413  #line 5416 "conf_parser.c" /* yacc.c:1646  */  #line 5414 "conf_parser.c" /* yacc.c:1646  */
5414      break;      break;
5415    
5416    case 421:    case 421:
5417  #line 2300 "conf_parser.y" /* yacc.c:1646  */  #line 2298 "conf_parser.y" /* yacc.c:1646  */
5418      {      {
5419    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5420      block_state.aftype.value = AF_INET6;      block_state.aftype.value = AF_INET6;
5421  }  }
5422  #line 5425 "conf_parser.c" /* yacc.c:1646  */  #line 5423 "conf_parser.c" /* yacc.c:1646  */
5423      break;      break;
5424    
5425    case 422:    case 422:
5426  #line 2306 "conf_parser.y" /* yacc.c:1646  */  #line 2304 "conf_parser.y" /* yacc.c:1646  */
5427      {      {
5428    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5429  }  }
5430  #line 5433 "conf_parser.c" /* yacc.c:1646  */  #line 5431 "conf_parser.c" /* yacc.c:1646  */
5431      break;      break;
5432    
5433    case 426:    case 426:
5434  #line 2312 "conf_parser.y" /* yacc.c:1646  */  #line 2310 "conf_parser.y" /* yacc.c:1646  */
5435      {      {
5436    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5437      block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;      block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5438  }  }
5439  #line 5442 "conf_parser.c" /* yacc.c:1646  */  #line 5440 "conf_parser.c" /* yacc.c:1646  */
5440      break;      break;
5441    
5442    case 427:    case 427:
5443  #line 2316 "conf_parser.y" /* yacc.c:1646  */  #line 2314 "conf_parser.y" /* yacc.c:1646  */
5444      {      {
5445    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5446      block_state.flags.value |= CONF_FLAGS_SSL;      block_state.flags.value |= CONF_FLAGS_SSL;
5447  }  }
5448  #line 5451 "conf_parser.c" /* yacc.c:1646  */  #line 5449 "conf_parser.c" /* yacc.c:1646  */
5449      break;      break;
5450    
5451    case 428:    case 428:
5452  #line 2322 "conf_parser.y" /* yacc.c:1646  */  #line 2320 "conf_parser.y" /* yacc.c:1646  */
5453      {      {
5454    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5455    {    {
# Line 5461  yyreduce: Line 5459  yyreduce:
5459        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5460    }    }
5461  }  }
5462  #line 5465 "conf_parser.c" /* yacc.c:1646  */  #line 5463 "conf_parser.c" /* yacc.c:1646  */
5463      break;      break;
5464    
5465    case 429:    case 429:
5466  #line 2333 "conf_parser.y" /* yacc.c:1646  */  #line 2331 "conf_parser.y" /* yacc.c:1646  */
5467      {      {
5468    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5469      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5470  }  }
5471  #line 5474 "conf_parser.c" /* yacc.c:1646  */  #line 5472 "conf_parser.c" /* yacc.c:1646  */
5472      break;      break;
5473    
5474    case 430:    case 430:
5475  #line 2339 "conf_parser.y" /* yacc.c:1646  */  #line 2337 "conf_parser.y" /* yacc.c:1646  */
5476      {      {
5477    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5478      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5479  }  }
5480  #line 5483 "conf_parser.c" /* yacc.c:1646  */  #line 5481 "conf_parser.c" /* yacc.c:1646  */
5481      break;      break;
5482    
5483    case 431:    case 431:
5484  #line 2345 "conf_parser.y" /* yacc.c:1646  */  #line 2343 "conf_parser.y" /* yacc.c:1646  */
5485      {      {
5486    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5487      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5488  }  }
5489  #line 5492 "conf_parser.c" /* yacc.c:1646  */  #line 5490 "conf_parser.c" /* yacc.c:1646  */
5490      break;      break;
5491    
5492    case 432:    case 432:
5493  #line 2351 "conf_parser.y" /* yacc.c:1646  */  #line 2349 "conf_parser.y" /* yacc.c:1646  */
5494      {      {
5495  #ifdef HAVE_LIBCRYPTO  #ifdef HAVE_LIBCRYPTO
5496    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
# Line 5502  yyreduce: Line 5500  yyreduce:
5500      conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");      conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5501  #endif  #endif
5502  }  }
5503  #line 5506 "conf_parser.c" /* yacc.c:1646  */  #line 5504 "conf_parser.c" /* yacc.c:1646  */
5504      break;      break;
5505    
5506    case 433:    case 433:
5507  #line 2366 "conf_parser.y" /* yacc.c:1646  */  #line 2364 "conf_parser.y" /* yacc.c:1646  */
5508      {      {
5509    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5510      reset_block_state();      reset_block_state();
5511  }  }
5512  #line 5515 "conf_parser.c" /* yacc.c:1646  */  #line 5513 "conf_parser.c" /* yacc.c:1646  */
5513      break;      break;
5514    
5515    case 434:    case 434:
5516  #line 2370 "conf_parser.y" /* yacc.c:1646  */  #line 2368 "conf_parser.y" /* yacc.c:1646  */
5517      {      {
5518    struct MaskItem *conf = NULL;    struct MaskItem *conf = NULL;
5519    
# Line 5536  yyreduce: Line 5534  yyreduce:
5534      conf->reason = xstrdup(CONF_NOREASON);      conf->reason = xstrdup(CONF_NOREASON);
5535    add_conf_by_address(CONF_KLINE, conf);    add_conf_by_address(CONF_KLINE, conf);
5536  }  }
5537  #line 5540 "conf_parser.c" /* yacc.c:1646  */  #line 5538 "conf_parser.c" /* yacc.c:1646  */
5538      break;      break;
5539    
5540    case 440:    case 440:
5541  #line 2395 "conf_parser.y" /* yacc.c:1646  */  #line 2393 "conf_parser.y" /* yacc.c:1646  */
5542      {      {
5543    
5544    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
# Line 5559  yyreduce: Line 5557  yyreduce:
5557      split_nuh(&nuh);      split_nuh(&nuh);
5558    }    }
5559  }  }
5560  #line 5563 "conf_parser.c" /* yacc.c:1646  */  #line 5561 "conf_parser.c" /* yacc.c:1646  */
5561      break;      break;
5562    
5563    case 441:    case 441:
5564  #line 2415 "conf_parser.y" /* yacc.c:1646  */  #line 2413 "conf_parser.y" /* yacc.c:1646  */
5565      {      {
5566    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5567      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5568  }  }
5569  #line 5572 "conf_parser.c" /* yacc.c:1646  */  #line 5570 "conf_parser.c" /* yacc.c:1646  */
5570      break;      break;
5571    
5572    case 442:    case 442:
5573  #line 2424 "conf_parser.y" /* yacc.c:1646  */  #line 2422 "conf_parser.y" /* yacc.c:1646  */
5574      {      {
5575    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5576      reset_block_state();      reset_block_state();
5577  }  }
5578  #line 5581 "conf_parser.c" /* yacc.c:1646  */  #line 5579 "conf_parser.c" /* yacc.c:1646  */
5579      break;      break;
5580    
5581    case 443:    case 443:
5582  #line 2428 "conf_parser.y" /* yacc.c:1646  */  #line 2426 "conf_parser.y" /* yacc.c:1646  */
5583      {      {
5584    struct MaskItem *conf = NULL;    struct MaskItem *conf = NULL;
5585    
# Line 5603  yyreduce: Line 5601  yyreduce:
5601      add_conf_by_address(CONF_DLINE, conf);      add_conf_by_address(CONF_DLINE, conf);
5602    }    }
5603  }  }
5604  #line 5607 "conf_parser.c" /* yacc.c:1646  */  #line 5605 "conf_parser.c" /* yacc.c:1646  */
5605      break;      break;
5606    
5607    case 449:    case 449:
5608  #line 2454 "conf_parser.y" /* yacc.c:1646  */  #line 2452 "conf_parser.y" /* yacc.c:1646  */
5609      {      {
5610    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5611      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5612  }  }
5613  #line 5616 "conf_parser.c" /* yacc.c:1646  */  #line 5614 "conf_parser.c" /* yacc.c:1646  */
5614      break;      break;
5615    
5616    case 450:    case 450:
5617  #line 2460 "conf_parser.y" /* yacc.c:1646  */  #line 2458 "conf_parser.y" /* yacc.c:1646  */
5618      {      {
5619    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5620      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5621  }  }
5622  #line 5625 "conf_parser.c" /* yacc.c:1646  */  #line 5623 "conf_parser.c" /* yacc.c:1646  */
5623      break;      break;
5624    
5625    case 456:    case 456:
5626  #line 2474 "conf_parser.y" /* yacc.c:1646  */  #line 2472 "conf_parser.y" /* yacc.c:1646  */
5627      {      {
5628    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5629    {    {
# Line 5638  yyreduce: Line 5636  yyreduce:
5636      }      }
5637    }    }
5638  }  }
5639  #line 5642 "conf_parser.c" /* yacc.c:1646  */  #line 5640 "conf_parser.c" /* yacc.c:1646  */
5640      break;      break;
5641    
5642    case 457:    case 457:
5643  #line 2491 "conf_parser.y" /* yacc.c:1646  */  #line 2489 "conf_parser.y" /* yacc.c:1646  */
5644      {      {
5645    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5646      reset_block_state();      reset_block_state();
5647  }  }
5648  #line 5651 "conf_parser.c" /* yacc.c:1646  */  #line 5649 "conf_parser.c" /* yacc.c:1646  */
5649      break;      break;
5650    
5651    case 458:    case 458:
5652  #line 2495 "conf_parser.y" /* yacc.c:1646  */  #line 2493 "conf_parser.y" /* yacc.c:1646  */
5653      {      {
5654    struct MaskItem *conf = NULL;    struct MaskItem *conf = NULL;
5655    
# Line 5669  yyreduce: Line 5667  yyreduce:
5667    else    else
5668      conf->reason = xstrdup(CONF_NOREASON);      conf->reason = xstrdup(CONF_NOREASON);
5669  }  }
5670  #line 5673 "conf_parser.c" /* yacc.c:1646  */  #line 5671 "conf_parser.c" /* yacc.c:1646  */
5671      break;      break;
5672    
5673    case 464:    case 464:
5674  #line 2517 "conf_parser.y" /* yacc.c:1646  */  #line 2515 "conf_parser.y" /* yacc.c:1646  */
5675      {      {
5676    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5677      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5678  }  }
5679  #line 5682 "conf_parser.c" /* yacc.c:1646  */  #line 5680 "conf_parser.c" /* yacc.c:1646  */
5680      break;      break;
5681    
5682    case 465:    case 465:
5683  #line 2523 "conf_parser.y" /* yacc.c:1646  */  #line 2521 "conf_parser.y" /* yacc.c:1646  */
5684      {      {
5685    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5686      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5687  }  }
5688  #line 5691 "conf_parser.c" /* yacc.c:1646  */  #line 5689 "conf_parser.c" /* yacc.c:1646  */
5689      break;      break;
5690    
5691    case 519:    case 519:
5692  #line 2588 "conf_parser.y" /* yacc.c:1646  */  #line 2586 "conf_parser.y" /* yacc.c:1646  */
5693      {      {
5694    ConfigGeneral.away_count = (yyvsp[-1].number);    ConfigGeneral.away_count = (yyvsp[-1].number);
5695  }  }
5696  #line 5699 "conf_parser.c" /* yacc.c:1646  */  #line 5697 "conf_parser.c" /* yacc.c:1646  */
5697      break;      break;
5698    
5699    case 520:    case 520:
5700  #line 2593 "conf_parser.y" /* yacc.c:1646  */  #line 2591 "conf_parser.y" /* yacc.c:1646  */
5701      {      {
5702    ConfigGeneral.away_time = (yyvsp[-1].number);    ConfigGeneral.away_time = (yyvsp[-1].number);
5703  }  }
5704  #line 5707 "conf_parser.c" /* yacc.c:1646  */  #line 5705 "conf_parser.c" /* yacc.c:1646  */
5705      break;      break;
5706    
5707    case 521:    case 521:
5708  #line 2598 "conf_parser.y" /* yacc.c:1646  */  #line 2596 "conf_parser.y" /* yacc.c:1646  */
5709      {      {
5710    ConfigGeneral.max_watch = (yyvsp[-1].number);    ConfigGeneral.max_watch = (yyvsp[-1].number);
5711  }  }
5712  #line 5715 "conf_parser.c" /* yacc.c:1646  */  #line 5713 "conf_parser.c" /* yacc.c:1646  */
5713      break;      break;
5714    
5715    case 522:    case 522:
5716  #line 2603 "conf_parser.y" /* yacc.c:1646  */  #line 2601 "conf_parser.y" /* yacc.c:1646  */
5717      {      {
5718    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5719      ConfigGeneral.cycle_on_host_change = yylval.number;      ConfigGeneral.cycle_on_host_change = yylval.number;
5720  }  }
5721  #line 5724 "conf_parser.c" /* yacc.c:1646  */  #line 5722 "conf_parser.c" /* yacc.c:1646  */
5722      break;      break;
5723    
5724    case 523:    case 523:
5725  #line 2609 "conf_parser.y" /* yacc.c:1646  */  #line 2607 "conf_parser.y" /* yacc.c:1646  */
5726      {      {
5727    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5728      ConfigGeneral.glines = yylval.number;      ConfigGeneral.glines = yylval.number;
5729  }  }
5730  #line 5733 "conf_parser.c" /* yacc.c:1646  */  #line 5731 "conf_parser.c" /* yacc.c:1646  */
5731      break;      break;
5732    
5733    case 524:    case 524:
5734  #line 2615 "conf_parser.y" /* yacc.c:1646  */  #line 2613 "conf_parser.y" /* yacc.c:1646  */
5735      {      {
5736    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5737      ConfigGeneral.gline_time = (yyvsp[-1].number);      ConfigGeneral.gline_time = (yyvsp[-1].number);
5738  }  }
5739  #line 5742 "conf_parser.c" /* yacc.c:1646  */  #line 5740 "conf_parser.c" /* yacc.c:1646  */
5740      break;      break;
5741    
5742    case 525:    case 525:
5743  #line 2621 "conf_parser.y" /* yacc.c:1646  */  #line 2619 "conf_parser.y" /* yacc.c:1646  */
5744      {      {
5745    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5746      ConfigGeneral.gline_request_time = (yyvsp[-1].number);      ConfigGeneral.gline_request_time = (yyvsp[-1].number);
5747  }  }
5748  #line 5751 "conf_parser.c" /* yacc.c:1646  */  #line 5749 "conf_parser.c" /* yacc.c:1646  */
5749      break;      break;
5750    
5751    case 526:    case 526:
5752  #line 2627 "conf_parser.y" /* yacc.c:1646  */  #line 2625 "conf_parser.y" /* yacc.c:1646  */
5753      {      {
5754    ConfigGeneral.gline_min_cidr = (yyvsp[-1].number);    ConfigGeneral.gline_min_cidr = (yyvsp[-1].number);
5755  }  }
5756  #line 5759 "conf_parser.c" /* yacc.c:1646  */  #line 5757 "conf_parser.c" /* yacc.c:1646  */
5757      break;      break;
5758    
5759    case 527:    case 527:
5760  #line 2632 "conf_parser.y" /* yacc.c:1646  */  #line 2630 "conf_parser.y" /* yacc.c:1646  */
5761      {      {
5762    ConfigGeneral.gline_min_cidr6 = (yyvsp[-1].number);    ConfigGeneral.gline_min_cidr6 = (yyvsp[-1].number);
5763  }  }
5764  #line 5767 "conf_parser.c" /* yacc.c:1646  */  #line 5765 "conf_parser.c" /* yacc.c:1646  */
5765      break;      break;
5766    
5767    case 528:    case 528:
5768  #line 2637 "conf_parser.y" /* yacc.c:1646  */  #line 2635 "conf_parser.y" /* yacc.c:1646  */
5769      {      {
5770    ConfigGeneral.tkline_expire_notices = yylval.number;    ConfigGeneral.tkline_expire_notices = yylval.number;
5771  }  }
5772  #line 5775 "conf_parser.c" /* yacc.c:1646  */  #line 5773 "conf_parser.c" /* yacc.c:1646  */
5773      break;      break;
5774    
5775    case 529:    case 529:
5776  #line 2642 "conf_parser.y" /* yacc.c:1646  */  #line 2640 "conf_parser.y" /* yacc.c:1646  */
5777      {      {
5778    ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);    ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5779  }  }
5780  #line 5783 "conf_parser.c" /* yacc.c:1646  */  #line 5781 "conf_parser.c" /* yacc.c:1646  */
5781      break;      break;
5782    
5783    case 530:    case 530:
5784  #line 2647 "conf_parser.y" /* yacc.c:1646  */  #line 2645 "conf_parser.y" /* yacc.c:1646  */
5785      {      {
5786    ConfigGeneral.hide_spoof_ips = yylval.number;    ConfigGeneral.hide_spoof_ips = yylval.number;
5787  }  }
5788  #line 5791 "conf_parser.c" /* yacc.c:1646  */  #line 5789 "conf_parser.c" /* yacc.c:1646  */
5789      break;      break;
5790    
5791    case 531:    case 531:
5792  #line 2652 "conf_parser.y" /* yacc.c:1646  */  #line 2650 "conf_parser.y" /* yacc.c:1646  */
5793      {      {
5794    ConfigGeneral.ignore_bogus_ts = yylval.number;    ConfigGeneral.ignore_bogus_ts = yylval.number;
5795  }  }
5796  #line 5799 "conf_parser.c" /* yacc.c:1646  */  #line 5797 "conf_parser.c" /* yacc.c:1646  */
5797      break;      break;
5798    
5799    case 532:    case 532:
5800  #line 2657 "conf_parser.y" /* yacc.c:1646  */  #line 2655 "conf_parser.y" /* yacc.c:1646  */
5801      {      {
5802    ConfigGeneral.failed_oper_notice = yylval.number;    ConfigGeneral.failed_oper_notice = yylval.number;
5803  }  }
5804  #line 5807 "conf_parser.c" /* yacc.c:1646  */  #line 5805 "conf_parser.c" /* yacc.c:1646  */
5805      break;      break;
5806    
5807    case 533:    case 533:
5808  #line 2662 "conf_parser.y" /* yacc.c:1646  */  #line 2660 "conf_parser.y" /* yacc.c:1646  */
5809      {      {
5810    ConfigGeneral.anti_nick_flood = yylval.number;    ConfigGeneral.anti_nick_flood = yylval.number;
5811  }  }
5812  #line 5815 "conf_parser.c" /* yacc.c:1646  */  #line 5813 "conf_parser.c" /* yacc.c:1646  */
5813      break;      break;
5814    
5815    case 534:    case 534:
5816  #line 2667 "conf_parser.y" /* yacc.c:1646  */  #line 2665 "conf_parser.y" /* yacc.c:1646  */
5817      {      {
5818    ConfigGeneral.max_nick_time = (yyvsp[-1].number);    ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5819  }  }
5820  #line 5823 "conf_parser.c" /* yacc.c:1646  */  #line 5821 "conf_parser.c" /* yacc.c:1646  */
5821      break;      break;
5822    
5823    case 535:    case 535:
5824  #line 2672 "conf_parser.y" /* yacc.c:1646  */  #line 2670 "conf_parser.y" /* yacc.c:1646  */
5825      {      {
5826    ConfigGeneral.max_nick_changes = (yyvsp[-1].number);    ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5827  }  }
5828  #line 5831 "conf_parser.c" /* yacc.c:1646  */  #line 5829 "conf_parser.c" /* yacc.c:1646  */
5829      break;      break;
5830    
5831    case 536:    case 536:
5832  #line 2677 "conf_parser.y" /* yacc.c:1646  */  #line 2675 "conf_parser.y" /* yacc.c:1646  */
5833      {      {
5834    ConfigGeneral.max_accept = (yyvsp[-1].number);    ConfigGeneral.max_accept = (yyvsp[-1].number);
5835  }  }
5836  #line 5839 "conf_parser.c" /* yacc.c:1646  */  #line 5837 "conf_parser.c" /* yacc.c:1646  */
5837      break;      break;
5838    
5839    case 537:    case 537:
5840  #line 2682 "conf_parser.y" /* yacc.c:1646  */  #line 2680 "conf_parser.y" /* yacc.c:1646  */
5841      {      {
5842    ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);    ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5843  }  }
5844  #line 5847 "conf_parser.c" /* yacc.c:1646  */  #line 5845 "conf_parser.c" /* yacc.c:1646  */
5845      break;      break;
5846    
5847    case 538:    case 538:
5848  #line 2687 "conf_parser.y" /* yacc.c:1646  */  #line 2685 "conf_parser.y" /* yacc.c:1646  */
5849      {      {
5850    ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);    ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5851  }  }
5852  #line 5855 "conf_parser.c" /* yacc.c:1646  */  #line 5853 "conf_parser.c" /* yacc.c:1646  */
5853      break;      break;
5854    
5855    case 539:    case 539:
5856  #line 2692 "conf_parser.y" /* yacc.c:1646  */  #line 2690 "conf_parser.y" /* yacc.c:1646  */
5857      {      {
5858    if (conf_parser_ctx.pass == 2)    if (conf_parser_ctx.pass == 2)
5859      ConfigGeneral.ts_max_delta = (yyvsp[-1].number);      ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5860  }  }
5861  #line 5864 "conf_parser.c" /* yacc.c:1646  */  #line 5862 "conf_parser.c" /* yacc.c:1646  */
5862      break;      break;
5863    
5864    case 540:    case 540:
5865  #line 2698 "conf_parser.y" /* yacc.c:1646  */  #line 2696 "conf_parser.y" /* yacc.c:1646  */
5866      {      {
5867    if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)    if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5868    {    {
# Line 5874  yyreduce: Line 5872  yyreduce:
5872      exit(0);      exit(0);
5873    }    }
5874  }  }
5875  #line 5878 "conf_parser.c" /* yacc.c:1646  */  #line 5876 "conf_parser.c" /* yacc.c:1646  */
5876      break;      break;
5877    
5878    case 541:    case 541:
5879  #line 2709 "conf_parser.y" /* yacc.c:1646  */  #line 2707 "conf_parser.y" /* yacc.c:1646  */
5880      {      {
5881    ConfigGeneral.invisible_on_connect = yylval.number;    ConfigGeneral.invisible_on_connect = yylval.number;
5882  }  }
5883  #line 5886 "conf_parser.c" /* yacc.c:1646  */  #line 5884 "conf_parser.c" /* yacc.c:1646  */
5884      break;      break;
5885    
5886    case 542:    case 542:
5887  #line 2714 "conf_parser.y" /* yacc.c:1646  */  #line 2712 "conf_parser.y" /* yacc.c:1646  */
5888      {      {
5889    ConfigGeneral.warn_no_connect_block = yylval.number;    ConfigGeneral.warn_no_connect_block = yylval.number;
5890  }  }
5891  #line 5894 "conf_parser.c" /* yacc.c:1646  */  #line 5892 "conf_parser.c" /* yacc.c:1646  */
5892      break;      break;
5893    
5894    case 543:    case 543:
5895  #line 2719 "conf_parser.y" /* yacc.c:1646  */  #line 2717 "conf_parser.y" /* yacc.c:1646  */
5896      {      {
5897    ConfigGeneral.stats_e_disabled = yylval.number;    ConfigGeneral.stats_e_disabled = yylval.number;
5898  }  }
5899  #line 5902 "conf_parser.c" /* yacc.c:1646  */  #line 5900 "conf_parser.c" /* yacc.c:1646  */
5900      break;      break;
5901    
5902    case 544:    case 544:
5903  #line 2724 "conf_parser.y" /* yacc.c:1646  */  #line 2722 "conf_parser.y" /* yacc.c:1646  */
5904      {      {
5905    ConfigGeneral.stats_o_oper_only = yylval.number;    ConfigGeneral.stats_o_oper_only = yylval.number;
5906  }  }
5907  #line 5910 "conf_parser.c" /* yacc.c:1646  */  #line 5908 "conf_parser.c" /* yacc.c:1646  */
5908      break;      break;
5909    
5910    case 545:    case 545:
5911  #line 2729 "conf_parser.y" /* yacc.c:1646  */  #line 2727 "conf_parser.y" /* yacc.c:1646  */
5912      {      {
5913    ConfigGeneral.stats_P_oper_only = yylval.number;    ConfigGeneral.stats_P_oper_only = yylval.number;
5914  }  }
5915  #line 5918 "conf_parser.c" /* yacc.c:1646  */  #line 5916 "conf_parser.c" /* yacc.c:1646  */
5916      break;      break;
5917    
5918    case 546:    case 546:
5919  #line 2734 "conf_parser.y" /* yacc.c:1646  */  #line 2732 "conf_parser.y" /* yacc.c:1646  */
5920      {      {
5921    ConfigGeneral.stats_u_oper_only = yylval.number;    ConfigGeneral.stats_u_oper_only = yylval.number;
5922  }  }
5923  #line 5926 "conf_parser.c" /* yacc.c:1646  */  #line 5924 "conf_parser.c" /* yacc.c:1646  */
5924      break;      break;
5925    
5926    case 547:    case 547:
5927  #line 2739 "conf_parser.y" /* yacc.c:1646  */  #line 2737 "conf_parser.y" /* yacc.c:1646  */
5928      {      {
5929    ConfigGeneral.stats_k_oper_only = 2 * yylval.number;    ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5930  }  }
5931  #line 5934 "conf_parser.c" /* yacc.c:1646  */  #line 5932 "conf_parser.c" /* yacc.c:1646  */
5932      break;      break;
5933    
5934    case 548:    case 548:
5935  #line 2742 "conf_parser.y" /* yacc.c:1646  */  #line 2740 "conf_parser.y" /* yacc.c:1646  */
5936      {      {
5937    ConfigGeneral.stats_k_oper_only = 1;    ConfigGeneral.stats_k_oper_only = 1;
5938  }  }
5939  #line 5942 "conf_parser.c" /* yacc.c:1646  */  #line 5940 "conf_parser.c" /* yacc.c:1646  */
5940      break;      break;
5941    
5942    case 549:    case 549:
5943  #line 2747 "conf_parser.y" /* yacc.c:1646  */  #line 2745 "conf_parser.y" /* yacc.c:1646  */
5944      {      {
5945    ConfigGeneral.stats_i_oper_only = 2 * yylval.number;    ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5946  }  }
5947  #line 5950 "conf_parser.c" /* yacc.c:1646  */  #line 5948 "conf_parser.c" /* yacc.c:1646  */
5948      break;      break;
5949    
5950    case 550:    case 550:
5951  #line 2750 "conf_parser.y" /* yacc.c:1646  */  #line 2748 "conf_parser.y" /* yacc.c:1646  */
5952      {      {
5953    ConfigGeneral.stats_i_oper_only = 1;    ConfigGeneral.stats_i_oper_only = 1;
5954  }  }
5955  #line 5958 "conf_parser.c" /* yacc.c:1646  */  #line 5956 "conf_parser.c" /* yacc.c:1646  */
5956      break;      break;
5957    
5958    case 551:    case 551:
5959  #line 2755 "conf_parser.y" /* yacc.c:1646  */  #line 2753 "conf_parser.y" /* yacc.c:1646  */
5960      {      {
5961    ConfigGeneral.pace_wait = (yyvsp[-1].number);    ConfigGeneral.pace_wait = (yyvsp[-1].number);
5962  }  }
5963  #line 5966 "conf_parser.c" /* yacc.c:1646  */  #line 5964 "conf_parser.c" /* yacc.c:1646  */
5964      break;      break;
5965    
5966    case 552:    case 552:
5967  #line 2760 "conf_parser.y" /* yacc.c:1646  */  #line 2758 "conf_parser.y" /* yacc.c:1646  */
5968      {      {
5969    ConfigGeneral.caller_id_wait = (yyvsp[-1].number);    ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5970  }  }
5971  #line 5974 "conf_parser.c" /* yacc.c:1646  */  #line 5972 "conf_parser.c" /* yacc.c:1646  */
5972      break;      break;
5973    
5974    case 553:    case 553:
5975  #line 2765 "conf_parser.y" /* yacc.c:1646  */  #line 2763 "conf_parser.y" /* yacc.c:1646  */
5976      {      {
5977    ConfigGeneral.opers_bypass_callerid = yylval.number;    ConfigGeneral.opers_bypass_callerid = yylval.number;
5978  }  }
5979  #line 5982 "conf_parser.c" /* yacc.c:1646  */  #line 5980 "conf_parser.c" /* yacc.c:1646  */
5980      break;      break;
5981    
5982    case 554:    case 554:
5983  #line 2770 "conf_parser.y" /* yacc.c:1646  */  #line 2768 "conf_parser.y" /* yacc.c:1646  */
5984      {      {
5985    ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);    ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5986  }  }
5987  #line 5990 "conf_parser.c" /* yacc.c:1646  */  #line 5988 "conf_parser.c" /* yacc.c:1646  */
5988      break;      break;
5989    
5990    case 555:    case 555:
5991  #line 2775 "conf_parser.y" /* yacc.c:1646  */  #line 2773 "conf_parser.y" /* yacc.c:1646  */
5992      {      {
5993    ConfigGeneral.short_motd = yylval.number;    ConfigGeneral.short_motd = yylval.number;
5994  }  }
5995  #line 5998 "conf_parser.c" /* yacc.c:1646  */  #line 5996 "conf_parser.c" /* yacc.c:1646  */
5996      break;      break;
5997    
5998    case 556:    case 556:
5999  #line 2780 "conf_parser.y" /* yacc.c:1646  */  #line 2778 "conf_parser.y" /* yacc.c:1646  */
6000      {      {
6001    ConfigGeneral.no_oper_flood = yylval.number;    ConfigGeneral.no_oper_flood = yylval.number;
6002  }  }
6003  #line 6006 "conf_parser.c" /* yacc.c:1646  */  #line 6004 "conf_parser.c" /* yacc.c:1646  */
6004      break;      break;
6005    
6006    case 557:    case 557:
6007  #line 2785 "conf_parser.y" /* yacc.c:1646  */  #line 2783 "conf_parser.y" /* yacc.c:1646  */
6008      {      {
6009    ConfigGeneral.true_no_oper_flood = yylval.number;    ConfigGeneral.true_no_oper_flood = yylval.number;
6010  }  }
6011  #line 6014 "conf_parser.c" /* yacc.c:1646  */  #line 6012 "conf_parser.c" /* yacc.c:1646  */
6012      break;      break;
6013    
6014    case 558:    case 558:
6015  #line 2790 "conf_parser.y" /* yacc.c:1646  */  #line 2788 "conf_parser.y" /* yacc.c:1646  */
6016      {      {
6017    ConfigGeneral.oper_pass_resv = yylval.number;    ConfigGeneral.oper_pass_resv = yylval.number;
6018  }  }
6019  #line 6022 "conf_parser.c" /* yacc.c:1646  */  #line 6020 "conf_parser.c" /* yacc.c:1646  */
6020      break;      break;
6021    
6022    case 559:    case 559:
6023  #line 2795 "conf_parser.y" /* yacc.c:1646  */  #line 2793 "conf_parser.y" /* yacc.c:1646  */
6024      {      {
6025    ConfigGeneral.dots_in_ident = (yyvsp[-1].number);    ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
6026  }  }
6027  #line 6030 "conf_parser.c" /* yacc.c:1646  */  #line 6028 "conf_parser.c" /* yacc.c:1646  */
6028      break;      break;
6029    
6030    case 560:    case 560:
6031  #line 2800 "conf_parser.y" /* yacc.c:1646  */  #line 2798 "conf_parser.y" /* yacc.c:1646  */
6032      {      {
6033    ConfigGeneral.max_targets = (yyvsp[-1].number);    ConfigGeneral.max_targets = (yyvsp[-1].number);
6034  }  }
6035  #line 6038 "conf_parser.c" /* yacc.c:1646  */  #line 6036 "conf_parser.c" /* yacc.c:1646  */
6036      break;      break;
6037    
6038    case 561:    case 561:
6039  #line 2805 "conf_parser.y" /* yacc.c:1646  */  #line 2803 "conf_parser.y" /* yacc.c:1646  */
6040      {      {
6041    ConfigGeneral.ping_cookie = yylval.number;    ConfigGeneral.ping_cookie = yylval.number;
6042  }  }
6043  #line 6046 "conf_parser.c" /* yacc.c:1646  */  #line 6044 "conf_parser.c" /* yacc.c:1646  */
6044      break;      break;
6045    
6046    case 562:    case 562:
6047  #line 2810 "conf_parser.y" /* yacc.c:1646  */  #line 2808 "conf_parser.y" /* yacc.c:1646  */
6048      {      {
6049    ConfigGeneral.disable_auth = yylval.number;    ConfigGeneral.disable_auth = yylval.number;
6050  }  }
6051  #line 6054 "conf_parser.c" /* yacc.c:1646  */  #line 6052 "conf_parser.c" /* yacc.c:1646  */
6052      break;      break;
6053    
6054    case 563:    case 563:
6055  #line 2815 "conf_parser.y" /* yacc.c:1646  */  #line 2813 "conf_parser.y" /* yacc.c:1646  */
6056      {      {
6057    ConfigGeneral.throttle_count = (yyvsp[-1].number);    ConfigGeneral.throttle_count = (yyvsp[-1].number);
6058  }  }
6059  #line 6062 "conf_parser.c" /* yacc.c:1646  */  #line 6060 "conf_parser.c" /* yacc.c:1646  */
6060      break;      break;
6061    
6062    case 564:    case 564:
6063  #line 2820 "conf_parser.y" /* yacc.c:1646  */  #line 2818 "conf_parser.y" /* yacc.c:1646  */
6064      {      {
6065    ConfigGeneral.throttle_time = (yyvsp[-1].number);    ConfigGeneral.throttle_time = (yyvsp[-1].number);
6066  }  }
6067  #line 6070 "conf_parser.c" /* yacc.c:1646  */  #line 6068 "conf_parser.c" /* yacc.c:1646  */
6068      break;      break;
6069    
6070    case 565:    case 565:
6071  #line 2825 "conf_parser.y" /* yacc.c:1646  */  #line 2823 "conf_parser.y" /* yacc.c:1646  */
6072      {      {
6073    ConfigGeneral.oper_umodes = 0;    ConfigGeneral.oper_umodes = 0;
6074  }  }
6075  #line 6078 "conf_parser.c" /* yacc.c:1646  */  #line 6076 "conf_parser.c" /* yacc.c:1646  */
6076      break;      break;
6077    
6078    case 569:    case 569:
6079  #line 2831 "conf_parser.y" /* yacc.c:1646  */  #line 2829 "conf_parser.y" /* yacc.c:1646  */
6080      {      {
6081    ConfigGeneral.oper_umodes |= UMODE_BOTS;    ConfigGeneral.oper_umodes |= UMODE_BOTS;
6082  }  }
6083  #line 6086 "conf_parser.c" /* yacc.c:1646  */  #line 6084 "conf_parser.c" /* yacc.c:1646  */
6084      break;      break;
6085    
6086    case 570:    case 570:
6087  #line 2834 "conf_parser.y" /* yacc.c:1646  */  #line 2832 "conf_parser.y" /* yacc.c:1646  */
6088      {      {
6089    ConfigGeneral.oper_umodes |= UMODE_CCONN;    ConfigGeneral.oper_umodes |= UMODE_CCONN;
6090  }  }
6091  #line 6094 "conf_parser.c" /* yacc.c:1646  */  #line 6092 "conf_parser.c" /* yacc.c:1646  */
6092      break;      break;
6093    
6094    case 571:    case 571:
6095  #line 2837 "conf_parser.y" /* yacc.c:1646  */  #line 2835 "conf_parser.y" /* yacc.c:1646  */
6096      {      {
6097    ConfigGeneral.oper_umodes |= UMODE_DEAF;    ConfigGeneral.oper_umodes |= UMODE_DEAF;
6098  }  }
6099  #line 6102 "conf_parser.c" /* yacc.c:1646  */  #line 6100 "conf_parser.c" /* yacc.c:1646  */
6100      break;      break;
6101    
6102    case 572:    case 572:
6103  #line 2840 "conf_parser.y" /* yacc.c:1646  */  #line 2838 "conf_parser.y" /* yacc.c:1646  */
6104      {      {
6105    ConfigGeneral.oper_umodes |= UMODE_DEBUG;    ConfigGeneral.oper_umodes |= UMODE_DEBUG;
6106  }  }
6107  #line 6110 "conf_parser.c" /* yacc.c:1646  */  #line 6108 "conf_parser.c" /* yacc.c:1646  */
6108      break;      break;
6109    
6110    case 573:    case 573:
6111  #line 2843 "conf_parser.y" /* yacc.c:1646  */  #line 2841 "conf_parser.y" /* yacc.c:1646  */
6112      {      {
6113    ConfigGeneral.oper_umodes |= UMODE_FULL;    ConfigGeneral.oper_umodes |= UMODE_FULL;
6114  }  }
6115  #line 6118 "conf_parser.c" /* yacc.c:1646  */  #line 6116 "conf_parser.c" /* yacc.c:1646  */
6116      break;      break;
6117    
6118    case 574:    case 574:
6119  #line 2846 "conf_parser.y" /* yacc.c:1646  */  #line 2844 "conf_parser.y" /* yacc.c:1646  */
6120      {      {
6121    ConfigGeneral.oper_umodes |= UMODE_HIDDEN;    ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
6122  }  }
6123  #line 6126 "conf_parser.c" /* yacc.c:1646  */  #line 6124 "conf_parser.c" /* yacc.c:1646  */
6124      break;      break;
6125    
6126    case 575:    case 575:
6127  #line 2849 "conf_parser.y" /* yacc.c:1646  */  #line 2847 "conf_parser.y" /* yacc.c:1646  */
6128      {      {
6129    ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;    ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
6130  }  }
6131  #line 6134 "conf_parser.c" /* yacc.c:1646  */  #line 6132 "conf_parser.c" /* yacc.c:1646  */
6132      break;      break;
6133    
6134    case 576:    case 576:
6135  #line 2852 "conf_parser.y" /* yacc.c:1646  */  #line 2850 "conf_parser.y" /* yacc.c:1646  */
6136      {      {
6137    ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;    ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
6138  }  }
6139  #line 6142 "conf_parser.c" /* yacc.c:1646  */  #line 6140 "conf_parser.c" /* yacc.c:1646  */
6140      break;      break;
6141    
6142    case 577:    case 577:
6143  #line 2855 "conf_parser.y" /* yacc.c:1646  */  #line 2853 "conf_parser.y" /* yacc.c:1646  */
6144      {      {
6145    ConfigGeneral.oper_umodes |= UMODE_SKILL;    ConfigGeneral.oper_umodes |= UMODE_SKILL;
6146  }  }
6147  #line 6150 "conf_parser.c" /* yacc.c:1646  */  #line 6148 "conf_parser.c" /* yacc.c:1646  */
6148      break;      break;
6149    
6150    case 578:    case 578:
6151  #line 2858 "conf_parser.y" /* yacc.c:1646  */  #line 2856 "conf_parser.y" /* yacc.c:1646  */
6152      {      {
6153    ConfigGeneral.oper_umodes |= UMODE_NCHANGE;    ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
6154  }  }
6155  #line 6158 "conf_parser.c" /* yacc.c:1646  */  #line 6156 "conf_parser.c" /* yacc.c:1646  */
6156      break;      break;
6157    
6158    case 579:    case 579:
6159  #line 2861 "conf_parser.y" /* yacc.c:1646  */  #line 2859 "conf_parser.y" /* yacc.c:1646  */
6160      {      {
6161    ConfigGeneral.oper_umodes |= UMODE_REJ;    ConfigGeneral.oper_umodes |= UMODE_REJ;
6162  }  }
6163  #line 6166 "conf_parser.c" /* yacc.c:1646  */  #line 6164 "conf_parser.c" /* yacc.c:1646  */
6164      break;      break;
6165    
6166    case 580:    case 580:
6167  #line 2864 "conf_parser.y" /* yacc.c:1646  */  #line 2862 "conf_parser.y" /* yacc.c:1646  */
6168      {      {
6169    ConfigGeneral.oper_umodes |= UMODE_UNAUTH;    ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
6170  }  }
6171  #line 6174 "conf_parser.c" /* yacc.c:1646  */  #line 6172 "conf_parser.c" /* yacc.c:1646  */
6172      break;      break;
6173    
6174    case 581:    case 581:
6175  #line 2867 "conf_parser.y" /* yacc.c:1646  */  #line 2865 "conf_parser.y" /* yacc.c:1646  */
6176      {      {
6177    ConfigGeneral.oper_umodes |= UMODE_SPY;    ConfigGeneral.oper_umodes |= UMODE_SPY;
6178  }  }
6179  #line 6182 "conf_parser.c" /* yacc.c:1646  */  #line 6180 "conf_parser.c" /* yacc.c:1646  */
6180      break;      break;
6181    
6182    case 582:    case 582:
6183  #line 2870 "conf_parser.y" /* yacc.c:1646  */  #line 2868 "conf_parser.y" /* yacc.c:1646  */
6184      {      {
6185    ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;    ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
6186  }  }
6187  #line 6190 "conf_parser.c" /* yacc.c:1646  */  #line 6188 "conf_parser.c" /* yacc.c:1646  */
6188      break;      break;
6189    
6190    case 583:    case 583:
6191  #line 2873 "conf_parser.y" /* yacc.c:1646  */  #line 2871 "conf_parser.y" /* yacc.c:1646  */
6192      {      {
6193    ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;    ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
6194  }  }
6195  #line 6198 "conf_parser.c" /* yacc.c:1646  */  #line 6196 "conf_parser.c" /* yacc.c:1646  */
6196      break;      break;
6197    
6198    case 584:    case 584:
6199  #line 2876 "conf_parser.y" /* yacc.c:1646  */  #line 2874 "conf_parser.y" /* yacc.c:1646  */
6200      {      {
6201    ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;    ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
6202  }  }
6203  #line 6206 "conf_parser.c" /* yacc.c:1646  */  #line 6204 "conf_parser.c" /* yacc.c:1646  */
6204      break;      break;
6205    
6206    case 585:    case 585:
6207  #line 2879 "conf_parser.y" /* yacc.c:1646  */  #line 2877 "conf_parser.y" /* yacc.c:1646  */
6208      {      {
6209    ConfigGeneral.oper_umodes |= UMODE_WALLOP;    ConfigGeneral.oper_umodes |= UMODE_WALLOP;
6210  }  }
6211  #line 6214 "conf_parser.c" /* yacc.c:1646  */  #line 6212 "conf_parser.c" /* yacc.c:1646  */
6212      break;      break;
6213    
6214    case 586:    case 586:
6215  #line 2882 "conf_parser.y" /* yacc.c:1646  */  #line 2880 "conf_parser.y" /* yacc.c:1646  */
6216      {      {
6217    ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;    ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
6218  }  }
6219  #line 6222 "conf_parser.c" /* yacc.c:1646  */  #line 6220 "conf_parser.c" /* yacc.c:1646  */
6220      break;      break;
6221    
6222    case 587:    case 587:
6223  #line 2885 "conf_parser.y" /* yacc.c:1646  */  #line 2883 "conf_parser.y" /* yacc.c:1646  */
6224      {      {
6225    ConfigGeneral.oper_umodes |= UMODE_CALLERID;    ConfigGeneral.oper_umodes |= UMODE_CALLERID;
6226  }  }
6227  #line 6230 "conf_parser.c" /* yacc.c:1646  */  #line 6228 "conf_parser.c" /* yacc.c:1646  */
6228      break;      break;
6229    
6230    case 588:    case 588:
6231  #line 2888 "conf_parser.y" /* yacc.c:1646  */  #line 2886 "conf_parser.y" /* yacc.c:1646  */
6232      {      {
6233    ConfigGeneral.oper_umodes |= UMODE_LOCOPS;    ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
6234  }  }
6235  #line 6238 "conf_parser.c" /* yacc.c:1646  */  #line 6236 "conf_parser.c" /* yacc.c:1646  */
6236      break;      break;
6237    
6238    case 589:    case 589:
6239  #line 2891 "conf_parser.y" /* yacc.c:1646  */  #line 2889 "conf_parser.y" /* yacc.c:1646  */
6240      {      {
6241    ConfigGeneral.oper_umodes |= UMODE_REGONLY;    ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6242  }  }
6243  #line 6246 "conf_parser.c" /* yacc.c:1646  */  #line 6244 "conf_parser.c" /* yacc.c:1646  */
6244      break;      break;
6245    
6246    case 590:    case 590:
6247  #line 2894 "conf_parser.y" /* yacc.c:1646  */  #line 2892 "conf_parser.y" /* yacc.c:1646  */
6248      {      {
6249    ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;    ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6250  }  }
6251  #line 6254 "conf_parser.c" /* yacc.c:1646  */  #line 6252 "conf_parser.c" /* yacc.c:1646  */
6252      break;      break;
6253    
6254    case 591:    case 591:
6255  #line 2899 "conf_parser.y" /* yacc.c:1646  */  #line 2897 "conf_parser.y" /* yacc.c:1646  */
6256      {      {
6257    ConfigGeneral.oper_only_umodes = 0;    ConfigGeneral.oper_only_umodes = 0;
6258  }  }
6259  #line 6262 "conf_parser.c" /* yacc.c:1646  */  #line 6260 "conf_parser.c" /* yacc.c:1646  */
6260      break;      break;
6261    
6262    case 595:    case 595:
6263  #line 2905 "conf_parser.y" /* yacc.c:1646  */  #line 2903 "conf_parser.y" /* yacc.c:1646  */
6264      {      {
6265    ConfigGeneral.oper_only_umodes |= UMODE_BOTS;    ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6266  }  }
6267  #line 6270 "conf_parser.c" /* yacc.c:1646  */  #line 6268 "conf_parser.c" /* yacc.c:1646  */
6268      break;      break;
6269    
6270    case 596:    case 596:
6271  #line 2908 "conf_parser.y" /* yacc.c:1646  */  #line 2906 "conf_parser.y" /* yacc.c:1646  */
6272      {      {
6273    ConfigGeneral.oper_only_umodes |= UMODE_CCONN;    ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6274  }  }
6275  #line 6278 "conf_parser.c" /* yacc.c:1646  */  #line 6276 "conf_parser.c" /* yacc.c:1646  */
6276      break;      break;
6277    
6278    case 597:    case 597:
6279  #line 2911 "conf_parser.y" /* yacc.c:1646  */  #line 2909 "conf_parser.y" /* yacc.c:1646  */
6280      {      {
6281    ConfigGeneral.oper_only_umodes |= UMODE_DEAF;    ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6282  }  }
6283  #line 6286 "conf_parser.c" /* yacc.c:1646  */  #line 6284 "conf_parser.c" /* yacc.c:1646  */
6284      break;      break;
6285    
6286    case 598:    case 598:
6287  #line 2914 "conf_parser.y" /* yacc.c:1646  */  #line 2912 "conf_parser.y" /* yacc.c:1646  */
6288      {      {
6289    ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;    ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6290  }  }
6291  #line 6294 "conf_parser.c" /* yacc.c:1646  */  #line 6292 "conf_parser.c" /* yacc.c:1646  */
6292      break;      break;
6293    
6294    case 599:    case 599:
6295  #line 2917 "conf_parser.y" /* yacc.c:1646  */  #line 2915 "conf_parser.y" /* yacc.c:1646  */
6296      {      {
6297    ConfigGeneral.oper_only_umodes |= UMODE_FULL;    ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6298  }  }
6299  #line 6302 "conf_parser.c" /* yacc.c:1646  */  #line 6300 "conf_parser.c" /* yacc.c:1646  */
6300      break;      break;
6301    
6302    case 600:    case 600:
6303  #line 2920 "conf_parser.y" /* yacc.c:1646  */  #line 2918 "conf_parser.y" /* yacc.c:1646  */
6304      {      {
6305    ConfigGeneral.oper_only_umodes |= UMODE_SKILL;    ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6306  }  }
6307  #line 6310 "conf_parser.c" /* yacc.c:1646  */  #line 6308 "conf_parser.c" /* yacc.c:1646  */
6308      break;      break;
6309    
6310    case 601:    case 601:
6311  #line 2923 "conf_parser.y" /* yacc.c:1646  */  #line 2921 "conf_parser.y" /* yacc.c:1646  */
6312      {      {
6313    ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;    ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6314  }  }
6315  #line 6318 "conf_parser.c" /* yacc.c:1646  */  #line 6316 "conf_parser.c" /* yacc.c:1646  */
6316      break;      break;
6317    
6318    case 602:    case 602:
6319  #line 2926 "conf_parser.y" /* yacc.c:1646  */  #line 2924 "conf_parser.y" /* yacc.c:1646  */
6320      {      {
6321    ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;    ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6322  }  }
6323  #line 6326 "conf_parser.c" /* yacc.c:1646  */  #line 6324 "conf_parser.c" /* yacc.c:1646  */
6324      break;      break;
6325    
6326    case 603:    case 603:
6327  #line 2929 "conf_parser.y" /* yacc.c:1646  */  #line 2927 "conf_parser.y" /* yacc.c:1646  */
6328      {      {
6329    ConfigGeneral.oper_only_umodes |= UMODE_REJ;    ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6330  }  }
6331  #line 6334 "conf_parser.c" /* yacc.c:1646  */  #line 6332 "conf_parser.c" /* yacc.c:1646  */
6332      break;      break;
6333    
6334    case 604:    case 604:
6335  #line 2932 "conf_parser.y" /* yacc.c:1646  */  #line 2930 "conf_parser.y" /* yacc.c:1646  */
6336      {      {
6337    ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;    ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6338  }  }
6339  #line 6342 "conf_parser.c" /* yacc.c:1646  */  #line 6340 "conf_parser.c" /* yacc.c:1646  */
6340      break;      break;
6341    
6342    case 605:    case 605:
6343  #line 2935 "conf_parser.y" /* yacc.c:1646  */  #line 2933 "conf_parser.y" /* yacc.c:1646  */
6344      {      {
6345    ConfigGeneral.oper_only_umodes |= UMODE_SPY;    ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6346  }  }
6347  #line 6350 "conf_parser.c" /* yacc.c:1646  */  #line 6348 "conf_parser.c" /* yacc.c:1646  */
6348      break;      break;
6349    
6350    case 606:    case 606:
6351  #line 2938 "conf_parser.y" /* yacc.c:1646  */  #line 2936 "conf_parser.y" /* yacc.c:1646  */
6352      {      {
6353    ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;    ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6354  }  }
6355  #line 6358 "conf_parser.c" /* yacc.c:1646  */  #line 6356 "conf_parser.c" /* yacc.c:1646  */
6356      break;      break;
6357    
6358    case 607:    case 607:
6359  #line 2941 "conf_parser.y" /* yacc.c:1646  */  #line 2939 "conf_parser.y" /* yacc.c:1646  */
6360      {      {
6361    ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;    ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6362  }  }
6363  #line 6366 "conf_parser.c" /* yacc.c:1646  */  #line 6364 "conf_parser.c" /* yacc.c:1646  */
6364      break;      break;
6365    
6366    case 608:    case 608:
6367  #line 2944 "conf_parser.y" /* yacc.c:1646  */  #line 2942 "conf_parser.y" /* yacc.c:1646  */
6368      {      {
6369    ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;    ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6370  }  }
6371  #line 6374 "conf_parser.c" /* yacc.c:1646  */  #line 6372 "conf_parser.c" /* yacc.c:1646  */
6372      break;      break;
6373    
6374    case 609:    case 609:
6375  #line 2947 "conf_parser.y" /* yacc.c:1646  */  #line 2945 "conf_parser.y" /* yacc.c:1646  */
6376      {      {
6377    ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;    ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6378  }  }
6379  #line 6382 "conf_parser.c" /* yacc.c:1646  */  #line 6380 "conf_parser.c" /* yacc.c:1646  */
6380      break;      break;
6381    
6382    case 610:    case 610:
6383  #line 2950 "conf_parser.y" /* yacc.c:1646  */  #line 2948 "conf_parser.y" /* yacc.c:1646  */
6384      {      {
6385    ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;    ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6386  }  }
6387  #line 6390 "conf_parser.c" /* yacc.c:1646  */  #line 6388 "conf_parser.c" /* yacc.c:1646  */
6388      break;      break;
6389    
6390    case 611:    case 611:
6391  #line 2953 "conf_parser.y" /* yacc.c:1646  */  #line 2951 "conf_parser.y" /* yacc.c:1646  */
6392      {      {
6393    ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;    ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6394  }  }
6395  #line 6398 "conf_parser.c" /* yacc.c:1646  */  #line 6396 "conf_parser.c" /* yacc.c:1646  */
6396      break;      break;
6397    
6398    case 612:    case 612:
6399  #line 2956 "conf_parser.y" /* yacc.c:1646  */  #line 2954 "conf_parser.y" /* yacc.c:1646  */
6400      {      {
6401    ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;    ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6402  }  }
6403  #line 6406 "conf_parser.c" /* yacc.c:1646  */  #line 6404 "conf_parser.c" /* yacc.c:1646  */
6404      break;      break;
6405    
6406    case 613:    case 613:
6407  #line 2959 "conf_parser.y" /* yacc.c:1646  */  #line 2957 "conf_parser.y" /* yacc.c:1646  */
6408      {      {
6409    ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;    ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6410  }  }
6411  #line 6414 "conf_parser.c" /* yacc.c:1646  */  #line 6412 "conf_parser.c" /* yacc.c:1646  */
6412      break;      break;
6413    
6414    case 614:    case 614:
6415  #line 2962 "conf_parser.y" /* yacc.c:1646  */  #line 2960 "conf_parser.y" /* yacc.c:1646  */
6416      {      {
6417    ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;    ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6418  }  }
6419  #line 6422 "conf_parser.c" /* yacc.c:1646  */  #line 6420 "conf_parser.c" /* yacc.c:1646  */
6420      break;      break;
6421    
6422    case 615:    case 615:
6423  #line 2967 "conf_parser.y" /* yacc.c:1646  */  #line 2965 "conf_parser.y" /* yacc.c:1646  */
6424      {      {
6425    ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);    ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6426  }  }
6427  #line 6430 "conf_parser.c" /* yacc.c:1646  */  #line 6428 "conf_parser.c" /* yacc.c:1646  */
6428      break;      break;
6429    
6430    case 616:    case 616:
6431  #line 2972 "conf_parser.y" /* yacc.c:1646  */  #line 2970 "conf_parser.y" /* yacc.c:1646  */
6432      {      {
6433    ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);    ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6434  }  }
6435  #line 6438 "conf_parser.c" /* yacc.c:1646  */  #line 6436 "conf_parser.c" /* yacc.c:1646  */
6436      break;      break;
6437    
6438    case 617:    case 617:
6439  #line 2977 "conf_parser.y" /* yacc.c:1646  */  #line 2975 "conf_parser.y" /* yacc.c:1646  */
6440      {      {
6441    ConfigGeneral.default_floodcount = (yyvsp[-1].number);    ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6442  }  }
6443  #line 6446 "conf_parser.c" /* yacc.c:1646  */  #line 6444 "conf_parser.c" /* yacc.c:1646  */
6444      break;      break;
6445    
6446    case 636:    case 636:
6447  #line 3006 "conf_parser.y" /* yacc.c:1646  */  #line 3004 "conf_parser.y" /* yacc.c:1646  */
6448      {      {
6449    ConfigChannel.disable_fake_channels = yylval.number;    ConfigChannel.disable_fake_channels = yylval.number;
6450  }  }
6451  #line 6454 "conf_parser.c" /* yacc.c:1646  */  #line 6452 "conf_parser.c" /* yacc.c:1646  */
6452      break;      break;
6453    
6454    case 637:    case 637:
6455  #line 3011 "conf_parser.y" /* yacc.c:1646  */  #line 3009 "conf_parser.y" /* yacc.c:1646  */
6456      {      {
6457    ConfigChannel.invite_client_count = (yyvsp[-1].number);    ConfigChannel.invite_client_count = (yyvsp[-1].number);
6458  }  }
6459  #line 6462 "conf_parser.c" /* yacc.c:1646  */  #line 6460 "conf_parser.c" /* yacc.c:1646  */
6460      break;      break;
6461    
6462    case 638:    case 638:
6463  #line 3016 "conf_parser.y" /* yacc.c:1646  */  #line 3014 "conf_parser.y" /* yacc.c:1646  */
6464      {      {
6465    ConfigChannel.invite_client_time = (yyvsp[-1].number);    ConfigChannel.invite_client_time = (yyvsp[-1].number);
6466  }  }
6467  #line 6470 "conf_parser.c" /* yacc.c:1646  */  #line 6468 "conf_parser.c" /* yacc.c:1646  */
6468      break;      break;
6469    
6470    case 639:    case 639:
6471  #line 3021 "conf_parser.y" /* yacc.c:1646  */  #line 3019 "conf_parser.y" /* yacc.c:1646  */
6472      {      {
6473    ConfigChannel.knock_client_count = (yyvsp[-1].number);    ConfigChannel.knock_client_count = (yyvsp[-1].number);
6474  }  }
6475  #line 6478 "conf_parser.c" /* yacc.c:1646  */  #line 6476 "conf_parser.c" /* yacc.c:1646  */
6476      break;      break;
6477    
6478    case 640:    case 640:
6479  #line 3026 "conf_parser.y" /* yacc.c:1646  */  #line 3024 "conf_parser.y" /* yacc.c:1646  */
6480      {      {
6481    ConfigChannel.knock_client_time = (yyvsp[-1].number);    ConfigChannel.knock_client_time = (yyvsp[-1].number);
6482  }  }
6483  #line 6486 "conf_parser.c" /* yacc.c:1646  */  #line 6484 "conf_parser.c" /* yacc.c:1646  */
6484      break;      break;
6485    
6486    case 641:    case 641:
6487  #line 3031 "conf_parser.y" /* yacc.c:1646  */  #line 3029 "conf_parser.y" /* yacc.c:1646  */
6488      {      {
6489    ConfigChannel.knock_delay_channel = (yyvsp[-1].number);    ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6490  }  }
6491  #line 6494 "conf_parser.c" /* yacc.c:1646  */  #line 6492 "conf_parser.c" /* yacc.c:1646  */
6492      break;      break;
6493    
6494    case 642:    case 642:
6495  #line 3036 "conf_parser.y" /* yacc.c:1646  */  #line 3034 "conf_parser.y" /* yacc.c:1646  */
6496      {      {
6497    ConfigChannel.max_channels = (yyvsp[-1].number);    ConfigChannel.max_channels = (yyvsp[-1].number);
6498  }  }
6499  #line 6502 "conf_parser.c" /* yacc.c:1646  */  #line 6500 "conf_parser.c" /* yacc.c:1646  */
6500      break;      break;
6501    
6502    case 643:    case 643:
6503  #line 3041 "conf_parser.y" /* yacc.c:1646  */  #line 3039 "conf_parser.y" /* yacc.c:1646  */
6504      {      {
6505    ConfigChannel.max_bans = (yyvsp[-1].number);    ConfigChannel.max_bans = (yyvsp[-1].number);
6506  }  }
6507  #line 6510 "conf_parser.c" /* yacc.c:1646  */  #line 6508 "conf_parser.c" /* yacc.c:1646  */
6508      break;      break;
6509    
6510    case 644:    case 644:
6511  #line 3046 "conf_parser.y" /* yacc.c:1646  */  #line 3044 "conf_parser.y" /* yacc.c:1646  */
6512      {      {
6513    ConfigChannel.default_split_user_count = (yyvsp[-1].number);    ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6514  }  }
6515  #line 6518 "conf_parser.c" /* yacc.c:1646  */  #line 6516 "conf_parser.c" /* yacc.c:1646  */
6516      break;      break;
6517    
6518    case 645:    case 645:
6519  #line 3051 "conf_parser.y" /* yacc.c:1646  */  #line 3049 "conf_parser.y" /* yacc.c:1646  */
6520      {      {
6521    ConfigChannel.default_split_server_count = (yyvsp[-1].number);    ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6522  }  }
6523  #line 6526 "conf_parser.c" /* yacc.c:1646  */  #line 6524 "conf_parser.c" /* yacc.c:1646  */
6524      break;      break;
6525    
6526    case 646:    case 646:
6527  #line 3056 "conf_parser.y" /* yacc.c:1646  */  #line 3054 "conf_parser.y" /* yacc.c:1646  */
6528      {      {
6529    ConfigChannel.no_create_on_split = yylval.number;    ConfigChannel.no_create_on_split = yylval.number;
6530  }  }
6531  #line 6534 "conf_parser.c" /* yacc.c:1646  */  #line 6532 "conf_parser.c" /* yacc.c:1646  */
6532      break;      break;
6533    
6534    case 647:    case 647:
6535  #line 3061 "conf_parser.y" /* yacc.c:1646  */  #line 3059 "conf_parser.y" /* yacc.c:1646  */
6536      {      {
6537    ConfigChannel.no_join_on_split = yylval.number;    ConfigChannel.no_join_on_split = yylval.number;