From: michael Date: Mon, 22 Dec 2014 19:00:47 +0000 (+0000) Subject: - Added support for time/size units X-Git-Tag: 1.0.0beta1~58 X-Git-Url: http://git.serene-ircd.net/?a=commitdiff_plain;h=3c4885afb7f05f86a1270438922cb8be2bf0b90e;p=hopm.git - Added support for time/size units git-svn-id: svn://svn.ircd-hybrid.org/svnroot/hopm/trunk@5080 82007160-df01-0410-b94d-b575c5fd34c7 --- diff --git a/doc/reference.conf b/doc/reference.conf index f506586..3116e50 100644 --- a/doc/reference.conf +++ b/doc/reference.conf @@ -12,8 +12,8 @@ options { pidfile = "/some/path/hopm.pid"; /* - * How many seconds to store the IP address of hosts which are - * confirmed (by previous scans) to be secure. New users from these + * How long to store the IP address of hosts which are confirmed + * (by previous scans) to be secure. New users from these * IP addresses will not be scanned again until this amount of time * has passed. IT IS STRONGLY RECOMMENDED THAT YOU DO NOT USE THIS * DIRECTIVE, but it is provided due to demand. @@ -25,7 +25,7 @@ options { * * Keep this directive commented out to disable negative caching. */ -# negcache = 3600; +# negcache = 1 hour; /* * Amount of file descriptors to allocate to asynchronous DNS. 64 @@ -466,14 +466,14 @@ scanner { * that send endless data to tie up your scanner. 4KB is plenty for * any known proxy. */ - max_read = 4096; + max_read = 4kb; /* - * Amount of time (in seconds) before a test is considered timed out. + * Amount of time before a test is considered timed out. * Again, all but the poorest slowest proxies will be detected within * 30 seconds, and this helps keep resource usage low. */ - timeout = 30; + timeout = 30 seconds; /* * Target IP to tell the proxy to connect to diff --git a/src/config-lexer.c b/src/config-lexer.c index 499beb0..102c619 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 63 -#define YY_END_OF_BUFFER 64 +#define YY_NUM_RULES 89 +#define YY_END_OF_BUFFER 90 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -374,39 +374,46 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[285] = +static yyconst flex_int16_t yy_accept[344] = { 0, - 61, 61, 64, 62, 61, 60, 62, 2, 62, 53, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 61, 60, 0, 3, 2, 1, 2, 53, 0, 0, - 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 58, 0, 56, + 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, + 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, 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, 15, - 17, 0, 0, 0, 0, 0, 0, 0, 59, 0, + 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 0, 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, 0, 0, 0, 0, - 0, 55, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 47, 0, 0, 18, 0, 20, 21, 0, 23, + 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, + 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, 54, 43, 44, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, - 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 0, 0, 0, 0, 0, 0, 0, 12, - - 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 0, 38, 49, 50, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 27, 0, 29, 30, 0, 0, 35, - 36, 0, 0, 42, 0, 51, 0, 0, 0, 0, - 11, 0, 48, 19, 22, 24, 28, 32, 33, 37, - 0, 0, 0, 45, 0, 6, 8, 0, 0, 39, - 0, 0, 0, 10, 0, 0, 0, 5, 9, 40, - 0, 0, 41, 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 } ; static yyconst flex_int32_t yy_ec[256] = @@ -451,77 +458,91 @@ static yyconst flex_int32_t yy_meta[58] = 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[288] = +static yyconst flex_int16_t yy_base[347] = { 0, - 0, 0, 497, 570, 245, 0, 55, 0, 54, 54, - 34, 55, 49, 45, 37, 60, 42, 49, 62, 91, - 93, 93, 132, 90, 98, 133, 52, 64, 67, 106, - 132, 0, 77, 570, 0, 570, 0, 115, 119, 108, - 137, 138, 127, 126, 142, 139, 570, 133, 132, 150, - 131, 146, 164, 155, 148, 161, 166, 570, 176, 570, - 182, 168, 172, 185, 174, 177, 201, 176, 195, 185, - 194, 183, 191, 185, 192, 203, 203, 216, 213, 210, - 93, 231, 222, 223, 237, 226, 225, 228, 235, 570, - 570, 232, 236, 86, 242, 243, 246, 240, 570, 235, - - 570, 243, 238, 250, 258, 247, 259, 267, 270, 264, - 270, 280, 265, 276, 280, 285, 286, 287, 277, 277, - 288, 570, 570, 277, 287, 285, 283, 289, 297, 289, - 307, 298, 307, 321, 570, 313, 570, 570, 329, 314, - 570, 318, 312, 320, 326, 570, 324, 326, 317, 336, - 331, 331, 340, 329, 342, 334, 570, 570, 338, 334, - 359, 348, 362, 369, 372, 85, 374, 361, 570, 366, - 376, 570, 377, 380, 381, 374, 374, 373, 379, 388, - 391, 570, 377, 380, 390, 395, 383, 75, 382, 389, - 408, 570, 403, 412, 416, 415, 420, 422, 418, 570, - - 413, 570, 430, 426, 419, 419, 421, 426, 434, 427, - 430, 570, 436, 428, 438, 570, 570, 570, 54, 430, - 444, 452, 456, 453, 570, 468, 458, 461, 467, 459, - 474, 474, 462, 570, 479, 570, 570, 473, 480, 570, - 570, 475, 496, 570, 483, 570, 476, 473, 470, 481, - 570, 484, 570, 570, 570, 570, 570, 570, 570, 570, - 489, 503, 500, 570, 500, 570, 570, 510, 514, 570, - 508, 509, 513, 570, 509, 512, 522, 570, 570, 570, - 519, 526, 570, 570, 86, 567, 77 + 0, 0, 169, 689, 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, + 152, 153, 171, 156, 159, 175, 182, 182, 178, 201, + 196, 207, 200, 206, 211, 689, 210, 689, 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 } ; -static yyconst flex_int16_t yy_def[288] = +static yyconst flex_int16_t yy_def[347] = { 0, - 284, 1, 284, 284, 284, 285, 286, 287, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 285, 286, 284, 287, 284, 287, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 0, 284, 284, 284 + 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 } ; -static yyconst flex_int16_t yy_nxt[628] = +static yyconst flex_int16_t yy_nxt[747] = { 0, 4, 5, 6, 7, 8, 4, 9, 10, 10, 10, 11, 12, 13, 14, 15, 16, 4, 17, 18, 19, @@ -529,72 +550,85 @@ static yyconst flex_int16_t yy_nxt[628] = 29, 4, 30, 4, 11, 12, 13, 14, 15, 16, 4, 17, 18, 19, 4, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 4, 30, 34, 34, 36, - 37, 38, 38, 38, 39, 40, 42, 44, 45, 48, - 46, 49, 43, 47, 50, 41, 51, 35, 76, 34, - 34, 77, 52, 217, 218, 78, 32, 243, 39, 40, - 42, 44, 45, 48, 46, 49, 43, 47, 50, 41, - - 51, 53, 76, 55, 67, 77, 52, 56, 59, 78, - 69, 57, 70, 68, 54, 60, 58, 61, 198, 136, - 79, 71, 38, 38, 38, 53, 124, 55, 67, 80, - 81, 56, 59, 31, 69, 57, 70, 68, 54, 60, - 58, 61, 62, 72, 79, 71, 63, 82, 83, 84, - 64, 73, 85, 80, 81, 65, 86, 66, 74, 87, - 88, 89, 90, 91, 92, 75, 62, 72, 95, 96, - 63, 82, 83, 84, 64, 73, 85, 97, 98, 65, - 86, 66, 74, 87, 88, 89, 90, 91, 92, 75, - 93, 99, 95, 96, 103, 94, 100, 104, 105, 106, - - 107, 97, 98, 101, 110, 111, 114, 112, 115, 102, - 113, 108, 116, 117, 93, 99, 118, 119, 103, 94, - 100, 104, 105, 106, 107, 109, 120, 101, 110, 111, - 114, 112, 115, 102, 113, 108, 116, 117, 121, 122, - 118, 119, 123, 125, 126, 127, 31, 130, 128, 109, - 120, 131, 132, 133, 134, 135, 137, 138, 139, 140, - 141, 142, 121, 122, 143, 144, 123, 125, 126, 127, - 129, 130, 128, 145, 146, 131, 132, 133, 134, 135, - 137, 138, 139, 140, 141, 142, 147, 148, 143, 144, - 149, 150, 151, 152, 153, 154, 155, 145, 146, 156, - - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 147, 148, 167, 168, 149, 150, 151, 152, 153, 154, - 155, 169, 170, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 171, 172, 167, 168, 173, 174, - 175, 176, 177, 178, 179, 169, 170, 180, 181, 182, - 183, 184, 186, 185, 187, 188, 189, 190, 171, 172, - 191, 192, 173, 174, 175, 176, 177, 178, 179, 193, - 194, 180, 181, 182, 183, 184, 186, 185, 187, 188, - 189, 190, 195, 196, 191, 192, 197, 199, 200, 201, - 202, 203, 204, 193, 194, 205, 206, 207, 208, 209, - - 210, 211, 212, 213, 214, 215, 195, 196, 216, 219, - 197, 199, 200, 201, 202, 203, 204, 220, 221, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 222, 223, 216, 219, 224, 225, 226, 227, 229, 230, - 231, 220, 221, 232, 233, 234, 235, 236, 237, 228, - 238, 239, 240, 241, 222, 223, 242, 244, 224, 225, - 226, 227, 229, 230, 231, 245, 246, 232, 233, 234, - 235, 236, 237, 228, 238, 239, 240, 241, 247, 248, - 242, 244, 249, 250, 251, 252, 253, 254, 255, 245, - 246, 256, 257, 258, 259, 260, 284, 264, 284, 265, - - 266, 267, 247, 248, 268, 269, 249, 250, 251, 252, - 253, 254, 255, 270, 261, 256, 257, 258, 259, 260, - 262, 264, 263, 265, 266, 267, 271, 272, 268, 269, - 273, 274, 275, 276, 277, 278, 279, 270, 261, 280, - 281, 282, 283, 284, 262, 284, 263, 284, 284, 284, - 271, 272, 284, 284, 273, 274, 275, 276, 277, 278, - 279, 284, 284, 280, 281, 282, 283, 33, 33, 3, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284 + 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, + 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, + 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, + 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, + + 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, + 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, + 138, 139, 126, 140, 141, 142, 144, 146, 147, 148, + 130, 149, 134, 150, 151, 135, 127, 153, 154, 136, + 131, 143, 137, 132, 138, 139, 155, 140, 141, 142, + + 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, + 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, + 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 } ; -static yyconst flex_int16_t yy_chk[628] = +static yyconst flex_int16_t yy_chk[747] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -602,69 +636,82 @@ static yyconst flex_int16_t yy_chk[628] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 17, - 16, 18, 13, 16, 18, 12, 19, 287, 27, 33, - 33, 28, 19, 188, 188, 29, 285, 219, 11, 12, - 13, 14, 15, 17, 16, 18, 13, 16, 18, 12, - - 19, 20, 27, 21, 24, 28, 19, 21, 22, 29, - 25, 21, 25, 24, 20, 22, 21, 22, 166, 94, - 30, 25, 38, 38, 38, 20, 81, 21, 24, 39, - 40, 21, 22, 31, 25, 21, 25, 24, 20, 22, - 21, 22, 23, 26, 30, 25, 23, 41, 42, 43, - 23, 26, 44, 39, 40, 23, 45, 23, 26, 46, - 48, 49, 50, 51, 52, 26, 23, 26, 54, 55, - 23, 41, 42, 43, 23, 26, 44, 56, 57, 23, - 45, 23, 26, 46, 48, 49, 50, 51, 52, 26, - 53, 59, 54, 55, 62, 53, 61, 63, 64, 65, - - 66, 56, 57, 61, 68, 69, 71, 70, 72, 61, - 70, 67, 73, 74, 53, 59, 75, 76, 62, 53, - 61, 63, 64, 65, 66, 67, 77, 61, 68, 69, - 71, 70, 72, 61, 70, 67, 73, 74, 78, 79, - 75, 76, 80, 82, 83, 84, 5, 86, 85, 67, - 77, 87, 88, 89, 92, 93, 95, 96, 97, 98, - 100, 102, 78, 79, 103, 104, 80, 82, 83, 84, - 85, 86, 85, 105, 106, 87, 88, 89, 92, 93, - 95, 96, 97, 98, 100, 102, 107, 108, 103, 104, - 109, 110, 111, 112, 113, 114, 115, 105, 106, 116, - - 117, 118, 119, 120, 121, 124, 125, 126, 127, 128, - 107, 108, 129, 130, 109, 110, 111, 112, 113, 114, - 115, 131, 132, 116, 117, 118, 119, 120, 121, 124, - 125, 126, 127, 128, 133, 134, 129, 130, 136, 139, - 140, 142, 143, 144, 145, 131, 132, 147, 148, 149, - 150, 151, 152, 151, 153, 154, 155, 156, 133, 134, - 159, 160, 136, 139, 140, 142, 143, 144, 145, 161, - 162, 147, 148, 149, 150, 151, 152, 151, 153, 154, - 155, 156, 163, 164, 159, 160, 165, 167, 168, 170, - 171, 173, 174, 161, 162, 175, 176, 177, 178, 179, - - 180, 181, 183, 184, 185, 186, 163, 164, 187, 189, - 165, 167, 168, 170, 171, 173, 174, 190, 191, 175, - 176, 177, 178, 179, 180, 181, 183, 184, 185, 186, - 193, 194, 187, 189, 195, 196, 197, 198, 199, 201, - 203, 190, 191, 204, 205, 206, 207, 208, 209, 198, - 210, 211, 213, 214, 193, 194, 215, 220, 195, 196, - 197, 198, 199, 201, 203, 221, 222, 204, 205, 206, - 207, 208, 209, 198, 210, 211, 213, 214, 223, 224, - 215, 220, 226, 227, 228, 229, 230, 231, 232, 221, - 222, 233, 235, 238, 239, 242, 3, 245, 0, 247, - - 248, 249, 223, 224, 250, 252, 226, 227, 228, 229, - 230, 231, 232, 261, 243, 233, 235, 238, 239, 242, - 243, 245, 243, 247, 248, 249, 262, 263, 250, 252, - 265, 268, 269, 271, 272, 273, 275, 261, 243, 276, - 277, 281, 282, 0, 243, 0, 243, 0, 0, 0, - 262, 263, 0, 0, 265, 268, 269, 271, 272, 273, - 275, 0, 0, 276, 277, 281, 282, 286, 286, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284 + 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, + 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, + 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, + 42, 31, 43, 20, 20, 26, 5, 20, 3, 44, + 45, 20, 46, 26, 47, 48, 20, 23, 50, 51, + 26, 23, 52, 53, 42, 23, 43, 26, 54, 26, + 23, 55, 23, 44, 45, 56, 46, 26, 47, 48, + + 57, 23, 50, 51, 26, 23, 52, 53, 58, 23, + 59, 26, 54, 58, 23, 55, 23, 60, 61, 56, + 62, 63, 64, 65, 57, 67, 69, 70, 71, 62, + 72, 73, 58, 69, 59, 74, 76, 58, 0, 69, + 77, 60, 61, 79, 62, 63, 64, 65, 75, 67, + 69, 70, 71, 62, 72, 73, 78, 69, 80, 74, + 76, 81, 75, 69, 77, 82, 78, 79, 83, 78, + 84, 85, 75, 86, 87, 88, 89, 91, 92, 93, + 78, 94, 80, 95, 96, 81, 75, 97, 98, 82, + 78, 88, 83, 78, 84, 85, 99, 86, 87, 88, + + 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 } ; static yy_state_type yy_last_accepting_state; @@ -724,7 +771,7 @@ void ccomment(void); int linenum = 1; char linebuf[512]; -#line 728 "config-lexer.c" +#line 775 "config-lexer.c" #define INITIAL 0 @@ -934,7 +981,7 @@ YY_DECL #line 52 "config-lexer.l" -#line 938 "config-lexer.c" +#line 985 "config-lexer.c" while ( 1 ) /* loops until end-of-file is reached */ { @@ -967,13 +1014,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 >= 285 ) + if ( yy_current_state >= 344 ) 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] != 570 ); + while ( yy_base[yy_current_state] != 689 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1267,134 +1314,264 @@ YY_RULE_SETUP YY_BREAK case 47: YY_RULE_SETUP +#line 141 "config-lexer.l" +{ return YEARS; } + YY_BREAK +case 48: +YY_RULE_SETUP #line 142 "config-lexer.l" +{ return YEARS; } + YY_BREAK +case 49: +YY_RULE_SETUP +#line 143 "config-lexer.l" +{ return MONTHS; } + YY_BREAK +case 50: +YY_RULE_SETUP +#line 144 "config-lexer.l" +{ return MONTHS; } + YY_BREAK +case 51: +YY_RULE_SETUP +#line 145 "config-lexer.l" +{ return WEEKS; } + YY_BREAK +case 52: +YY_RULE_SETUP +#line 146 "config-lexer.l" +{ return WEEKS; } + YY_BREAK +case 53: +YY_RULE_SETUP +#line 147 "config-lexer.l" +{ return DAYS; } + YY_BREAK +case 54: +YY_RULE_SETUP +#line 148 "config-lexer.l" +{ return DAYS; } + YY_BREAK +case 55: +YY_RULE_SETUP +#line 149 "config-lexer.l" +{ return HOURS; } + YY_BREAK +case 56: +YY_RULE_SETUP +#line 150 "config-lexer.l" +{ return HOURS; } + YY_BREAK +case 57: +YY_RULE_SETUP +#line 151 "config-lexer.l" +{ return MINUTES; } + YY_BREAK +case 58: +YY_RULE_SETUP +#line 152 "config-lexer.l" +{ return MINUTES; } + YY_BREAK +case 59: +YY_RULE_SETUP +#line 153 "config-lexer.l" +{ return SECONDS; } + YY_BREAK +case 60: +YY_RULE_SETUP +#line 154 "config-lexer.l" +{ return SECONDS; } + YY_BREAK +case 61: +YY_RULE_SETUP +#line 156 "config-lexer.l" +{ return BYTES; } + YY_BREAK +case 62: +YY_RULE_SETUP +#line 157 "config-lexer.l" +{ return BYTES; } + YY_BREAK +case 63: +YY_RULE_SETUP +#line 158 "config-lexer.l" +{ return KBYTES; } + YY_BREAK +case 64: +YY_RULE_SETUP +#line 159 "config-lexer.l" +{ return KBYTES; } + YY_BREAK +case 65: +YY_RULE_SETUP +#line 160 "config-lexer.l" +{ return KBYTES; } + YY_BREAK +case 66: +YY_RULE_SETUP +#line 161 "config-lexer.l" +{ return KBYTES; } + YY_BREAK +case 67: +YY_RULE_SETUP +#line 162 "config-lexer.l" +{ return KBYTES; } + YY_BREAK +case 68: +YY_RULE_SETUP +#line 163 "config-lexer.l" +{ return MBYTES; } + YY_BREAK +case 69: +YY_RULE_SETUP +#line 164 "config-lexer.l" +{ return MBYTES; } + YY_BREAK +case 70: +YY_RULE_SETUP +#line 165 "config-lexer.l" +{ return MBYTES; } + YY_BREAK +case 71: +YY_RULE_SETUP +#line 166 "config-lexer.l" +{ return MBYTES; } + YY_BREAK +case 72: +YY_RULE_SETUP +#line 167 "config-lexer.l" +{ return MBYTES; } + YY_BREAK +case 73: +YY_RULE_SETUP +#line 169 "config-lexer.l" { yylval.number = OPM_TYPE_HTTP; return PROTOCOLTYPE; } YY_BREAK -case 48: +case 74: YY_RULE_SETUP -#line 147 "config-lexer.l" +#line 174 "config-lexer.l" { yylval.number = OPM_TYPE_HTTPPOST; return PROTOCOLTYPE; } YY_BREAK -case 49: +case 75: YY_RULE_SETUP -#line 152 "config-lexer.l" +#line 179 "config-lexer.l" { yylval.number = OPM_TYPE_SOCKS4; return PROTOCOLTYPE; } YY_BREAK -case 50: +case 76: YY_RULE_SETUP -#line 157 "config-lexer.l" +#line 184 "config-lexer.l" { yylval.number = OPM_TYPE_SOCKS5; return PROTOCOLTYPE; } YY_BREAK -case 51: +case 77: YY_RULE_SETUP -#line 162 "config-lexer.l" +#line 189 "config-lexer.l" { yylval.number = OPM_TYPE_WINGATE; return PROTOCOLTYPE; } YY_BREAK -case 52: +case 78: YY_RULE_SETUP -#line 167 "config-lexer.l" +#line 194 "config-lexer.l" { yylval.number = OPM_TYPE_ROUTER; return PROTOCOLTYPE; } YY_BREAK -case 53: +case 79: YY_RULE_SETUP -#line 173 "config-lexer.l" +#line 200 "config-lexer.l" { yylval.number=atoi(yytext); return NUMBER; } YY_BREAK -case 54: +case 80: YY_RULE_SETUP -#line 182 "config-lexer.l" +#line 209 "config-lexer.l" { yylval.number=1; return NUMBER; } YY_BREAK -case 55: +case 81: YY_RULE_SETUP -#line 186 "config-lexer.l" +#line 213 "config-lexer.l" { yylval.number=1; return NUMBER; } YY_BREAK -case 56: +case 82: YY_RULE_SETUP -#line 190 "config-lexer.l" +#line 217 "config-lexer.l" { yylval.number=1; return NUMBER; } YY_BREAK -case 57: +case 83: YY_RULE_SETUP -#line 197 "config-lexer.l" +#line 224 "config-lexer.l" { yylval.number=0; return NUMBER; } YY_BREAK -case 58: +case 84: YY_RULE_SETUP -#line 202 "config-lexer.l" +#line 229 "config-lexer.l" { yylval.number=0; return NUMBER; } YY_BREAK -case 59: +case 85: YY_RULE_SETUP -#line 207 "config-lexer.l" +#line 234 "config-lexer.l" { yylval.number=0; return NUMBER; } YY_BREAK -case 60: -/* rule 60 can match eol */ +case 86: +/* rule 86 can match eol */ YY_RULE_SETUP -#line 213 "config-lexer.l" +#line 240 "config-lexer.l" { strlcpy(linebuf, yytext + 1, sizeof(linebuf)); ++linenum; yyless(1); } YY_BREAK -case 61: +case 87: YY_RULE_SETUP -#line 219 "config-lexer.l" +#line 246 "config-lexer.l" /* ignore whitespace */; YY_BREAK -case 62: +case 88: YY_RULE_SETUP -#line 221 "config-lexer.l" +#line 248 "config-lexer.l" return yytext[0]; YY_BREAK -case 63: +case 89: YY_RULE_SETUP -#line 223 "config-lexer.l" +#line 250 "config-lexer.l" ECHO; YY_BREAK -#line 1398 "config-lexer.c" +#line 1575 "config-lexer.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -1687,7 +1864,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 >= 285 ) + if ( yy_current_state >= 344 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1715,11 +1892,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 >= 285 ) + if ( yy_current_state >= 344 ) 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 == 284); + yy_is_jam = (yy_current_state == 343); return yy_is_jam ? 0 : yy_current_state; } @@ -2352,7 +2529,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 223 "config-lexer.l" +#line 250 "config-lexer.l" diff --git a/src/config-lexer.l b/src/config-lexer.l index 71ae0f6..24edf46 100644 --- a/src/config-lexer.l +++ b/src/config-lexer.l @@ -138,6 +138,33 @@ USER { return USER; } USERNAME { return USERNAME; } VHOST { return VHOST; } +years { return YEARS; } +year { return YEARS; } +months { return MONTHS; } +month { return MONTHS; } +weeks { return WEEKS; } +week { return WEEKS; } +days { return DAYS; } +day { return DAYS; } +hours { return HOURS; } +hour { return HOURS; } +minutes { return MINUTES; } +minute { return MINUTES; } +seconds { return SECONDS; } +second { return SECONDS; } + +bytes { return BYTES; } +byte { return BYTES; } +kilobytes { return KBYTES; } +kilobyte { return KBYTES; } +kbytes { return KBYTES; } +kbyte { return KBYTES; } +kb { return KBYTES; } +megabytes { return MBYTES; } +megabyte { return MBYTES; } +mbytes { return MBYTES; } +mbyte { return MBYTES; } +mb { return MBYTES; } HTTP { yylval.number = OPM_TYPE_HTTP; diff --git a/src/config-parser.c b/src/config-parser.c index 61e5ee5..c1785d2 100644 --- a/src/config-parser.c +++ b/src/config-parser.c @@ -113,110 +113,130 @@ extern int yydebug; AWAY = 258, BAN_UNKNOWN = 259, BLACKLIST = 260, - CHANNEL = 261, - CONNREGEX = 262, - DNS_FDLIMIT = 263, - DNSBL_FROM = 264, - DNSBL_TO = 265, - EXEMPT = 266, - FD = 267, - INVITE = 268, - IRC = 269, - KLINE = 270, - KEY = 271, - MASK = 272, - MAX_READ = 273, - MODE = 274, - NAME = 275, - NEGCACHE = 276, - NICK = 277, - NICKSERV = 278, - OPER = 279, - OPM = 280, - OPTIONS = 281, - PASSWORD = 282, - PERFORM = 283, - PIDFILE = 284, - PORT = 285, - PROTOCOL = 286, - REALNAME = 287, - REPLY = 288, - SCANLOG = 289, - SCANNER = 290, - SENDMAIL = 291, - SERVER = 292, - TARGET_IP = 293, - TARGET_PORT = 294, - TARGET_STRING = 295, - TIMEOUT = 296, - TYPE = 297, - USERNAME = 298, - USER = 299, - VHOST = 300, - NUMBER = 301, - STRING = 302, - PROTOCOLTYPE = 303 + BYTES = 261, + KBYTES = 262, + MBYTES = 263, + CHANNEL = 264, + CONNREGEX = 265, + DNS_FDLIMIT = 266, + DNSBL_FROM = 267, + DNSBL_TO = 268, + EXEMPT = 269, + FD = 270, + INVITE = 271, + IRC = 272, + KLINE = 273, + KEY = 274, + MASK = 275, + MAX_READ = 276, + MODE = 277, + NAME = 278, + NEGCACHE = 279, + NICK = 280, + NICKSERV = 281, + OPER = 282, + OPM = 283, + OPTIONS = 284, + PASSWORD = 285, + PERFORM = 286, + 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 }; #endif /* Tokens. */ #define AWAY 258 #define BAN_UNKNOWN 259 #define BLACKLIST 260 -#define CHANNEL 261 -#define CONNREGEX 262 -#define DNS_FDLIMIT 263 -#define DNSBL_FROM 264 -#define DNSBL_TO 265 -#define EXEMPT 266 -#define FD 267 -#define INVITE 268 -#define IRC 269 -#define KLINE 270 -#define KEY 271 -#define MASK 272 -#define MAX_READ 273 -#define MODE 274 -#define NAME 275 -#define NEGCACHE 276 -#define NICK 277 -#define NICKSERV 278 -#define OPER 279 -#define OPM 280 -#define OPTIONS 281 -#define PASSWORD 282 -#define PERFORM 283 -#define PIDFILE 284 -#define PORT 285 -#define PROTOCOL 286 -#define REALNAME 287 -#define REPLY 288 -#define SCANLOG 289 -#define SCANNER 290 -#define SENDMAIL 291 -#define SERVER 292 -#define TARGET_IP 293 -#define TARGET_PORT 294 -#define TARGET_STRING 295 -#define TIMEOUT 296 -#define TYPE 297 -#define USERNAME 298 -#define USER 299 -#define VHOST 300 -#define NUMBER 301 -#define STRING 302 -#define PROTOCOLTYPE 303 +#define BYTES 261 +#define KBYTES 262 +#define MBYTES 263 +#define CHANNEL 264 +#define CONNREGEX 265 +#define DNS_FDLIMIT 266 +#define DNSBL_FROM 267 +#define DNSBL_TO 268 +#define EXEMPT 269 +#define FD 270 +#define INVITE 271 +#define IRC 272 +#define KLINE 273 +#define KEY 274 +#define MASK 275 +#define MAX_READ 276 +#define MODE 277 +#define NAME 278 +#define NEGCACHE 279 +#define NICK 280 +#define NICKSERV 281 +#define OPER 282 +#define OPM 283 +#define OPTIONS 284 +#define PASSWORD 285 +#define PERFORM 286 +#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 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE YYSTYPE; union YYSTYPE { -#line 83 "config-parser.y" /* yacc.c:355 */ +#line 85 "config-parser.y" /* yacc.c:355 */ int number; char *string; -#line 220 "config-parser.c" /* yacc.c:355 */ +#line 240 "config-parser.c" /* yacc.c:355 */ }; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -231,7 +251,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 235 "config-parser.c" /* yacc.c:358 */ +#line 255 "config-parser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -473,21 +493,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 279 +#define YYLAST 301 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 54 +#define YYNTOKENS 64 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 74 +#define YYNNTS 78 /* YYNRULES -- Number of rules. */ -#define YYNRULES 131 +#define YYNRULES 147 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 293 +#define YYNSTATES 319 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 303 +#define YYMAXUTOK 313 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -501,14 +521,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, 53, 51, - 2, 52, 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, 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, 49, 2, 50, 2, 2, 2, 2, + 2, 2, 2, 59, 2, 60, 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, @@ -526,27 +546,29 @@ static const yytype_uint8 yytranslate[] = 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48 + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 94, 94, 95, 98, 99, 100, 101, 102, 103, - 108, 110, 111, 113, 114, 115, 116, 117, 119, 124, - 130, 135, 143, 145, 146, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 165, 171, 177, 183, 189, 195, 201, 207, 215, - 220, 226, 232, 238, 244, 254, 254, 271, 272, 274, - 275, 276, 278, 286, 294, 305, 305, 321, 322, 324, - 325, 326, 328, 338, 351, 351, 396, 397, 399, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 410, 417, - 424, 431, 447, 453, 459, 465, 471, 490, 492, 493, - 495, 496, 497, 498, 499, 501, 507, 513, 522, 522, - 541, 542, 544, 545, 546, 547, 548, 549, 551, 558, - 565, 576, 582, 584, 585, 587, 605, 607, 608, 610, - 611, 613 + 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 }; #endif @@ -556,14 +578,16 @@ static const yytype_uint16 yyrline[] = static const char *const yytname[] = { "$end", "error", "$undefined", "AWAY", "BAN_UNKNOWN", "BLACKLIST", - "CHANNEL", "CONNREGEX", "DNS_FDLIMIT", "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", "SENDMAIL", "SERVER", "TARGET_IP", - "TARGET_PORT", "TARGET_STRING", "TIMEOUT", "TYPE", "USERNAME", "USER", - "VHOST", "NUMBER", "STRING", "PROTOCOLTYPE", "'{'", "'}'", "';'", "'='", - "':'", "$accept", "config", "config_items", "options_entry", + "BYTES", "KBYTES", "MBYTES", "CHANNEL", "CONNREGEX", "DNS_FDLIMIT", + "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", "options_dns_fdlimit", "options_scanlog", "irc_entry", "irc_items", "irc_item", "irc_away", "irc_kline", "irc_mode", "irc_nick", @@ -593,17 +617,18 @@ static const yytype_uint16 yytoknum[] = 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 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, 123, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 123, 125, 59, 61, 58 }; # endif -#define YYPACT_NINF -93 +#define YYPACT_NINF -157 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-93))) + (!!((Yystate) == (-157))) -#define YYTABLE_NINF -109 +#define YYTABLE_NINF -125 #define yytable_value_is_error(Yytable_value) \ 0 @@ -612,36 +637,38 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -93, 124, -93, -39, -33, -32, -16, -93, -93, -93, - -93, -9, -93, 26, -93, -93, 11, 78, 138, 70, - 14, 16, -93, 17, 8, -93, -93, -93, 18, 20, - 24, 30, 31, 35, 37, 43, 55, 60, 61, 64, - 66, 67, -1, -93, -93, -93, -93, -93, -93, -93, - -93, -93, -93, -93, -93, -93, -93, -93, -93, 62, - -93, 68, 73, 74, 10, -93, -93, -93, -93, -93, - 85, -93, 75, 82, 88, 89, 46, -93, -93, -93, - -93, -93, 39, 91, 19, 47, -93, 90, 95, 97, - 98, 104, 105, 106, 107, 109, 111, 114, 115, 116, - 117, 118, -93, 119, 120, 123, 125, 122, -93, 126, - 112, 130, 131, 132, 129, -93, -93, 108, 133, 38, - -93, -93, -93, -93, 134, 135, 136, 137, 139, 140, - 141, 142, 143, 12, -93, -93, -93, -93, -93, -93, - -93, -93, -93, -93, 145, -93, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - -93, 21, 160, 161, 162, -93, 113, 163, 164, 165, - 166, -93, 171, 172, 169, -93, 144, 175, 176, 174, - 177, 179, 180, 182, 183, 178, -93, -93, -93, -93, - -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, - -93, -93, 181, 184, 185, -12, -93, -93, -93, -93, - -93, -93, -93, -93, 186, 187, 188, 128, 189, 44, - -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, - 191, 192, -93, 193, 194, 195, 173, 196, 197, 198, - 199, 200, -93, 205, 206, 207, 204, -93, 210, 211, - 212, 214, 215, 213, -93, -93, -93, -93, -93, -93, - 217, -93, -93, -93, -93, -93, 216, 218, 219, -93, - 220, 221, 222, 209, -43, -93, 223, -93, 224, -93, - -93, -93, -93, -93, -93, 229, 226, -93, -93, -93, - 227, -93, -93 + -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 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -649,62 +676,64 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 65, 1, 0, 0, 0, 0, 3, 5, 4, + 2, 81, 1, 0, 0, 0, 0, 3, 5, 4, 7, 0, 8, 0, 6, 9, 0, 0, 0, 0, - 0, 0, 130, 0, 0, 128, 129, 40, 0, 0, + 0, 0, 146, 0, 0, 144, 145, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 24, 25, 27, 30, 28, 29, 31, - 32, 38, 33, 34, 35, 36, 37, 26, 39, 0, - 104, 0, 0, 0, 0, 99, 100, 101, 102, 103, - 0, 17, 0, 0, 0, 0, 0, 12, 13, 14, - 15, 16, 0, 0, 0, 0, 127, 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, 0, 0, 0, 0, 0, 0, - 0, 0, 23, 0, 0, 0, 0, 0, 98, 0, - 0, 0, 0, 0, 0, 11, 71, 0, 0, 0, - 68, 69, 70, 87, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 78, 79, 81, 83, 80, - 82, 85, 86, 84, 0, 126, 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, - 22, 0, 0, 0, 0, 97, 0, 0, 0, 0, - 0, 10, 0, 0, 0, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 76, 131, 41, 54, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 0, 0, 0, 0, 58, 59, 60, 61, - 105, 106, 107, 117, 0, 0, 0, 0, 0, 0, - 111, 112, 114, 113, 115, 116, 20, 18, 19, 21, - 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 75, 0, 0, 0, 0, 57, 0, 0, - 0, 0, 0, 0, 110, 72, 73, 92, 95, 88, - 0, 90, 93, 91, 94, 89, 0, 0, 0, 56, - 0, 0, 0, 0, 0, 124, 0, 109, 0, 64, - 63, 62, 121, 119, 118, 0, 0, 123, 120, 96, - 0, 122, 125 + 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 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -93, -93, -93, -93, -93, 190, -93, -93, -93, -93, - -93, -93, 237, -93, -93, -93, -93, -93, -93, -93, - -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, - -40, -93, -93, -93, -93, -93, -93, 52, -93, -93, - -93, -93, -93, 33, -93, -93, -93, -93, -93, -93, - -93, -93, -93, -93, -93, 167, -93, -93, -93, -93, - -93, -93, -38, -93, -93, -93, -93, -93, -93, -92, - -93, -93, 208, -93 + -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 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 7, 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, 205, - 206, 207, 208, 209, 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, 219, 220, 221, 222, 223, 224, 225, 274, 275, - 15, 24, 25, 26 + -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 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -712,140 +741,150 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 27, 202, 28, 273, 203, -55, 29, 286, 204, 22, - 16, 60, 22, 123, 30, -108, 17, 18, 31, 61, - 62, 32, 33, 34, 124, 23, 35, 36, 23, 37, - 125, 38, 126, 19, 202, 20, 39, 203, 246, 116, - 116, 204, 40, 127, 41, 213, 63, 71, 214, 101, - 128, 129, 130, 131, 72, 117, 117, 132, 85, 215, - 107, 21, 185, 82, 216, 83, 144, 73, 103, 84, - 87, 71, 88, 118, 118, 74, 89, 217, 72, 27, - 75, 28, 90, 91, -55, 29, 218, 92, 174, 93, - 109, 73, 123, 30, 253, 94, 114, 31, 145, 74, - 32, 33, 34, 124, 75, 35, 36, 95, 37, 125, - 38, 126, 96, 97, 213, 39, 98, 214, 99, 100, - 104, 40, 127, 41, 2, 105, 106, 110, 215, 128, - 129, 130, 131, 216, 111, 3, 132, 146, 4, 60, - 112, 113, 147, -108, 148, 149, 217, 61, 62, 5, - 6, 150, 151, 152, 153, 218, 154, 155, 167, -74, - 172, 156, 157, 158, 159, 247, 186, 162, 161, 160, - 163, 175, 164, 165, 63, 166, 168, 251, 169, 170, - 171, 254, 287, 0, 0, 173, 176, 177, 178, 179, - 233, 180, 181, 182, 183, 184, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 210, 211, 212, 226, 227, 228, 229, 230, 231, - 232, 234, 236, 235, 237, 238, 260, 239, 240, 242, - 241, 108, 86, 243, 0, 0, 244, 245, 248, 249, - 250, 252, 255, 256, 257, 258, 259, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 0, 271, 272, - 273, 285, 276, 278, 277, 0, 115, 279, 0, 280, - 281, 282, 283, 284, 288, 289, 290, 291, 292, 102 + 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, + 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 }; static const yytype_int16 yycheck[] = { - 1, 13, 3, 46, 16, 6, 7, 50, 20, 1, - 49, 1, 1, 1, 15, 5, 49, 49, 19, 9, - 10, 22, 23, 24, 12, 17, 27, 28, 17, 30, - 18, 32, 20, 49, 13, 44, 37, 16, 50, 1, - 1, 20, 43, 31, 45, 1, 36, 1, 4, 50, - 38, 39, 40, 41, 8, 17, 17, 45, 50, 15, - 50, 35, 50, 49, 20, 49, 47, 21, 6, 52, - 52, 1, 52, 35, 35, 29, 52, 33, 8, 1, - 34, 3, 52, 52, 6, 7, 42, 52, 50, 52, - 5, 21, 1, 15, 50, 52, 50, 19, 51, 29, - 22, 23, 24, 12, 34, 27, 28, 52, 30, 18, - 32, 20, 52, 52, 1, 37, 52, 4, 52, 52, - 52, 43, 31, 45, 0, 52, 52, 52, 15, 38, - 39, 40, 41, 20, 52, 11, 45, 47, 14, 1, - 52, 52, 47, 5, 47, 47, 33, 9, 10, 25, - 26, 47, 47, 47, 47, 42, 47, 46, 46, 35, - 52, 47, 47, 47, 47, 205, 133, 47, 49, 51, - 47, 119, 47, 51, 36, 49, 46, 49, 47, 47, - 51, 219, 274, -1, -1, 52, 52, 52, 52, 52, - 46, 52, 52, 52, 52, 52, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 47, 47, - 51, 46, 48, 47, 47, 46, 53, 47, 46, 51, - 47, 64, 24, 52, -1, -1, 52, 52, 52, 52, - 52, 52, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 47, 47, 47, 51, 46, -1, 47, 47, - 46, 52, 47, 46, 51, -1, 76, 51, -1, 51, - 51, 51, 51, 51, 51, 51, 47, 51, 51, 42 + 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 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 55, 0, 11, 14, 25, 26, 56, 57, 64, - 88, 89, 94, 95, 107, 124, 49, 49, 49, 49, - 44, 35, 1, 17, 125, 126, 127, 1, 3, 7, - 15, 19, 22, 23, 24, 27, 28, 30, 32, 37, - 43, 45, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 1, 9, 10, 36, 108, 109, 110, 111, 112, 113, - 114, 1, 8, 21, 29, 34, 58, 59, 60, 61, - 62, 63, 49, 49, 52, 50, 126, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 50, 66, 6, 52, 52, 52, 50, 109, 5, - 52, 52, 52, 52, 50, 59, 1, 17, 35, 90, - 91, 92, 93, 1, 12, 18, 20, 31, 38, 39, - 40, 41, 45, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 47, 51, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 46, 47, 47, 47, 47, - 51, 49, 47, 47, 47, 51, 49, 46, 46, 47, - 47, 51, 52, 52, 50, 91, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 50, 97, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 13, 16, 20, 83, 84, 85, 86, 87, - 51, 51, 51, 1, 4, 15, 20, 33, 42, 115, - 116, 117, 118, 119, 120, 121, 51, 51, 51, 51, - 47, 47, 51, 46, 46, 47, 48, 47, 46, 47, - 46, 47, 51, 52, 52, 52, 50, 84, 52, 52, - 52, 49, 52, 50, 116, 51, 51, 51, 51, 51, - 53, 51, 51, 51, 51, 51, 47, 47, 47, 51, - 46, 47, 47, 46, 122, 123, 47, 51, 46, 51, - 51, 51, 51, 51, 51, 52, 50, 123, 51, 51, - 47, 51, 51 + 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, + 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 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 54, 55, 55, 56, 56, 56, 56, 56, 56, - 57, 58, 58, 59, 59, 59, 59, 59, 60, 61, - 62, 63, 64, 65, 65, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 82, 81, 83, 83, 84, - 84, 84, 85, 86, 87, 89, 88, 90, 90, 91, - 91, 91, 92, 93, 95, 94, 96, 96, 97, 97, - 97, 97, 97, 97, 97, 97, 97, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 108, - 109, 109, 109, 109, 109, 110, 111, 112, 114, 113, - 115, 115, 116, 116, 116, 116, 116, 116, 117, 118, - 119, 120, 121, 122, 122, 123, 124, 125, 125, 126, - 126, 127 + 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, + 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 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 0, 2, 1, 1, 1, 1, 1, 1, - 5, 2, 1, 1, 1, 1, 1, 1, 4, 4, - 4, 4, 5, 2, 1, 1, 1, 1, 1, 1, + 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, + 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, 4, 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 + 1, 1, 1, 1, 1, 1, 1, 4, 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 }; @@ -1521,169 +1560,253 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 18: -#line 120 "config-parser.y" /* yacc.c:1646 */ + case 10: +#line 111 "config-parser.y" /* yacc.c:1646 */ + { (yyval.number) = 0; } +#line 1567 "config-parser.c" /* yacc.c:1646 */ + break; + + case 12: +#line 112 "config-parser.y" /* yacc.c:1646 */ + { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); } +#line 1573 "config-parser.c" /* yacc.c:1646 */ + break; + + case 13: +#line 113 "config-parser.y" /* yacc.c:1646 */ + { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); } +#line 1579 "config-parser.c" /* yacc.c:1646 */ + break; + + case 14: +#line 114 "config-parser.y" /* yacc.c:1646 */ + { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); } +#line 1585 "config-parser.c" /* yacc.c:1646 */ + break; + + case 15: +#line 115 "config-parser.y" /* yacc.c:1646 */ + { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); } +#line 1591 "config-parser.c" /* yacc.c:1646 */ + break; + + case 16: +#line 116 "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 */ + break; + + case 17: +#line 117 "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 */ + break; + + case 18: +#line 118 "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 */ + break; + + case 19: +#line 119 "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 */ + break; + + case 20: +#line 122 "config-parser.y" /* yacc.c:1646 */ + { (yyval.number) = 0; } +#line 1621 "config-parser.c" /* yacc.c:1646 */ + break; + + case 22: +#line 123 "config-parser.y" /* yacc.c:1646 */ + { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); } +#line 1627 "config-parser.c" /* yacc.c:1646 */ + break; + + case 23: +#line 124 "config-parser.y" /* yacc.c:1646 */ + { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); } +#line 1633 "config-parser.c" /* yacc.c:1646 */ + break; + + case 24: +#line 125 "config-parser.y" /* yacc.c:1646 */ + { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); } +#line 1639 "config-parser.c" /* yacc.c:1646 */ + break; + + case 25: +#line 126 "config-parser.y" /* yacc.c:1646 */ + { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); } +#line 1645 "config-parser.c" /* yacc.c:1646 */ + break; + + case 34: +#line 143 "config-parser.y" /* yacc.c:1646 */ { OptionsItem->negcache = (yyvsp[-1].number); } -#line 1530 "config-parser.c" /* yacc.c:1646 */ +#line 1653 "config-parser.c" /* yacc.c:1646 */ break; - case 19: -#line 125 "config-parser.y" /* yacc.c:1646 */ + case 35: +#line 148 "config-parser.y" /* yacc.c:1646 */ { MyFree(OptionsItem->pidfile); OptionsItem->pidfile = DupString((yyvsp[-1].string)); } -#line 1539 "config-parser.c" /* yacc.c:1646 */ +#line 1662 "config-parser.c" /* yacc.c:1646 */ break; - case 20: -#line 131 "config-parser.y" /* yacc.c:1646 */ + case 36: +#line 154 "config-parser.y" /* yacc.c:1646 */ { OptionsItem->dns_fdlimit = (yyvsp[-1].number); } -#line 1547 "config-parser.c" /* yacc.c:1646 */ +#line 1670 "config-parser.c" /* yacc.c:1646 */ break; - case 21: -#line 136 "config-parser.y" /* yacc.c:1646 */ + case 37: +#line 159 "config-parser.y" /* yacc.c:1646 */ { MyFree(OptionsItem->scanlog); OptionsItem->scanlog = DupString((yyvsp[-1].string)); } -#line 1556 "config-parser.c" /* yacc.c:1646 */ +#line 1679 "config-parser.c" /* yacc.c:1646 */ break; - case 41: -#line 166 "config-parser.y" /* yacc.c:1646 */ + case 57: +#line 189 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->away); IRCItem->away = DupString((yyvsp[-1].string)); } -#line 1565 "config-parser.c" /* yacc.c:1646 */ +#line 1688 "config-parser.c" /* yacc.c:1646 */ break; - case 42: -#line 172 "config-parser.y" /* yacc.c:1646 */ + case 58: +#line 195 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->kline); IRCItem->kline = DupString((yyvsp[-1].string)); } -#line 1574 "config-parser.c" /* yacc.c:1646 */ +#line 1697 "config-parser.c" /* yacc.c:1646 */ break; - case 43: -#line 178 "config-parser.y" /* yacc.c:1646 */ + case 59: +#line 201 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->mode); IRCItem->mode = DupString((yyvsp[-1].string)); } -#line 1583 "config-parser.c" /* yacc.c:1646 */ +#line 1706 "config-parser.c" /* yacc.c:1646 */ break; - case 44: -#line 184 "config-parser.y" /* yacc.c:1646 */ + case 60: +#line 207 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->nick); IRCItem->nick = DupString((yyvsp[-1].string)); } -#line 1592 "config-parser.c" /* yacc.c:1646 */ +#line 1715 "config-parser.c" /* yacc.c:1646 */ break; - case 45: -#line 190 "config-parser.y" /* yacc.c:1646 */ + case 61: +#line 213 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->nickserv); IRCItem->nickserv = DupString((yyvsp[-1].string)); } -#line 1601 "config-parser.c" /* yacc.c:1646 */ +#line 1724 "config-parser.c" /* yacc.c:1646 */ break; - case 46: -#line 196 "config-parser.y" /* yacc.c:1646 */ + case 62: +#line 219 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->oper); IRCItem->oper = DupString((yyvsp[-1].string)); } -#line 1610 "config-parser.c" /* yacc.c:1646 */ +#line 1733 "config-parser.c" /* yacc.c:1646 */ break; - case 47: -#line 202 "config-parser.y" /* yacc.c:1646 */ + case 63: +#line 225 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->password); IRCItem->password = DupString((yyvsp[-1].string)); } -#line 1619 "config-parser.c" /* yacc.c:1646 */ +#line 1742 "config-parser.c" /* yacc.c:1646 */ break; - case 48: -#line 208 "config-parser.y" /* yacc.c:1646 */ + case 64: +#line 231 "config-parser.y" /* yacc.c:1646 */ { node_t *node; node = node_create(DupString((yyvsp[-1].string))); list_add(IRCItem->performs, node); } -#line 1630 "config-parser.c" /* yacc.c:1646 */ +#line 1753 "config-parser.c" /* yacc.c:1646 */ break; - case 49: -#line 216 "config-parser.y" /* yacc.c:1646 */ + case 65: +#line 239 "config-parser.y" /* yacc.c:1646 */ { IRCItem->port = (yyvsp[-1].number); } -#line 1638 "config-parser.c" /* yacc.c:1646 */ +#line 1761 "config-parser.c" /* yacc.c:1646 */ break; - case 50: -#line 221 "config-parser.y" /* yacc.c:1646 */ + case 66: +#line 244 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->realname); IRCItem->realname = DupString((yyvsp[-1].string)); } -#line 1647 "config-parser.c" /* yacc.c:1646 */ +#line 1770 "config-parser.c" /* yacc.c:1646 */ break; - case 51: -#line 227 "config-parser.y" /* yacc.c:1646 */ + case 67: +#line 250 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->server); IRCItem->server = DupString((yyvsp[-1].string)); } -#line 1656 "config-parser.c" /* yacc.c:1646 */ +#line 1779 "config-parser.c" /* yacc.c:1646 */ break; - case 52: -#line 233 "config-parser.y" /* yacc.c:1646 */ + case 68: +#line 256 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->username); IRCItem->username = DupString((yyvsp[-1].string)); } -#line 1665 "config-parser.c" /* yacc.c:1646 */ +#line 1788 "config-parser.c" /* yacc.c:1646 */ break; - case 53: -#line 239 "config-parser.y" /* yacc.c:1646 */ + case 69: +#line 262 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->vhost); IRCItem->vhost = DupString((yyvsp[-1].string)); } -#line 1674 "config-parser.c" /* yacc.c:1646 */ +#line 1797 "config-parser.c" /* yacc.c:1646 */ break; - case 54: -#line 245 "config-parser.y" /* yacc.c:1646 */ + case 70: +#line 268 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->connregex); IRCItem->connregex = DupString((yyvsp[-1].string)); } -#line 1683 "config-parser.c" /* yacc.c:1646 */ +#line 1806 "config-parser.c" /* yacc.c:1646 */ break; - case 55: -#line 254 "config-parser.y" /* yacc.c:1646 */ + case 71: +#line 277 "config-parser.y" /* yacc.c:1646 */ { node_t *node; struct ChannelConf *item; @@ -1699,44 +1822,44 @@ yyreduce: tmp = (void *) item; } -#line 1703 "config-parser.c" /* yacc.c:1646 */ +#line 1826 "config-parser.c" /* yacc.c:1646 */ break; - case 62: -#line 279 "config-parser.y" /* yacc.c:1646 */ + case 78: +#line 302 "config-parser.y" /* yacc.c:1646 */ { struct ChannelConf *item = tmp; MyFree(item->name); item->name = DupString((yyvsp[-1].string)); } -#line 1714 "config-parser.c" /* yacc.c:1646 */ +#line 1837 "config-parser.c" /* yacc.c:1646 */ break; - case 63: -#line 287 "config-parser.y" /* yacc.c:1646 */ + case 79: +#line 310 "config-parser.y" /* yacc.c:1646 */ { struct ChannelConf *item = tmp; MyFree(item->key); item->key = DupString((yyvsp[-1].string)); } -#line 1725 "config-parser.c" /* yacc.c:1646 */ +#line 1848 "config-parser.c" /* yacc.c:1646 */ break; - case 64: -#line 295 "config-parser.y" /* yacc.c:1646 */ + case 80: +#line 318 "config-parser.y" /* yacc.c:1646 */ { struct ChannelConf *item = tmp; MyFree(item->invite); item->invite = DupString((yyvsp[-1].string)); } -#line 1736 "config-parser.c" /* yacc.c:1646 */ +#line 1859 "config-parser.c" /* yacc.c:1646 */ break; - case 65: -#line 305 "config-parser.y" /* yacc.c:1646 */ + case 81: +#line 328 "config-parser.y" /* yacc.c:1646 */ { node_t *node; struct UserConf *item; @@ -1751,11 +1874,11 @@ yyreduce: tmp = (void *) item; } -#line 1755 "config-parser.c" /* yacc.c:1646 */ +#line 1878 "config-parser.c" /* yacc.c:1646 */ break; - case 72: -#line 329 "config-parser.y" /* yacc.c:1646 */ + case 88: +#line 352 "config-parser.y" /* yacc.c:1646 */ { struct UserConf *item = (struct UserConf *) tmp; @@ -1764,11 +1887,11 @@ yyreduce: list_add(item->masks, node); } -#line 1768 "config-parser.c" /* yacc.c:1646 */ +#line 1891 "config-parser.c" /* yacc.c:1646 */ break; - case 73: -#line 339 "config-parser.y" /* yacc.c:1646 */ + case 89: +#line 362 "config-parser.y" /* yacc.c:1646 */ { struct UserConf *item = (struct UserConf *) tmp; @@ -1777,11 +1900,11 @@ yyreduce: list_add(item->scanners, node); } -#line 1781 "config-parser.c" /* yacc.c:1646 */ +#line 1904 "config-parser.c" /* yacc.c:1646 */ break; - case 74: -#line 351 "config-parser.y" /* yacc.c:1646 */ + case 90: +#line 374 "config-parser.y" /* yacc.c:1646 */ { node_t *node; struct ScannerConf *item, *olditem; @@ -1825,41 +1948,41 @@ yyreduce: list_add(ScannerItemList, node); tmp = (void *) item; } -#line 1829 "config-parser.c" /* yacc.c:1646 */ +#line 1952 "config-parser.c" /* yacc.c:1646 */ break; - case 88: -#line 411 "config-parser.y" /* yacc.c:1646 */ + case 104: +#line 434 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; MyFree(item->name); item->name = DupString((yyvsp[-1].string)); } -#line 1839 "config-parser.c" /* yacc.c:1646 */ +#line 1962 "config-parser.c" /* yacc.c:1646 */ break; - case 89: -#line 418 "config-parser.y" /* yacc.c:1646 */ + case 105: +#line 441 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; MyFree(item->vhost); item->vhost = DupString((yyvsp[-1].string)); } -#line 1849 "config-parser.c" /* yacc.c:1646 */ +#line 1972 "config-parser.c" /* yacc.c:1646 */ break; - case 90: -#line 425 "config-parser.y" /* yacc.c:1646 */ + case 106: +#line 448 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; MyFree(item->target_ip); item->target_ip = DupString((yyvsp[-1].string)); } -#line 1859 "config-parser.c" /* yacc.c:1646 */ +#line 1982 "config-parser.c" /* yacc.c:1646 */ break; - case 91: -#line 432 "config-parser.y" /* yacc.c:1646 */ + case 107: +#line 455 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; @@ -1874,47 +1997,47 @@ yyreduce: list_add(item->target_string, node); } -#line 1878 "config-parser.c" /* yacc.c:1646 */ +#line 2001 "config-parser.c" /* yacc.c:1646 */ break; - case 92: -#line 448 "config-parser.y" /* yacc.c:1646 */ + case 108: +#line 471 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; item->fd = (yyvsp[-1].number); } -#line 1887 "config-parser.c" /* yacc.c:1646 */ +#line 2010 "config-parser.c" /* yacc.c:1646 */ break; - case 93: -#line 454 "config-parser.y" /* yacc.c:1646 */ + case 109: +#line 477 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; item->target_port = (yyvsp[-1].number); } -#line 1896 "config-parser.c" /* yacc.c:1646 */ +#line 2019 "config-parser.c" /* yacc.c:1646 */ break; - case 94: -#line 460 "config-parser.y" /* yacc.c:1646 */ + case 110: +#line 483 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; item->timeout = (yyvsp[-1].number); } -#line 1905 "config-parser.c" /* yacc.c:1646 */ +#line 2028 "config-parser.c" /* yacc.c:1646 */ break; - case 95: -#line 466 "config-parser.y" /* yacc.c:1646 */ + case 111: +#line 489 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = (struct ScannerConf *) tmp; item->max_read = (yyvsp[-1].number); } -#line 1914 "config-parser.c" /* yacc.c:1646 */ +#line 2037 "config-parser.c" /* yacc.c:1646 */ break; - case 96: -#line 472 "config-parser.y" /* yacc.c:1646 */ + case 112: +#line 495 "config-parser.y" /* yacc.c:1646 */ { struct ProtocolConf *item; struct ScannerConf *item2; @@ -1930,38 +2053,38 @@ yyreduce: node = node_create(item); list_add(item2->protocols, node); } -#line 1934 "config-parser.c" /* yacc.c:1646 */ +#line 2057 "config-parser.c" /* yacc.c:1646 */ break; - case 105: -#line 502 "config-parser.y" /* yacc.c:1646 */ + case 121: +#line 525 "config-parser.y" /* yacc.c:1646 */ { MyFree(OpmItem->dnsbl_from); OpmItem->dnsbl_from = DupString((yyvsp[-1].string)); } -#line 1943 "config-parser.c" /* yacc.c:1646 */ +#line 2066 "config-parser.c" /* yacc.c:1646 */ break; - case 106: -#line 508 "config-parser.y" /* yacc.c:1646 */ + case 122: +#line 531 "config-parser.y" /* yacc.c:1646 */ { MyFree(OpmItem->dnsbl_to); OpmItem->dnsbl_to = DupString((yyvsp[-1].string)); } -#line 1952 "config-parser.c" /* yacc.c:1646 */ +#line 2075 "config-parser.c" /* yacc.c:1646 */ break; - case 107: -#line 514 "config-parser.y" /* yacc.c:1646 */ + case 123: +#line 537 "config-parser.y" /* yacc.c:1646 */ { MyFree(OpmItem->sendmail); OpmItem->sendmail = DupString((yyvsp[-1].string)); } -#line 1961 "config-parser.c" /* yacc.c:1646 */ +#line 2084 "config-parser.c" /* yacc.c:1646 */ break; - case 108: -#line 522 "config-parser.y" /* yacc.c:1646 */ + case 124: +#line 545 "config-parser.y" /* yacc.c:1646 */ { node_t *node; struct BlacklistConf *item; @@ -1979,33 +2102,33 @@ yyreduce: tmp = (void *) item; } -#line 1983 "config-parser.c" /* yacc.c:1646 */ +#line 2106 "config-parser.c" /* yacc.c:1646 */ break; - case 118: -#line 551 "config-parser.y" /* yacc.c:1646 */ + case 134: +#line 574 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistConf *item = tmp; MyFree(item->name); item->name = DupString((yyvsp[-1].string)); } -#line 1994 "config-parser.c" /* yacc.c:1646 */ +#line 2117 "config-parser.c" /* yacc.c:1646 */ break; - case 119: -#line 558 "config-parser.y" /* yacc.c:1646 */ + case 135: +#line 581 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistConf *item = tmp; MyFree(item->kline); item->kline = DupString((yyvsp[-1].string)); } -#line 2005 "config-parser.c" /* yacc.c:1646 */ +#line 2128 "config-parser.c" /* yacc.c:1646 */ break; - case 120: -#line 565 "config-parser.y" /* yacc.c:1646 */ + case 136: +#line 588 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistConf *item = tmp; @@ -2016,21 +2139,21 @@ yyreduce: else yyerror("Unknown blacklist type defined"); } -#line 2020 "config-parser.c" /* yacc.c:1646 */ +#line 2143 "config-parser.c" /* yacc.c:1646 */ break; - case 121: -#line 576 "config-parser.y" /* yacc.c:1646 */ + case 137: +#line 599 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistConf *item = tmp; item->ban_unknown = (yyvsp[-1].number); } -#line 2030 "config-parser.c" /* yacc.c:1646 */ +#line 2153 "config-parser.c" /* yacc.c:1646 */ break; - case 125: -#line 588 "config-parser.y" /* yacc.c:1646 */ + case 141: +#line 611 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistReplyConf *item; struct BlacklistConf *blacklist = tmp; @@ -2044,22 +2167,22 @@ yyreduce: node = node_create(item); list_add(blacklist->reply, node); } -#line 2048 "config-parser.c" /* yacc.c:1646 */ +#line 2171 "config-parser.c" /* yacc.c:1646 */ break; - case 131: -#line 614 "config-parser.y" /* yacc.c:1646 */ + case 147: +#line 637 "config-parser.y" /* yacc.c:1646 */ { node_t *node; node = node_create(DupString((yyvsp[-1].string))); list_add(ExemptItem->masks, node); } -#line 2059 "config-parser.c" /* yacc.c:1646 */ +#line 2182 "config-parser.c" /* yacc.c:1646 */ break; -#line 2063 "config-parser.c" /* yacc.c:1646 */ +#line 2186 "config-parser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2287,5 +2410,5 @@ yyreturn: #endif return yyresult; } -#line 621 "config-parser.y" /* yacc.c:1906 */ +#line 644 "config-parser.y" /* yacc.c:1906 */ diff --git a/src/config-parser.h b/src/config-parser.h index d70d152..e6057cc 100644 --- a/src/config-parser.h +++ b/src/config-parser.h @@ -48,110 +48,130 @@ extern int yydebug; AWAY = 258, BAN_UNKNOWN = 259, BLACKLIST = 260, - CHANNEL = 261, - CONNREGEX = 262, - DNS_FDLIMIT = 263, - DNSBL_FROM = 264, - DNSBL_TO = 265, - EXEMPT = 266, - FD = 267, - INVITE = 268, - IRC = 269, - KLINE = 270, - KEY = 271, - MASK = 272, - MAX_READ = 273, - MODE = 274, - NAME = 275, - NEGCACHE = 276, - NICK = 277, - NICKSERV = 278, - OPER = 279, - OPM = 280, - OPTIONS = 281, - PASSWORD = 282, - PERFORM = 283, - PIDFILE = 284, - PORT = 285, - PROTOCOL = 286, - REALNAME = 287, - REPLY = 288, - SCANLOG = 289, - SCANNER = 290, - SENDMAIL = 291, - SERVER = 292, - TARGET_IP = 293, - TARGET_PORT = 294, - TARGET_STRING = 295, - TIMEOUT = 296, - TYPE = 297, - USERNAME = 298, - USER = 299, - VHOST = 300, - NUMBER = 301, - STRING = 302, - PROTOCOLTYPE = 303 + BYTES = 261, + KBYTES = 262, + MBYTES = 263, + CHANNEL = 264, + CONNREGEX = 265, + DNS_FDLIMIT = 266, + DNSBL_FROM = 267, + DNSBL_TO = 268, + EXEMPT = 269, + FD = 270, + INVITE = 271, + IRC = 272, + KLINE = 273, + KEY = 274, + MASK = 275, + MAX_READ = 276, + MODE = 277, + NAME = 278, + NEGCACHE = 279, + NICK = 280, + NICKSERV = 281, + OPER = 282, + OPM = 283, + OPTIONS = 284, + PASSWORD = 285, + PERFORM = 286, + 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 }; #endif /* Tokens. */ #define AWAY 258 #define BAN_UNKNOWN 259 #define BLACKLIST 260 -#define CHANNEL 261 -#define CONNREGEX 262 -#define DNS_FDLIMIT 263 -#define DNSBL_FROM 264 -#define DNSBL_TO 265 -#define EXEMPT 266 -#define FD 267 -#define INVITE 268 -#define IRC 269 -#define KLINE 270 -#define KEY 271 -#define MASK 272 -#define MAX_READ 273 -#define MODE 274 -#define NAME 275 -#define NEGCACHE 276 -#define NICK 277 -#define NICKSERV 278 -#define OPER 279 -#define OPM 280 -#define OPTIONS 281 -#define PASSWORD 282 -#define PERFORM 283 -#define PIDFILE 284 -#define PORT 285 -#define PROTOCOL 286 -#define REALNAME 287 -#define REPLY 288 -#define SCANLOG 289 -#define SCANNER 290 -#define SENDMAIL 291 -#define SERVER 292 -#define TARGET_IP 293 -#define TARGET_PORT 294 -#define TARGET_STRING 295 -#define TIMEOUT 296 -#define TYPE 297 -#define USERNAME 298 -#define USER 299 -#define VHOST 300 -#define NUMBER 301 -#define STRING 302 -#define PROTOCOLTYPE 303 +#define BYTES 261 +#define KBYTES 262 +#define MBYTES 263 +#define CHANNEL 264 +#define CONNREGEX 265 +#define DNS_FDLIMIT 266 +#define DNSBL_FROM 267 +#define DNSBL_TO 268 +#define EXEMPT 269 +#define FD 270 +#define INVITE 271 +#define IRC 272 +#define KLINE 273 +#define KEY 274 +#define MASK 275 +#define MAX_READ 276 +#define MODE 277 +#define NAME 278 +#define NEGCACHE 279 +#define NICK 280 +#define NICKSERV 281 +#define OPER 282 +#define OPM 283 +#define OPTIONS 284 +#define PASSWORD 285 +#define PERFORM 286 +#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 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE YYSTYPE; union YYSTYPE { -#line 83 "config-parser.y" /* yacc.c:1909 */ +#line 85 "config-parser.y" /* yacc.c:1909 */ int number; char *string; -#line 155 "config-parser.h" /* yacc.c:1909 */ +#line 175 "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 f8b68e8..fabdfad 100644 --- a/src/config-parser.y +++ b/src/config-parser.y @@ -38,6 +38,7 @@ void *tmp; /* Variable to temporarily hold nodes before insertion to list %token AWAY %token BAN_UNKNOWN %token BLACKLIST +%token BYTES KBYTES MBYTES %token CHANNEL %token CONNREGEX %token DNS_FDLIMIT @@ -68,6 +69,7 @@ void *tmp; /* Variable to temporarily hold nodes before insertion to list %token REPLY %token SCANLOG %token SCANNER +%token SECONDS MINUTES HOURS DAYS WEEKS MONTHS YEARS %token SENDMAIL %token SERVER %token TARGET_IP @@ -88,6 +90,10 @@ void *tmp; /* Variable to temporarily hold nodes before insertion to list %token NUMBER %token STRING %token PROTOCOLTYPE +%type timespec +%type timespec_ +%type sizespec +%type sizespec_ %% @@ -102,6 +108,23 @@ config_items: irc_entry | scanner_entry | exempt_entry; +timespec_: { $$ = 0; } | timespec; +timespec: NUMBER timespec_ { $$ = $1 + $2; } | + NUMBER SECONDS timespec_ { $$ = $1 + $3; } | + NUMBER MINUTES timespec_ { $$ = $1 * 60 + $3; } | + NUMBER HOURS timespec_ { $$ = $1 * 60 * 60 + $3; } | + NUMBER DAYS timespec_ { $$ = $1 * 60 * 60 * 24 + $3; } | + NUMBER WEEKS timespec_ { $$ = $1 * 60 * 60 * 24 * 7 + $3; } | + NUMBER MONTHS timespec_ { $$ = $1 * 60 * 60 * 24 * 7 * 4 + $3; } | + NUMBER YEARS timespec_ { $$ = $1 * 60 * 60 * 24 * 365 + $3; } + ; + +sizespec_: { $$ = 0; } | sizespec; +sizespec: NUMBER sizespec_ { $$ = $1 + $2; } | + NUMBER BYTES sizespec_ { $$ = $1 + $3; } | + NUMBER KBYTES sizespec_ { $$ = $1 * 1024 + $3; } | + NUMBER MBYTES sizespec_ { $$ = $1 * 1024 * 1024 + $3; } + ; /*************************** OPTIONS BLOCK ***********************/ @@ -116,7 +139,7 @@ options_item: options_negcache | options_scanlog | error; -options_negcache: NEGCACHE '=' NUMBER ';' +options_negcache: NEGCACHE '=' timespec ';' { OptionsItem->negcache = $3; }; @@ -456,13 +479,13 @@ scanner_target_port: TARGET_PORT '=' NUMBER ';' item->target_port = $3; }; -scanner_timeout: TIMEOUT '=' NUMBER ';' +scanner_timeout: TIMEOUT '=' timespec ';' { struct ScannerConf *item = (struct ScannerConf *) tmp; item->timeout = $3; }; -scanner_max_read: MAX_READ '=' NUMBER ';' +scanner_max_read: MAX_READ '=' sizespec ';' { struct ScannerConf *item = (struct ScannerConf *) tmp; item->max_read = $3;