From: michael Date: Mon, 29 Dec 2014 16:53:16 +0000 (+0000) Subject: - Made NODATA_TIMEOUT a configuration option X-Git-Tag: 1.1.0beta1~249 X-Git-Url: http://git.serene-ircd.net/?a=commitdiff_plain;h=7f695b8d64da1d543a621468194b024e8eeb1ab4;p=hopm.git - Made NODATA_TIMEOUT a configuration option git-svn-id: svn://svn.ircd-hybrid.org/svnroot/hopm/trunk@5198 82007160-df01-0410-b94d-b575c5fd34c7 --- diff --git a/doc/reference.conf b/doc/reference.conf index 5fce173..6ca4fed 100644 --- a/doc/reference.conf +++ b/doc/reference.conf @@ -106,6 +106,12 @@ irc { */ port = 6667; + + /* + * Defines time in which bot will timeout if no data is received + */ + readtimeout = 15 minutes; + /* * Command to execute to identify to NickServ (if your network uses * it). This is the raw IRC command text, and the below example diff --git a/src/config-lexer.c b/src/config-lexer.c index 36794de..4c7ada6 100644 --- a/src/config-lexer.c +++ b/src/config-lexer.c @@ -365,8 +365,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 89 -#define YY_END_OF_BUFFER 90 +#define YY_NUM_RULES 90 +#define YY_END_OF_BUFFER 91 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -374,46 +374,47 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[344] = +static yyconst flex_int16_t yy_accept[352] = { 0, - 87, 87, 90, 88, 87, 86, 88, 2, 88, 79, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 87, 86, 0, 3, 2, 1, 2, 79, 0, 0, + 88, 88, 91, 89, 88, 87, 89, 2, 89, 80, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, + 88, 87, 0, 3, 2, 1, 2, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, - 0, 0, 0, 67, 0, 0, 0, 0, 72, 0, - 0, 0, 0, 0, 0, 84, 0, 82, 0, 0, + 0, 0, 0, 68, 0, 0, 0, 0, 73, 0, + 0, 0, 0, 0, 0, 85, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 15, 0, 17, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 85, 0, 26, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 81, 4, 0, 0, 62, 0, 0, 53, - 0, 0, 0, 0, 56, 73, 0, 0, 0, 0, + 0, 0, 82, 4, 0, 0, 63, 0, 0, 54, + 0, 0, 0, 0, 57, 74, 0, 0, 0, 0, 18, 0, 0, 0, 0, 20, 0, 21, 0, 23, 25, 0, 0, 0, 0, 31, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 80, 43, 44, - 0, 52, 0, 48, 0, 0, 61, 0, 0, 0, - - 0, 0, 83, 55, 0, 0, 66, 0, 16, 0, - 71, 0, 0, 50, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 46, 51, 0, 47, 0, 0, 0, - 0, 0, 0, 12, 0, 14, 65, 0, 0, 70, - 0, 58, 49, 0, 0, 0, 0, 0, 0, 0, - 0, 78, 0, 0, 60, 0, 38, 75, 76, 0, - 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 57, 0, 0, 27, 0, 29, - 30, 0, 0, 35, 36, 59, 0, 0, 42, 0, - - 77, 0, 0, 0, 0, 11, 0, 74, 64, 19, - 69, 22, 24, 28, 32, 33, 37, 0, 0, 0, - 45, 0, 6, 8, 0, 0, 63, 68, 39, 0, - 0, 0, 10, 0, 0, 0, 5, 9, 40, 0, - 0, 41, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 81, 44, + 45, 0, 53, 0, 49, 0, 0, 62, 0, 0, + + 0, 0, 0, 84, 56, 0, 0, 67, 0, 16, + 0, 72, 0, 0, 51, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 47, 52, 0, 48, 0, + 0, 0, 0, 0, 0, 12, 0, 14, 66, 0, + 0, 71, 0, 59, 50, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 79, 0, 0, 61, 0, 39, + 76, 77, 0, 0, 0, 0, 0, 0, 7, 0, + 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, + 27, 0, 29, 30, 0, 0, 0, 36, 37, 60, + + 0, 0, 43, 0, 78, 0, 0, 0, 0, 11, + 0, 75, 65, 19, 70, 22, 24, 28, 32, 0, + 34, 38, 0, 0, 0, 46, 0, 6, 8, 0, + 0, 64, 69, 0, 40, 0, 0, 0, 10, 0, + 0, 0, 0, 5, 9, 33, 41, 0, 0, 42, + 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -458,91 +459,93 @@ static yyconst flex_int32_t yy_meta[58] = 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[347] = +static yyconst flex_int16_t yy_base[355] = { 0, - 0, 0, 169, 689, 165, 0, 55, 0, 54, 54, + 0, 0, 169, 708, 165, 0, 55, 0, 54, 54, 34, 55, 49, 57, 37, 60, 51, 55, 94, 129, 99, 103, 167, 72, 112, 155, 43, 59, 116, 68, - 160, 0, 81, 689, 0, 689, 0, 148, 97, 98, - 111, 133, 152, 147, 138, 146, 160, 155, 689, 150, + 160, 0, 81, 708, 0, 708, 0, 148, 97, 98, + 111, 133, 152, 147, 138, 146, 160, 155, 708, 150, 152, 153, 171, 156, 159, 175, 182, 182, 178, 201, - 196, 207, 200, 206, 211, 689, 210, 689, 212, 201, + 196, 207, 200, 206, 211, 708, 210, 708, 212, 201, 203, 217, 206, 212, 238, 208, 230, 244, 231, 233, 240, 237, 244, 256, 248, 259, 252, 265, 244, 120, 265, 264, 257, 259, 257, 273, 266, 262, 271, 280, - 291, 689, 283, 689, 290, 292, 297, 95, 290, 308, - 291, 307, 295, 309, 312, 306, 689, 301, 689, 309, - 303, 315, 316, 305, 308, 316, 319, 317, 330, 334, - 345, 332, 343, 348, 351, 352, 353, 344, 344, 352, - 356, 348, 689, 689, 346, 356, 351, 356, 354, 689, - 360, 368, 360, 373, 366, 376, 378, 392, 398, 396, - 689, 387, 399, 403, 388, 689, 400, 689, 408, 393, - 689, 397, 391, 399, 405, 689, 402, 404, 395, 414, - 433, 410, 414, 426, 422, 440, 434, 689, 689, 436, - 433, 435, 452, 437, 443, 446, 689, 453, 454, 90, - - 456, 443, 689, 689, 448, 459, 448, 443, 689, 462, - 454, 451, 474, 470, 489, 488, 481, 482, 481, 488, - 497, 500, 689, 486, 490, 500, 502, 506, 492, 107, - 491, 491, 511, 689, 689, 495, 689, 504, 506, 508, - 515, 529, 516, 689, 523, 689, 689, 523, 541, 689, - 526, 528, 689, 540, 533, 533, 536, 541, 549, 541, - 544, 689, 550, 542, 543, 552, 689, 689, 689, 52, - 544, 551, 562, 557, 558, 689, 578, 572, 575, 581, - 574, 588, 591, 591, 689, 592, 578, 689, 596, 689, - 689, 590, 597, 689, 689, 689, 592, 614, 689, 599, - - 689, 592, 590, 587, 596, 689, 599, 689, 598, 689, - 601, 689, 689, 689, 689, 689, 689, 621, 623, 620, - 689, 619, 689, 689, 629, 634, 689, 689, 689, 628, - 629, 633, 689, 630, 631, 641, 689, 689, 689, 638, - 645, 689, 689, 81, 686, 71 + 291, 708, 283, 708, 290, 292, 297, 95, 290, 308, + 291, 307, 295, 309, 312, 306, 708, 301, 708, 309, + 303, 315, 316, 305, 308, 344, 316, 312, 322, 329, + 345, 332, 343, 349, 352, 353, 355, 345, 345, 353, + 357, 349, 708, 708, 347, 358, 352, 357, 355, 708, + 363, 369, 363, 378, 374, 381, 379, 395, 399, 398, + 708, 388, 400, 404, 390, 708, 401, 708, 409, 394, + 708, 398, 392, 400, 407, 708, 403, 400, 406, 399, + 418, 437, 418, 427, 439, 428, 444, 437, 708, 708, + 439, 435, 437, 455, 440, 445, 448, 708, 455, 456, + + 90, 458, 446, 708, 708, 451, 461, 450, 447, 708, + 466, 462, 464, 487, 476, 493, 492, 485, 485, 484, + 490, 499, 495, 504, 708, 490, 493, 503, 505, 509, + 496, 107, 495, 495, 514, 708, 708, 500, 708, 509, + 518, 524, 533, 535, 533, 708, 528, 708, 708, 528, + 546, 708, 530, 532, 708, 542, 536, 537, 539, 544, + 552, 544, 548, 549, 708, 555, 547, 549, 558, 708, + 708, 708, 52, 557, 571, 583, 576, 575, 708, 588, + 578, 581, 587, 579, 593, 596, 596, 708, 597, 583, + 708, 600, 708, 708, 594, 601, 603, 708, 708, 708, + + 598, 622, 708, 605, 708, 597, 596, 601, 622, 708, + 628, 708, 624, 708, 625, 708, 708, 708, 708, 629, + 708, 708, 629, 631, 628, 708, 627, 708, 708, 637, + 641, 708, 708, 632, 708, 636, 637, 641, 708, 638, + 639, 640, 650, 708, 708, 708, 708, 649, 664, 708, + 708, 81, 705, 71 } ; -static yyconst flex_int16_t yy_def[347] = +static yyconst flex_int16_t yy_def[355] = { 0, - 343, 1, 343, 343, 343, 344, 345, 346, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 344, 345, 343, 346, 343, 346, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 0, 343, 343, 343 + 351, 1, 351, 351, 351, 352, 353, 354, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 352, 353, 351, 354, 351, 354, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 0, 351, 351, 351 } ; -static yyconst flex_int16_t yy_nxt[747] = +static yyconst flex_int16_t yy_nxt[766] = { 0, 4, 5, 6, 7, 8, 4, 9, 10, 10, 10, 11, 12, 13, 14, 15, 16, 4, 17, 18, 19, @@ -552,16 +555,16 @@ static yyconst flex_int16_t yy_nxt[747] = 25, 26, 27, 28, 29, 4, 30, 34, 34, 36, 37, 38, 38, 38, 39, 40, 43, 45, 47, 84, 48, 35, 44, 49, 50, 41, 85, 52, 51, 46, - 53, 32, 88, 34, 34, 298, 75, 42, 39, 40, + 53, 32, 88, 34, 34, 302, 75, 42, 39, 40, 43, 45, 47, 84, 48, 76, 44, 49, 50, 41, 85, 52, 51, 46, 53, 54, 88, 89, 55, 63, - 75, 42, 56, 64, 57, 268, 269, 65, 67, 76, - 90, 91, 66, 242, 77, 68, 78, 69, 162, 54, + 75, 42, 56, 64, 57, 271, 272, 65, 67, 76, + 90, 91, 66, 244, 77, 68, 78, 69, 162, 54, 86, 89, 55, 63, 87, 79, 56, 64, 57, 58, 59, 65, 67, 60, 90, 91, 66, 61, 77, 68, 78, 69, 62, 145, 86, 38, 38, 38, 87, 79, - 92, 31, 93, 58, 59, 80, 31, 60, 343, 94, + 92, 31, 93, 58, 59, 80, 31, 60, 351, 94, 95, 61, 96, 81, 97, 98, 62, 70, 99, 100, 82, 71, 101, 102, 92, 72, 93, 83, 103, 80, 73, 104, 74, 94, 95, 105, 96, 81, 97, 98, @@ -569,7 +572,7 @@ static yyconst flex_int16_t yy_nxt[747] = 106, 70, 99, 100, 82, 71, 101, 102, 107, 72, 109, 83, 103, 108, 73, 104, 74, 110, 111, 105, 112, 114, 115, 116, 106, 117, 118, 121, 122, 113, - 123, 124, 107, 119, 109, 125, 128, 108, 343, 120, + 123, 124, 107, 119, 109, 125, 128, 108, 351, 120, 129, 110, 111, 133, 112, 114, 115, 116, 126, 117, 118, 121, 122, 113, 123, 124, 130, 119, 134, 125, 128, 135, 127, 120, 129, 136, 131, 133, 137, 132, @@ -580,55 +583,57 @@ static yyconst flex_int16_t yy_nxt[747] = 144, 146, 147, 148, 156, 149, 152, 150, 151, 157, 158, 153, 154, 159, 160, 143, 161, 163, 164, 165, 155, 166, 167, 168, 169, 170, 171, 172, 156, 173, - 174, 175, 176, 157, 158, 177, 178, 159, 160, 179, - 161, 163, 164, 165, 180, 166, 167, 168, 169, 170, - 171, 172, 181, 173, 174, 175, 176, 182, 183, 177, - 178, 184, 185, 179, 186, 187, 188, 189, 180, 190, - 191, 192, 193, 194, 195, 196, 181, 197, 198, 199, - 200, 182, 183, 201, 202, 184, 185, 203, 186, 187, + 174, 175, 176, 157, 158, 177, 180, 159, 160, 181, + 161, 163, 164, 165, 182, 166, 167, 168, 169, 170, + 171, 172, 183, 173, 174, 175, 176, 178, 184, 177, + 180, 185, 186, 181, 179, 187, 188, 189, 182, 190, + 191, 192, 193, 194, 195, 196, 183, 197, 198, 199, + 200, 178, 184, 201, 202, 185, 186, 203, 179, 187, 188, 189, 204, 190, 191, 192, 193, 194, 195, 196, 205, 197, 198, 199, 200, 206, 207, 201, 202, 208, 209, 203, 210, 211, 212, 213, 204, 214, 215, 216, 217, 218, 219, 220, 205, 221, 222, 223, 224, 206, - 207, 343, 227, 208, 209, 228, 210, 211, 212, 213, + 207, 225, 226, 208, 209, 351, 210, 211, 212, 213, 229, 214, 215, 216, 217, 218, 219, 220, 230, 221, - 222, 223, 224, 225, 231, 226, 227, 232, 233, 228, - 234, 235, 236, 237, 229, 238, 239, 240, 241, 243, - 244, 245, 230, 246, 247, 248, 249, 225, 231, 226, - 250, 232, 233, 251, 234, 235, 236, 237, 252, 238, - 239, 240, 241, 243, 244, 245, 253, 246, 247, 248, - - 249, 254, 255, 256, 250, 257, 258, 251, 259, 260, - 261, 262, 252, 263, 264, 265, 266, 267, 270, 271, - 253, 272, 273, 274, 275, 254, 255, 256, 276, 257, - 258, 277, 259, 260, 261, 262, 280, 263, 264, 265, - 266, 267, 270, 271, 278, 272, 273, 274, 275, 281, - 282, 283, 276, 284, 285, 277, 279, 286, 287, 288, - 280, 289, 290, 291, 292, 293, 294, 295, 278, 296, - 297, 299, 300, 281, 282, 283, 301, 284, 285, 302, - 279, 286, 287, 288, 303, 289, 290, 291, 292, 293, - 294, 295, 304, 296, 297, 299, 300, 305, 306, 307, - - 301, 308, 309, 302, 310, 311, 312, 313, 303, 314, - 315, 316, 317, 321, 343, 322, 304, 323, 324, 325, - 326, 305, 306, 307, 327, 308, 309, 328, 310, 311, - 312, 313, 318, 314, 315, 316, 317, 321, 319, 322, - 320, 323, 324, 325, 326, 329, 330, 331, 327, 332, - 333, 328, 334, 335, 336, 337, 318, 338, 339, 340, - 341, 342, 319, 343, 320, 343, 343, 343, 343, 329, - 330, 331, 343, 332, 333, 343, 334, 335, 336, 337, - 343, 338, 339, 340, 341, 342, 33, 33, 3, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343 + 222, 223, 224, 231, 232, 225, 226, 227, 233, 228, + 234, 235, 236, 237, 229, 238, 239, 240, 241, 242, + 243, 245, 230, 246, 247, 248, 249, 231, 232, 250, + 251, 227, 233, 228, 234, 235, 236, 237, 252, 238, + 239, 240, 241, 242, 243, 245, 253, 246, 247, 248, + + 249, 254, 255, 250, 251, 256, 257, 258, 259, 260, + 261, 262, 252, 263, 264, 265, 266, 267, 268, 269, + 253, 270, 273, 274, 275, 254, 255, 276, 277, 256, + 257, 258, 259, 260, 261, 262, 278, 263, 264, 265, + 266, 267, 268, 269, 279, 270, 273, 274, 275, 280, + 281, 276, 277, 283, 284, 285, 286, 287, 288, 289, + 278, 290, 282, 291, 292, 293, 294, 295, 279, 296, + 297, 298, 299, 280, 281, 300, 301, 283, 284, 285, + 286, 287, 288, 289, 303, 290, 282, 291, 292, 293, + 294, 295, 304, 296, 297, 298, 299, 305, 306, 300, + + 301, 307, 308, 309, 310, 311, 312, 313, 303, 314, + 315, 316, 317, 318, 319, 320, 304, 321, 322, 326, + 327, 305, 306, 328, 351, 307, 308, 309, 310, 311, + 312, 313, 329, 314, 315, 316, 317, 318, 319, 320, + 323, 321, 322, 326, 327, 330, 324, 328, 325, 331, + 332, 333, 334, 335, 336, 337, 329, 338, 339, 340, + 341, 342, 343, 344, 323, 345, 346, 347, 348, 330, + 324, 349, 325, 331, 332, 333, 334, 335, 336, 337, + 350, 338, 339, 340, 341, 342, 343, 344, 351, 345, + 346, 347, 348, 351, 351, 349, 351, 351, 351, 351, + + 351, 351, 351, 351, 350, 33, 33, 3, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351 } ; -static yyconst flex_int16_t yy_chk[747] = +static yyconst flex_int16_t yy_chk[766] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -637,13 +642,13 @@ static yyconst flex_int16_t yy_chk[747] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 9, 9, 10, 10, 10, 11, 12, 13, 14, 15, 27, - 16, 346, 13, 16, 17, 12, 28, 18, 17, 14, - 18, 344, 30, 33, 33, 270, 24, 12, 11, 12, + 16, 354, 13, 16, 17, 12, 28, 18, 17, 14, + 18, 352, 30, 33, 33, 273, 24, 12, 11, 12, 13, 14, 15, 27, 16, 24, 13, 16, 17, 12, 28, 18, 17, 14, 18, 19, 30, 39, 19, 21, - 24, 12, 19, 21, 19, 230, 230, 21, 22, 24, - 40, 41, 21, 200, 25, 22, 25, 22, 108, 19, + 24, 12, 19, 21, 19, 232, 232, 21, 22, 24, + 40, 41, 21, 201, 25, 22, 25, 22, 108, 19, 29, 39, 19, 21, 29, 25, 19, 21, 19, 20, 20, 21, 22, 20, 40, 41, 21, 20, 25, 22, 25, 22, 20, 90, 29, 38, 38, 38, 29, 25, @@ -666,52 +671,54 @@ static yyconst flex_int16_t yy_chk[747] = 89, 91, 92, 93, 100, 94, 96, 95, 96, 101, 103, 97, 98, 105, 106, 88, 107, 109, 110, 111, 99, 112, 113, 114, 115, 116, 118, 120, 100, 121, - 122, 123, 124, 101, 103, 125, 126, 105, 106, 127, - 107, 109, 110, 111, 128, 112, 113, 114, 115, 116, - 118, 120, 129, 121, 122, 123, 124, 130, 131, 125, - 126, 132, 133, 127, 134, 135, 136, 137, 128, 138, - 139, 140, 141, 142, 145, 146, 129, 147, 148, 149, - 151, 130, 131, 152, 153, 132, 133, 154, 134, 135, - 136, 137, 155, 138, 139, 140, 141, 142, 145, 146, - - 156, 147, 148, 149, 151, 157, 158, 152, 153, 159, - 160, 154, 162, 163, 164, 165, 155, 167, 169, 170, - 172, 173, 174, 175, 156, 177, 178, 179, 180, 157, - 158, 0, 182, 159, 160, 183, 162, 163, 164, 165, - 184, 167, 169, 170, 172, 173, 174, 175, 185, 177, - 178, 179, 180, 181, 186, 181, 182, 187, 190, 183, - 191, 192, 193, 194, 184, 195, 196, 198, 199, 201, - 202, 205, 185, 206, 207, 208, 210, 181, 186, 181, - 211, 187, 190, 212, 191, 192, 193, 194, 213, 195, - 196, 198, 199, 201, 202, 205, 214, 206, 207, 208, - - 210, 215, 216, 217, 211, 218, 219, 212, 220, 221, - 222, 224, 213, 225, 226, 227, 228, 229, 231, 232, - 214, 233, 236, 238, 239, 215, 216, 217, 240, 218, - 219, 241, 220, 221, 222, 224, 243, 225, 226, 227, - 228, 229, 231, 232, 242, 233, 236, 238, 239, 245, - 248, 249, 240, 251, 252, 241, 242, 254, 255, 256, - 243, 257, 258, 259, 260, 261, 263, 264, 242, 265, - 266, 271, 272, 245, 248, 249, 273, 251, 252, 274, - 242, 254, 255, 256, 275, 257, 258, 259, 260, 261, - 263, 264, 277, 265, 266, 271, 272, 278, 279, 280, - - 273, 281, 282, 274, 283, 284, 286, 287, 275, 289, - 292, 293, 297, 300, 0, 302, 277, 303, 304, 305, - 307, 278, 279, 280, 309, 281, 282, 311, 283, 284, - 286, 287, 298, 289, 292, 293, 297, 300, 298, 302, - 298, 303, 304, 305, 307, 318, 319, 320, 309, 322, - 325, 311, 326, 330, 331, 332, 298, 334, 335, 336, - 340, 341, 298, 0, 298, 0, 0, 0, 0, 318, - 319, 320, 0, 322, 325, 0, 326, 330, 331, 332, - 0, 334, 335, 336, 340, 341, 345, 345, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, - 343, 343, 343, 343, 343, 343 + 122, 123, 124, 101, 103, 125, 127, 105, 106, 128, + 107, 109, 110, 111, 129, 112, 113, 114, 115, 116, + 118, 120, 130, 121, 122, 123, 124, 126, 131, 125, + 127, 132, 133, 128, 126, 134, 135, 136, 129, 137, + 138, 139, 140, 141, 142, 145, 130, 146, 147, 148, + 149, 126, 131, 151, 152, 132, 133, 153, 126, 134, + 135, 136, 154, 137, 138, 139, 140, 141, 142, 145, + + 155, 146, 147, 148, 149, 156, 157, 151, 152, 158, + 159, 153, 160, 162, 163, 164, 154, 165, 167, 169, + 170, 172, 173, 174, 155, 175, 177, 178, 179, 156, + 157, 180, 181, 158, 159, 0, 160, 162, 163, 164, + 183, 165, 167, 169, 170, 172, 173, 174, 184, 175, + 177, 178, 179, 185, 186, 180, 181, 182, 187, 182, + 188, 191, 192, 193, 183, 194, 195, 196, 197, 199, + 200, 202, 184, 203, 206, 207, 208, 185, 186, 209, + 211, 182, 187, 182, 188, 191, 192, 193, 212, 194, + 195, 196, 197, 199, 200, 202, 213, 203, 206, 207, + + 208, 214, 215, 209, 211, 216, 217, 218, 219, 220, + 221, 222, 212, 223, 224, 226, 227, 228, 229, 230, + 213, 231, 233, 234, 235, 214, 215, 238, 240, 216, + 217, 218, 219, 220, 221, 222, 241, 223, 224, 226, + 227, 228, 229, 230, 242, 231, 233, 234, 235, 243, + 244, 238, 240, 245, 247, 250, 251, 253, 254, 256, + 241, 257, 244, 258, 259, 260, 261, 262, 242, 263, + 264, 266, 267, 243, 244, 268, 269, 245, 247, 250, + 251, 253, 254, 256, 274, 257, 244, 258, 259, 260, + 261, 262, 275, 263, 264, 266, 267, 276, 277, 268, + + 269, 278, 280, 281, 282, 283, 284, 285, 274, 286, + 287, 289, 290, 292, 295, 296, 275, 297, 301, 304, + 306, 276, 277, 307, 0, 278, 280, 281, 282, 283, + 284, 285, 308, 286, 287, 289, 290, 292, 295, 296, + 302, 297, 301, 304, 306, 309, 302, 307, 302, 311, + 313, 315, 320, 323, 324, 325, 308, 327, 330, 331, + 334, 336, 337, 338, 302, 340, 341, 342, 343, 309, + 302, 348, 302, 311, 313, 315, 320, 323, 324, 325, + 349, 327, 330, 331, 334, 336, 337, 338, 0, 340, + 341, 342, 343, 0, 0, 348, 0, 0, 0, 0, + + 0, 0, 0, 0, 349, 353, 353, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351 } ; static yy_state_type yy_last_accepting_state; @@ -770,7 +777,7 @@ void ccomment(void); int linenum = 1; char linebuf[512]; -#line 774 "config-lexer.c" +#line 781 "config-lexer.c" #define INITIAL 0 @@ -980,7 +987,7 @@ YY_DECL #line 51 "config-lexer.l" -#line 984 "config-lexer.c" +#line 991 "config-lexer.c" while ( 1 ) /* loops until end-of-file is reached */ { @@ -1013,13 +1020,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 344 ) + if ( yy_current_state >= 352 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 689 ); + while ( yy_base[yy_current_state] != 708 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1244,77 +1251,77 @@ YY_RULE_SETUP case 33: YY_RULE_SETUP #line 125 "config-lexer.l" -{ return REALNAME; } +{ return READTIMEOUT; } YY_BREAK case 34: YY_RULE_SETUP #line 126 "config-lexer.l" -{ return REPLY; } +{ return REALNAME; } YY_BREAK case 35: YY_RULE_SETUP #line 127 "config-lexer.l" -{ return SCANLOG; } +{ return REPLY; } YY_BREAK case 36: YY_RULE_SETUP #line 128 "config-lexer.l" -{ return SCANNER; } +{ return SCANLOG; } YY_BREAK case 37: YY_RULE_SETUP #line 129 "config-lexer.l" -{ return SENDMAIL; } +{ return SCANNER; } YY_BREAK case 38: YY_RULE_SETUP #line 130 "config-lexer.l" -{ return SERVER; } +{ return SENDMAIL; } YY_BREAK case 39: YY_RULE_SETUP #line 131 "config-lexer.l" -{ return TARGET_IP; } +{ return SERVER; } YY_BREAK case 40: YY_RULE_SETUP #line 132 "config-lexer.l" -{ return TARGET_PORT; } +{ return TARGET_IP; } YY_BREAK case 41: YY_RULE_SETUP #line 133 "config-lexer.l" -{ return TARGET_STRING;} +{ return TARGET_PORT; } YY_BREAK case 42: YY_RULE_SETUP #line 134 "config-lexer.l" -{ return TIMEOUT; } +{ return TARGET_STRING;} YY_BREAK case 43: YY_RULE_SETUP #line 135 "config-lexer.l" -{ return TYPE; } +{ return TIMEOUT; } YY_BREAK case 44: YY_RULE_SETUP #line 136 "config-lexer.l" -{ return USER; } +{ return TYPE; } YY_BREAK case 45: YY_RULE_SETUP #line 137 "config-lexer.l" -{ return USERNAME; } +{ return USER; } YY_BREAK case 46: YY_RULE_SETUP #line 138 "config-lexer.l" -{ return VHOST; } +{ return USERNAME; } YY_BREAK case 47: YY_RULE_SETUP -#line 140 "config-lexer.l" -{ return YEARS; } +#line 139 "config-lexer.l" +{ return VHOST; } YY_BREAK case 48: YY_RULE_SETUP @@ -1324,7 +1331,7 @@ YY_RULE_SETUP case 49: YY_RULE_SETUP #line 142 "config-lexer.l" -{ return MONTHS; } +{ return YEARS; } YY_BREAK case 50: YY_RULE_SETUP @@ -1334,7 +1341,7 @@ YY_RULE_SETUP case 51: YY_RULE_SETUP #line 144 "config-lexer.l" -{ return WEEKS; } +{ return MONTHS; } YY_BREAK case 52: YY_RULE_SETUP @@ -1344,7 +1351,7 @@ YY_RULE_SETUP case 53: YY_RULE_SETUP #line 146 "config-lexer.l" -{ return DAYS; } +{ return WEEKS; } YY_BREAK case 54: YY_RULE_SETUP @@ -1354,7 +1361,7 @@ YY_RULE_SETUP case 55: YY_RULE_SETUP #line 148 "config-lexer.l" -{ return HOURS; } +{ return DAYS; } YY_BREAK case 56: YY_RULE_SETUP @@ -1364,7 +1371,7 @@ YY_RULE_SETUP case 57: YY_RULE_SETUP #line 150 "config-lexer.l" -{ return MINUTES; } +{ return HOURS; } YY_BREAK case 58: YY_RULE_SETUP @@ -1374,7 +1381,7 @@ YY_RULE_SETUP case 59: YY_RULE_SETUP #line 152 "config-lexer.l" -{ return SECONDS; } +{ return MINUTES; } YY_BREAK case 60: YY_RULE_SETUP @@ -1383,8 +1390,8 @@ YY_RULE_SETUP YY_BREAK case 61: YY_RULE_SETUP -#line 155 "config-lexer.l" -{ return BYTES; } +#line 154 "config-lexer.l" +{ return SECONDS; } YY_BREAK case 62: YY_RULE_SETUP @@ -1394,7 +1401,7 @@ YY_RULE_SETUP case 63: YY_RULE_SETUP #line 157 "config-lexer.l" -{ return KBYTES; } +{ return BYTES; } YY_BREAK case 64: YY_RULE_SETUP @@ -1419,7 +1426,7 @@ YY_RULE_SETUP case 68: YY_RULE_SETUP #line 162 "config-lexer.l" -{ return MBYTES; } +{ return KBYTES; } YY_BREAK case 69: YY_RULE_SETUP @@ -1443,134 +1450,139 @@ YY_RULE_SETUP YY_BREAK case 73: YY_RULE_SETUP -#line 168 "config-lexer.l" +#line 167 "config-lexer.l" +{ return MBYTES; } + YY_BREAK +case 74: +YY_RULE_SETUP +#line 169 "config-lexer.l" { yylval.number = OPM_TYPE_HTTP; return PROTOCOLTYPE; } YY_BREAK -case 74: +case 75: YY_RULE_SETUP -#line 173 "config-lexer.l" +#line 174 "config-lexer.l" { yylval.number = OPM_TYPE_HTTPPOST; return PROTOCOLTYPE; } YY_BREAK -case 75: +case 76: YY_RULE_SETUP -#line 178 "config-lexer.l" +#line 179 "config-lexer.l" { yylval.number = OPM_TYPE_SOCKS4; return PROTOCOLTYPE; } YY_BREAK -case 76: +case 77: YY_RULE_SETUP -#line 183 "config-lexer.l" +#line 184 "config-lexer.l" { yylval.number = OPM_TYPE_SOCKS5; return PROTOCOLTYPE; } YY_BREAK -case 77: +case 78: YY_RULE_SETUP -#line 188 "config-lexer.l" +#line 189 "config-lexer.l" { yylval.number = OPM_TYPE_WINGATE; return PROTOCOLTYPE; } YY_BREAK -case 78: +case 79: YY_RULE_SETUP -#line 193 "config-lexer.l" +#line 194 "config-lexer.l" { yylval.number = OPM_TYPE_ROUTER; return PROTOCOLTYPE; } YY_BREAK -case 79: +case 80: YY_RULE_SETUP -#line 199 "config-lexer.l" +#line 200 "config-lexer.l" { yylval.number=atoi(yytext); return NUMBER; } YY_BREAK -case 80: +case 81: YY_RULE_SETUP -#line 208 "config-lexer.l" +#line 209 "config-lexer.l" { yylval.number=1; return NUMBER; } YY_BREAK -case 81: +case 82: YY_RULE_SETUP -#line 212 "config-lexer.l" +#line 213 "config-lexer.l" { yylval.number=1; return NUMBER; } YY_BREAK -case 82: +case 83: YY_RULE_SETUP -#line 216 "config-lexer.l" +#line 217 "config-lexer.l" { yylval.number=1; return NUMBER; } YY_BREAK -case 83: +case 84: YY_RULE_SETUP -#line 223 "config-lexer.l" +#line 224 "config-lexer.l" { yylval.number=0; return NUMBER; } YY_BREAK -case 84: +case 85: YY_RULE_SETUP -#line 228 "config-lexer.l" +#line 229 "config-lexer.l" { yylval.number=0; return NUMBER; } YY_BREAK -case 85: +case 86: YY_RULE_SETUP -#line 233 "config-lexer.l" +#line 234 "config-lexer.l" { yylval.number=0; return NUMBER; } YY_BREAK -case 86: -/* rule 86 can match eol */ +case 87: +/* rule 87 can match eol */ YY_RULE_SETUP -#line 239 "config-lexer.l" +#line 240 "config-lexer.l" { strlcpy(linebuf, yytext + 1, sizeof(linebuf)); ++linenum; yyless(1); } YY_BREAK -case 87: +case 88: YY_RULE_SETUP -#line 245 "config-lexer.l" +#line 246 "config-lexer.l" /* ignore whitespace */; YY_BREAK -case 88: +case 89: YY_RULE_SETUP -#line 247 "config-lexer.l" +#line 248 "config-lexer.l" return yytext[0]; YY_BREAK -case 89: +case 90: YY_RULE_SETUP -#line 249 "config-lexer.l" +#line 250 "config-lexer.l" ECHO; YY_BREAK -#line 1574 "config-lexer.c" +#line 1586 "config-lexer.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -1863,7 +1875,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 344 ) + if ( yy_current_state >= 352 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1891,11 +1903,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 344 ) + if ( yy_current_state >= 352 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 343); + yy_is_jam = (yy_current_state == 351); return yy_is_jam ? 0 : yy_current_state; } @@ -2528,7 +2540,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 249 "config-lexer.l" +#line 250 "config-lexer.l" diff --git a/src/config-lexer.l b/src/config-lexer.l index 07bc6d5..0d51e6a 100644 --- a/src/config-lexer.l +++ b/src/config-lexer.l @@ -122,6 +122,7 @@ PERFORM { return PERFORM; } PIDFILE { return PIDFILE; } PORT { return PORT; } PROTOCOL { return PROTOCOL; } +READTIMEOUT { return READTIMEOUT; } REALNAME { return REALNAME; } REPLY { return REPLY; } SCANLOG { return SCANLOG; } diff --git a/src/config-parser.c b/src/config-parser.c index 268d62e..fb746dc 100644 --- a/src/config-parser.c +++ b/src/config-parser.c @@ -142,30 +142,31 @@ extern int yydebug; PIDFILE = 287, PORT = 288, PROTOCOL = 289, - REALNAME = 290, - REPLY = 291, - SCANLOG = 292, - SCANNER = 293, - SECONDS = 294, - MINUTES = 295, - HOURS = 296, - DAYS = 297, - WEEKS = 298, - MONTHS = 299, - YEARS = 300, - SENDMAIL = 301, - SERVER = 302, - TARGET_IP = 303, - TARGET_PORT = 304, - TARGET_STRING = 305, - TIMEOUT = 306, - TYPE = 307, - USERNAME = 308, - USER = 309, - VHOST = 310, - NUMBER = 311, - STRING = 312, - PROTOCOLTYPE = 313 + READTIMEOUT = 290, + REALNAME = 291, + REPLY = 292, + SCANLOG = 293, + SCANNER = 294, + SECONDS = 295, + MINUTES = 296, + HOURS = 297, + DAYS = 298, + WEEKS = 299, + MONTHS = 300, + YEARS = 301, + SENDMAIL = 302, + SERVER = 303, + TARGET_IP = 304, + TARGET_PORT = 305, + TARGET_STRING = 306, + TIMEOUT = 307, + TYPE = 308, + USERNAME = 309, + USER = 310, + VHOST = 311, + NUMBER = 312, + STRING = 313, + PROTOCOLTYPE = 314 }; #endif /* Tokens. */ @@ -201,42 +202,43 @@ extern int yydebug; #define PIDFILE 287 #define PORT 288 #define PROTOCOL 289 -#define REALNAME 290 -#define REPLY 291 -#define SCANLOG 292 -#define SCANNER 293 -#define SECONDS 294 -#define MINUTES 295 -#define HOURS 296 -#define DAYS 297 -#define WEEKS 298 -#define MONTHS 299 -#define YEARS 300 -#define SENDMAIL 301 -#define SERVER 302 -#define TARGET_IP 303 -#define TARGET_PORT 304 -#define TARGET_STRING 305 -#define TIMEOUT 306 -#define TYPE 307 -#define USERNAME 308 -#define USER 309 -#define VHOST 310 -#define NUMBER 311 -#define STRING 312 -#define PROTOCOLTYPE 313 +#define READTIMEOUT 290 +#define REALNAME 291 +#define REPLY 292 +#define SCANLOG 293 +#define SCANNER 294 +#define SECONDS 295 +#define MINUTES 296 +#define HOURS 297 +#define DAYS 298 +#define WEEKS 299 +#define MONTHS 300 +#define YEARS 301 +#define SENDMAIL 302 +#define SERVER 303 +#define TARGET_IP 304 +#define TARGET_PORT 305 +#define TARGET_STRING 306 +#define TIMEOUT 307 +#define TYPE 308 +#define USERNAME 309 +#define USER 310 +#define VHOST 311 +#define NUMBER 312 +#define STRING 313 +#define PROTOCOLTYPE 314 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE YYSTYPE; union YYSTYPE { -#line 85 "config-parser.y" /* yacc.c:355 */ +#line 86 "config-parser.y" /* yacc.c:355 */ int number; char *string; -#line 240 "config-parser.c" /* yacc.c:355 */ +#line 242 "config-parser.c" /* yacc.c:355 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -251,7 +253,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 255 "config-parser.c" /* yacc.c:358 */ +#line 257 "config-parser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -493,21 +495,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 301 +#define YYLAST 306 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 64 +#define YYNTOKENS 65 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 78 +#define YYNNTS 79 /* YYNRULES -- Number of rules. */ -#define YYNRULES 147 +#define YYNRULES 149 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 319 +#define YYNSTATES 324 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 313 +#define YYMAXUTOK 314 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -521,14 +523,14 @@ static const yytype_uint8 yytranslate[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 63, 61, - 2, 62, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 64, 62, + 2, 63, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 59, 2, 60, 2, 2, 2, 2, + 2, 2, 2, 60, 2, 61, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -547,28 +549,28 @@ static const yytype_uint8 yytranslate[] = 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58 + 55, 56, 57, 58, 59 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 100, 100, 101, 104, 105, 106, 107, 108, 109, - 111, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 122, 122, 123, 124, 125, 126, 131, 133, 134, 136, - 137, 138, 139, 140, 142, 147, 153, 158, 166, 168, - 169, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 188, 194, 200, - 206, 212, 218, 224, 230, 238, 243, 249, 255, 261, - 267, 277, 277, 294, 295, 297, 298, 299, 301, 309, - 317, 328, 328, 344, 345, 347, 348, 349, 351, 361, - 374, 374, 419, 420, 422, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 433, 440, 447, 454, 470, 476, - 482, 488, 494, 513, 515, 516, 518, 519, 520, 521, - 522, 524, 530, 536, 545, 545, 564, 565, 567, 568, - 569, 570, 571, 572, 574, 581, 588, 599, 605, 607, - 608, 610, 628, 630, 631, 633, 634, 636 + 0, 101, 101, 102, 105, 106, 107, 108, 109, 110, + 112, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 123, 123, 124, 125, 126, 127, 132, 134, 135, 137, + 138, 139, 140, 141, 143, 148, 154, 159, 167, 169, + 170, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 190, 196, + 202, 208, 214, 220, 226, 232, 240, 245, 250, 256, + 262, 268, 274, 284, 284, 301, 302, 304, 305, 306, + 308, 316, 324, 335, 335, 351, 352, 354, 355, 356, + 358, 368, 381, 381, 426, 427, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 438, 440, 447, 454, 461, + 477, 483, 489, 495, 501, 520, 522, 523, 525, 526, + 527, 528, 529, 531, 537, 543, 552, 552, 571, 572, + 574, 575, 576, 577, 578, 579, 581, 588, 595, 606, + 612, 614, 615, 617, 635, 637, 638, 640, 641, 643 }; #endif @@ -582,29 +584,31 @@ static const char *const yytname[] = "DNSBL_FROM", "DNSBL_TO", "EXEMPT", "FD", "INVITE", "IRC", "KLINE", "KEY", "MASK", "MAX_READ", "MODE", "NAME", "NEGCACHE", "NICK", "NICKSERV", "OPER", "OPM", "OPTIONS", "PASSWORD", "PERFORM", "PIDFILE", - "PORT", "PROTOCOL", "REALNAME", "REPLY", "SCANLOG", "SCANNER", "SECONDS", - "MINUTES", "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SENDMAIL", - "SERVER", "TARGET_IP", "TARGET_PORT", "TARGET_STRING", "TIMEOUT", "TYPE", - "USERNAME", "USER", "VHOST", "NUMBER", "STRING", "PROTOCOLTYPE", "'{'", - "'}'", "';'", "'='", "':'", "$accept", "config", "config_items", - "timespec_", "timespec", "sizespec_", "sizespec", "options_entry", - "options_items", "options_item", "options_negcache", "options_pidfile", + "PORT", "PROTOCOL", "READTIMEOUT", "REALNAME", "REPLY", "SCANLOG", + "SCANNER", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "MONTHS", + "YEARS", "SENDMAIL", "SERVER", "TARGET_IP", "TARGET_PORT", + "TARGET_STRING", "TIMEOUT", "TYPE", "USERNAME", "USER", "VHOST", + "NUMBER", "STRING", "PROTOCOLTYPE", "'{'", "'}'", "';'", "'='", "':'", + "$accept", "config", "config_items", "timespec_", "timespec", + "sizespec_", "sizespec", "options_entry", "options_items", + "options_item", "options_negcache", "options_pidfile", "options_dns_fdlimit", "options_scanlog", "irc_entry", "irc_items", "irc_item", "irc_away", "irc_kline", "irc_mode", "irc_nick", "irc_nickserv", "irc_oper", "irc_password", "irc_perform", "irc_port", - "irc_realname", "irc_server", "irc_username", "irc_vhost", - "irc_connregex", "channel_entry", "$@1", "channel_items", "channel_item", - "channel_name", "channel_key", "channel_invite", "user_entry", "$@2", - "user_items", "user_item", "user_mask", "user_scanner", "scanner_entry", - "$@3", "scanner_items", "scanner_item", "scanner_name", "scanner_vhost", - "scanner_target_ip", "scanner_target_string", "scanner_fd", - "scanner_target_port", "scanner_timeout", "scanner_max_read", - "scanner_protocol", "opm_entry", "opm_items", "opm_item", - "opm_dnsbl_from", "opm_dnsbl_to", "opm_sendmail", "opm_blacklist_entry", - "$@4", "blacklist_items", "blacklist_item", "blacklist_name", - "blacklist_kline", "blacklist_type", "blacklist_ban_unknown", - "blacklist_reply", "blacklist_reply_items", "blacklist_reply_item", - "exempt_entry", "exempt_items", "exempt_item", "exempt_mask", YY_NULLPTR + "irc_readtimeout", "irc_realname", "irc_server", "irc_username", + "irc_vhost", "irc_connregex", "channel_entry", "$@1", "channel_items", + "channel_item", "channel_name", "channel_key", "channel_invite", + "user_entry", "$@2", "user_items", "user_item", "user_mask", + "user_scanner", "scanner_entry", "$@3", "scanner_items", "scanner_item", + "scanner_name", "scanner_vhost", "scanner_target_ip", + "scanner_target_string", "scanner_fd", "scanner_target_port", + "scanner_timeout", "scanner_max_read", "scanner_protocol", "opm_entry", + "opm_items", "opm_item", "opm_dnsbl_from", "opm_dnsbl_to", + "opm_sendmail", "opm_blacklist_entry", "$@4", "blacklist_items", + "blacklist_item", "blacklist_name", "blacklist_kline", "blacklist_type", + "blacklist_ban_unknown", "blacklist_reply", "blacklist_reply_items", + "blacklist_reply_item", "exempt_entry", "exempt_items", "exempt_item", + "exempt_mask", YY_NULLPTR }; #endif @@ -618,17 +622,17 @@ static const yytype_uint16 yytoknum[] = 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 123, - 125, 59, 61, 58 + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 123, 125, 59, 61, 58 }; # endif -#define YYPACT_NINF -157 +#define YYPACT_NINF -149 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-157))) + (!!((Yystate) == (-149))) -#define YYTABLE_NINF -125 +#define YYTABLE_NINF -127 #define yytable_value_is_error(Yytable_value) \ 0 @@ -637,38 +641,39 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -157, 126, -157, -52, -48, -40, -36, -157, -157, -157, - -157, -49, -157, -9, -157, -157, 39, 80, 83, 136, - -22, -18, -157, -17, 19, -157, -157, -157, -16, -10, - -4, 4, 12, 23, 24, 30, 32, 37, 42, 56, - 62, 66, 0, -157, -157, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, 59, - -157, 68, 69, 72, 3, -157, -157, -157, -157, -157, - 133, -157, 77, 79, 82, 84, 33, -157, -157, -157, - -157, -157, 16, 102, 44, 81, -157, 88, 92, 99, - 101, 104, 105, 106, 108, 109, 103, 110, 112, 113, - 114, 111, -157, 129, 132, 137, 138, 131, -157, 134, - 140, 141, 142, 143, 144, -157, -157, 128, 139, 31, - -157, -157, -157, -157, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 27, -157, -157, -157, -157, -157, -157, - -157, -157, -157, -157, 155, -157, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - -157, 93, 170, 171, 172, -157, 96, 173, 135, 174, - 175, 176, -157, 181, 182, 179, -157, 185, 186, 187, - 188, 190, 189, 191, 141, 192, 193, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, - -157, -157, -157, 194, 195, 196, 48, -157, -157, -157, - -157, -157, -157, -157, -157, 197, 198, 199, 184, 200, - 20, -157, -157, -157, -157, -157, -157, -157, 141, 141, - 141, 141, 141, 141, 141, -157, -157, -157, -157, -157, - 202, 203, -157, 204, 6, 205, 206, 207, 208, 210, - 211, 212, 213, -157, 218, 219, 220, 217, -157, 223, - 224, 225, 227, 228, 226, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, -157, 186, 186, 186, -157, - -157, -157, -157, 230, -157, -157, -157, -157, -157, 229, - 231, 232, -157, 233, 234, 235, 222, -54, -157, 236, - -157, -157, -157, -157, 237, -157, -157, -157, -157, -157, - -157, 242, 239, -157, -157, -157, 240, -157, -157 + -149, 122, -149, -53, -52, -46, -44, -149, -149, -149, + -149, -50, -149, -22, -149, -149, 43, 73, 113, 130, + -41, -32, -149, -34, 3, -149, -149, -149, -31, -26, + -24, -18, -17, -14, -13, -11, 4, 9, 14, 21, + 22, 25, 33, 0, -149, -149, -149, -149, -149, -149, + -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, + -149, 57, -149, 39, 47, 49, 46, -149, -149, -149, + -149, -149, 108, -149, 53, 65, 75, 77, 54, -149, + -149, -149, -149, -149, 104, 96, 86, 87, -149, 95, + 97, 99, 100, 101, 106, 107, 109, 111, 114, 131, + 129, 134, 135, 136, 127, -149, 137, 138, 140, 141, + 139, -149, 142, 143, 131, 145, 146, 144, -149, -149, + 128, 132, 40, -149, -149, -149, -149, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 19, -149, -149, -149, + -149, -149, -149, -149, -149, -149, -149, 158, -149, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 133, + 169, 170, 171, 172, 173, -149, 147, 174, 175, 176, + -149, 119, 177, 178, 179, 180, -149, 185, 186, 183, + -149, 189, 190, 191, 192, 194, 193, 195, 131, 196, + 197, -149, -149, -149, -149, -149, -149, -149, -149, -149, + -149, -149, -149, 131, 131, 131, 131, 131, 131, 131, + -149, -149, -149, -149, -149, -149, -149, 198, 199, 200, + 71, -149, -149, -149, -149, -149, -149, -149, -149, 201, + 202, 203, 188, 204, 20, -149, -149, -149, -149, -149, + -149, -149, -149, -149, -149, 206, 207, -149, 208, 5, + 209, 210, 211, 212, 214, 215, 216, 217, -149, -149, + -149, -149, -149, -149, -149, -149, 222, 223, 224, 221, + -149, 227, 228, 229, 231, 232, 230, -149, -149, -149, + -149, 190, 190, 190, -149, -149, -149, -149, 234, -149, + -149, -149, -149, -149, 233, 235, 236, -149, 237, 238, + 239, 226, -55, -149, 240, -149, -149, -149, -149, 241, + -149, -149, -149, -149, -149, -149, 246, 243, -149, -149, + -149, 244, -149, -149 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -676,64 +681,65 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 81, 1, 0, 0, 0, 0, 3, 5, 4, + 2, 83, 1, 0, 0, 0, 0, 3, 5, 4, 7, 0, 8, 0, 6, 9, 0, 0, 0, 0, - 0, 0, 146, 0, 0, 144, 145, 56, 0, 0, + 0, 0, 148, 0, 0, 146, 147, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 40, 41, 43, 46, 44, 45, 47, - 48, 54, 49, 50, 51, 52, 53, 42, 55, 0, - 120, 0, 0, 0, 0, 115, 116, 117, 118, 119, - 0, 33, 0, 0, 0, 0, 0, 28, 29, 30, - 31, 32, 0, 0, 0, 0, 143, 0, 0, 0, + 0, 0, 0, 0, 40, 41, 43, 46, 44, 45, + 47, 48, 55, 49, 50, 51, 52, 53, 54, 42, + 56, 0, 122, 0, 0, 0, 0, 117, 118, 119, + 120, 121, 0, 33, 0, 0, 0, 0, 0, 28, + 29, 30, 31, 32, 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 0, 0, 0, 114, 0, - 0, 0, 0, 0, 0, 27, 87, 0, 0, 0, - 84, 85, 86, 103, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 94, 95, 97, 99, 96, - 98, 101, 102, 100, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 38, 0, 0, 0, 0, 113, 0, 0, 10, 0, - 0, 0, 26, 0, 0, 0, 83, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 92, 147, 57, - 70, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 0, 0, 0, 0, 74, 75, 76, - 77, 121, 122, 123, 133, 0, 0, 0, 0, 0, - 0, 127, 128, 130, 129, 131, 132, 36, 10, 10, - 10, 10, 10, 10, 10, 12, 11, 34, 35, 37, - 0, 0, 82, 0, 20, 0, 0, 0, 0, 0, - 0, 0, 0, 91, 0, 0, 0, 0, 73, 0, - 0, 0, 0, 0, 0, 126, 13, 14, 15, 16, - 17, 18, 19, 88, 89, 108, 20, 20, 20, 22, - 21, 111, 104, 0, 106, 109, 107, 110, 105, 0, - 0, 0, 72, 0, 0, 0, 0, 0, 140, 0, - 125, 23, 24, 25, 0, 80, 79, 78, 137, 135, - 134, 0, 0, 139, 136, 112, 0, 138, 141 + 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, + 0, 116, 0, 0, 0, 0, 0, 0, 27, 89, + 0, 0, 0, 86, 87, 88, 105, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 95, 96, 97, + 99, 101, 98, 100, 103, 104, 102, 0, 144, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, + 115, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 94, 149, 58, 72, 59, 60, 61, 62, 63, + 64, 65, 66, 10, 10, 10, 10, 10, 10, 10, + 12, 11, 67, 68, 69, 70, 71, 0, 0, 0, + 0, 76, 77, 78, 79, 123, 124, 125, 135, 0, + 0, 0, 0, 0, 0, 129, 130, 132, 131, 133, + 134, 36, 34, 35, 37, 0, 0, 84, 0, 20, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 13, + 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, + 75, 0, 0, 0, 0, 0, 0, 128, 90, 91, + 110, 20, 20, 20, 22, 21, 113, 106, 0, 108, + 111, 109, 112, 107, 0, 0, 0, 74, 0, 0, + 0, 0, 0, 142, 0, 127, 23, 24, 25, 0, + 82, 81, 80, 139, 137, 136, 0, 0, 141, 138, + 114, 0, 140, 143 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -157, -157, -157, -47, -111, -156, 25, -157, -157, 122, - -157, -157, -157, -157, -157, -157, 209, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -2, -157, -157, -157, -157, -157, - -157, 87, -157, -157, -157, -157, -157, 117, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, 216, - -157, -157, -157, -157, -157, -157, 35, -157, -157, -157, - -157, -157, -157, -95, -157, -157, 244, -157 + -149, -149, -149, -23, -99, -148, 23, -149, -149, 182, + -149, -149, -149, -149, -149, -149, 213, -149, -149, -149, + -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, + -149, -149, -149, -149, -149, -12, -149, -149, -149, -149, + -149, -149, 85, -149, -149, -149, -149, -149, 74, -149, + -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, + 219, -149, -149, -149, -149, -149, -149, -25, -149, -149, + -149, -149, -149, -149, -47, -149, -149, 249, -149 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 7, 235, 236, 279, 280, 8, 76, 77, - 78, 79, 80, 81, 9, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 206, 207, 208, 209, 210, 10, 11, - 119, 120, 121, 122, 12, 13, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 14, 64, 65, - 66, 67, 68, 69, 70, 220, 221, 222, 223, 224, - 225, 226, 297, 298, 15, 24, 25, 26 + -1, 1, 7, 210, 211, 284, 285, 8, 78, 79, + 80, 81, 82, 83, 9, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 220, 221, 222, 223, 224, 10, + 11, 122, 123, 124, 125, 12, 13, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 14, 66, + 67, 68, 69, 70, 71, 72, 234, 235, 236, 237, + 238, 239, 240, 302, 303, 15, 24, 25, 26 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -741,130 +747,131 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 169, 27, 296, 28, 60, 20, 312, 16, -124, -71, - 29, 17, 276, 277, 278, 61, 62, 116, 30, 18, - 22, 214, 31, 19, 215, 32, 33, 34, 123, 21, - 35, 36, 116, 37, 71, 38, 117, 82, 216, 23, - 22, 83, 124, 217, 72, 84, 87, 39, 125, 63, - 126, 117, 88, 40, 118, 41, 218, 73, 89, 23, - 101, 127, 244, 107, 203, 74, 90, 204, 103, 118, - 75, 205, 219, 251, 91, 128, 129, 130, 131, 85, - 264, 27, 132, 28, 60, 92, 93, 186, -124, -71, - 29, 175, 94, 114, 95, 61, 62, 214, 30, 96, - 215, 144, 31, 123, 97, 32, 33, 34, 257, 203, - 35, 36, 204, 37, 216, 38, 205, 124, 98, 217, - 301, 302, 303, 125, 99, 126, 2, 39, 100, 63, - 104, 105, 218, 40, 106, 41, 127, 71, 109, 110, - 3, 111, 145, 4, 112, 146, 113, 72, 219, 147, - 128, 129, 130, 131, 5, 6, 148, 132, 149, 155, - 73, 150, 151, 152, -90, 153, 154, 156, 74, 157, - 158, 159, 160, 75, 228, 229, 230, 231, 232, 233, - 234, 266, 267, 268, 269, 270, 271, 272, 161, 162, - 173, 168, 165, 166, 163, 164, 167, 168, 115, 170, - 171, 174, 313, 245, 258, 172, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 188, 189, 190, 191, + 160, 27, 301, 28, 22, 20, 317, 16, 17, -73, + 29, 281, 282, 283, 18, 173, 19, 21, 30, 84, + 126, 228, 31, 23, 229, 32, 33, 34, 85, 86, + 35, 36, 89, 37, 127, 38, 39, 90, 230, 91, + 128, 119, 129, 231, 22, 92, 93, 62, 40, 94, + 95, -126, 96, 130, 41, 73, 42, 232, 63, 64, + 120, 104, 249, 23, 87, 74, 106, 97, 131, 132, + 133, 134, 98, 233, 27, 135, 28, 99, 75, 121, + 190, 276, -73, 29, 100, 101, 76, 217, 102, 256, + 218, 30, 77, 65, 219, 31, 103, 126, 32, 33, + 34, 179, 107, 35, 36, 119, 37, 110, 38, 39, + 108, 127, 109, 112, 62, 117, 113, 128, -126, 129, + 228, 40, 2, 229, 120, 63, 64, 41, 114, 42, + 130, 73, 269, 306, 307, 308, 3, 230, 115, 4, + 116, 74, 231, 121, 147, 131, 132, 133, 134, 148, + 5, 6, 135, 149, 75, 150, 232, 151, 152, 153, + 65, -92, 76, 217, 154, 155, 218, 156, 77, 157, + 219, 158, 233, 203, 204, 205, 206, 207, 208, 209, + 259, 260, 261, 262, 263, 264, 265, 161, 159, 165, + 159, 177, 162, 163, 164, 178, 167, 166, 168, 169, + 172, 170, 171, 174, 175, 250, 176, 180, 270, 277, + 191, 181, 182, 183, 184, 185, 186, 187, 188, 189, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 211, 212, 213, 227, 237, 238, 239, 240, 241, - 242, 243, 244, 262, 246, 249, 247, 248, 250, 252, - 187, 102, 0, 0, 253, 265, 254, 255, 256, 259, - 260, 261, 263, 273, 274, 275, 281, 282, 86, 284, - 283, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 108, 294, 295, 296, 311, 299, 304, 300, 0, 0, - 305, 0, 306, 307, 308, 309, 310, 314, 315, 316, - 317, 318 + 202, 212, 213, 214, 215, 216, 225, 226, 227, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 274, 251, + 254, 252, 253, 255, 257, 318, 105, 0, 0, 258, + 118, 266, 267, 268, 271, 272, 273, 275, 278, 279, + 280, 286, 287, 88, 289, 288, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 111, 299, 300, 301, 316, + 304, 309, 305, 0, 0, 310, 0, 311, 312, 313, + 314, 315, 319, 320, 321, 322, 323 }; static const yytype_int16 yycheck[] = { - 111, 1, 56, 3, 1, 54, 60, 59, 5, 9, - 10, 59, 6, 7, 8, 12, 13, 1, 18, 59, - 1, 1, 22, 59, 4, 25, 26, 27, 1, 38, - 30, 31, 1, 33, 1, 35, 20, 59, 18, 20, - 1, 59, 15, 23, 11, 62, 62, 47, 21, 46, - 23, 20, 62, 53, 38, 55, 36, 24, 62, 20, - 60, 34, 56, 60, 16, 32, 62, 19, 9, 38, - 37, 23, 52, 184, 62, 48, 49, 50, 51, 60, - 60, 1, 55, 3, 1, 62, 62, 60, 5, 9, - 10, 60, 62, 60, 62, 12, 13, 1, 18, 62, - 4, 57, 22, 1, 62, 25, 26, 27, 60, 16, - 30, 31, 19, 33, 18, 35, 23, 15, 62, 23, - 276, 277, 278, 21, 62, 23, 0, 47, 62, 46, - 62, 62, 36, 53, 62, 55, 34, 1, 5, 62, - 14, 62, 61, 17, 62, 57, 62, 11, 52, 57, - 48, 49, 50, 51, 28, 29, 57, 55, 57, 56, - 24, 57, 57, 57, 38, 57, 57, 57, 32, 57, - 57, 57, 61, 37, 39, 40, 41, 42, 43, 44, - 45, 228, 229, 230, 231, 232, 233, 234, 59, 57, - 62, 56, 61, 59, 57, 57, 56, 56, 76, 57, - 57, 62, 297, 178, 206, 61, 119, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 57, 57, - 61, 56, 56, 59, 57, 56, 58, 57, 57, 57, - 133, 42, -1, -1, 61, 220, 62, 62, 62, 62, - 62, 62, 62, 61, 61, 61, 61, 61, 24, 61, - 63, 61, 61, 61, 61, 57, 57, 57, 61, 56, - 64, 57, 57, 56, 62, 57, 56, 61, -1, -1, - 61, -1, 61, 61, 61, 61, 61, 61, 61, 57, - 61, 61 + 99, 1, 57, 3, 1, 55, 61, 60, 60, 9, + 10, 6, 7, 8, 60, 114, 60, 39, 18, 60, + 1, 1, 22, 20, 4, 25, 26, 27, 60, 63, + 30, 31, 63, 33, 15, 35, 36, 63, 18, 63, + 21, 1, 23, 23, 1, 63, 63, 1, 48, 63, + 63, 5, 63, 34, 54, 1, 56, 37, 12, 13, + 20, 61, 57, 20, 61, 11, 9, 63, 49, 50, + 51, 52, 63, 53, 1, 56, 3, 63, 24, 39, + 61, 61, 9, 10, 63, 63, 32, 16, 63, 188, + 19, 18, 38, 47, 23, 22, 63, 1, 25, 26, + 27, 61, 63, 30, 31, 1, 33, 61, 35, 36, + 63, 15, 63, 5, 1, 61, 63, 21, 5, 23, + 1, 48, 0, 4, 20, 12, 13, 54, 63, 56, + 34, 1, 61, 281, 282, 283, 14, 18, 63, 17, + 63, 11, 23, 39, 58, 49, 50, 51, 52, 62, + 28, 29, 56, 58, 24, 58, 37, 58, 58, 58, + 47, 39, 32, 16, 58, 58, 19, 58, 38, 58, + 23, 57, 53, 40, 41, 42, 43, 44, 45, 46, + 203, 204, 205, 206, 207, 208, 209, 58, 57, 62, + 57, 63, 58, 58, 58, 63, 58, 60, 58, 58, + 57, 62, 60, 58, 58, 182, 62, 122, 220, 234, + 136, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 58, 58, 62, 57, 57, 60, 58, + 57, 59, 58, 58, 58, 302, 43, -1, -1, 62, + 78, 63, 63, 63, 63, 63, 63, 63, 62, 62, + 62, 62, 62, 24, 62, 64, 62, 62, 62, 62, + 58, 58, 58, 62, 57, 66, 58, 58, 57, 63, + 58, 57, 62, -1, -1, 62, -1, 62, 62, 62, + 62, 62, 62, 62, 58, 62, 62 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 65, 0, 14, 17, 28, 29, 66, 71, 78, - 102, 103, 108, 109, 121, 138, 59, 59, 59, 59, - 54, 38, 1, 20, 139, 140, 141, 1, 3, 10, - 18, 22, 25, 26, 27, 30, 31, 33, 35, 47, - 53, 55, 79, 80, 81, 82, 83, 84, 85, 86, + 0, 66, 0, 14, 17, 28, 29, 67, 72, 79, + 104, 105, 110, 111, 123, 140, 60, 60, 60, 60, + 55, 39, 1, 20, 141, 142, 143, 1, 3, 10, + 18, 22, 25, 26, 27, 30, 31, 33, 35, 36, + 48, 54, 56, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 1, 12, 13, 46, 122, 123, 124, 125, 126, 127, - 128, 1, 11, 24, 32, 37, 72, 73, 74, 75, - 76, 77, 59, 59, 62, 60, 140, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 60, 80, 9, 62, 62, 62, 60, 123, 5, - 62, 62, 62, 62, 60, 73, 1, 20, 38, 104, - 105, 106, 107, 1, 15, 21, 23, 34, 48, 49, - 50, 51, 55, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 57, 61, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 56, 57, 57, 57, 57, - 61, 59, 57, 57, 57, 61, 59, 56, 56, 68, - 57, 57, 61, 62, 62, 60, 105, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 60, 111, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 16, 19, 23, 97, 98, 99, 100, - 101, 61, 61, 61, 1, 4, 18, 23, 36, 52, - 129, 130, 131, 132, 133, 134, 135, 61, 39, 40, - 41, 42, 43, 44, 45, 67, 68, 61, 61, 61, - 57, 57, 61, 56, 56, 70, 57, 58, 57, 56, - 57, 68, 57, 61, 62, 62, 62, 60, 98, 62, - 62, 62, 59, 62, 60, 130, 67, 67, 67, 67, - 67, 67, 67, 61, 61, 61, 6, 7, 8, 69, - 70, 61, 61, 63, 61, 61, 61, 61, 61, 57, - 57, 57, 61, 56, 57, 57, 56, 136, 137, 57, - 61, 69, 69, 69, 56, 61, 61, 61, 61, 61, - 61, 62, 60, 137, 61, 61, 57, 61, 61 + 97, 98, 1, 12, 13, 47, 124, 125, 126, 127, + 128, 129, 130, 1, 11, 24, 32, 38, 73, 74, + 75, 76, 77, 78, 60, 60, 63, 61, 142, 63, + 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 61, 81, 9, 63, 63, 63, + 61, 125, 5, 63, 63, 63, 63, 61, 74, 1, + 20, 39, 106, 107, 108, 109, 1, 15, 21, 23, + 34, 49, 50, 51, 52, 56, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 58, 62, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 57, 57, + 69, 58, 58, 58, 58, 62, 60, 58, 58, 58, + 62, 60, 57, 69, 58, 58, 62, 63, 63, 61, + 107, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 61, 113, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 40, 41, 42, 43, 44, 45, 46, + 68, 69, 62, 62, 62, 62, 62, 16, 19, 23, + 99, 100, 101, 102, 103, 62, 62, 62, 1, 4, + 18, 23, 37, 53, 131, 132, 133, 134, 135, 136, + 137, 62, 62, 62, 62, 58, 58, 62, 57, 57, + 71, 58, 59, 58, 57, 58, 69, 58, 62, 68, + 68, 68, 68, 68, 68, 68, 63, 63, 63, 61, + 100, 63, 63, 63, 60, 63, 61, 132, 62, 62, + 62, 6, 7, 8, 70, 71, 62, 62, 64, 62, + 62, 62, 62, 62, 58, 58, 58, 62, 57, 58, + 58, 57, 138, 139, 58, 62, 70, 70, 70, 57, + 62, 62, 62, 62, 62, 62, 63, 61, 139, 62, + 62, 58, 62, 62 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 64, 65, 65, 66, 66, 66, 66, 66, 66, - 67, 67, 68, 68, 68, 68, 68, 68, 68, 68, - 69, 69, 70, 70, 70, 70, 71, 72, 72, 73, - 73, 73, 73, 73, 74, 75, 76, 77, 78, 79, - 79, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 81, 82, 83, + 0, 65, 66, 66, 67, 67, 67, 67, 67, 67, + 68, 68, 69, 69, 69, 69, 69, 69, 69, 69, + 70, 70, 71, 71, 71, 71, 72, 73, 73, 74, + 74, 74, 74, 74, 75, 76, 77, 78, 79, 80, + 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 96, 95, 97, 97, 98, 98, 98, 99, 100, - 101, 103, 102, 104, 104, 105, 105, 105, 106, 107, - 109, 108, 110, 110, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 122, 123, 123, 123, 123, - 123, 124, 125, 126, 128, 127, 129, 129, 130, 130, - 130, 130, 130, 130, 131, 132, 133, 134, 135, 136, - 136, 137, 138, 139, 139, 140, 140, 141 + 94, 95, 96, 98, 97, 99, 99, 100, 100, 100, + 101, 102, 103, 105, 104, 106, 106, 107, 107, 107, + 108, 109, 111, 110, 112, 112, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 124, 125, 125, + 125, 125, 125, 126, 127, 128, 130, 129, 131, 131, + 132, 132, 132, 132, 132, 132, 133, 134, 135, 136, + 137, 138, 138, 139, 140, 141, 141, 142, 142, 143 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -875,16 +882,16 @@ static const yytype_uint8 yyr2[] = 0, 1, 2, 3, 3, 3, 5, 2, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, + 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 0, 6, 2, 1, 1, 1, 1, 4, 4, - 4, 0, 6, 2, 1, 1, 1, 1, 4, 4, - 0, 6, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, - 4, 4, 6, 5, 2, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 0, 6, 2, 1, 1, 1, - 1, 1, 1, 1, 4, 4, 4, 4, 5, 2, - 1, 4, 5, 2, 1, 1, 1, 4 + 4, 4, 4, 0, 6, 2, 1, 1, 1, 1, + 4, 4, 4, 0, 6, 2, 1, 1, 1, 1, + 4, 4, 0, 6, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, + 4, 4, 4, 4, 6, 5, 2, 1, 1, 1, + 1, 1, 1, 4, 4, 4, 0, 6, 2, 1, + 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, + 5, 2, 1, 4, 5, 2, 1, 1, 1, 4 }; @@ -1561,252 +1568,260 @@ yyreduce: switch (yyn) { case 10: -#line 111 "config-parser.y" /* yacc.c:1646 */ +#line 112 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = 0; } -#line 1567 "config-parser.c" /* yacc.c:1646 */ +#line 1574 "config-parser.c" /* yacc.c:1646 */ break; case 12: -#line 112 "config-parser.y" /* yacc.c:1646 */ +#line 113 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); } -#line 1573 "config-parser.c" /* yacc.c:1646 */ +#line 1580 "config-parser.c" /* yacc.c:1646 */ break; case 13: -#line 113 "config-parser.y" /* yacc.c:1646 */ +#line 114 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); } -#line 1579 "config-parser.c" /* yacc.c:1646 */ +#line 1586 "config-parser.c" /* yacc.c:1646 */ break; case 14: -#line 114 "config-parser.y" /* yacc.c:1646 */ +#line 115 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); } -#line 1585 "config-parser.c" /* yacc.c:1646 */ +#line 1592 "config-parser.c" /* yacc.c:1646 */ break; case 15: -#line 115 "config-parser.y" /* yacc.c:1646 */ +#line 116 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); } -#line 1591 "config-parser.c" /* yacc.c:1646 */ +#line 1598 "config-parser.c" /* yacc.c:1646 */ break; case 16: -#line 116 "config-parser.y" /* yacc.c:1646 */ +#line 117 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); } -#line 1597 "config-parser.c" /* yacc.c:1646 */ +#line 1604 "config-parser.c" /* yacc.c:1646 */ break; case 17: -#line 117 "config-parser.y" /* yacc.c:1646 */ +#line 118 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); } -#line 1603 "config-parser.c" /* yacc.c:1646 */ +#line 1610 "config-parser.c" /* yacc.c:1646 */ break; case 18: -#line 118 "config-parser.y" /* yacc.c:1646 */ +#line 119 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); } -#line 1609 "config-parser.c" /* yacc.c:1646 */ +#line 1616 "config-parser.c" /* yacc.c:1646 */ break; case 19: -#line 119 "config-parser.y" /* yacc.c:1646 */ +#line 120 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); } -#line 1615 "config-parser.c" /* yacc.c:1646 */ +#line 1622 "config-parser.c" /* yacc.c:1646 */ break; case 20: -#line 122 "config-parser.y" /* yacc.c:1646 */ +#line 123 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = 0; } -#line 1621 "config-parser.c" /* yacc.c:1646 */ +#line 1628 "config-parser.c" /* yacc.c:1646 */ break; case 22: -#line 123 "config-parser.y" /* yacc.c:1646 */ +#line 124 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); } -#line 1627 "config-parser.c" /* yacc.c:1646 */ +#line 1634 "config-parser.c" /* yacc.c:1646 */ break; case 23: -#line 124 "config-parser.y" /* yacc.c:1646 */ +#line 125 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); } -#line 1633 "config-parser.c" /* yacc.c:1646 */ +#line 1640 "config-parser.c" /* yacc.c:1646 */ break; case 24: -#line 125 "config-parser.y" /* yacc.c:1646 */ +#line 126 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); } -#line 1639 "config-parser.c" /* yacc.c:1646 */ +#line 1646 "config-parser.c" /* yacc.c:1646 */ break; case 25: -#line 126 "config-parser.y" /* yacc.c:1646 */ +#line 127 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); } -#line 1645 "config-parser.c" /* yacc.c:1646 */ +#line 1652 "config-parser.c" /* yacc.c:1646 */ break; case 34: -#line 143 "config-parser.y" /* yacc.c:1646 */ +#line 144 "config-parser.y" /* yacc.c:1646 */ { OptionsItem->negcache = (yyvsp[-1].number); } -#line 1653 "config-parser.c" /* yacc.c:1646 */ +#line 1660 "config-parser.c" /* yacc.c:1646 */ break; case 35: -#line 148 "config-parser.y" /* yacc.c:1646 */ +#line 149 "config-parser.y" /* yacc.c:1646 */ { MyFree(OptionsItem->pidfile); OptionsItem->pidfile = xstrdup((yyvsp[-1].string)); } -#line 1662 "config-parser.c" /* yacc.c:1646 */ +#line 1669 "config-parser.c" /* yacc.c:1646 */ break; case 36: -#line 154 "config-parser.y" /* yacc.c:1646 */ +#line 155 "config-parser.y" /* yacc.c:1646 */ { OptionsItem->dns_fdlimit = (yyvsp[-1].number); } -#line 1670 "config-parser.c" /* yacc.c:1646 */ +#line 1677 "config-parser.c" /* yacc.c:1646 */ break; case 37: -#line 159 "config-parser.y" /* yacc.c:1646 */ +#line 160 "config-parser.y" /* yacc.c:1646 */ { MyFree(OptionsItem->scanlog); OptionsItem->scanlog = xstrdup((yyvsp[-1].string)); } -#line 1679 "config-parser.c" /* yacc.c:1646 */ +#line 1686 "config-parser.c" /* yacc.c:1646 */ break; - case 57: -#line 189 "config-parser.y" /* yacc.c:1646 */ + case 58: +#line 191 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->away); IRCItem->away = xstrdup((yyvsp[-1].string)); } -#line 1688 "config-parser.c" /* yacc.c:1646 */ +#line 1695 "config-parser.c" /* yacc.c:1646 */ break; - case 58: -#line 195 "config-parser.y" /* yacc.c:1646 */ + case 59: +#line 197 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->kline); IRCItem->kline = xstrdup((yyvsp[-1].string)); } -#line 1697 "config-parser.c" /* yacc.c:1646 */ +#line 1704 "config-parser.c" /* yacc.c:1646 */ break; - case 59: -#line 201 "config-parser.y" /* yacc.c:1646 */ + case 60: +#line 203 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->mode); IRCItem->mode = xstrdup((yyvsp[-1].string)); } -#line 1706 "config-parser.c" /* yacc.c:1646 */ +#line 1713 "config-parser.c" /* yacc.c:1646 */ break; - case 60: -#line 207 "config-parser.y" /* yacc.c:1646 */ + case 61: +#line 209 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->nick); IRCItem->nick = xstrdup((yyvsp[-1].string)); } -#line 1715 "config-parser.c" /* yacc.c:1646 */ +#line 1722 "config-parser.c" /* yacc.c:1646 */ break; - case 61: -#line 213 "config-parser.y" /* yacc.c:1646 */ + case 62: +#line 215 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->nickserv); IRCItem->nickserv = xstrdup((yyvsp[-1].string)); } -#line 1724 "config-parser.c" /* yacc.c:1646 */ +#line 1731 "config-parser.c" /* yacc.c:1646 */ break; - case 62: -#line 219 "config-parser.y" /* yacc.c:1646 */ + case 63: +#line 221 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->oper); IRCItem->oper = xstrdup((yyvsp[-1].string)); } -#line 1733 "config-parser.c" /* yacc.c:1646 */ +#line 1740 "config-parser.c" /* yacc.c:1646 */ break; - case 63: -#line 225 "config-parser.y" /* yacc.c:1646 */ + case 64: +#line 227 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->password); IRCItem->password = xstrdup((yyvsp[-1].string)); } -#line 1742 "config-parser.c" /* yacc.c:1646 */ +#line 1749 "config-parser.c" /* yacc.c:1646 */ break; - case 64: -#line 231 "config-parser.y" /* yacc.c:1646 */ + case 65: +#line 233 "config-parser.y" /* yacc.c:1646 */ { node_t *node; node = node_create(xstrdup((yyvsp[-1].string))); list_add(IRCItem->performs, node); } -#line 1753 "config-parser.c" /* yacc.c:1646 */ +#line 1760 "config-parser.c" /* yacc.c:1646 */ break; - case 65: -#line 239 "config-parser.y" /* yacc.c:1646 */ + case 66: +#line 241 "config-parser.y" /* yacc.c:1646 */ { IRCItem->port = (yyvsp[-1].number); } -#line 1761 "config-parser.c" /* yacc.c:1646 */ +#line 1768 "config-parser.c" /* yacc.c:1646 */ break; - case 66: -#line 244 "config-parser.y" /* yacc.c:1646 */ + case 67: +#line 246 "config-parser.y" /* yacc.c:1646 */ + { + IRCItem->readtimeout = (yyvsp[-1].number); +} +#line 1776 "config-parser.c" /* yacc.c:1646 */ + break; + + case 68: +#line 251 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->realname); IRCItem->realname = xstrdup((yyvsp[-1].string)); } -#line 1770 "config-parser.c" /* yacc.c:1646 */ +#line 1785 "config-parser.c" /* yacc.c:1646 */ break; - case 67: -#line 250 "config-parser.y" /* yacc.c:1646 */ + case 69: +#line 257 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->server); IRCItem->server = xstrdup((yyvsp[-1].string)); } -#line 1779 "config-parser.c" /* yacc.c:1646 */ +#line 1794 "config-parser.c" /* yacc.c:1646 */ break; - case 68: -#line 256 "config-parser.y" /* yacc.c:1646 */ + case 70: +#line 263 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->username); IRCItem->username = xstrdup((yyvsp[-1].string)); } -#line 1788 "config-parser.c" /* yacc.c:1646 */ +#line 1803 "config-parser.c" /* yacc.c:1646 */ break; - case 69: -#line 262 "config-parser.y" /* yacc.c:1646 */ + case 71: +#line 269 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->vhost); IRCItem->vhost = xstrdup((yyvsp[-1].string)); } -#line 1797 "config-parser.c" /* yacc.c:1646 */ +#line 1812 "config-parser.c" /* yacc.c:1646 */ break; - case 70: -#line 268 "config-parser.y" /* yacc.c:1646 */ + case 72: +#line 275 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->connregex); IRCItem->connregex = xstrdup((yyvsp[-1].string)); } -#line 1806 "config-parser.c" /* yacc.c:1646 */ +#line 1821 "config-parser.c" /* yacc.c:1646 */ break; - case 71: -#line 277 "config-parser.y" /* yacc.c:1646 */ + case 73: +#line 284 "config-parser.y" /* yacc.c:1646 */ { node_t *node; struct ChannelConf *item; @@ -1822,44 +1837,44 @@ yyreduce: tmp = (void *) item; } -#line 1826 "config-parser.c" /* yacc.c:1646 */ +#line 1841 "config-parser.c" /* yacc.c:1646 */ break; - case 78: -#line 302 "config-parser.y" /* yacc.c:1646 */ + case 80: +#line 309 "config-parser.y" /* yacc.c:1646 */ { struct ChannelConf *item = tmp; MyFree(item->name); item->name = xstrdup((yyvsp[-1].string)); } -#line 1837 "config-parser.c" /* yacc.c:1646 */ +#line 1852 "config-parser.c" /* yacc.c:1646 */ break; - case 79: -#line 310 "config-parser.y" /* yacc.c:1646 */ + case 81: +#line 317 "config-parser.y" /* yacc.c:1646 */ { struct ChannelConf *item = tmp; MyFree(item->key); item->key = xstrdup((yyvsp[-1].string)); } -#line 1848 "config-parser.c" /* yacc.c:1646 */ +#line 1863 "config-parser.c" /* yacc.c:1646 */ break; - case 80: -#line 318 "config-parser.y" /* yacc.c:1646 */ + case 82: +#line 325 "config-parser.y" /* yacc.c:1646 */ { struct ChannelConf *item = tmp; MyFree(item->invite); item->invite = xstrdup((yyvsp[-1].string)); } -#line 1859 "config-parser.c" /* yacc.c:1646 */ +#line 1874 "config-parser.c" /* yacc.c:1646 */ break; - case 81: -#line 328 "config-parser.y" /* yacc.c:1646 */ + case 83: +#line 335 "config-parser.y" /* yacc.c:1646 */ { node_t *node; struct UserConf *item; @@ -1874,11 +1889,11 @@ yyreduce: tmp = (void *) item; } -#line 1878 "config-parser.c" /* yacc.c:1646 */ +#line 1893 "config-parser.c" /* yacc.c:1646 */ break; - case 88: -#line 352 "config-parser.y" /* yacc.c:1646 */ + case 90: +#line 359 "config-parser.y" /* yacc.c:1646 */ { struct UserConf *item = (struct UserConf *) tmp; @@ -1887,11 +1902,11 @@ yyreduce: list_add(item->masks, node); } -#line 1891 "config-parser.c" /* yacc.c:1646 */ +#line 1906 "config-parser.c" /* yacc.c:1646 */ break; - case 89: -#line 362 "config-parser.y" /* yacc.c:1646 */ + case 91: +#line 369 "config-parser.y" /* yacc.c:1646 */ { struct UserConf *item = (struct UserConf *) tmp; @@ -1900,11 +1915,11 @@ yyreduce: list_add(item->scanners, node); } -#line 1904 "config-parser.c" /* yacc.c:1646 */ +#line 1919 "config-parser.c" /* yacc.c:1646 */ break; - case 90: -#line 374 "config-parser.y" /* yacc.c:1646 */ + case 92: +#line 381 "config-parser.y" /* yacc.c:1646 */ { node_t *node; struct ScannerConf *item, *olditem; @@ -1948,41 +1963,41 @@ yyreduce: list_add(ScannerItemList, node); tmp = (void *) item; } -#line 1952 "config-parser.c" /* yacc.c:1646 */ +#line 1967 "config-parser.c" /* yacc.c:1646 */ break; - case 104: -#line 434 "config-parser.y" /* yacc.c:1646 */ + case 106: +#line 441 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; MyFree(item->name); item->name = xstrdup((yyvsp[-1].string)); } -#line 1962 "config-parser.c" /* yacc.c:1646 */ +#line 1977 "config-parser.c" /* yacc.c:1646 */ break; - case 105: -#line 441 "config-parser.y" /* yacc.c:1646 */ + case 107: +#line 448 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; MyFree(item->vhost); item->vhost = xstrdup((yyvsp[-1].string)); } -#line 1972 "config-parser.c" /* yacc.c:1646 */ +#line 1987 "config-parser.c" /* yacc.c:1646 */ break; - case 106: -#line 448 "config-parser.y" /* yacc.c:1646 */ + case 108: +#line 455 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; MyFree(item->target_ip); item->target_ip = xstrdup((yyvsp[-1].string)); } -#line 1982 "config-parser.c" /* yacc.c:1646 */ +#line 1997 "config-parser.c" /* yacc.c:1646 */ break; - case 107: -#line 455 "config-parser.y" /* yacc.c:1646 */ + case 109: +#line 462 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; @@ -1997,47 +2012,47 @@ yyreduce: list_add(item->target_string, node); } -#line 2001 "config-parser.c" /* yacc.c:1646 */ +#line 2016 "config-parser.c" /* yacc.c:1646 */ break; - case 108: -#line 471 "config-parser.y" /* yacc.c:1646 */ + case 110: +#line 478 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; item->fd = (yyvsp[-1].number); } -#line 2010 "config-parser.c" /* yacc.c:1646 */ +#line 2025 "config-parser.c" /* yacc.c:1646 */ break; - case 109: -#line 477 "config-parser.y" /* yacc.c:1646 */ + case 111: +#line 484 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; item->target_port = (yyvsp[-1].number); } -#line 2019 "config-parser.c" /* yacc.c:1646 */ +#line 2034 "config-parser.c" /* yacc.c:1646 */ break; - case 110: -#line 483 "config-parser.y" /* yacc.c:1646 */ + case 112: +#line 490 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; item->timeout = (yyvsp[-1].number); } -#line 2028 "config-parser.c" /* yacc.c:1646 */ +#line 2043 "config-parser.c" /* yacc.c:1646 */ break; - case 111: -#line 489 "config-parser.y" /* yacc.c:1646 */ + case 113: +#line 496 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; item->max_read = (yyvsp[-1].number); } -#line 2037 "config-parser.c" /* yacc.c:1646 */ +#line 2052 "config-parser.c" /* yacc.c:1646 */ break; - case 112: -#line 495 "config-parser.y" /* yacc.c:1646 */ + case 114: +#line 502 "config-parser.y" /* yacc.c:1646 */ { struct ProtocolConf *item; struct ScannerConf *item2; @@ -2053,38 +2068,38 @@ yyreduce: node = node_create(item); list_add(item2->protocols, node); } -#line 2057 "config-parser.c" /* yacc.c:1646 */ +#line 2072 "config-parser.c" /* yacc.c:1646 */ break; - case 121: -#line 525 "config-parser.y" /* yacc.c:1646 */ + case 123: +#line 532 "config-parser.y" /* yacc.c:1646 */ { MyFree(OpmItem->dnsbl_from); OpmItem->dnsbl_from = xstrdup((yyvsp[-1].string)); } -#line 2066 "config-parser.c" /* yacc.c:1646 */ +#line 2081 "config-parser.c" /* yacc.c:1646 */ break; - case 122: -#line 531 "config-parser.y" /* yacc.c:1646 */ + case 124: +#line 538 "config-parser.y" /* yacc.c:1646 */ { MyFree(OpmItem->dnsbl_to); OpmItem->dnsbl_to = xstrdup((yyvsp[-1].string)); } -#line 2075 "config-parser.c" /* yacc.c:1646 */ +#line 2090 "config-parser.c" /* yacc.c:1646 */ break; - case 123: -#line 537 "config-parser.y" /* yacc.c:1646 */ + case 125: +#line 544 "config-parser.y" /* yacc.c:1646 */ { MyFree(OpmItem->sendmail); OpmItem->sendmail = xstrdup((yyvsp[-1].string)); } -#line 2084 "config-parser.c" /* yacc.c:1646 */ +#line 2099 "config-parser.c" /* yacc.c:1646 */ break; - case 124: -#line 545 "config-parser.y" /* yacc.c:1646 */ + case 126: +#line 552 "config-parser.y" /* yacc.c:1646 */ { node_t *node; struct BlacklistConf *item; @@ -2102,33 +2117,33 @@ yyreduce: tmp = (void *) item; } -#line 2106 "config-parser.c" /* yacc.c:1646 */ +#line 2121 "config-parser.c" /* yacc.c:1646 */ break; - case 134: -#line 574 "config-parser.y" /* yacc.c:1646 */ + case 136: +#line 581 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistConf *item = tmp; MyFree(item->name); item->name = xstrdup((yyvsp[-1].string)); } -#line 2117 "config-parser.c" /* yacc.c:1646 */ +#line 2132 "config-parser.c" /* yacc.c:1646 */ break; - case 135: -#line 581 "config-parser.y" /* yacc.c:1646 */ + case 137: +#line 588 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistConf *item = tmp; MyFree(item->kline); item->kline = xstrdup((yyvsp[-1].string)); } -#line 2128 "config-parser.c" /* yacc.c:1646 */ +#line 2143 "config-parser.c" /* yacc.c:1646 */ break; - case 136: -#line 588 "config-parser.y" /* yacc.c:1646 */ + case 138: +#line 595 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistConf *item = tmp; @@ -2139,21 +2154,21 @@ yyreduce: else yyerror("Unknown blacklist type defined"); } -#line 2143 "config-parser.c" /* yacc.c:1646 */ +#line 2158 "config-parser.c" /* yacc.c:1646 */ break; - case 137: -#line 599 "config-parser.y" /* yacc.c:1646 */ + case 139: +#line 606 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistConf *item = tmp; item->ban_unknown = (yyvsp[-1].number); } -#line 2153 "config-parser.c" /* yacc.c:1646 */ +#line 2168 "config-parser.c" /* yacc.c:1646 */ break; - case 141: -#line 611 "config-parser.y" /* yacc.c:1646 */ + case 143: +#line 618 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistReplyConf *item; struct BlacklistConf *blacklist = tmp; @@ -2167,22 +2182,22 @@ yyreduce: node = node_create(item); list_add(blacklist->reply, node); } -#line 2171 "config-parser.c" /* yacc.c:1646 */ +#line 2186 "config-parser.c" /* yacc.c:1646 */ break; - case 147: -#line 637 "config-parser.y" /* yacc.c:1646 */ + case 149: +#line 644 "config-parser.y" /* yacc.c:1646 */ { node_t *node; node = node_create(xstrdup((yyvsp[-1].string))); list_add(ExemptItem->masks, node); } -#line 2182 "config-parser.c" /* yacc.c:1646 */ +#line 2197 "config-parser.c" /* yacc.c:1646 */ break; -#line 2186 "config-parser.c" /* yacc.c:1646 */ +#line 2201 "config-parser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2410,5 +2425,5 @@ yyreturn: #endif return yyresult; } -#line 644 "config-parser.y" /* yacc.c:1906 */ +#line 651 "config-parser.y" /* yacc.c:1906 */ diff --git a/src/config-parser.h b/src/config-parser.h index e6057cc..fcdf311 100644 --- a/src/config-parser.h +++ b/src/config-parser.h @@ -77,30 +77,31 @@ extern int yydebug; PIDFILE = 287, PORT = 288, PROTOCOL = 289, - REALNAME = 290, - REPLY = 291, - SCANLOG = 292, - SCANNER = 293, - SECONDS = 294, - MINUTES = 295, - HOURS = 296, - DAYS = 297, - WEEKS = 298, - MONTHS = 299, - YEARS = 300, - SENDMAIL = 301, - SERVER = 302, - TARGET_IP = 303, - TARGET_PORT = 304, - TARGET_STRING = 305, - TIMEOUT = 306, - TYPE = 307, - USERNAME = 308, - USER = 309, - VHOST = 310, - NUMBER = 311, - STRING = 312, - PROTOCOLTYPE = 313 + READTIMEOUT = 290, + REALNAME = 291, + REPLY = 292, + SCANLOG = 293, + SCANNER = 294, + SECONDS = 295, + MINUTES = 296, + HOURS = 297, + DAYS = 298, + WEEKS = 299, + MONTHS = 300, + YEARS = 301, + SENDMAIL = 302, + SERVER = 303, + TARGET_IP = 304, + TARGET_PORT = 305, + TARGET_STRING = 306, + TIMEOUT = 307, + TYPE = 308, + USERNAME = 309, + USER = 310, + VHOST = 311, + NUMBER = 312, + STRING = 313, + PROTOCOLTYPE = 314 }; #endif /* Tokens. */ @@ -136,42 +137,43 @@ extern int yydebug; #define PIDFILE 287 #define PORT 288 #define PROTOCOL 289 -#define REALNAME 290 -#define REPLY 291 -#define SCANLOG 292 -#define SCANNER 293 -#define SECONDS 294 -#define MINUTES 295 -#define HOURS 296 -#define DAYS 297 -#define WEEKS 298 -#define MONTHS 299 -#define YEARS 300 -#define SENDMAIL 301 -#define SERVER 302 -#define TARGET_IP 303 -#define TARGET_PORT 304 -#define TARGET_STRING 305 -#define TIMEOUT 306 -#define TYPE 307 -#define USERNAME 308 -#define USER 309 -#define VHOST 310 -#define NUMBER 311 -#define STRING 312 -#define PROTOCOLTYPE 313 +#define READTIMEOUT 290 +#define REALNAME 291 +#define REPLY 292 +#define SCANLOG 293 +#define SCANNER 294 +#define SECONDS 295 +#define MINUTES 296 +#define HOURS 297 +#define DAYS 298 +#define WEEKS 299 +#define MONTHS 300 +#define YEARS 301 +#define SENDMAIL 302 +#define SERVER 303 +#define TARGET_IP 304 +#define TARGET_PORT 305 +#define TARGET_STRING 306 +#define TIMEOUT 307 +#define TYPE 308 +#define USERNAME 309 +#define USER 310 +#define VHOST 311 +#define NUMBER 312 +#define STRING 313 +#define PROTOCOLTYPE 314 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE YYSTYPE; union YYSTYPE { -#line 85 "config-parser.y" /* yacc.c:1909 */ +#line 86 "config-parser.y" /* yacc.c:1909 */ int number; char *string; -#line 175 "config-parser.h" /* yacc.c:1909 */ +#line 177 "config-parser.h" /* yacc.c:1909 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 diff --git a/src/config-parser.y b/src/config-parser.y index 879be9e..8c474ec 100644 --- a/src/config-parser.y +++ b/src/config-parser.y @@ -65,6 +65,7 @@ void *tmp; /* Variable to temporarily hold nodes before insertion to list %token PIDFILE %token PORT %token PROTOCOL +%token READTIMEOUT %token REALNAME %token REPLY %token SCANLOG @@ -168,21 +169,22 @@ irc_entry: IRC '{' irc_items '}' ';'; irc_items: irc_items irc_item | irc_item; -irc_item: irc_away | - irc_connregex | - irc_kline | - irc_nick | - irc_nickserv | - irc_mode | - irc_oper | - irc_password | - irc_port | - irc_realname | - irc_server | - irc_username | - irc_vhost | - irc_perform | - channel_entry | +irc_item: irc_away | + irc_connregex | + irc_kline | + irc_nick | + irc_nickserv | + irc_mode | + irc_oper | + irc_password | + irc_port | + irc_readtimeout | + irc_realname | + irc_server | + irc_username | + irc_vhost | + irc_perform | + channel_entry | error; irc_away: AWAY '=' STRING ';' @@ -240,6 +242,11 @@ irc_port: PORT '=' NUMBER ';' IRCItem->port = $3; }; +irc_readtimeout: READTIMEOUT '=' timespec ';' +{ + IRCItem->readtimeout = $3; +}; + irc_realname: REALNAME '=' STRING ';' { MyFree(IRCItem->realname); diff --git a/src/config.c b/src/config.c index 2f8d785..1949402 100644 --- a/src/config.c +++ b/src/config.c @@ -117,6 +117,7 @@ config_setup(void) IRCItem->nickserv = xstrdup(""); IRCItem->password = xstrdup(""); IRCItem->port = 6667; + IRCItem->readtimeout = 900; IRCItem->oper = xstrdup("undefined"); IRCItem->username = xstrdup("hopm"); IRCItem->realname = xstrdup("Hybrid Open Proxy Monitor"); diff --git a/src/config.h b/src/config.h index 33335e6..5e56b81 100644 --- a/src/config.h +++ b/src/config.h @@ -2,6 +2,7 @@ #define CONFIG_H #include +#include #include "list.h" #include "libopm/src/opm_types.h" @@ -19,6 +20,7 @@ struct IRCConf char *realname; char *server; int port; + time_t readtimeout; char *password; char *vhost; char *nickserv; diff --git a/src/irc.c b/src/irc.c index 5c08b9c..3a5bb86 100644 --- a/src/irc.c +++ b/src/irc.c @@ -606,8 +606,8 @@ irc_timer(void) delta = present - IRC_LAST; - /* No data in NODATA_TIMEOUT minutes (set in options.h). */ - if (delta >= NODATA_TIMEOUT) + /* No data in IRCItem->readtimeout seconds */ + if (delta >= IRCItem->readtimeout) { log_printf("IRC -> Timeout awaiting data from server."); irc_reconnect(); @@ -615,7 +615,7 @@ irc_timer(void) /* Make sure we dont do this again for a while */ time(&IRC_LAST); } - else if (delta >= NODATA_TIMEOUT / 2) + else if (delta >= IRCItem->readtimeout / 2) { /* * Generate some data so high ping times or bugs in certain diff --git a/src/options.h b/src/options.h index b34d46a..67425e0 100644 --- a/src/options.h +++ b/src/options.h @@ -32,9 +32,4 @@ * connecting (hundreds per minute). Default is 12 hours. */ #define NEG_CACHE_REBUILD (60 * 60 * 12) - -/* Defines time in which bot will timeout * if no data is received - * (default 15 min) */ -#define NODATA_TIMEOUT 900 - #endif /* OPTIONS_H */