From 03d154f6ae0f90270a3c3bec771f285a44b6cc95 Mon Sep 17 00:00:00 2001 From: michael Date: Tue, 20 Jan 2015 19:16:28 +0000 Subject: [PATCH] - Added irc::notice configuration option (notice(s) to send to a newly connected client). git-svn-id: svn://svn.ircd-hybrid.org/svnroot/hopm/branches/1.0.x@5406 82007160-df01-0410-b94d-b575c5fd34c7 --- doc/reference.conf | 6 + src/config-lexer.c | 660 ++++++++++++++--------------- src/config-lexer.l | 1 + src/config-parser.c | 983 ++++++++++++++++++++++---------------------- src/config-parser.h | 146 +++---- src/config-parser.y | 10 + src/config.c | 1 + src/config.h | 1 + 8 files changed, 929 insertions(+), 879 deletions(-) diff --git a/doc/reference.conf b/doc/reference.conf index 754d267..37eaacb 100644 --- a/doc/reference.conf +++ b/doc/reference.conf @@ -238,6 +238,12 @@ irc { * Text to send on connection, these can be stacked and will be sent in this order. */ # perform = "TIME"; + + /* + * Text to send via NOTICE immediately when a new client connects. These can be + * stacked and will be sent in this order. + */ +# notice = "You are now being scanned for open proxies. If you have nothing to hide, you have nothing to fear."; }; diff --git a/src/config-lexer.c b/src/config-lexer.c index f572fa0..d38f216 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 91 -#define YY_END_OF_BUFFER 92 +#define YY_NUM_RULES 92 +#define YY_END_OF_BUFFER 93 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -374,47 +374,48 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[360] = +static yyconst flex_int16_t yy_accept[364] = { 0, - 89, 89, 92, 90, 89, 88, 90, 2, 90, 81, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, - 89, 88, 0, 3, 2, 1, 2, 81, 0, 0, + 90, 90, 93, 91, 90, 89, 91, 2, 91, 82, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + 90, 89, 0, 3, 2, 1, 2, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, - 0, 0, 0, 69, 0, 0, 0, 0, 74, 0, - 0, 0, 0, 0, 0, 86, 0, 84, 0, 0, + 0, 0, 0, 70, 0, 0, 0, 0, 75, 0, + 0, 0, 0, 0, 0, 87, 0, 85, 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, 56, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 15, 0, 17, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 87, 0, 27, 0, + 0, 0, 0, 0, 0, 0, 0, 88, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 83, 4, 0, 0, 64, 0, 0, 55, - 0, 0, 0, 0, 58, 75, 0, 0, 0, 0, - 18, 0, 0, 0, 0, 20, 0, 21, 0, 24, - 26, 0, 0, 0, 0, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 45, - 46, 0, 54, 0, 50, 0, 0, 63, 0, 0, - - 0, 0, 0, 85, 57, 0, 0, 68, 0, 16, - 0, 73, 0, 0, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 48, 53, 0, 49, 0, - 0, 0, 0, 0, 0, 12, 0, 14, 67, 0, - 0, 72, 0, 60, 51, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 80, 0, 0, 62, 0, 40, - 77, 78, 0, 0, 0, 0, 0, 0, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, - 28, 0, 30, 31, 0, 0, 0, 37, 38, 61, - - 0, 0, 44, 0, 79, 0, 0, 0, 0, 11, - 0, 76, 66, 19, 71, 22, 25, 29, 33, 0, - 35, 39, 0, 0, 0, 47, 0, 6, 8, 0, - 0, 65, 70, 0, 0, 41, 0, 0, 0, 10, - 0, 0, 0, 0, 0, 5, 9, 0, 34, 42, - 0, 0, 0, 0, 43, 0, 0, 23, 0 + 0, 0, 0, 84, 4, 0, 0, 65, 0, 0, + 56, 0, 0, 0, 0, 59, 76, 0, 0, 0, + 0, 18, 0, 0, 0, 0, 20, 0, 21, 0, + 24, 0, 27, 0, 0, 0, 0, 33, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 83, 46, 47, 0, 55, 0, 51, 0, 0, 64, + + 0, 0, 0, 0, 0, 86, 58, 0, 0, 69, + 0, 16, 0, 74, 0, 0, 53, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 49, 54, + 0, 50, 0, 0, 0, 0, 0, 0, 12, 0, + 14, 68, 0, 0, 73, 0, 61, 52, 0, 0, + 26, 0, 0, 0, 0, 0, 0, 0, 81, 0, + 0, 63, 0, 41, 78, 79, 0, 0, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, + 0, 60, 0, 0, 29, 0, 31, 32, 0, 0, + + 0, 38, 39, 62, 0, 0, 45, 0, 80, 0, + 0, 0, 0, 11, 0, 77, 67, 19, 72, 22, + 25, 30, 34, 0, 36, 40, 0, 0, 0, 48, + 0, 6, 8, 0, 0, 66, 71, 0, 0, 42, + 0, 0, 0, 10, 0, 0, 0, 0, 0, 5, + 9, 0, 35, 43, 0, 0, 0, 0, 44, 0, + 0, 23, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -459,95 +460,95 @@ static yyconst flex_int32_t yy_meta[58] = 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_int16_t yy_base[363] = +static yyconst flex_int16_t yy_base[367] = { 0, - 0, 0, 239, 727, 167, 0, 55, 0, 54, 54, + 0, 0, 232, 732, 167, 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, - 165, 0, 81, 727, 0, 727, 0, 148, 97, 98, - 111, 133, 152, 147, 138, 146, 160, 155, 727, 150, + 165, 0, 81, 732, 0, 732, 0, 148, 97, 98, + 111, 133, 152, 147, 138, 146, 160, 155, 732, 150, 152, 153, 171, 156, 159, 175, 182, 182, 178, 201, - 196, 207, 200, 206, 211, 727, 210, 727, 212, 201, - 203, 217, 206, 212, 238, 208, 230, 244, 231, 233, - 240, 237, 244, 256, 248, 259, 252, 265, 244, 128, - 265, 264, 257, 259, 257, 273, 266, 262, 271, 280, - - 291, 727, 283, 727, 290, 292, 297, 120, 290, 308, - 291, 307, 295, 309, 312, 306, 727, 301, 727, 309, - 303, 315, 316, 305, 308, 344, 316, 312, 322, 329, - 345, 332, 343, 349, 352, 353, 355, 345, 345, 353, - 357, 349, 727, 727, 347, 358, 352, 357, 355, 727, - 363, 369, 363, 378, 374, 381, 379, 395, 399, 398, - 727, 388, 400, 404, 390, 727, 401, 727, 409, 394, - 727, 398, 392, 400, 407, 727, 403, 400, 406, 399, - 418, 437, 418, 427, 439, 428, 444, 437, 727, 727, - 439, 435, 437, 455, 440, 445, 448, 727, 455, 456, - - 95, 458, 446, 727, 727, 451, 461, 450, 447, 727, - 466, 462, 464, 487, 476, 493, 492, 485, 485, 484, - 490, 499, 495, 504, 727, 490, 493, 503, 505, 509, - 496, 107, 495, 495, 514, 727, 727, 500, 727, 509, - 518, 524, 533, 535, 533, 727, 528, 727, 727, 528, - 546, 727, 530, 532, 727, 542, 536, 537, 539, 544, - 552, 544, 548, 549, 727, 555, 547, 549, 558, 727, - 727, 727, 90, 557, 571, 583, 576, 575, 727, 588, - 578, 581, 587, 579, 593, 596, 596, 727, 597, 583, - 727, 600, 727, 727, 594, 601, 603, 727, 727, 727, - - 598, 622, 727, 605, 727, 597, 596, 601, 622, 727, - 628, 727, 624, 727, 625, 52, 727, 727, 727, 629, - 727, 727, 629, 631, 628, 727, 627, 727, 727, 637, - 641, 727, 727, 635, 633, 727, 637, 638, 643, 727, - 639, 653, 641, 644, 662, 727, 727, 677, 727, 727, - 671, 666, 680, 679, 727, 678, 686, 727, 727, 81, - 724, 71 + 196, 207, 200, 206, 211, 198, 211, 732, 234, 201, + 203, 217, 208, 212, 246, 208, 228, 246, 227, 215, + 222, 237, 242, 255, 250, 260, 253, 274, 245, 128, + 266, 267, 261, 264, 261, 280, 267, 270, 278, 280, + + 288, 732, 282, 732, 291, 294, 298, 120, 291, 309, + 293, 308, 296, 311, 314, 310, 313, 732, 307, 732, + 316, 309, 321, 322, 312, 317, 344, 328, 324, 330, + 331, 349, 336, 347, 351, 355, 356, 357, 348, 348, + 358, 363, 355, 732, 732, 354, 364, 358, 363, 362, + 732, 372, 381, 375, 386, 376, 381, 383, 398, 402, + 400, 732, 390, 403, 407, 392, 732, 404, 732, 412, + 399, 415, 732, 405, 400, 408, 414, 732, 410, 408, + 418, 412, 433, 428, 431, 437, 446, 435, 448, 440, + 732, 732, 443, 439, 441, 459, 444, 451, 455, 732, + + 462, 464, 95, 466, 453, 732, 732, 458, 469, 462, + 460, 732, 481, 470, 466, 487, 480, 496, 495, 496, + 489, 490, 489, 495, 505, 500, 511, 732, 498, 501, + 512, 514, 518, 504, 107, 504, 508, 530, 732, 732, + 516, 732, 525, 528, 529, 538, 542, 536, 732, 532, + 732, 732, 532, 551, 732, 535, 537, 732, 548, 541, + 732, 545, 547, 553, 561, 553, 556, 558, 732, 568, + 563, 565, 574, 732, 732, 732, 90, 567, 576, 588, + 582, 579, 732, 592, 582, 586, 592, 584, 599, 601, + 603, 732, 605, 591, 732, 609, 732, 732, 603, 610, + + 611, 732, 732, 732, 607, 632, 732, 622, 732, 616, + 613, 611, 622, 732, 631, 732, 627, 732, 628, 52, + 732, 732, 732, 632, 732, 732, 633, 636, 634, 732, + 632, 732, 732, 644, 649, 732, 732, 643, 642, 732, + 646, 647, 651, 732, 648, 670, 660, 661, 672, 732, + 732, 682, 732, 732, 676, 672, 685, 684, 732, 683, + 691, 732, 732, 81, 729, 71 } ; -static yyconst flex_int16_t yy_def[363] = +static yyconst flex_int16_t yy_def[367] = { 0, - 359, 1, 359, 359, 359, 360, 361, 362, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 360, 361, 359, 362, 359, 362, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 0, 359, - 359, 359 + 363, 1, 363, 363, 363, 364, 365, 366, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 364, 365, 363, 366, 363, 366, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 0, 363, 363, 363 } ; -static yyconst flex_int16_t yy_nxt[785] = +static yyconst flex_int16_t yy_nxt[790] = { 0, 4, 5, 6, 7, 8, 4, 9, 10, 10, 10, 11, 12, 13, 14, 15, 16, 4, 17, 18, 19, @@ -557,87 +558,87 @@ static yyconst flex_int16_t yy_nxt[785] = 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, 334, 75, 42, 39, 40, + 53, 32, 88, 34, 34, 338, 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, 271, 272, 65, 67, 76, - 90, 91, 66, 302, 77, 68, 78, 69, 244, 54, + 75, 42, 56, 64, 57, 275, 276, 65, 67, 76, + 90, 91, 66, 306, 77, 68, 78, 69, 247, 54, 86, 89, 55, 63, 87, 79, 56, 64, 57, 58, 59, 65, 67, 60, 90, 91, 66, 61, 77, 68, - 78, 69, 62, 162, 86, 38, 38, 38, 87, 79, - 92, 145, 93, 58, 59, 80, 31, 60, 31, 94, + 78, 69, 62, 163, 86, 38, 38, 38, 87, 79, + 92, 146, 93, 58, 59, 80, 31, 60, 31, 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, 359, 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, 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, 225, 226, 208, 209, 359, 210, 211, 212, 213, - 229, 214, 215, 216, 217, 218, 219, 220, 230, 221, - 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, 359, 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, 335, 336, 337, 338, 329, 339, 340, 341, - 342, 343, 344, 345, 323, 346, 347, 348, 349, 330, - 324, 350, 325, 331, 332, 333, 335, 336, 337, 338, - 351, 339, 340, 341, 342, 343, 344, 345, 352, 346, - 347, 348, 349, 353, 354, 350, 355, 356, 357, 358, - - 359, 359, 359, 359, 351, 359, 359, 359, 359, 359, - 359, 359, 352, 359, 359, 359, 359, 353, 354, 359, - 355, 356, 357, 358, 33, 33, 3, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359 + 112, 114, 115, 116, 106, 117, 118, 122, 123, 113, + 124, 363, 107, 125, 109, 126, 129, 108, 130, 134, + 135, 110, 111, 136, 112, 114, 115, 116, 119, 117, + 118, 122, 123, 113, 124, 120, 127, 125, 131, 126, + 129, 121, 130, 134, 135, 137, 138, 136, 132, 139, + 128, 133, 119, 140, 141, 142, 363, 145, 147, 120, + 127, 148, 131, 149, 143, 121, 150, 151, 154, 137, + 138, 152, 132, 139, 128, 133, 155, 140, 141, 142, + + 144, 145, 147, 156, 157, 148, 158, 149, 143, 159, + 150, 151, 154, 153, 160, 152, 161, 162, 164, 165, + 155, 166, 167, 168, 144, 169, 170, 156, 157, 171, + 158, 172, 173, 159, 174, 175, 176, 177, 160, 178, + 161, 162, 164, 165, 179, 166, 167, 168, 182, 169, + 170, 183, 184, 171, 185, 172, 173, 180, 174, 175, + 176, 177, 186, 178, 181, 187, 188, 189, 179, 190, + 191, 192, 182, 193, 194, 183, 184, 195, 185, 196, + 197, 180, 198, 199, 200, 201, 186, 202, 181, 187, + 188, 189, 203, 190, 191, 192, 204, 193, 194, 205, + + 206, 195, 207, 196, 197, 208, 198, 199, 200, 201, + 209, 202, 210, 211, 212, 213, 203, 214, 215, 216, + 204, 217, 218, 205, 206, 219, 207, 220, 221, 208, + 222, 223, 224, 225, 209, 226, 210, 211, 212, 213, + 227, 214, 215, 216, 228, 217, 218, 229, 230, 219, + 231, 220, 221, 232, 222, 223, 224, 225, 233, 226, + 234, 235, 236, 237, 227, 238, 239, 240, 228, 241, + 242, 229, 230, 243, 231, 244, 245, 232, 246, 248, + 249, 250, 233, 251, 234, 235, 236, 237, 252, 238, + 239, 240, 253, 241, 242, 254, 255, 243, 256, 244, + + 245, 257, 246, 248, 249, 250, 258, 251, 259, 260, + 261, 262, 252, 263, 264, 265, 253, 266, 267, 254, + 255, 268, 256, 269, 270, 257, 271, 272, 273, 274, + 258, 277, 259, 260, 261, 262, 278, 263, 264, 265, + 279, 266, 267, 280, 281, 268, 282, 269, 270, 283, + 271, 272, 273, 274, 284, 277, 287, 285, 288, 289, + 278, 290, 291, 292, 279, 293, 294, 280, 281, 286, + 282, 295, 296, 283, 297, 298, 299, 300, 284, 301, + 287, 285, 288, 289, 302, 290, 291, 292, 303, 293, + 294, 304, 305, 286, 307, 295, 296, 308, 297, 298, + + 299, 300, 309, 301, 310, 311, 312, 313, 302, 314, + 315, 316, 303, 317, 318, 304, 305, 319, 307, 320, + 321, 308, 322, 323, 324, 325, 309, 326, 310, 311, + 312, 313, 363, 314, 315, 316, 330, 317, 318, 331, + 332, 319, 333, 320, 321, 334, 322, 323, 324, 325, + 327, 326, 335, 336, 337, 339, 328, 340, 329, 341, + 330, 342, 343, 331, 332, 344, 333, 345, 346, 334, + 347, 348, 349, 350, 327, 351, 335, 336, 337, 339, + 328, 340, 329, 341, 352, 342, 343, 353, 354, 344, + 355, 345, 346, 356, 347, 348, 349, 350, 357, 351, + + 358, 359, 360, 361, 362, 363, 363, 363, 352, 363, + 363, 353, 354, 363, 355, 363, 363, 356, 363, 363, + 363, 363, 357, 363, 358, 359, 360, 361, 362, 33, + 33, 3, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363 } ; -static yyconst flex_int16_t yy_chk[785] = +static yyconst flex_int16_t yy_chk[790] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -646,13 +647,13 @@ static yyconst flex_int16_t yy_chk[785] = 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, 362, 13, 16, 17, 12, 28, 18, 17, 14, - 18, 360, 30, 33, 33, 316, 24, 12, 11, 12, + 16, 366, 13, 16, 17, 12, 28, 18, 17, 14, + 18, 364, 30, 33, 33, 320, 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, 232, 232, 21, 22, 24, - 40, 41, 21, 273, 25, 22, 25, 22, 201, 19, + 24, 12, 19, 21, 19, 235, 235, 21, 22, 24, + 40, 41, 21, 277, 25, 22, 25, 22, 203, 19, 29, 39, 19, 21, 29, 25, 19, 21, 19, 20, 20, 21, 22, 20, 40, 41, 21, 20, 25, 22, 25, 22, 20, 108, 29, 38, 38, 38, 29, 25, @@ -663,68 +664,68 @@ static yyconst flex_int16_t yy_chk[785] = 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, 3, 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, 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, 335, 337, 338, 302, 339, 341, 342, 343, 309, - 302, 344, 302, 311, 313, 315, 320, 323, 324, 325, - 345, 327, 330, 331, 334, 335, 337, 338, 348, 339, - 341, 342, 343, 351, 352, 344, 353, 354, 356, 357, - - 0, 0, 0, 0, 345, 0, 0, 0, 0, 0, - 0, 0, 348, 0, 0, 0, 0, 351, 352, 0, - 353, 354, 356, 357, 361, 361, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359 + 62, 63, 64, 65, 57, 66, 67, 70, 71, 62, + 72, 3, 58, 73, 59, 74, 76, 58, 77, 79, + 80, 60, 61, 81, 62, 63, 64, 65, 69, 66, + 67, 70, 71, 62, 72, 69, 75, 73, 78, 74, + 76, 69, 77, 79, 80, 82, 83, 81, 78, 84, + 75, 78, 69, 85, 86, 87, 0, 89, 91, 69, + 75, 92, 78, 93, 88, 69, 94, 95, 97, 82, + 83, 96, 78, 84, 75, 78, 98, 85, 86, 87, + + 88, 89, 91, 99, 100, 92, 101, 93, 88, 103, + 94, 95, 97, 96, 105, 96, 106, 107, 109, 110, + 98, 111, 112, 113, 88, 114, 115, 99, 100, 116, + 101, 117, 119, 103, 121, 122, 123, 124, 105, 125, + 106, 107, 109, 110, 126, 111, 112, 113, 128, 114, + 115, 129, 130, 116, 131, 117, 119, 127, 121, 122, + 123, 124, 132, 125, 127, 133, 134, 135, 126, 136, + 137, 138, 128, 139, 140, 129, 130, 141, 131, 142, + 143, 127, 146, 147, 148, 149, 132, 150, 127, 133, + 134, 135, 152, 136, 137, 138, 153, 139, 140, 154, + + 155, 141, 156, 142, 143, 157, 146, 147, 148, 149, + 158, 150, 159, 160, 161, 163, 152, 164, 165, 166, + 153, 168, 170, 154, 155, 171, 156, 172, 174, 157, + 175, 176, 177, 179, 158, 180, 159, 160, 161, 163, + 181, 164, 165, 166, 182, 168, 170, 183, 184, 171, + 184, 172, 174, 185, 175, 176, 177, 179, 186, 180, + 187, 188, 189, 190, 181, 193, 194, 195, 182, 196, + 197, 183, 184, 198, 184, 199, 201, 185, 202, 204, + 205, 208, 186, 209, 187, 188, 189, 190, 210, 193, + 194, 195, 211, 196, 197, 213, 214, 198, 215, 199, + + 201, 216, 202, 204, 205, 208, 217, 209, 218, 219, + 220, 221, 210, 222, 223, 224, 211, 225, 226, 213, + 214, 227, 215, 229, 230, 216, 231, 232, 233, 234, + 217, 236, 218, 219, 220, 221, 237, 222, 223, 224, + 238, 225, 226, 241, 243, 227, 244, 229, 230, 245, + 231, 232, 233, 234, 246, 236, 248, 247, 250, 253, + 237, 254, 256, 257, 238, 259, 260, 241, 243, 247, + 244, 262, 263, 245, 264, 265, 266, 267, 246, 268, + 248, 247, 250, 253, 270, 254, 256, 257, 271, 259, + 260, 272, 273, 247, 278, 262, 263, 279, 264, 265, + + 266, 267, 280, 268, 281, 282, 284, 285, 270, 286, + 287, 288, 271, 289, 290, 272, 273, 291, 278, 293, + 294, 279, 296, 299, 300, 301, 280, 305, 281, 282, + 284, 285, 0, 286, 287, 288, 308, 289, 290, 310, + 311, 291, 312, 293, 294, 313, 296, 299, 300, 301, + 306, 305, 315, 317, 319, 324, 306, 327, 306, 328, + 308, 329, 331, 310, 311, 334, 312, 335, 338, 313, + 339, 341, 342, 343, 306, 345, 315, 317, 319, 324, + 306, 327, 306, 328, 346, 329, 331, 347, 348, 334, + 349, 335, 338, 352, 339, 341, 342, 343, 355, 345, + + 356, 357, 358, 360, 361, 0, 0, 0, 346, 0, + 0, 347, 348, 0, 349, 0, 0, 352, 0, 0, + 0, 0, 355, 0, 356, 357, 358, 360, 361, 365, + 365, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363, 363, + 363, 363, 363, 363, 363, 363, 363, 363, 363 } ; static yy_state_type yy_last_accepting_state; @@ -777,7 +778,7 @@ void ccomment(void); int linenum = 1; char linebuf[512]; -#line 781 "config-lexer.c" +#line 782 "config-lexer.c" #define INITIAL 0 @@ -987,7 +988,7 @@ YY_DECL #line 45 "config-lexer.l" -#line 991 "config-lexer.c" +#line 992 "config-lexer.c" while ( 1 ) /* loops until end-of-file is reached */ { @@ -1020,13 +1021,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 >= 360 ) + if ( yy_current_state >= 364 ) 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] != 727 ); + while ( yy_base[yy_current_state] != 732 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1216,122 +1217,122 @@ YY_RULE_SETUP case 26: YY_RULE_SETUP #line 112 "config-lexer.l" -{ return OPER; } +{ return NOTICE; } YY_BREAK case 27: YY_RULE_SETUP #line 113 "config-lexer.l" -{ return OPM; } +{ return OPER; } YY_BREAK case 28: YY_RULE_SETUP #line 114 "config-lexer.l" -{ return OPTIONS; } +{ return OPM; } YY_BREAK case 29: YY_RULE_SETUP #line 115 "config-lexer.l" -{ return PASSWORD; } +{ return OPTIONS; } YY_BREAK case 30: YY_RULE_SETUP #line 116 "config-lexer.l" -{ return PERFORM; } +{ return PASSWORD; } YY_BREAK case 31: YY_RULE_SETUP #line 117 "config-lexer.l" -{ return PIDFILE; } +{ return PERFORM; } YY_BREAK case 32: YY_RULE_SETUP #line 118 "config-lexer.l" -{ return PORT; } +{ return PIDFILE; } YY_BREAK case 33: YY_RULE_SETUP #line 119 "config-lexer.l" -{ return PROTOCOL; } +{ return PORT; } YY_BREAK case 34: YY_RULE_SETUP #line 120 "config-lexer.l" -{ return READTIMEOUT; } +{ return PROTOCOL; } YY_BREAK case 35: YY_RULE_SETUP #line 121 "config-lexer.l" -{ return REALNAME; } +{ return READTIMEOUT; } YY_BREAK case 36: YY_RULE_SETUP #line 122 "config-lexer.l" -{ return REPLY; } +{ return REALNAME; } YY_BREAK case 37: YY_RULE_SETUP #line 123 "config-lexer.l" -{ return SCANLOG; } +{ return REPLY; } YY_BREAK case 38: YY_RULE_SETUP #line 124 "config-lexer.l" -{ return SCANNER; } +{ return SCANLOG; } YY_BREAK case 39: YY_RULE_SETUP #line 125 "config-lexer.l" -{ return SENDMAIL; } +{ return SCANNER; } YY_BREAK case 40: YY_RULE_SETUP #line 126 "config-lexer.l" -{ return SERVER; } +{ return SENDMAIL; } YY_BREAK case 41: YY_RULE_SETUP #line 127 "config-lexer.l" -{ return TARGET_IP; } +{ return SERVER; } YY_BREAK case 42: YY_RULE_SETUP #line 128 "config-lexer.l" -{ return TARGET_PORT; } +{ return TARGET_IP; } YY_BREAK case 43: YY_RULE_SETUP #line 129 "config-lexer.l" -{ return TARGET_STRING;} +{ return TARGET_PORT; } YY_BREAK case 44: YY_RULE_SETUP #line 130 "config-lexer.l" -{ return TIMEOUT; } +{ return TARGET_STRING;} YY_BREAK case 45: YY_RULE_SETUP #line 131 "config-lexer.l" -{ return TYPE; } +{ return TIMEOUT; } YY_BREAK case 46: YY_RULE_SETUP #line 132 "config-lexer.l" -{ return USER; } +{ return TYPE; } YY_BREAK case 47: YY_RULE_SETUP #line 133 "config-lexer.l" -{ return USERNAME; } +{ return USER; } YY_BREAK case 48: YY_RULE_SETUP #line 134 "config-lexer.l" -{ return VHOST; } +{ return USERNAME; } YY_BREAK case 49: YY_RULE_SETUP -#line 136 "config-lexer.l" -{ return YEARS; } +#line 135 "config-lexer.l" +{ return VHOST; } YY_BREAK case 50: YY_RULE_SETUP @@ -1341,7 +1342,7 @@ YY_RULE_SETUP case 51: YY_RULE_SETUP #line 138 "config-lexer.l" -{ return MONTHS; } +{ return YEARS; } YY_BREAK case 52: YY_RULE_SETUP @@ -1351,7 +1352,7 @@ YY_RULE_SETUP case 53: YY_RULE_SETUP #line 140 "config-lexer.l" -{ return WEEKS; } +{ return MONTHS; } YY_BREAK case 54: YY_RULE_SETUP @@ -1361,7 +1362,7 @@ YY_RULE_SETUP case 55: YY_RULE_SETUP #line 142 "config-lexer.l" -{ return DAYS; } +{ return WEEKS; } YY_BREAK case 56: YY_RULE_SETUP @@ -1371,7 +1372,7 @@ YY_RULE_SETUP case 57: YY_RULE_SETUP #line 144 "config-lexer.l" -{ return HOURS; } +{ return DAYS; } YY_BREAK case 58: YY_RULE_SETUP @@ -1381,7 +1382,7 @@ YY_RULE_SETUP case 59: YY_RULE_SETUP #line 146 "config-lexer.l" -{ return MINUTES; } +{ return HOURS; } YY_BREAK case 60: YY_RULE_SETUP @@ -1391,7 +1392,7 @@ YY_RULE_SETUP case 61: YY_RULE_SETUP #line 148 "config-lexer.l" -{ return SECONDS; } +{ return MINUTES; } YY_BREAK case 62: YY_RULE_SETUP @@ -1400,8 +1401,8 @@ YY_RULE_SETUP YY_BREAK case 63: YY_RULE_SETUP -#line 151 "config-lexer.l" -{ return BYTES; } +#line 150 "config-lexer.l" +{ return SECONDS; } YY_BREAK case 64: YY_RULE_SETUP @@ -1411,7 +1412,7 @@ YY_RULE_SETUP case 65: YY_RULE_SETUP #line 153 "config-lexer.l" -{ return KBYTES; } +{ return BYTES; } YY_BREAK case 66: YY_RULE_SETUP @@ -1436,7 +1437,7 @@ YY_RULE_SETUP case 70: YY_RULE_SETUP #line 158 "config-lexer.l" -{ return MBYTES; } +{ return KBYTES; } YY_BREAK case 71: YY_RULE_SETUP @@ -1460,134 +1461,139 @@ YY_RULE_SETUP YY_BREAK case 75: YY_RULE_SETUP -#line 164 "config-lexer.l" +#line 163 "config-lexer.l" +{ return MBYTES; } + YY_BREAK +case 76: +YY_RULE_SETUP +#line 165 "config-lexer.l" { yylval.number = OPM_TYPE_HTTP; return PROTOCOLTYPE; } YY_BREAK -case 76: +case 77: YY_RULE_SETUP -#line 169 "config-lexer.l" +#line 170 "config-lexer.l" { yylval.number = OPM_TYPE_HTTPPOST; return PROTOCOLTYPE; } YY_BREAK -case 77: +case 78: YY_RULE_SETUP -#line 174 "config-lexer.l" +#line 175 "config-lexer.l" { yylval.number = OPM_TYPE_SOCKS4; return PROTOCOLTYPE; } YY_BREAK -case 78: +case 79: YY_RULE_SETUP -#line 179 "config-lexer.l" +#line 180 "config-lexer.l" { yylval.number = OPM_TYPE_SOCKS5; return PROTOCOLTYPE; } YY_BREAK -case 79: +case 80: YY_RULE_SETUP -#line 184 "config-lexer.l" +#line 185 "config-lexer.l" { yylval.number = OPM_TYPE_WINGATE; return PROTOCOLTYPE; } YY_BREAK -case 80: +case 81: YY_RULE_SETUP -#line 189 "config-lexer.l" +#line 190 "config-lexer.l" { yylval.number = OPM_TYPE_ROUTER; return PROTOCOLTYPE; } YY_BREAK -case 81: +case 82: YY_RULE_SETUP -#line 195 "config-lexer.l" +#line 196 "config-lexer.l" { yylval.number=atoi(yytext); return NUMBER; } YY_BREAK -case 82: +case 83: YY_RULE_SETUP -#line 204 "config-lexer.l" +#line 205 "config-lexer.l" { yylval.number=1; return NUMBER; } YY_BREAK -case 83: +case 84: YY_RULE_SETUP -#line 208 "config-lexer.l" +#line 209 "config-lexer.l" { yylval.number=1; return NUMBER; } YY_BREAK -case 84: +case 85: YY_RULE_SETUP -#line 212 "config-lexer.l" +#line 213 "config-lexer.l" { yylval.number=1; return NUMBER; } YY_BREAK -case 85: +case 86: YY_RULE_SETUP -#line 219 "config-lexer.l" +#line 220 "config-lexer.l" { yylval.number=0; return NUMBER; } YY_BREAK -case 86: +case 87: YY_RULE_SETUP -#line 224 "config-lexer.l" +#line 225 "config-lexer.l" { yylval.number=0; return NUMBER; } YY_BREAK -case 87: +case 88: YY_RULE_SETUP -#line 229 "config-lexer.l" +#line 230 "config-lexer.l" { yylval.number=0; return NUMBER; } YY_BREAK -case 88: -/* rule 88 can match eol */ +case 89: +/* rule 89 can match eol */ YY_RULE_SETUP -#line 235 "config-lexer.l" +#line 236 "config-lexer.l" { strlcpy(linebuf, yytext + 1, sizeof(linebuf)); ++linenum; yyless(1); } YY_BREAK -case 89: +case 90: YY_RULE_SETUP -#line 241 "config-lexer.l" +#line 242 "config-lexer.l" /* ignore whitespace */; YY_BREAK -case 90: +case 91: YY_RULE_SETUP -#line 243 "config-lexer.l" +#line 244 "config-lexer.l" return yytext[0]; YY_BREAK -case 91: +case 92: YY_RULE_SETUP -#line 245 "config-lexer.l" +#line 246 "config-lexer.l" ECHO; YY_BREAK -#line 1591 "config-lexer.c" +#line 1597 "config-lexer.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -1880,7 +1886,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 >= 360 ) + if ( yy_current_state >= 364 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1908,11 +1914,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 >= 360 ) + if ( yy_current_state >= 364 ) 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 == 359); + yy_is_jam = (yy_current_state == 363); return yy_is_jam ? 0 : yy_current_state; } @@ -2545,7 +2551,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 245 "config-lexer.l" +#line 246 "config-lexer.l" diff --git a/src/config-lexer.l b/src/config-lexer.l index c6c1cc3..84749c3 100644 --- a/src/config-lexer.l +++ b/src/config-lexer.l @@ -109,6 +109,7 @@ NEGCACHE { return NEGCACHE; } NEGCACHE_REBUILD { return NEGCACHE_REBUILD; } NICK { return NICK; } NICKSERV { return NICKSERV; } +NOTICE { return NOTICE; } OPER { return OPER; } OPM { return OPM; } OPTIONS { return OPTIONS; } diff --git a/src/config-parser.c b/src/config-parser.c index 1f33b9a..3b3e51e 100644 --- a/src/config-parser.c +++ b/src/config-parser.c @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.0.2. */ +/* A Bison parser, made by GNU Bison 3.0.3. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.0.2" +#define YYBISON_VERSION "3.0.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -136,39 +136,40 @@ extern int yydebug; NEGCACHE_REBUILD = 280, NICK = 281, NICKSERV = 282, - OPER = 283, - OPM = 284, - OPTIONS = 285, - PASSWORD = 286, - PERFORM = 287, - PIDFILE = 288, - PORT = 289, - PROTOCOL = 290, - READTIMEOUT = 291, - REALNAME = 292, - REPLY = 293, - SCANLOG = 294, - SCANNER = 295, - SECONDS = 296, - MINUTES = 297, - HOURS = 298, - DAYS = 299, - WEEKS = 300, - MONTHS = 301, - YEARS = 302, - SENDMAIL = 303, - SERVER = 304, - TARGET_IP = 305, - TARGET_PORT = 306, - TARGET_STRING = 307, - TIMEOUT = 308, - TYPE = 309, - USERNAME = 310, - USER = 311, - VHOST = 312, - NUMBER = 313, - STRING = 314, - PROTOCOLTYPE = 315 + NOTICE = 283, + OPER = 284, + OPM = 285, + OPTIONS = 286, + PASSWORD = 287, + PERFORM = 288, + PIDFILE = 289, + PORT = 290, + PROTOCOL = 291, + READTIMEOUT = 292, + REALNAME = 293, + REPLY = 294, + SCANLOG = 295, + SCANNER = 296, + SECONDS = 297, + MINUTES = 298, + HOURS = 299, + DAYS = 300, + WEEKS = 301, + MONTHS = 302, + YEARS = 303, + SENDMAIL = 304, + SERVER = 305, + TARGET_IP = 306, + TARGET_PORT = 307, + TARGET_STRING = 308, + TIMEOUT = 309, + TYPE = 310, + USERNAME = 311, + USER = 312, + VHOST = 313, + NUMBER = 314, + STRING = 315, + PROTOCOLTYPE = 316 }; #endif /* Tokens. */ @@ -197,52 +198,55 @@ extern int yydebug; #define NEGCACHE_REBUILD 280 #define NICK 281 #define NICKSERV 282 -#define OPER 283 -#define OPM 284 -#define OPTIONS 285 -#define PASSWORD 286 -#define PERFORM 287 -#define PIDFILE 288 -#define PORT 289 -#define PROTOCOL 290 -#define READTIMEOUT 291 -#define REALNAME 292 -#define REPLY 293 -#define SCANLOG 294 -#define SCANNER 295 -#define SECONDS 296 -#define MINUTES 297 -#define HOURS 298 -#define DAYS 299 -#define WEEKS 300 -#define MONTHS 301 -#define YEARS 302 -#define SENDMAIL 303 -#define SERVER 304 -#define TARGET_IP 305 -#define TARGET_PORT 306 -#define TARGET_STRING 307 -#define TIMEOUT 308 -#define TYPE 309 -#define USERNAME 310 -#define USER 311 -#define VHOST 312 -#define NUMBER 313 -#define STRING 314 -#define PROTOCOLTYPE 315 +#define NOTICE 283 +#define OPER 284 +#define OPM 285 +#define OPTIONS 286 +#define PASSWORD 287 +#define PERFORM 288 +#define PIDFILE 289 +#define PORT 290 +#define PROTOCOL 291 +#define READTIMEOUT 292 +#define REALNAME 293 +#define REPLY 294 +#define SCANLOG 295 +#define SCANNER 296 +#define SECONDS 297 +#define MINUTES 298 +#define HOURS 299 +#define DAYS 300 +#define WEEKS 301 +#define MONTHS 302 +#define YEARS 303 +#define SENDMAIL 304 +#define SERVER 305 +#define TARGET_IP 306 +#define TARGET_PORT 307 +#define TARGET_STRING 308 +#define TIMEOUT 309 +#define TYPE 310 +#define USERNAME 311 +#define USER 312 +#define VHOST 313 +#define NUMBER 314 +#define STRING 315 +#define PROTOCOLTYPE 316 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE YYSTYPE; + union YYSTYPE { -#line 84 "config-parser.y" /* yacc.c:355 */ +#line 85 "config-parser.y" /* yacc.c:355 */ int number; char *string; -#line 245 "config-parser.c" /* yacc.c:355 */ +#line 247 "config-parser.c" /* yacc.c:355 */ }; + +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif @@ -256,7 +260,7 @@ int yyparse (void); /* Copy the second part of user declarations. */ -#line 260 "config-parser.c" /* yacc.c:358 */ +#line 264 "config-parser.c" /* yacc.c:358 */ #ifdef short # undef short @@ -498,21 +502,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 311 +#define YYLAST 314 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 66 +#define YYNTOKENS 67 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 80 +#define YYNNTS 81 /* YYNRULES -- Number of rules. */ -#define YYNRULES 151 +#define YYNRULES 153 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 329 +#define YYNSTATES 334 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 315 +#define YYMAXUTOK 316 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -526,14 +530,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, 65, 63, - 2, 64, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 66, 64, + 2, 65, 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, 61, 2, 62, 2, 2, 2, 2, + 2, 2, 2, 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, @@ -552,29 +556,29 @@ 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, 59, 60 + 55, 56, 57, 58, 59, 60, 61 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 99, 99, 100, 103, 104, 105, 106, 107, 108, - 110, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 121, 121, 122, 123, 124, 125, 130, 132, 133, 135, - 136, 137, 138, 139, 140, 142, 147, 152, 158, 163, - 171, 173, 174, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 194, 200, 206, 212, 218, 224, 230, 236, 244, 249, - 254, 260, 266, 272, 278, 288, 288, 305, 306, 308, - 309, 310, 312, 320, 328, 339, 339, 355, 356, 358, - 359, 360, 362, 372, 385, 385, 430, 431, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 444, 451, - 458, 465, 481, 487, 493, 499, 505, 524, 526, 527, - 529, 530, 531, 532, 533, 535, 541, 547, 556, 556, - 575, 576, 578, 579, 580, 581, 582, 583, 585, 592, - 599, 610, 616, 618, 619, 621, 639, 641, 642, 644, - 645, 647 + 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, 141, 143, 148, 153, 159, 164, + 172, 174, 175, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 196, 202, 208, 214, 220, 226, 232, 238, 246, + 254, 259, 264, 270, 276, 282, 288, 298, 298, 315, + 316, 318, 319, 320, 322, 330, 338, 349, 349, 365, + 366, 368, 369, 370, 372, 382, 395, 395, 440, 441, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, + 454, 461, 468, 475, 491, 497, 503, 509, 515, 534, + 536, 537, 539, 540, 541, 542, 543, 545, 551, 557, + 566, 566, 585, 586, 588, 589, 590, 591, 592, 593, + 595, 602, 609, 620, 626, 628, 629, 631, 649, 651, + 652, 654, 655, 657 }; #endif @@ -587,18 +591,19 @@ static const char *const yytname[] = "BYTES", "KBYTES", "MBYTES", "CHANNEL", "CONNREGEX", "DNS_FDLIMIT", "DNSBL_FROM", "DNSBL_TO", "EXEMPT", "FD", "INVITE", "IRC", "KLINE", "KEY", "MASK", "MAX_READ", "MODE", "NAME", "NEGCACHE", - "NEGCACHE_REBUILD", "NICK", "NICKSERV", "OPER", "OPM", "OPTIONS", - "PASSWORD", "PERFORM", "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_negcache_rebuild", - "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", + "NEGCACHE_REBUILD", "NICK", "NICKSERV", "NOTICE", "OPER", "OPM", + "OPTIONS", "PASSWORD", "PERFORM", "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_negcache_rebuild", "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_notice", "irc_port", "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", @@ -627,16 +632,16 @@ static const yytype_uint16 yytoknum[] = 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, 314, - 315, 123, 125, 59, 61, 58 + 315, 316, 123, 125, 59, 61, 58 }; # endif -#define YYPACT_NINF -125 +#define YYPACT_NINF -245 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-125))) + (!!((Yystate) == (-245))) -#define YYTABLE_NINF -129 +#define YYTABLE_NINF -131 #define yytable_value_is_error(Yytable_value) \ 0 @@ -645,39 +650,40 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -125, 127, -125, -53, -49, -47, -38, -125, -125, -125, - -125, -27, -125, 7, -125, -125, 34, 83, 77, 136, - -23, -21, -125, -14, 1, -125, -125, -125, -13, -3, - 2, 8, 9, 13, 24, 30, 42, 44, 48, 57, - 64, 65, 67, 0, -125, -125, -125, -125, -125, -125, - -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, - -125, 74, -125, 70, 71, 75, 12, -125, -125, -125, - -125, -125, 93, -125, 78, 82, 84, 86, 91, 19, - -125, -125, -125, -125, -125, -125, 47, 101, 17, 96, - -125, 106, 109, 111, 112, 113, 114, 115, 131, 132, - 87, 108, 133, 137, 138, 139, 140, -125, 134, 141, - 142, 143, 144, -125, 145, 146, 108, 108, 149, 150, - 147, -125, -125, 130, 148, 45, -125, -125, -125, -125, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 18, - -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, - 161, -125, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 135, 172, 173, 174, 175, 176, -125, 107, - 177, 178, 179, -125, 95, 180, 181, 182, 183, 184, - -125, 189, 190, 187, -125, 193, 194, 195, 196, 198, - 197, 199, 108, 200, 201, -125, -125, -125, -125, -125, - -125, -125, -125, -125, -125, -125, -125, 108, 108, 108, - 108, 108, 108, 108, -125, -125, -125, -125, -125, -125, - -125, 202, 203, 204, 81, -125, -125, -125, -125, -125, - -125, -125, -125, 205, 206, 207, 192, 208, 41, -125, - -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, - 210, 211, -125, 212, -2, 213, 214, 215, 216, 218, - 219, 220, 221, -125, -125, -125, -125, -125, -125, -125, - -125, 226, 227, 228, 225, -125, 231, 232, 233, 235, - 236, 234, -125, -125, -125, -125, 194, 194, 194, -125, - -125, -125, -125, 238, -125, -125, -125, -125, -125, 237, - 239, 240, -125, 241, 242, 243, 230, -51, -125, 244, - -125, -125, -125, -125, 245, -125, -125, -125, -125, -125, - -125, 250, 247, -125, -125, -125, 248, -125, -125 + -245, 142, -245, -55, -48, -43, -26, -245, -245, -245, + -245, -18, -245, 2, -245, -245, 73, 97, 89, 153, + -21, -9, -245, -8, 3, -245, -245, -245, -1, 13, + 14, 15, 23, 24, 30, 31, 34, 38, 39, 40, + 44, 47, 51, 53, 0, -245, -245, -245, -245, -245, + -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, + -245, -245, -245, 76, -245, 57, 62, 71, 12, -245, + -245, -245, -245, -245, 105, -245, 75, 78, 79, 80, + 81, 20, -245, -245, -245, -245, -245, -245, 10, 116, + 88, 77, -245, 90, 91, 98, 100, 101, 102, 103, + 106, 111, 115, 117, 120, 121, 122, 124, 125, 93, + -245, 118, 126, 128, 129, 127, -245, 130, 131, 120, + 120, 141, 149, 146, -245, -245, 147, 148, 45, -245, + -245, -245, -245, 150, 151, 154, 155, 156, 157, 158, + 159, 160, 19, -245, -245, -245, -245, -245, -245, -245, + -245, -245, -245, 162, -245, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 152, 174, 175, 176, + 177, 178, -245, 68, 179, 180, 181, -245, 110, 182, + 183, 184, 185, 186, -245, 191, 192, 189, -245, 195, + 196, 197, 198, 200, 199, 201, 120, 202, 203, -245, + -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, + -245, -245, 120, 120, 120, 120, 120, 120, 120, -245, + -245, -245, -245, -245, -245, -245, 204, 205, 206, -11, + -245, -245, -245, -245, -245, -245, -245, -245, 207, 208, + 209, 194, 210, 58, -245, -245, -245, -245, -245, -245, + -245, -245, -245, -245, -245, 212, 213, -245, 214, 61, + 215, 216, 217, 218, 220, 221, 222, 223, -245, -245, + -245, -245, -245, -245, -245, -245, 228, 229, 230, 227, + -245, 233, 234, 235, 237, 238, 236, -245, -245, -245, + -245, 196, 196, 196, -245, -245, -245, -245, 240, -245, + -245, -245, -245, -245, 239, 241, 242, -245, 243, 244, + 245, 232, -57, -245, 246, -245, -245, -245, -245, 247, + -245, -245, -245, -245, -245, -245, 252, 249, -245, -245, + -245, 250, -245, -245 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -685,65 +691,68 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 85, 1, 0, 0, 0, 0, 3, 5, 4, + 2, 87, 1, 0, 0, 0, 0, 3, 5, 4, 7, 0, 8, 0, 6, 9, 0, 0, 0, 0, - 0, 0, 150, 0, 0, 148, 149, 59, 0, 0, + 0, 0, 152, 0, 0, 150, 151, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 42, 43, 45, 48, 46, 47, - 49, 50, 57, 51, 52, 53, 54, 55, 56, 44, - 58, 0, 124, 0, 0, 0, 0, 119, 120, 121, - 122, 123, 0, 34, 0, 0, 0, 0, 0, 0, - 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, - 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, - 0, 0, 0, 118, 0, 0, 0, 0, 0, 0, - 0, 27, 91, 0, 0, 0, 88, 89, 90, 107, + 0, 0, 0, 0, 0, 42, 43, 45, 48, 46, + 47, 49, 50, 57, 58, 51, 52, 53, 54, 55, + 56, 44, 59, 0, 126, 0, 0, 0, 0, 121, + 122, 123, 124, 125, 0, 34, 0, 0, 0, 0, + 0, 0, 28, 29, 30, 31, 32, 33, 0, 0, + 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 97, 98, 99, 101, 103, 100, 102, 105, 106, 104, - 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 0, 0, 0, 0, 0, 40, 0, - 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 87, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 96, 151, 60, 74, 61, - 62, 63, 64, 65, 66, 67, 68, 10, 10, 10, - 10, 10, 10, 10, 12, 11, 69, 70, 71, 72, - 73, 0, 0, 0, 0, 78, 79, 80, 81, 125, - 126, 127, 137, 0, 0, 0, 0, 0, 0, 131, - 132, 134, 133, 135, 136, 38, 35, 36, 37, 39, - 0, 0, 86, 0, 20, 0, 0, 0, 0, 0, - 0, 0, 0, 95, 13, 14, 15, 16, 17, 18, - 19, 0, 0, 0, 0, 77, 0, 0, 0, 0, - 0, 0, 130, 92, 93, 112, 20, 20, 20, 22, - 21, 115, 108, 0, 110, 113, 111, 114, 109, 0, - 0, 0, 76, 0, 0, 0, 0, 0, 144, 0, - 129, 23, 24, 25, 0, 84, 83, 82, 141, 139, - 138, 0, 0, 143, 140, 116, 0, 142, 145 + 41, 0, 0, 0, 0, 0, 120, 0, 0, 0, + 0, 0, 0, 0, 27, 93, 0, 0, 0, 90, + 91, 92, 109, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 99, 100, 101, 103, 105, 102, 104, + 107, 108, 106, 0, 148, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, + 0, 0, 40, 0, 0, 0, 0, 119, 0, 0, + 0, 0, 0, 0, 26, 0, 0, 0, 89, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, + 153, 61, 76, 62, 63, 64, 65, 69, 66, 67, + 68, 70, 10, 10, 10, 10, 10, 10, 10, 12, + 11, 71, 72, 73, 74, 75, 0, 0, 0, 0, + 80, 81, 82, 83, 127, 128, 129, 139, 0, 0, + 0, 0, 0, 0, 133, 134, 136, 135, 137, 138, + 38, 35, 36, 37, 39, 0, 0, 88, 0, 20, + 0, 0, 0, 0, 0, 0, 0, 0, 97, 13, + 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, + 79, 0, 0, 0, 0, 0, 0, 132, 94, 95, + 114, 20, 20, 20, 22, 21, 117, 110, 0, 112, + 115, 113, 116, 111, 0, 0, 0, 78, 0, 0, + 0, 0, 0, 146, 0, 131, 23, 24, 25, 0, + 86, 85, 84, 143, 141, 140, 0, 0, 145, 142, + 118, 0, 144, 147 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -125, -125, -125, -24, -101, -124, 25, -125, -125, 120, - -125, -125, -125, -125, -125, -125, -125, 217, -125, -125, - -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, - -125, -125, -125, -125, -125, -125, -19, -125, -125, -125, - -125, -125, -125, 88, -125, -125, -125, -125, -125, 122, - -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, - -125, 224, -125, -125, -125, -125, -125, -125, 27, -125, - -125, -125, -125, -125, -125, -93, -125, -125, 254, -125 + -245, -245, -245, -10, -104, -244, 27, -245, -245, 133, + -245, -245, -245, -245, -245, -245, -245, 219, -245, -245, + -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, + -245, -245, -245, -245, -245, -245, -245, 35, -245, -245, + -245, -245, -245, -245, 137, -245, -245, -245, -245, -245, + 139, -245, -245, -245, -245, -245, -245, -245, -245, -245, + -245, -245, 225, -245, -245, -245, -245, -245, -245, -25, + -245, -245, -245, -245, -245, -245, -46, -245, -245, 277, + -245 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 7, 214, 215, 289, 290, 8, 79, 80, - 81, 82, 83, 84, 85, 9, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 224, 225, 226, 227, 228, - 10, 11, 125, 126, 127, 128, 12, 13, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 14, - 66, 67, 68, 69, 70, 71, 72, 238, 239, 240, - 241, 242, 243, 244, 307, 308, 15, 24, 25, 26 + -1, 1, 7, 219, 220, 294, 295, 8, 81, 82, + 83, 84, 85, 86, 87, 9, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 229, 230, 231, 232, + 233, 10, 11, 128, 129, 130, 131, 12, 13, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 14, 68, 69, 70, 71, 72, 73, 74, 243, 244, + 245, 246, 247, 248, 249, 312, 313, 15, 24, 25, + 26 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -751,134 +760,135 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 163, 27, 22, 28, 286, 287, 288, 306, 16, -75, - 29, 322, 17, 62, 18, 176, 177, -128, 30, 129, - 73, 23, 31, 19, 63, 64, 32, 33, 34, 20, - 74, 35, 36, 130, 37, 22, 38, 39, 86, 131, - 87, 132, 232, 75, 76, 233, 122, 21, 122, 40, - 88, 91, 77, 133, 23, 41, 254, 42, 78, 234, - 65, 92, 106, 89, 235, 123, 93, 123, 134, 135, - 136, 137, 94, 95, 112, 138, 150, 96, 62, 236, - 194, 120, -128, 108, 27, 124, 28, 124, 97, 63, - 64, 261, -75, 29, 98, 237, 232, 221, 114, 233, - 222, 30, 129, 281, 223, 31, 99, 183, 100, 32, - 33, 34, 101, 234, 35, 36, 130, 37, 235, 38, - 39, 102, 131, 221, 132, 65, 222, 2, 103, 104, - 223, 105, 40, 236, 109, 110, 133, 73, 41, 111, - 42, 3, 115, 274, 4, 161, 116, 74, 117, 237, - 118, 134, 135, 136, 137, 119, 5, 6, 138, 151, - 75, 76, 311, 312, 313, 152, 162, -94, 153, 77, - 154, 155, 156, 157, 158, 78, 207, 208, 209, 210, - 211, 212, 213, 264, 265, 266, 267, 268, 269, 270, - 159, 160, 164, 162, 181, 169, 165, 166, 167, 121, - 170, 171, 172, 168, 175, 275, 174, 173, 178, 179, - 180, 255, 182, 184, 323, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 216, 217, 218, 219, 220, - 229, 230, 231, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 279, 256, 259, 257, 258, 260, 262, - 107, 195, 0, 0, 263, 282, 271, 272, 273, 276, - 277, 278, 280, 283, 284, 285, 291, 292, 90, 294, - 293, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 113, 304, 305, 306, 321, 309, 314, 310, 0, 0, - 315, 0, 316, 317, 318, 319, 320, 324, 325, 326, - 327, 328 + 167, 27, 311, 28, 22, 226, 327, 16, 227, -77, + 29, 125, 228, 64, 17, 180, 181, -130, 30, 18, + 132, 75, 31, 23, 65, 66, 32, 33, 34, 35, + 126, 76, 36, 37, 133, 38, 19, 39, 40, 20, + 134, 88, 135, 21, 77, 78, 125, 316, 317, 318, + 41, 127, 279, 89, 79, 136, 42, 90, 43, 237, + 80, 67, 238, 109, 93, 126, 91, 291, 292, 293, + 137, 138, 139, 140, 22, 115, 239, 141, 94, 95, + 96, 240, 198, 123, 226, 111, 127, 227, 97, 98, + 64, 228, 266, 23, -130, 99, 100, 241, 27, 101, + 28, 65, 66, 102, 103, 104, -77, 29, 187, 105, + 117, 237, 106, 242, 238, 30, 107, 132, 108, 31, + 259, 286, 112, 32, 33, 34, 35, 113, 239, 36, + 37, 133, 38, 240, 39, 40, 114, 134, 67, 135, + 118, 154, 2, 119, 120, 121, 122, 41, 153, 241, + 155, 156, 136, 42, 75, 43, 3, 172, 157, 4, + 158, 159, 160, 161, 76, 242, 162, 137, 138, 139, + 140, 163, 5, 6, 141, 164, 165, 77, 78, 166, + 173, 168, 169, -96, 170, 171, 174, 79, 175, 176, + 179, 177, 178, 80, 212, 213, 214, 215, 216, 217, + 218, 182, 269, 270, 271, 272, 273, 274, 275, 183, + 184, 166, 185, 186, 124, 189, 190, 260, 287, 191, + 192, 193, 194, 195, 196, 197, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 221, 222, + 223, 224, 225, 234, 235, 236, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 284, 261, 264, 262, + 263, 265, 267, 110, 280, 188, 328, 268, 0, 276, + 277, 278, 281, 282, 283, 285, 288, 289, 290, 296, + 297, 199, 299, 298, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 116, 309, 310, 311, 326, 314, 319, + 315, 92, 0, 320, 0, 321, 322, 323, 324, 325, + 329, 330, 331, 332, 333 }; static const yytype_int16 yycheck[] = { - 101, 1, 1, 3, 6, 7, 8, 58, 61, 9, - 10, 62, 61, 1, 61, 116, 117, 5, 18, 1, - 1, 20, 22, 61, 12, 13, 26, 27, 28, 56, - 11, 31, 32, 15, 34, 1, 36, 37, 61, 21, - 61, 23, 1, 24, 25, 4, 1, 40, 1, 49, - 64, 64, 33, 35, 20, 55, 58, 57, 39, 18, - 48, 64, 62, 62, 23, 20, 64, 20, 50, 51, - 52, 53, 64, 64, 62, 57, 59, 64, 1, 38, - 62, 62, 5, 9, 1, 40, 3, 40, 64, 12, - 13, 192, 9, 10, 64, 54, 1, 16, 5, 4, - 19, 18, 1, 62, 23, 22, 64, 62, 64, 26, - 27, 28, 64, 18, 31, 32, 15, 34, 23, 36, - 37, 64, 21, 16, 23, 48, 19, 0, 64, 64, - 23, 64, 49, 38, 64, 64, 35, 1, 55, 64, - 57, 14, 64, 62, 17, 58, 64, 11, 64, 54, - 64, 50, 51, 52, 53, 64, 29, 30, 57, 63, - 24, 25, 286, 287, 288, 59, 58, 40, 59, 33, - 59, 59, 59, 59, 59, 39, 41, 42, 43, 44, - 45, 46, 47, 207, 208, 209, 210, 211, 212, 213, - 59, 59, 59, 58, 64, 61, 59, 59, 59, 79, - 59, 59, 59, 63, 58, 224, 61, 63, 59, 59, - 63, 186, 64, 125, 307, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, 59, 59, - 63, 58, 58, 61, 59, 58, 60, 59, 59, 59, - 43, 139, -1, -1, 63, 238, 64, 64, 64, 64, - 64, 64, 64, 63, 63, 63, 63, 63, 24, 63, - 65, 63, 63, 63, 63, 59, 59, 59, 63, 58, - 66, 59, 59, 58, 64, 59, 58, 63, -1, -1, - 63, -1, 63, 63, 63, 63, 63, 63, 63, 59, - 63, 63 + 104, 1, 59, 3, 1, 16, 63, 62, 19, 9, + 10, 1, 23, 1, 62, 119, 120, 5, 18, 62, + 1, 1, 22, 20, 12, 13, 26, 27, 28, 29, + 20, 11, 32, 33, 15, 35, 62, 37, 38, 57, + 21, 62, 23, 41, 24, 25, 1, 291, 292, 293, + 50, 41, 63, 62, 34, 36, 56, 65, 58, 1, + 40, 49, 4, 63, 65, 20, 63, 6, 7, 8, + 51, 52, 53, 54, 1, 63, 18, 58, 65, 65, + 65, 23, 63, 63, 16, 9, 41, 19, 65, 65, + 1, 23, 196, 20, 5, 65, 65, 39, 1, 65, + 3, 12, 13, 65, 65, 65, 9, 10, 63, 65, + 5, 1, 65, 55, 4, 18, 65, 1, 65, 22, + 59, 63, 65, 26, 27, 28, 29, 65, 18, 32, + 33, 15, 35, 23, 37, 38, 65, 21, 49, 23, + 65, 64, 0, 65, 65, 65, 65, 50, 60, 39, + 60, 60, 36, 56, 1, 58, 14, 64, 60, 17, + 60, 60, 60, 60, 11, 55, 60, 51, 52, 53, + 54, 60, 30, 31, 58, 60, 59, 24, 25, 59, + 62, 60, 60, 41, 60, 60, 60, 34, 60, 60, + 59, 64, 62, 40, 42, 43, 44, 45, 46, 47, + 48, 60, 212, 213, 214, 215, 216, 217, 218, 60, + 64, 59, 65, 65, 81, 65, 65, 190, 243, 65, + 65, 65, 65, 65, 65, 65, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 60, 60, 64, 59, 59, 62, 60, 59, 61, + 60, 60, 60, 44, 229, 128, 312, 64, -1, 65, + 65, 65, 65, 65, 65, 65, 64, 64, 64, 64, + 64, 142, 64, 66, 64, 64, 64, 64, 60, 60, + 60, 64, 59, 68, 60, 60, 59, 65, 60, 59, + 64, 24, -1, 64, -1, 64, 64, 64, 64, 64, + 64, 64, 60, 64, 64 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 67, 0, 14, 17, 29, 30, 68, 73, 81, - 106, 107, 112, 113, 125, 142, 61, 61, 61, 61, - 56, 40, 1, 20, 143, 144, 145, 1, 3, 10, - 18, 22, 26, 27, 28, 31, 32, 34, 36, 37, - 49, 55, 57, 82, 83, 84, 85, 86, 87, 88, + 0, 68, 0, 14, 17, 30, 31, 69, 74, 82, + 108, 109, 114, 115, 127, 144, 62, 62, 62, 62, + 57, 41, 1, 20, 145, 146, 147, 1, 3, 10, + 18, 22, 26, 27, 28, 29, 32, 33, 35, 37, + 38, 50, 56, 58, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 1, 12, 13, 48, 126, 127, 128, 129, - 130, 131, 132, 1, 11, 24, 25, 33, 39, 74, - 75, 76, 77, 78, 79, 80, 61, 61, 64, 62, - 144, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 62, 83, 9, 64, - 64, 64, 62, 127, 5, 64, 64, 64, 64, 64, - 62, 75, 1, 20, 40, 108, 109, 110, 111, 1, - 15, 21, 23, 35, 50, 51, 52, 53, 57, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 59, 63, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 58, 58, 70, 59, 59, 59, 59, 63, 61, - 59, 59, 59, 63, 61, 58, 70, 70, 59, 59, - 63, 64, 64, 62, 109, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 62, 115, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 41, 42, 43, - 44, 45, 46, 47, 69, 70, 63, 63, 63, 63, - 63, 16, 19, 23, 101, 102, 103, 104, 105, 63, - 63, 63, 1, 4, 18, 23, 38, 54, 133, 134, - 135, 136, 137, 138, 139, 63, 63, 63, 63, 63, - 59, 59, 63, 58, 58, 72, 59, 60, 59, 58, - 59, 70, 59, 63, 69, 69, 69, 69, 69, 69, - 69, 64, 64, 64, 62, 102, 64, 64, 64, 61, - 64, 62, 134, 63, 63, 63, 6, 7, 8, 71, - 72, 63, 63, 65, 63, 63, 63, 63, 63, 59, - 59, 59, 63, 58, 59, 59, 58, 140, 141, 59, - 63, 71, 71, 71, 58, 63, 63, 63, 63, 63, - 63, 64, 62, 141, 63, 63, 59, 63, 63 + 99, 100, 101, 102, 1, 12, 13, 49, 128, 129, + 130, 131, 132, 133, 134, 1, 11, 24, 25, 34, + 40, 75, 76, 77, 78, 79, 80, 81, 62, 62, + 65, 63, 146, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 63, + 84, 9, 65, 65, 65, 63, 129, 5, 65, 65, + 65, 65, 65, 63, 76, 1, 20, 41, 110, 111, + 112, 113, 1, 15, 21, 23, 36, 51, 52, 53, + 54, 58, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 60, 64, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 59, 59, 71, 60, 60, + 60, 60, 64, 62, 60, 60, 60, 64, 62, 59, + 71, 71, 60, 60, 64, 65, 65, 63, 111, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 63, 117, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 42, 43, 44, 45, 46, 47, 48, 70, + 71, 64, 64, 64, 64, 64, 16, 19, 23, 103, + 104, 105, 106, 107, 64, 64, 64, 1, 4, 18, + 23, 39, 55, 135, 136, 137, 138, 139, 140, 141, + 64, 64, 64, 64, 64, 60, 60, 64, 59, 59, + 73, 60, 61, 60, 59, 60, 71, 60, 64, 70, + 70, 70, 70, 70, 70, 70, 65, 65, 65, 63, + 104, 65, 65, 65, 62, 65, 63, 136, 64, 64, + 64, 6, 7, 8, 72, 73, 64, 64, 66, 64, + 64, 64, 64, 64, 60, 60, 60, 64, 59, 60, + 60, 59, 142, 143, 60, 64, 72, 72, 72, 59, + 64, 64, 64, 64, 64, 64, 65, 63, 143, 64, + 64, 60, 64, 64 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 66, 67, 67, 68, 68, 68, 68, 68, 68, - 69, 69, 70, 70, 70, 70, 70, 70, 70, 70, - 71, 71, 72, 72, 72, 72, 73, 74, 74, 75, - 75, 75, 75, 75, 75, 76, 77, 78, 79, 80, - 81, 82, 82, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, + 0, 67, 68, 68, 69, 69, 69, 69, 69, 69, + 70, 70, 71, 71, 71, 71, 71, 71, 71, 71, + 72, 72, 73, 73, 73, 73, 74, 75, 75, 76, + 76, 76, 76, 76, 76, 77, 78, 79, 80, 81, + 82, 83, 83, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 100, 99, 101, 101, 102, - 102, 102, 103, 104, 105, 107, 106, 108, 108, 109, - 109, 109, 110, 111, 113, 112, 114, 114, 115, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 126, - 127, 127, 127, 127, 127, 128, 129, 130, 132, 131, - 133, 133, 134, 134, 134, 134, 134, 134, 135, 136, - 137, 138, 139, 140, 140, 141, 142, 143, 143, 144, - 144, 145 + 94, 95, 96, 97, 98, 99, 100, 102, 101, 103, + 103, 104, 104, 104, 105, 106, 107, 109, 108, 110, + 110, 111, 111, 111, 112, 113, 115, 114, 116, 116, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 128, 129, 129, 129, 129, 129, 130, 131, 132, + 134, 133, 135, 135, 136, 136, 136, 136, 136, 136, + 137, 138, 139, 140, 141, 142, 142, 143, 144, 145, + 145, 146, 146, 147 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -890,16 +900,16 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 5, 2, 1, 1, 1, 1, 1, 1, 1, 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, 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, 4, 4, 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 }; @@ -1576,268 +1586,279 @@ yyreduce: switch (yyn) { case 10: -#line 110 "config-parser.y" /* yacc.c:1646 */ +#line 111 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = 0; } -#line 1582 "config-parser.c" /* yacc.c:1646 */ +#line 1592 "config-parser.c" /* yacc.c:1646 */ break; case 12: -#line 111 "config-parser.y" /* yacc.c:1646 */ +#line 112 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); } -#line 1588 "config-parser.c" /* yacc.c:1646 */ +#line 1598 "config-parser.c" /* yacc.c:1646 */ break; case 13: -#line 112 "config-parser.y" /* yacc.c:1646 */ +#line 113 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); } -#line 1594 "config-parser.c" /* yacc.c:1646 */ +#line 1604 "config-parser.c" /* yacc.c:1646 */ break; case 14: -#line 113 "config-parser.y" /* yacc.c:1646 */ +#line 114 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); } -#line 1600 "config-parser.c" /* yacc.c:1646 */ +#line 1610 "config-parser.c" /* yacc.c:1646 */ break; case 15: -#line 114 "config-parser.y" /* yacc.c:1646 */ +#line 115 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); } -#line 1606 "config-parser.c" /* yacc.c:1646 */ +#line 1616 "config-parser.c" /* yacc.c:1646 */ break; case 16: -#line 115 "config-parser.y" /* yacc.c:1646 */ +#line 116 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); } -#line 1612 "config-parser.c" /* yacc.c:1646 */ +#line 1622 "config-parser.c" /* yacc.c:1646 */ break; case 17: -#line 116 "config-parser.y" /* yacc.c:1646 */ +#line 117 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); } -#line 1618 "config-parser.c" /* yacc.c:1646 */ +#line 1628 "config-parser.c" /* yacc.c:1646 */ break; case 18: -#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 * 4 + (yyvsp[0].number); } -#line 1624 "config-parser.c" /* yacc.c:1646 */ +#line 1634 "config-parser.c" /* yacc.c:1646 */ break; case 19: -#line 118 "config-parser.y" /* yacc.c:1646 */ +#line 119 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); } -#line 1630 "config-parser.c" /* yacc.c:1646 */ +#line 1640 "config-parser.c" /* yacc.c:1646 */ break; case 20: -#line 121 "config-parser.y" /* yacc.c:1646 */ +#line 122 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = 0; } -#line 1636 "config-parser.c" /* yacc.c:1646 */ +#line 1646 "config-parser.c" /* yacc.c:1646 */ break; case 22: -#line 122 "config-parser.y" /* yacc.c:1646 */ +#line 123 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); } -#line 1642 "config-parser.c" /* yacc.c:1646 */ +#line 1652 "config-parser.c" /* yacc.c:1646 */ break; case 23: -#line 123 "config-parser.y" /* yacc.c:1646 */ +#line 124 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); } -#line 1648 "config-parser.c" /* yacc.c:1646 */ +#line 1658 "config-parser.c" /* yacc.c:1646 */ break; case 24: -#line 124 "config-parser.y" /* yacc.c:1646 */ +#line 125 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); } -#line 1654 "config-parser.c" /* yacc.c:1646 */ +#line 1664 "config-parser.c" /* yacc.c:1646 */ break; case 25: -#line 125 "config-parser.y" /* yacc.c:1646 */ +#line 126 "config-parser.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); } -#line 1660 "config-parser.c" /* yacc.c:1646 */ +#line 1670 "config-parser.c" /* yacc.c:1646 */ break; case 35: -#line 143 "config-parser.y" /* yacc.c:1646 */ +#line 144 "config-parser.y" /* yacc.c:1646 */ { OptionsItem->negcache = (yyvsp[-1].number); } -#line 1668 "config-parser.c" /* yacc.c:1646 */ +#line 1678 "config-parser.c" /* yacc.c:1646 */ break; case 36: -#line 148 "config-parser.y" /* yacc.c:1646 */ +#line 149 "config-parser.y" /* yacc.c:1646 */ { OptionsItem->negcache_rebuild = (yyvsp[-1].number); } -#line 1676 "config-parser.c" /* yacc.c:1646 */ +#line 1686 "config-parser.c" /* yacc.c:1646 */ break; case 37: -#line 153 "config-parser.y" /* yacc.c:1646 */ +#line 154 "config-parser.y" /* yacc.c:1646 */ { MyFree(OptionsItem->pidfile); OptionsItem->pidfile = xstrdup((yyvsp[-1].string)); } -#line 1685 "config-parser.c" /* yacc.c:1646 */ +#line 1695 "config-parser.c" /* yacc.c:1646 */ break; case 38: -#line 159 "config-parser.y" /* yacc.c:1646 */ +#line 160 "config-parser.y" /* yacc.c:1646 */ { OptionsItem->dns_fdlimit = (yyvsp[-1].number); } -#line 1693 "config-parser.c" /* yacc.c:1646 */ +#line 1703 "config-parser.c" /* yacc.c:1646 */ break; case 39: -#line 164 "config-parser.y" /* yacc.c:1646 */ +#line 165 "config-parser.y" /* yacc.c:1646 */ { MyFree(OptionsItem->scanlog); OptionsItem->scanlog = xstrdup((yyvsp[-1].string)); } -#line 1702 "config-parser.c" /* yacc.c:1646 */ +#line 1712 "config-parser.c" /* yacc.c:1646 */ break; - case 60: -#line 195 "config-parser.y" /* yacc.c:1646 */ + case 61: +#line 197 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->away); IRCItem->away = xstrdup((yyvsp[-1].string)); } -#line 1711 "config-parser.c" /* yacc.c:1646 */ +#line 1721 "config-parser.c" /* yacc.c:1646 */ break; - case 61: -#line 201 "config-parser.y" /* yacc.c:1646 */ + case 62: +#line 203 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->kline); IRCItem->kline = xstrdup((yyvsp[-1].string)); } -#line 1720 "config-parser.c" /* yacc.c:1646 */ +#line 1730 "config-parser.c" /* yacc.c:1646 */ break; - case 62: -#line 207 "config-parser.y" /* yacc.c:1646 */ + case 63: +#line 209 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->mode); IRCItem->mode = xstrdup((yyvsp[-1].string)); } -#line 1729 "config-parser.c" /* yacc.c:1646 */ +#line 1739 "config-parser.c" /* yacc.c:1646 */ break; - case 63: -#line 213 "config-parser.y" /* yacc.c:1646 */ + case 64: +#line 215 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->nick); IRCItem->nick = xstrdup((yyvsp[-1].string)); } -#line 1738 "config-parser.c" /* yacc.c:1646 */ +#line 1748 "config-parser.c" /* yacc.c:1646 */ break; - case 64: -#line 219 "config-parser.y" /* yacc.c:1646 */ + case 65: +#line 221 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->nickserv); IRCItem->nickserv = xstrdup((yyvsp[-1].string)); } -#line 1747 "config-parser.c" /* yacc.c:1646 */ +#line 1757 "config-parser.c" /* yacc.c:1646 */ break; - case 65: -#line 225 "config-parser.y" /* yacc.c:1646 */ + case 66: +#line 227 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->oper); IRCItem->oper = xstrdup((yyvsp[-1].string)); } -#line 1756 "config-parser.c" /* yacc.c:1646 */ +#line 1766 "config-parser.c" /* yacc.c:1646 */ break; - case 66: -#line 231 "config-parser.y" /* yacc.c:1646 */ + case 67: +#line 233 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->password); IRCItem->password = xstrdup((yyvsp[-1].string)); } -#line 1765 "config-parser.c" /* yacc.c:1646 */ +#line 1775 "config-parser.c" /* yacc.c:1646 */ break; - case 67: -#line 237 "config-parser.y" /* yacc.c:1646 */ + case 68: +#line 239 "config-parser.y" /* yacc.c:1646 */ { node_t *node; node = node_create(xstrdup((yyvsp[-1].string))); list_add(IRCItem->performs, node); } -#line 1776 "config-parser.c" /* yacc.c:1646 */ +#line 1786 "config-parser.c" /* yacc.c:1646 */ break; - case 68: -#line 245 "config-parser.y" /* yacc.c:1646 */ + case 69: +#line 247 "config-parser.y" /* yacc.c:1646 */ + { + node_t *node; + node = node_create(xstrdup((yyvsp[-1].string))); + + list_add(IRCItem->notices, node); +} +#line 1797 "config-parser.c" /* yacc.c:1646 */ + break; + + case 70: +#line 255 "config-parser.y" /* yacc.c:1646 */ { IRCItem->port = (yyvsp[-1].number); } -#line 1784 "config-parser.c" /* yacc.c:1646 */ +#line 1805 "config-parser.c" /* yacc.c:1646 */ break; - case 69: -#line 250 "config-parser.y" /* yacc.c:1646 */ + case 71: +#line 260 "config-parser.y" /* yacc.c:1646 */ { IRCItem->readtimeout = (yyvsp[-1].number); } -#line 1792 "config-parser.c" /* yacc.c:1646 */ +#line 1813 "config-parser.c" /* yacc.c:1646 */ break; - case 70: -#line 255 "config-parser.y" /* yacc.c:1646 */ + case 72: +#line 265 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->realname); IRCItem->realname = xstrdup((yyvsp[-1].string)); } -#line 1801 "config-parser.c" /* yacc.c:1646 */ +#line 1822 "config-parser.c" /* yacc.c:1646 */ break; - case 71: -#line 261 "config-parser.y" /* yacc.c:1646 */ + case 73: +#line 271 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->server); IRCItem->server = xstrdup((yyvsp[-1].string)); } -#line 1810 "config-parser.c" /* yacc.c:1646 */ +#line 1831 "config-parser.c" /* yacc.c:1646 */ break; - case 72: -#line 267 "config-parser.y" /* yacc.c:1646 */ + case 74: +#line 277 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->username); IRCItem->username = xstrdup((yyvsp[-1].string)); } -#line 1819 "config-parser.c" /* yacc.c:1646 */ +#line 1840 "config-parser.c" /* yacc.c:1646 */ break; - case 73: -#line 273 "config-parser.y" /* yacc.c:1646 */ + case 75: +#line 283 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->vhost); IRCItem->vhost = xstrdup((yyvsp[-1].string)); } -#line 1828 "config-parser.c" /* yacc.c:1646 */ +#line 1849 "config-parser.c" /* yacc.c:1646 */ break; - case 74: -#line 279 "config-parser.y" /* yacc.c:1646 */ + case 76: +#line 289 "config-parser.y" /* yacc.c:1646 */ { MyFree(IRCItem->connregex); IRCItem->connregex = xstrdup((yyvsp[-1].string)); } -#line 1837 "config-parser.c" /* yacc.c:1646 */ +#line 1858 "config-parser.c" /* yacc.c:1646 */ break; - case 75: -#line 288 "config-parser.y" /* yacc.c:1646 */ + case 77: +#line 298 "config-parser.y" /* yacc.c:1646 */ { node_t *node; struct ChannelConf *item; @@ -1853,44 +1874,44 @@ yyreduce: tmp = item; } -#line 1857 "config-parser.c" /* yacc.c:1646 */ +#line 1878 "config-parser.c" /* yacc.c:1646 */ break; - case 82: -#line 313 "config-parser.y" /* yacc.c:1646 */ + case 84: +#line 323 "config-parser.y" /* yacc.c:1646 */ { struct ChannelConf *item = tmp; MyFree(item->name); item->name = xstrdup((yyvsp[-1].string)); } -#line 1868 "config-parser.c" /* yacc.c:1646 */ +#line 1889 "config-parser.c" /* yacc.c:1646 */ break; - case 83: -#line 321 "config-parser.y" /* yacc.c:1646 */ + case 85: +#line 331 "config-parser.y" /* yacc.c:1646 */ { struct ChannelConf *item = tmp; MyFree(item->key); item->key = xstrdup((yyvsp[-1].string)); } -#line 1879 "config-parser.c" /* yacc.c:1646 */ +#line 1900 "config-parser.c" /* yacc.c:1646 */ break; - case 84: -#line 329 "config-parser.y" /* yacc.c:1646 */ + case 86: +#line 339 "config-parser.y" /* yacc.c:1646 */ { struct ChannelConf *item = tmp; MyFree(item->invite); item->invite = xstrdup((yyvsp[-1].string)); } -#line 1890 "config-parser.c" /* yacc.c:1646 */ +#line 1911 "config-parser.c" /* yacc.c:1646 */ break; - case 85: -#line 339 "config-parser.y" /* yacc.c:1646 */ + case 87: +#line 349 "config-parser.y" /* yacc.c:1646 */ { node_t *node; struct UserConf *item; @@ -1905,11 +1926,11 @@ yyreduce: tmp = item; } -#line 1909 "config-parser.c" /* yacc.c:1646 */ +#line 1930 "config-parser.c" /* yacc.c:1646 */ break; - case 92: -#line 363 "config-parser.y" /* yacc.c:1646 */ + case 94: +#line 373 "config-parser.y" /* yacc.c:1646 */ { struct UserConf *item = tmp; node_t *node; @@ -1918,11 +1939,11 @@ yyreduce: list_add(item->masks, node); } -#line 1922 "config-parser.c" /* yacc.c:1646 */ +#line 1943 "config-parser.c" /* yacc.c:1646 */ break; - case 93: -#line 373 "config-parser.y" /* yacc.c:1646 */ + case 95: +#line 383 "config-parser.y" /* yacc.c:1646 */ { struct UserConf *item = tmp; node_t *node; @@ -1931,11 +1952,11 @@ yyreduce: list_add(item->scanners, node); } -#line 1935 "config-parser.c" /* yacc.c:1646 */ +#line 1956 "config-parser.c" /* yacc.c:1646 */ break; - case 94: -#line 385 "config-parser.y" /* yacc.c:1646 */ + case 96: +#line 395 "config-parser.y" /* yacc.c:1646 */ { node_t *node; struct ScannerConf *item, *olditem; @@ -1979,41 +2000,41 @@ yyreduce: list_add(ScannerItemList, node); tmp = item; } -#line 1983 "config-parser.c" /* yacc.c:1646 */ +#line 2004 "config-parser.c" /* yacc.c:1646 */ break; - case 108: -#line 445 "config-parser.y" /* yacc.c:1646 */ + case 110: +#line 455 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = tmp; MyFree(item->name); item->name = xstrdup((yyvsp[-1].string)); } -#line 1993 "config-parser.c" /* yacc.c:1646 */ +#line 2014 "config-parser.c" /* yacc.c:1646 */ break; - case 109: -#line 452 "config-parser.y" /* yacc.c:1646 */ + case 111: +#line 462 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = tmp; MyFree(item->vhost); item->vhost = xstrdup((yyvsp[-1].string)); } -#line 2003 "config-parser.c" /* yacc.c:1646 */ +#line 2024 "config-parser.c" /* yacc.c:1646 */ break; - case 110: -#line 459 "config-parser.y" /* yacc.c:1646 */ + case 112: +#line 469 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = tmp; MyFree(item->target_ip); item->target_ip = xstrdup((yyvsp[-1].string)); } -#line 2013 "config-parser.c" /* yacc.c:1646 */ +#line 2034 "config-parser.c" /* yacc.c:1646 */ break; - case 111: -#line 466 "config-parser.y" /* yacc.c:1646 */ + case 113: +#line 476 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = tmp; @@ -2028,47 +2049,47 @@ yyreduce: list_add(item->target_string, node); } -#line 2032 "config-parser.c" /* yacc.c:1646 */ +#line 2053 "config-parser.c" /* yacc.c:1646 */ break; - case 112: -#line 482 "config-parser.y" /* yacc.c:1646 */ + case 114: +#line 492 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = tmp; item->fd = (yyvsp[-1].number); } -#line 2041 "config-parser.c" /* yacc.c:1646 */ +#line 2062 "config-parser.c" /* yacc.c:1646 */ break; - case 113: -#line 488 "config-parser.y" /* yacc.c:1646 */ + case 115: +#line 498 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = tmp; item->target_port = (yyvsp[-1].number); } -#line 2050 "config-parser.c" /* yacc.c:1646 */ +#line 2071 "config-parser.c" /* yacc.c:1646 */ break; - case 114: -#line 494 "config-parser.y" /* yacc.c:1646 */ + case 116: +#line 504 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = tmp; item->timeout = (yyvsp[-1].number); } -#line 2059 "config-parser.c" /* yacc.c:1646 */ +#line 2080 "config-parser.c" /* yacc.c:1646 */ break; - case 115: -#line 500 "config-parser.y" /* yacc.c:1646 */ + case 117: +#line 510 "config-parser.y" /* yacc.c:1646 */ { struct ScannerConf *item = tmp; item->max_read = (yyvsp[-1].number); } -#line 2068 "config-parser.c" /* yacc.c:1646 */ +#line 2089 "config-parser.c" /* yacc.c:1646 */ break; - case 116: -#line 506 "config-parser.y" /* yacc.c:1646 */ + case 118: +#line 516 "config-parser.y" /* yacc.c:1646 */ { struct ProtocolConf *item; struct ScannerConf *item2; @@ -2084,38 +2105,38 @@ yyreduce: node = node_create(item); list_add(item2->protocols, node); } -#line 2088 "config-parser.c" /* yacc.c:1646 */ +#line 2109 "config-parser.c" /* yacc.c:1646 */ break; - case 125: -#line 536 "config-parser.y" /* yacc.c:1646 */ + case 127: +#line 546 "config-parser.y" /* yacc.c:1646 */ { MyFree(OpmItem->dnsbl_from); OpmItem->dnsbl_from = xstrdup((yyvsp[-1].string)); } -#line 2097 "config-parser.c" /* yacc.c:1646 */ +#line 2118 "config-parser.c" /* yacc.c:1646 */ break; - case 126: -#line 542 "config-parser.y" /* yacc.c:1646 */ + case 128: +#line 552 "config-parser.y" /* yacc.c:1646 */ { MyFree(OpmItem->dnsbl_to); OpmItem->dnsbl_to = xstrdup((yyvsp[-1].string)); } -#line 2106 "config-parser.c" /* yacc.c:1646 */ +#line 2127 "config-parser.c" /* yacc.c:1646 */ break; - case 127: -#line 548 "config-parser.y" /* yacc.c:1646 */ + case 129: +#line 558 "config-parser.y" /* yacc.c:1646 */ { MyFree(OpmItem->sendmail); OpmItem->sendmail = xstrdup((yyvsp[-1].string)); } -#line 2115 "config-parser.c" /* yacc.c:1646 */ +#line 2136 "config-parser.c" /* yacc.c:1646 */ break; - case 128: -#line 556 "config-parser.y" /* yacc.c:1646 */ + case 130: +#line 566 "config-parser.y" /* yacc.c:1646 */ { node_t *node; struct BlacklistConf *item; @@ -2133,33 +2154,33 @@ yyreduce: tmp = item; } -#line 2137 "config-parser.c" /* yacc.c:1646 */ +#line 2158 "config-parser.c" /* yacc.c:1646 */ break; - case 138: -#line 585 "config-parser.y" /* yacc.c:1646 */ + case 140: +#line 595 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistConf *item = tmp; MyFree(item->name); item->name = xstrdup((yyvsp[-1].string)); } -#line 2148 "config-parser.c" /* yacc.c:1646 */ +#line 2169 "config-parser.c" /* yacc.c:1646 */ break; - case 139: -#line 592 "config-parser.y" /* yacc.c:1646 */ + case 141: +#line 602 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistConf *item = tmp; MyFree(item->kline); item->kline = xstrdup((yyvsp[-1].string)); } -#line 2159 "config-parser.c" /* yacc.c:1646 */ +#line 2180 "config-parser.c" /* yacc.c:1646 */ break; - case 140: -#line 599 "config-parser.y" /* yacc.c:1646 */ + case 142: +#line 609 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistConf *item = tmp; @@ -2170,21 +2191,21 @@ yyreduce: else yyerror("Unknown blacklist type defined"); } -#line 2174 "config-parser.c" /* yacc.c:1646 */ +#line 2195 "config-parser.c" /* yacc.c:1646 */ break; - case 141: -#line 610 "config-parser.y" /* yacc.c:1646 */ + case 143: +#line 620 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistConf *item = tmp; item->ban_unknown = (yyvsp[-1].number); } -#line 2184 "config-parser.c" /* yacc.c:1646 */ +#line 2205 "config-parser.c" /* yacc.c:1646 */ break; - case 145: -#line 622 "config-parser.y" /* yacc.c:1646 */ + case 147: +#line 632 "config-parser.y" /* yacc.c:1646 */ { struct BlacklistReplyConf *item; struct BlacklistConf *blacklist = tmp; @@ -2198,22 +2219,22 @@ yyreduce: node = node_create(item); list_add(blacklist->reply, node); } -#line 2202 "config-parser.c" /* yacc.c:1646 */ +#line 2223 "config-parser.c" /* yacc.c:1646 */ break; - case 151: -#line 648 "config-parser.y" /* yacc.c:1646 */ + case 153: +#line 658 "config-parser.y" /* yacc.c:1646 */ { node_t *node; node = node_create(xstrdup((yyvsp[-1].string))); list_add(ExemptItem->masks, node); } -#line 2213 "config-parser.c" /* yacc.c:1646 */ +#line 2234 "config-parser.c" /* yacc.c:1646 */ break; -#line 2217 "config-parser.c" /* yacc.c:1646 */ +#line 2238 "config-parser.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2441,5 +2462,5 @@ yyreturn: #endif return yyresult; } -#line 655 "config-parser.y" /* yacc.c:1906 */ +#line 665 "config-parser.y" /* yacc.c:1906 */ diff --git a/src/config-parser.h b/src/config-parser.h index a8603a0..261d2c3 100644 --- a/src/config-parser.h +++ b/src/config-parser.h @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.0.2. */ +/* A Bison parser, made by GNU Bison 3.0.3. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -70,39 +70,40 @@ extern int yydebug; NEGCACHE_REBUILD = 280, NICK = 281, NICKSERV = 282, - OPER = 283, - OPM = 284, - OPTIONS = 285, - PASSWORD = 286, - PERFORM = 287, - PIDFILE = 288, - PORT = 289, - PROTOCOL = 290, - READTIMEOUT = 291, - REALNAME = 292, - REPLY = 293, - SCANLOG = 294, - SCANNER = 295, - SECONDS = 296, - MINUTES = 297, - HOURS = 298, - DAYS = 299, - WEEKS = 300, - MONTHS = 301, - YEARS = 302, - SENDMAIL = 303, - SERVER = 304, - TARGET_IP = 305, - TARGET_PORT = 306, - TARGET_STRING = 307, - TIMEOUT = 308, - TYPE = 309, - USERNAME = 310, - USER = 311, - VHOST = 312, - NUMBER = 313, - STRING = 314, - PROTOCOLTYPE = 315 + NOTICE = 283, + OPER = 284, + OPM = 285, + OPTIONS = 286, + PASSWORD = 287, + PERFORM = 288, + PIDFILE = 289, + PORT = 290, + PROTOCOL = 291, + READTIMEOUT = 292, + REALNAME = 293, + REPLY = 294, + SCANLOG = 295, + SCANNER = 296, + SECONDS = 297, + MINUTES = 298, + HOURS = 299, + DAYS = 300, + WEEKS = 301, + MONTHS = 302, + YEARS = 303, + SENDMAIL = 304, + SERVER = 305, + TARGET_IP = 306, + TARGET_PORT = 307, + TARGET_STRING = 308, + TIMEOUT = 309, + TYPE = 310, + USERNAME = 311, + USER = 312, + VHOST = 313, + NUMBER = 314, + STRING = 315, + PROTOCOLTYPE = 316 }; #endif /* Tokens. */ @@ -131,52 +132,55 @@ extern int yydebug; #define NEGCACHE_REBUILD 280 #define NICK 281 #define NICKSERV 282 -#define OPER 283 -#define OPM 284 -#define OPTIONS 285 -#define PASSWORD 286 -#define PERFORM 287 -#define PIDFILE 288 -#define PORT 289 -#define PROTOCOL 290 -#define READTIMEOUT 291 -#define REALNAME 292 -#define REPLY 293 -#define SCANLOG 294 -#define SCANNER 295 -#define SECONDS 296 -#define MINUTES 297 -#define HOURS 298 -#define DAYS 299 -#define WEEKS 300 -#define MONTHS 301 -#define YEARS 302 -#define SENDMAIL 303 -#define SERVER 304 -#define TARGET_IP 305 -#define TARGET_PORT 306 -#define TARGET_STRING 307 -#define TIMEOUT 308 -#define TYPE 309 -#define USERNAME 310 -#define USER 311 -#define VHOST 312 -#define NUMBER 313 -#define STRING 314 -#define PROTOCOLTYPE 315 +#define NOTICE 283 +#define OPER 284 +#define OPM 285 +#define OPTIONS 286 +#define PASSWORD 287 +#define PERFORM 288 +#define PIDFILE 289 +#define PORT 290 +#define PROTOCOL 291 +#define READTIMEOUT 292 +#define REALNAME 293 +#define REPLY 294 +#define SCANLOG 295 +#define SCANNER 296 +#define SECONDS 297 +#define MINUTES 298 +#define HOURS 299 +#define DAYS 300 +#define WEEKS 301 +#define MONTHS 302 +#define YEARS 303 +#define SENDMAIL 304 +#define SERVER 305 +#define TARGET_IP 306 +#define TARGET_PORT 307 +#define TARGET_STRING 308 +#define TIMEOUT 309 +#define TYPE 310 +#define USERNAME 311 +#define USER 312 +#define VHOST 313 +#define NUMBER 314 +#define STRING 315 +#define PROTOCOLTYPE 316 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE YYSTYPE; + union YYSTYPE { -#line 84 "config-parser.y" /* yacc.c:1909 */ +#line 85 "config-parser.y" /* yacc.c:1909 */ int number; char *string; -#line 179 "config-parser.h" /* yacc.c:1909 */ +#line 181 "config-parser.h" /* yacc.c:1909 */ }; + +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif diff --git a/src/config-parser.y b/src/config-parser.y index cfe51c1..9a3af93 100644 --- a/src/config-parser.y +++ b/src/config-parser.y @@ -55,6 +55,7 @@ void *tmp; /* Variable to temporarily hold nodes before insertion to list %token NEGCACHE_REBUILD %token NICK %token NICKSERV +%token NOTICE %token OPER %token OPM %token OPTIONS @@ -188,6 +189,7 @@ irc_item: irc_away | irc_username | irc_vhost | irc_perform | + irc_notice | channel_entry | error; @@ -241,6 +243,14 @@ irc_perform: PERFORM '=' STRING ';' list_add(IRCItem->performs, node); }; +irc_notice: NOTICE '=' STRING ';' +{ + node_t *node; + node = node_create(xstrdup($3)); + + list_add(IRCItem->notices, node); +}; + irc_port: PORT '=' NUMBER ';' { IRCItem->port = $3; diff --git a/src/config.c b/src/config.c index accb721..fe2e1b9 100644 --- a/src/config.c +++ b/src/config.c @@ -53,6 +53,7 @@ config_init(void) IRCItem = xcalloc(sizeof *IRCItem); IRCItem->channels = list_create(); IRCItem->performs = list_create(); + IRCItem->notices = list_create(); /* Init Options block */ OptionsItem = xcalloc(sizeof *OptionsItem); diff --git a/src/config.h b/src/config.h index 441ad66..359a984 100644 --- a/src/config.h +++ b/src/config.h @@ -51,6 +51,7 @@ struct IRCConf char *kline; list_t *channels; /* List of ChannelConf */ list_t *performs; /* List of char * */ + list_t *notices; /* List of char * */ }; struct ChannelConf -- 2.30.2