blreset_on_talk, plus a fix in log_reset
This commit is contained in:
parent
8f09db3184
commit
811d7cb048
@ -39,6 +39,11 @@ log_level = 3;
|
|||||||
backlog_lines = 10; # number of lines in backlog, 0 means no limit
|
backlog_lines = 10; # number of lines in backlog, 0 means no limit
|
||||||
always_backlog = true; # backlog even lines already backlogged
|
always_backlog = true; # backlog even lines already backlogged
|
||||||
|
|
||||||
|
# If blreset_on_talk talking on an irc network has the same effect of issuing
|
||||||
|
# /bip blreset, meaning that stuffed logged before the command won't be read
|
||||||
|
# back on backlog
|
||||||
|
#blreset_on_talk = false;
|
||||||
|
|
||||||
# Network definition, a name and server info
|
# Network definition, a name and server info
|
||||||
network {
|
network {
|
||||||
name = "iiens";
|
name = "iiens";
|
||||||
@ -66,8 +71,8 @@ user {
|
|||||||
# The name in bip of the user
|
# The name in bip of the user
|
||||||
# This is used by bip only
|
# This is used by bip only
|
||||||
name = "nohar";
|
name = "nohar";
|
||||||
# this user's password
|
# this user's password (md5(md5("tata"))) plus seed
|
||||||
password = "233a8d53b55a268d4a84a3acdd5ed57d"; # (md5(md5("tata")))
|
password = "3880f2b39b3b9cb507b052b695d2680859bfc327";
|
||||||
|
|
||||||
# A user can have mutiple connections to irc networks.
|
# A user can have mutiple connections to irc networks.
|
||||||
# define a connection:
|
# define a connection:
|
||||||
|
24
src/bip.c
24
src/bip.c
@ -54,6 +54,7 @@ int conf_backlog_lines = 10;
|
|||||||
/* backlog even lines already backlogged */
|
/* backlog even lines already backlogged */
|
||||||
int conf_always_backlog;
|
int conf_always_backlog;
|
||||||
int conf_log_sync_interval;
|
int conf_log_sync_interval;
|
||||||
|
int conf_blreset_on_talk = 0;
|
||||||
|
|
||||||
list_t *parse_conf(FILE *file);
|
list_t *parse_conf(FILE *file);
|
||||||
static void conf_die(char *fmt, ...);
|
static void conf_die(char *fmt, ...);
|
||||||
@ -678,6 +679,9 @@ int fireup(FILE *conf)
|
|||||||
free(conf_pid_file);
|
free(conf_pid_file);
|
||||||
conf_pid_file = t->pdata;
|
conf_pid_file = t->pdata;
|
||||||
break;
|
break;
|
||||||
|
case LEX_BLRESET_ON_TALK:
|
||||||
|
conf_blreset_on_talk = t->ndata;
|
||||||
|
break;
|
||||||
case LEX_NETWORK:
|
case LEX_NETWORK:
|
||||||
r = add_network(t->pdata);
|
r = add_network(t->pdata);
|
||||||
list_free(t->pdata);
|
list_free(t->pdata);
|
||||||
@ -1057,6 +1061,16 @@ void write_user_list(connection_t *c, char *dest)
|
|||||||
}
|
}
|
||||||
|
|
||||||
extern struct link_client *reloading_client;
|
extern struct link_client *reloading_client;
|
||||||
|
void adm_blreset(struct link_client *ic)
|
||||||
|
{
|
||||||
|
hash_iterator_t it;
|
||||||
|
for (hash_it_init(&LINK(ic)->log->logfgs, &it);
|
||||||
|
hash_it_item(&it);
|
||||||
|
hash_it_next(&it)) {
|
||||||
|
logfilegroup_t *lfg = hash_it_item(&it);
|
||||||
|
log_reset(lfg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void adm_bip(struct link_client *ic, struct line *line)
|
void adm_bip(struct link_client *ic, struct line *line)
|
||||||
{
|
{
|
||||||
@ -1080,16 +1094,10 @@ void adm_bip(struct link_client *ic, struct line *line)
|
|||||||
connection_close(CONN(LINK(ic)->l_server));
|
connection_close(CONN(LINK(ic)->l_server));
|
||||||
}
|
}
|
||||||
} else if (strcasecmp(line->elemv[1], "BLRESET") == 0) {
|
} else if (strcasecmp(line->elemv[1], "BLRESET") == 0) {
|
||||||
hash_iterator_t it;
|
adm_blreset(ic);
|
||||||
for (hash_it_init(&LINK(ic)->log->logfgs, &it);
|
|
||||||
hash_it_item(&it);
|
|
||||||
hash_it_next(&it)) {
|
|
||||||
logfilegroup_t *lfg = hash_it_item(&it);
|
|
||||||
log_reset(lfg);
|
|
||||||
}
|
|
||||||
} else if (strcasecmp(line->elemv[1], "HELP") == 0) {
|
} else if (strcasecmp(line->elemv[1], "HELP") == 0) {
|
||||||
WRITE_LINE2(CONN(ic), P_IRCMASK, "PRIVMSG", nick,
|
WRITE_LINE2(CONN(ic), P_IRCMASK, "PRIVMSG", nick,
|
||||||
"/BIP (RELOAD|LIST|JUMP|HELP)");
|
"/BIP (RELOAD|LIST|JUMP|BLRESET|HELP)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
404
src/conf.c
404
src/conf.c
@ -93,9 +93,10 @@
|
|||||||
LEX_IGN_FIRST_NICK = 295,
|
LEX_IGN_FIRST_NICK = 295,
|
||||||
LEX_ALWAYS_BACKLOG = 296,
|
LEX_ALWAYS_BACKLOG = 296,
|
||||||
LEX_LOGIN = 297,
|
LEX_LOGIN = 297,
|
||||||
LEX_BOOL = 298,
|
LEX_BLRESET_ON_TALK = 298,
|
||||||
LEX_INT = 299,
|
LEX_BOOL = 299,
|
||||||
LEX_STRING = 300
|
LEX_INT = 300,
|
||||||
|
LEX_STRING = 301
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
#define LEX_IP 258
|
#define LEX_IP 258
|
||||||
@ -138,9 +139,10 @@
|
|||||||
#define LEX_IGN_FIRST_NICK 295
|
#define LEX_IGN_FIRST_NICK 295
|
||||||
#define LEX_ALWAYS_BACKLOG 296
|
#define LEX_ALWAYS_BACKLOG 296
|
||||||
#define LEX_LOGIN 297
|
#define LEX_LOGIN 297
|
||||||
#define LEX_BOOL 298
|
#define LEX_BLRESET_ON_TALK 298
|
||||||
#define LEX_INT 299
|
#define LEX_BOOL 299
|
||||||
#define LEX_STRING 300
|
#define LEX_INT 300
|
||||||
|
#define LEX_STRING 301
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -251,7 +253,7 @@ typedef union YYSTYPE {
|
|||||||
struct tuple *tuple;
|
struct tuple *tuple;
|
||||||
} YYSTYPE;
|
} YYSTYPE;
|
||||||
/* Line 191 of yacc.c. */
|
/* Line 191 of yacc.c. */
|
||||||
#line 255 "y.tab.c"
|
#line 257 "y.tab.c"
|
||||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||||
# define YYSTYPE_IS_DECLARED 1
|
# define YYSTYPE_IS_DECLARED 1
|
||||||
# define YYSTYPE_IS_TRIVIAL 1
|
# define YYSTYPE_IS_TRIVIAL 1
|
||||||
@ -263,7 +265,7 @@ typedef union YYSTYPE {
|
|||||||
|
|
||||||
|
|
||||||
/* Line 214 of yacc.c. */
|
/* Line 214 of yacc.c. */
|
||||||
#line 267 "y.tab.c"
|
#line 269 "y.tab.c"
|
||||||
|
|
||||||
#if ! defined (yyoverflow) || YYERROR_VERBOSE
|
#if ! defined (yyoverflow) || YYERROR_VERBOSE
|
||||||
|
|
||||||
@ -369,20 +371,20 @@ union yyalloc
|
|||||||
/* YYFINAL -- State number of the termination state. */
|
/* YYFINAL -- State number of the termination state. */
|
||||||
#define YYFINAL 2
|
#define YYFINAL 2
|
||||||
/* YYLAST -- Last index in YYTABLE. */
|
/* YYLAST -- Last index in YYTABLE. */
|
||||||
#define YYLAST 144
|
#define YYLAST 130
|
||||||
|
|
||||||
/* YYNTOKENS -- Number of terminals. */
|
/* YYNTOKENS -- Number of terminals. */
|
||||||
#define YYNTOKENS 46
|
#define YYNTOKENS 47
|
||||||
/* YYNNTS -- Number of nonterminals. */
|
/* YYNNTS -- Number of nonterminals. */
|
||||||
#define YYNNTS 13
|
#define YYNNTS 13
|
||||||
/* YYNRULES -- Number of rules. */
|
/* YYNRULES -- Number of rules. */
|
||||||
#define YYNRULES 52
|
#define YYNRULES 53
|
||||||
/* YYNRULES -- Number of states. */
|
/* YYNRULES -- Number of states. */
|
||||||
#define YYNSTATES 137
|
#define YYNSTATES 140
|
||||||
|
|
||||||
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
|
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
|
||||||
#define YYUNDEFTOK 2
|
#define YYUNDEFTOK 2
|
||||||
#define YYMAXUTOK 300
|
#define YYMAXUTOK 301
|
||||||
|
|
||||||
#define YYTRANSLATE(YYX) \
|
#define YYTRANSLATE(YYX) \
|
||||||
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
|
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
|
||||||
@ -420,7 +422,7 @@ static const unsigned char yytranslate[] =
|
|||||||
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
|
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
|
||||||
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
|
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
|
||||||
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
|
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
|
||||||
45
|
45, 46
|
||||||
};
|
};
|
||||||
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
@ -429,47 +431,47 @@ static const unsigned char yytranslate[] =
|
|||||||
static const unsigned char yyprhs[] =
|
static const unsigned char yyprhs[] =
|
||||||
{
|
{
|
||||||
0, 0, 3, 4, 8, 12, 16, 20, 24, 28,
|
0, 0, 3, 4, 8, 12, 16, 20, 24, 28,
|
||||||
32, 36, 40, 44, 48, 52, 56, 61, 66, 67,
|
32, 36, 40, 44, 48, 52, 56, 60, 65, 70,
|
||||||
71, 75, 79, 84, 85, 89, 93, 97, 102, 103,
|
71, 75, 79, 83, 88, 89, 93, 97, 101, 106,
|
||||||
107, 111, 115, 119, 123, 127, 131, 135, 139, 143,
|
107, 111, 115, 119, 123, 127, 131, 135, 139, 143,
|
||||||
147, 151, 155, 159, 164, 168, 169, 173, 177, 181,
|
147, 151, 155, 159, 163, 168, 172, 173, 177, 181,
|
||||||
182, 186, 190
|
185, 186, 190, 194
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
|
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
|
||||||
static const yysigned_char yyrhs[] =
|
static const yysigned_char yyrhs[] =
|
||||||
{
|
{
|
||||||
47, 0, -1, -1, 47, 48, 7, -1, 29, 4,
|
48, 0, -1, -1, 48, 49, 7, -1, 29, 4,
|
||||||
45, -1, 30, 4, 45, -1, 31, 4, 44, -1,
|
46, -1, 30, 4, 46, -1, 31, 4, 45, -1,
|
||||||
3, 4, 45, -1, 5, 4, 44, -1, 6, 4,
|
3, 4, 46, -1, 5, 4, 45, -1, 6, 4,
|
||||||
43, -1, 32, 4, 44, -1, 33, 4, 43, -1,
|
44, -1, 32, 4, 45, -1, 33, 4, 44, -1,
|
||||||
34, 4, 43, -1, 41, 4, 43, -1, 35, 4,
|
34, 4, 44, -1, 41, 4, 44, -1, 35, 4,
|
||||||
44, -1, 39, 4, 45, -1, 9, 10, 49, 11,
|
45, -1, 39, 4, 46, -1, 43, 4, 44, -1,
|
||||||
-1, 12, 10, 51, 11, -1, -1, 49, 50, 7,
|
9, 10, 50, 11, -1, 12, 10, 52, 11, -1,
|
||||||
-1, 13, 4, 45, -1, 26, 4, 43, -1, 16,
|
-1, 50, 51, 7, -1, 13, 4, 46, -1, 26,
|
||||||
10, 57, 11, -1, -1, 51, 52, 7, -1, 13,
|
4, 44, -1, 16, 10, 58, 11, -1, -1, 52,
|
||||||
4, 45, -1, 17, 4, 45, -1, 8, 10, 53,
|
53, 7, -1, 13, 4, 46, -1, 17, 4, 46,
|
||||||
11, -1, -1, 53, 54, 7, -1, 13, 4, 45,
|
-1, 8, 10, 54, 11, -1, -1, 54, 55, 7,
|
||||||
-1, 9, 4, 45, -1, 42, 4, 45, -1, 15,
|
-1, 13, 4, 46, -1, 9, 4, 46, -1, 42,
|
||||||
4, 45, -1, 12, 4, 45, -1, 25, 4, 45,
|
4, 46, -1, 15, 4, 46, -1, 12, 4, 46,
|
||||||
-1, 17, 4, 45, -1, 20, 4, 45, -1, 21,
|
-1, 25, 4, 46, -1, 17, 4, 46, -1, 20,
|
||||||
4, 44, -1, 26, 4, 43, -1, 38, 4, 45,
|
4, 46, -1, 21, 4, 45, -1, 26, 4, 44,
|
||||||
-1, 36, 4, 43, -1, 40, 4, 43, -1, 27,
|
-1, 38, 4, 46, -1, 36, 4, 44, -1, 40,
|
||||||
10, 55, 11, -1, 37, 4, 45, -1, -1, 55,
|
4, 44, -1, 27, 10, 56, 11, -1, 37, 4,
|
||||||
56, 7, -1, 13, 4, 45, -1, 28, 4, 45,
|
46, -1, -1, 56, 57, 7, -1, 13, 4, 46,
|
||||||
-1, -1, 57, 58, 7, -1, 19, 4, 45, -1,
|
-1, 28, 4, 46, -1, -1, 58, 59, 7, -1,
|
||||||
5, 4, 44, -1
|
19, 4, 46, -1, 5, 4, 45, -1
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
||||||
static const unsigned char yyrline[] =
|
static const unsigned char yyrline[] =
|
||||||
{
|
{
|
||||||
0, 100, 100, 101, 105, 106, 108, 109, 110, 111,
|
0, 100, 100, 101, 105, 106, 108, 109, 110, 111,
|
||||||
112, 114, 116, 117, 119, 121, 122, 124, 127, 128,
|
112, 114, 116, 117, 119, 121, 122, 125, 127, 130,
|
||||||
131, 132, 133, 137, 138, 141, 143, 145, 149, 150,
|
131, 134, 135, 136, 140, 141, 144, 146, 148, 152,
|
||||||
154, 155, 157, 158, 159, 160, 162, 164, 165, 167,
|
153, 157, 158, 160, 161, 162, 163, 165, 167, 168,
|
||||||
168, 170, 172, 174, 176, 179, 180, 183, 184, 187,
|
170, 171, 173, 175, 177, 179, 182, 183, 186, 187,
|
||||||
188, 191, 192
|
190, 191, 194, 195
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -487,10 +489,11 @@ static const char *const yytname[] =
|
|||||||
"LEX_LOG_FORMAT", "LEX_LOG_LEVEL", "LEX_BACKLOG_LINES", "LEX_BACKLOG",
|
"LEX_LOG_FORMAT", "LEX_LOG_LEVEL", "LEX_BACKLOG_LINES", "LEX_BACKLOG",
|
||||||
"LEX_LOG", "LEX_LOG_SYNC_INTERVAL", "LEX_FOLLOW_NICK",
|
"LEX_LOG", "LEX_LOG_SYNC_INTERVAL", "LEX_FOLLOW_NICK",
|
||||||
"LEX_ON_CONNECT_SEND", "LEX_AWAY_NICK", "LEX_PID_FILE",
|
"LEX_ON_CONNECT_SEND", "LEX_AWAY_NICK", "LEX_PID_FILE",
|
||||||
"LEX_IGN_FIRST_NICK", "LEX_ALWAYS_BACKLOG", "LEX_LOGIN", "LEX_BOOL",
|
"LEX_IGN_FIRST_NICK", "LEX_ALWAYS_BACKLOG", "LEX_LOGIN",
|
||||||
"LEX_INT", "LEX_STRING", "$accept", "commands", "command", "network",
|
"LEX_BLRESET_ON_TALK", "LEX_BOOL", "LEX_INT", "LEX_STRING", "$accept",
|
||||||
"net_command", "user", "usr_command", "connection", "con_command",
|
"commands", "command", "network", "net_command", "user", "usr_command",
|
||||||
"channel", "cha_command", "server", "ser_command", 0
|
"connection", "con_command", "channel", "cha_command", "server",
|
||||||
|
"ser_command", 0
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -503,30 +506,30 @@ static const unsigned short int yytoknum[] =
|
|||||||
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
|
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
|
||||||
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
|
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
|
||||||
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
|
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
|
||||||
295, 296, 297, 298, 299, 300
|
295, 296, 297, 298, 299, 300, 301
|
||||||
};
|
};
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
|
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
|
||||||
static const unsigned char yyr1[] =
|
static const unsigned char yyr1[] =
|
||||||
{
|
{
|
||||||
0, 46, 47, 47, 48, 48, 48, 48, 48, 48,
|
0, 47, 48, 48, 49, 49, 49, 49, 49, 49,
|
||||||
48, 48, 48, 48, 48, 48, 48, 48, 49, 49,
|
49, 49, 49, 49, 49, 49, 49, 49, 49, 50,
|
||||||
50, 50, 50, 51, 51, 52, 52, 52, 53, 53,
|
50, 51, 51, 51, 52, 52, 53, 53, 53, 54,
|
||||||
54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
|
54, 55, 55, 55, 55, 55, 55, 55, 55, 55,
|
||||||
54, 54, 54, 54, 54, 55, 55, 56, 56, 57,
|
55, 55, 55, 55, 55, 55, 56, 56, 57, 57,
|
||||||
57, 58, 58
|
58, 58, 59, 59
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
|
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
|
||||||
static const unsigned char yyr2[] =
|
static const unsigned char yyr2[] =
|
||||||
{
|
{
|
||||||
0, 2, 0, 3, 3, 3, 3, 3, 3, 3,
|
0, 2, 0, 3, 3, 3, 3, 3, 3, 3,
|
||||||
3, 3, 3, 3, 3, 3, 4, 4, 0, 3,
|
3, 3, 3, 3, 3, 3, 3, 4, 4, 0,
|
||||||
3, 3, 4, 0, 3, 3, 3, 4, 0, 3,
|
3, 3, 3, 4, 0, 3, 3, 3, 4, 0,
|
||||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||||
3, 3, 3, 4, 3, 0, 3, 3, 3, 0,
|
3, 3, 3, 3, 4, 3, 0, 3, 3, 3,
|
||||||
3, 3, 3
|
0, 3, 3, 3
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
|
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
|
||||||
@ -536,25 +539,25 @@ static const unsigned char yydefact[] =
|
|||||||
{
|
{
|
||||||
2, 0, 1, 0, 0, 0, 0, 0, 0, 0,
|
2, 0, 1, 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, 18, 23, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 19, 24, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 3, 7, 8, 9, 0, 0, 4, 5,
|
0, 0, 0, 0, 3, 7, 8, 9, 0, 0,
|
||||||
6, 10, 11, 12, 14, 15, 13, 16, 0, 0,
|
4, 5, 6, 10, 11, 12, 14, 15, 13, 16,
|
||||||
0, 0, 0, 17, 0, 0, 0, 0, 49, 0,
|
17, 0, 0, 0, 0, 0, 18, 0, 0, 0,
|
||||||
19, 28, 0, 0, 24, 20, 0, 21, 0, 25,
|
0, 50, 0, 20, 29, 0, 0, 25, 21, 0,
|
||||||
26, 0, 22, 0, 0, 0, 27, 0, 0, 0,
|
22, 0, 26, 27, 0, 23, 0, 0, 0, 28,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 50, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 51, 0, 0,
|
||||||
0, 0, 0, 0, 45, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 46, 0, 0,
|
||||||
29, 52, 51, 31, 34, 30, 33, 36, 37, 38,
|
0, 0, 0, 30, 53, 52, 32, 35, 31, 34,
|
||||||
35, 39, 0, 41, 44, 40, 42, 32, 43, 0,
|
37, 38, 39, 36, 40, 0, 42, 45, 41, 43,
|
||||||
0, 0, 0, 0, 46, 47, 48
|
33, 44, 0, 0, 0, 0, 0, 47, 48, 49
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYDEFGOTO[NTERM-NUM]. */
|
/* YYDEFGOTO[NTERM-NUM]. */
|
||||||
static const short int yydefgoto[] =
|
static const short int yydefgoto[] =
|
||||||
{
|
{
|
||||||
-1, 1, 17, 36, 51, 37, 56, 68, 91, 122,
|
-1, 1, 18, 38, 54, 39, 59, 71, 94, 125,
|
||||||
131, 66, 74
|
134, 69, 77
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
|
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
|
||||||
@ -563,19 +566,19 @@ static const short int yydefgoto[] =
|
|||||||
static const yysigned_char yypact[] =
|
static const yysigned_char yypact[] =
|
||||||
{
|
{
|
||||||
-10, 0, -10, 13, 14, 17, 12, 15, 20, 22,
|
-10, 0, -10, 13, 14, 17, 12, 15, 20, 22,
|
||||||
23, 24, 32, 33, 34, 41, 43, 42, 5, 9,
|
23, 24, 32, 34, 36, 43, 45, 47, 30, 6,
|
||||||
11, -10, -10, 10, 16, 18, 19, 21, 27, 28,
|
10, 18, -10, -10, 11, 19, 16, 21, 28, 35,
|
||||||
29, 35, -10, -10, -10, -10, -3, 3, -10, -10,
|
29, 31, 37, 38, -10, -10, -10, -10, -3, 3,
|
||||||
-10, -10, -10, -10, -10, -10, -10, -10, 55, 50,
|
|
||||||
61, 59, 65, -10, 72, 73, 74, 37, -10, 36,
|
|
||||||
-10, -10, 38, 39, -10, -10, -4, -10, 31, -10,
|
|
||||||
-10, 76, -10, 81, 79, 83, -10, 84, 85, 86,
|
|
||||||
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
|
|
||||||
97, 98, 52, 58, -10, 62, 63, 64, 66, 67,
|
|
||||||
68, 60, 69, 75, -10, 77, 70, 71, 78, 80,
|
|
||||||
-10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
|
-10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
|
||||||
-10, -10, -9, -10, -10, -10, -10, -10, -10, 102,
|
-10, 52, 53, 60, 61, 57, -10, 72, 74, 73,
|
||||||
106, 110, 82, 99, -10, -10, -10
|
39, -10, 40, -10, -10, 41, 42, -10, -10, -4,
|
||||||
|
-10, 33, -10, -10, 79, -10, 82, 83, 85, -10,
|
||||||
|
87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
|
||||||
|
97, 98, 99, 100, 101, 54, 63, -10, 64, 65,
|
||||||
|
66, 67, 68, 69, 62, 70, 75, -10, 76, 71,
|
||||||
|
77, 78, 80, -10, -10, -10, -10, -10, -10, -10,
|
||||||
|
-10, -10, -10, -10, -10, -9, -10, -10, -10, -10,
|
||||||
|
-10, -10, 102, 114, 117, 81, 84, -10, -10, -10
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYPGOTO[NTERM-NUM]. */
|
/* YYPGOTO[NTERM-NUM]. */
|
||||||
@ -592,21 +595,20 @@ static const yysigned_char yypgoto[] =
|
|||||||
#define YYTABLE_NINF -1
|
#define YYTABLE_NINF -1
|
||||||
static const unsigned char yytable[] =
|
static const unsigned char yytable[] =
|
||||||
{
|
{
|
||||||
2, 71, 128, 3, 129, 4, 5, 72, 47, 6,
|
2, 74, 131, 3, 132, 4, 5, 75, 50, 6,
|
||||||
48, 52, 7, 49, 53, 73, 54, 18, 19, 130,
|
51, 55, 7, 52, 56, 76, 57, 19, 20, 133,
|
||||||
55, 20, 21, 50, 23, 22, 24, 25, 26, 8,
|
58, 21, 22, 53, 24, 23, 25, 26, 27, 8,
|
||||||
9, 10, 11, 12, 13, 14, 27, 28, 29, 15,
|
9, 10, 11, 12, 13, 14, 28, 34, 29, 15,
|
||||||
75, 16, 76, 77, 78, 30, 79, 31, 80, 32,
|
30, 16, 78, 17, 79, 80, 81, 31, 82, 32,
|
||||||
33, 81, 82, 34, 35, 38, 83, 84, 85, 57,
|
83, 33, 35, 84, 85, 36, 60, 40, 86, 87,
|
||||||
58, 39, 40, 41, 42, 59, 60, 86, 87, 88,
|
88, 42, 37, 61, 62, 41, 43, 64, 63, 89,
|
||||||
43, 89, 44, 90, 45, 61, 62, 63, 46, 67,
|
90, 91, 44, 92, 46, 93, 65, 47, 66, 45,
|
||||||
92, 64, 65, 69, 70, 93, 94, 95, 96, 97,
|
67, 48, 49, 95, 70, 68, 96, 72, 73, 98,
|
||||||
98, 99, 100, 101, 102, 103, 111, 105, 106, 107,
|
97, 99, 100, 101, 102, 103, 104, 105, 106, 114,
|
||||||
108, 109, 104, 112, 119, 110, 132, 113, 114, 115,
|
108, 109, 110, 111, 112, 107, 135, 122, 113, 115,
|
||||||
133, 116, 117, 118, 120, 124, 125, 134, 121, 0,
|
116, 117, 118, 119, 120, 121, 123, 127, 136, 124,
|
||||||
123, 126, 0, 0, 0, 127, 0, 135, 0, 0,
|
126, 0, 129, 128, 137, 0, 130, 138, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
139
|
||||||
0, 0, 0, 0, 136
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const yysigned_char yycheck[] =
|
static const yysigned_char yycheck[] =
|
||||||
@ -614,38 +616,37 @@ static const yysigned_char yycheck[] =
|
|||||||
0, 5, 11, 3, 13, 5, 6, 11, 11, 9,
|
0, 5, 11, 3, 13, 5, 6, 11, 11, 9,
|
||||||
13, 8, 12, 16, 11, 19, 13, 4, 4, 28,
|
13, 8, 12, 16, 11, 19, 13, 4, 4, 28,
|
||||||
17, 4, 10, 26, 4, 10, 4, 4, 4, 29,
|
17, 4, 10, 26, 4, 10, 4, 4, 4, 29,
|
||||||
30, 31, 32, 33, 34, 35, 4, 4, 4, 39,
|
30, 31, 32, 33, 34, 35, 4, 7, 4, 39,
|
||||||
9, 41, 11, 12, 13, 4, 15, 4, 17, 7,
|
4, 41, 9, 43, 11, 12, 13, 4, 15, 4,
|
||||||
45, 20, 21, 44, 43, 45, 25, 26, 27, 4,
|
17, 4, 46, 20, 21, 45, 4, 46, 25, 26,
|
||||||
10, 45, 44, 44, 43, 4, 7, 36, 37, 38,
|
27, 45, 44, 10, 4, 46, 45, 10, 7, 36,
|
||||||
43, 40, 44, 42, 45, 10, 4, 4, 43, 43,
|
37, 38, 44, 40, 45, 42, 4, 46, 4, 44,
|
||||||
4, 7, 45, 45, 45, 4, 7, 4, 4, 4,
|
7, 44, 44, 4, 44, 46, 4, 46, 46, 4,
|
||||||
4, 4, 4, 4, 4, 4, 44, 4, 4, 4,
|
7, 4, 4, 4, 4, 4, 4, 4, 4, 45,
|
||||||
4, 4, 10, 45, 44, 7, 4, 45, 45, 45,
|
4, 4, 4, 4, 4, 10, 4, 45, 7, 46,
|
||||||
4, 45, 45, 45, 45, 45, 45, 7, 43, -1,
|
46, 46, 46, 46, 46, 46, 46, 46, 4, 44,
|
||||||
43, 43, -1, -1, -1, 45, -1, 45, -1, -1,
|
44, -1, 44, 46, 7, -1, 46, 46, -1, -1,
|
||||||
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
46
|
||||||
-1, -1, -1, -1, 45
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
||||||
symbol of state STATE-NUM. */
|
symbol of state STATE-NUM. */
|
||||||
static const unsigned char yystos[] =
|
static const unsigned char yystos[] =
|
||||||
{
|
{
|
||||||
0, 47, 0, 3, 5, 6, 9, 12, 29, 30,
|
0, 48, 0, 3, 5, 6, 9, 12, 29, 30,
|
||||||
31, 32, 33, 34, 35, 39, 41, 48, 4, 4,
|
31, 32, 33, 34, 35, 39, 41, 43, 49, 4,
|
||||||
4, 10, 10, 4, 4, 4, 4, 4, 4, 4,
|
4, 4, 10, 10, 4, 4, 4, 4, 4, 4,
|
||||||
4, 4, 7, 45, 44, 43, 49, 51, 45, 45,
|
4, 4, 4, 4, 7, 46, 45, 44, 50, 52,
|
||||||
44, 44, 43, 43, 44, 45, 43, 11, 13, 16,
|
46, 46, 45, 45, 44, 44, 45, 46, 44, 44,
|
||||||
26, 50, 8, 11, 13, 17, 52, 4, 10, 4,
|
11, 13, 16, 26, 51, 8, 11, 13, 17, 53,
|
||||||
7, 10, 4, 4, 7, 45, 57, 43, 53, 45,
|
4, 10, 4, 7, 10, 4, 4, 7, 46, 58,
|
||||||
45, 5, 11, 19, 58, 9, 11, 12, 13, 15,
|
44, 54, 46, 46, 5, 11, 19, 59, 9, 11,
|
||||||
17, 20, 21, 25, 26, 27, 36, 37, 38, 40,
|
12, 13, 15, 17, 20, 21, 25, 26, 27, 36,
|
||||||
42, 54, 4, 4, 7, 4, 4, 4, 4, 4,
|
37, 38, 40, 42, 55, 4, 4, 7, 4, 4,
|
||||||
4, 4, 4, 4, 10, 4, 4, 4, 4, 4,
|
4, 4, 4, 4, 4, 4, 4, 10, 4, 4,
|
||||||
7, 44, 45, 45, 45, 45, 45, 45, 45, 44,
|
4, 4, 4, 7, 45, 46, 46, 46, 46, 46,
|
||||||
45, 43, 55, 43, 45, 45, 43, 45, 11, 13,
|
46, 46, 45, 46, 44, 56, 44, 46, 46, 44,
|
||||||
28, 56, 4, 4, 7, 45, 45
|
46, 11, 13, 28, 57, 4, 4, 7, 46, 46
|
||||||
};
|
};
|
||||||
|
|
||||||
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
|
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
|
||||||
@ -1333,201 +1334,208 @@ yyreduce:
|
|||||||
|
|
||||||
case 16:
|
case 16:
|
||||||
#line 122 "conf.y"
|
#line 122 "conf.y"
|
||||||
|
{
|
||||||
|
yyval.tuple = tuple_i_new(LEX_BLRESET_ON_TALK, yyvsp[0].number);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 17:
|
||||||
|
#line 125 "conf.y"
|
||||||
{ yyval.tuple = tuple_l_new(LEX_NETWORK,
|
{ yyval.tuple = tuple_l_new(LEX_NETWORK,
|
||||||
yyvsp[-1].list); }
|
yyvsp[-1].list); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 17:
|
case 18:
|
||||||
#line 124 "conf.y"
|
#line 127 "conf.y"
|
||||||
{ yyval.tuple = tuple_l_new(LEX_USER, yyvsp[-1].list); }
|
{ yyval.tuple = tuple_l_new(LEX_USER, yyvsp[-1].list); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 18:
|
|
||||||
#line 127 "conf.y"
|
|
||||||
{ yyval.list = list_new(NULL); }
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 19:
|
case 19:
|
||||||
#line 128 "conf.y"
|
#line 130 "conf.y"
|
||||||
{ list_add_last(yyvsp[-2].list, yyvsp[-1].tuple); yyval.list = yyvsp[-2].list; }
|
{ yyval.list = list_new(NULL); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 20:
|
case 20:
|
||||||
#line 131 "conf.y"
|
#line 131 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_NAME, yyvsp[0].string); }
|
{ list_add_last(yyvsp[-2].list, yyvsp[-1].tuple); yyval.list = yyvsp[-2].list; }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 21:
|
case 21:
|
||||||
#line 132 "conf.y"
|
#line 134 "conf.y"
|
||||||
{ yyval.tuple = tuple_i_new(LEX_SSL, yyvsp[0].number); }
|
{ yyval.tuple = tuple_s_new(LEX_NAME, yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 22:
|
case 22:
|
||||||
#line 133 "conf.y"
|
#line 135 "conf.y"
|
||||||
|
{ yyval.tuple = tuple_i_new(LEX_SSL, yyvsp[0].number); }
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 23:
|
||||||
|
#line 136 "conf.y"
|
||||||
{
|
{
|
||||||
yyval.tuple = tuple_l_new(LEX_SERVER, yyvsp[-1].list); }
|
yyval.tuple = tuple_l_new(LEX_SERVER, yyvsp[-1].list); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 23:
|
|
||||||
#line 137 "conf.y"
|
|
||||||
{ yyval.list = list_new(NULL); }
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 24:
|
case 24:
|
||||||
#line 138 "conf.y"
|
#line 140 "conf.y"
|
||||||
{ list_add_last(yyvsp[-2].list, yyvsp[-1].tuple); yyval.list = yyvsp[-2].list; }
|
{ yyval.list = list_new(NULL); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 25:
|
case 25:
|
||||||
#line 141 "conf.y"
|
#line 141 "conf.y"
|
||||||
|
{ list_add_last(yyvsp[-2].list, yyvsp[-1].tuple); yyval.list = yyvsp[-2].list; }
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 26:
|
||||||
|
#line 144 "conf.y"
|
||||||
{
|
{
|
||||||
yyval.tuple = tuple_s_new(LEX_NAME, yyvsp[0].string); }
|
yyval.tuple = tuple_s_new(LEX_NAME, yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 26:
|
case 27:
|
||||||
#line 143 "conf.y"
|
#line 146 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_PASSWORD,
|
{ yyval.tuple = tuple_s_new(LEX_PASSWORD,
|
||||||
yyvsp[0].string); }
|
yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 27:
|
case 28:
|
||||||
#line 145 "conf.y"
|
#line 148 "conf.y"
|
||||||
{
|
{
|
||||||
yyval.tuple = tuple_l_new(LEX_CONNECTION, yyvsp[-1].list); }
|
yyval.tuple = tuple_l_new(LEX_CONNECTION, yyvsp[-1].list); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 28:
|
case 29:
|
||||||
#line 149 "conf.y"
|
#line 152 "conf.y"
|
||||||
{ yyval.list = list_new(NULL); }
|
{ yyval.list = list_new(NULL); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 29:
|
case 30:
|
||||||
#line 150 "conf.y"
|
#line 153 "conf.y"
|
||||||
{
|
{
|
||||||
list_add_last(yyvsp[-2].list, yyvsp[-1].tuple); yyval.list = yyvsp[-2].list; }
|
list_add_last(yyvsp[-2].list, yyvsp[-1].tuple); yyval.list = yyvsp[-2].list; }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 30:
|
case 31:
|
||||||
#line 154 "conf.y"
|
#line 157 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_NAME, yyvsp[0].string); }
|
{ yyval.tuple = tuple_s_new(LEX_NAME, yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 31:
|
case 32:
|
||||||
#line 155 "conf.y"
|
#line 158 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_NETWORK,
|
{ yyval.tuple = tuple_s_new(LEX_NETWORK,
|
||||||
yyvsp[0].string); }
|
yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 32:
|
case 33:
|
||||||
#line 157 "conf.y"
|
#line 160 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_LOGIN, yyvsp[0].string); }
|
{ yyval.tuple = tuple_s_new(LEX_LOGIN, yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 33:
|
case 34:
|
||||||
#line 158 "conf.y"
|
#line 161 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_NICK, yyvsp[0].string); }
|
{ yyval.tuple = tuple_s_new(LEX_NICK, yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 34:
|
case 35:
|
||||||
#line 159 "conf.y"
|
#line 162 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_USER, yyvsp[0].string); }
|
{ yyval.tuple = tuple_s_new(LEX_USER, yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 35:
|
case 36:
|
||||||
#line 160 "conf.y"
|
#line 163 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_REALNAME,
|
{ yyval.tuple = tuple_s_new(LEX_REALNAME,
|
||||||
yyvsp[0].string); }
|
yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 36:
|
case 37:
|
||||||
#line 162 "conf.y"
|
#line 165 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_PASSWORD,
|
{ yyval.tuple = tuple_s_new(LEX_PASSWORD,
|
||||||
yyvsp[0].string); }
|
yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 37:
|
case 38:
|
||||||
#line 164 "conf.y"
|
#line 167 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_VHOST, yyvsp[0].string); }
|
{ yyval.tuple = tuple_s_new(LEX_VHOST, yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 38:
|
case 39:
|
||||||
#line 165 "conf.y"
|
#line 168 "conf.y"
|
||||||
{
|
{
|
||||||
yyval.tuple = tuple_i_new(LEX_SOURCE_PORT, yyvsp[0].number); }
|
yyval.tuple = tuple_i_new(LEX_SOURCE_PORT, yyvsp[0].number); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 39:
|
case 40:
|
||||||
#line 167 "conf.y"
|
#line 170 "conf.y"
|
||||||
{ yyval.tuple = tuple_i_new(LEX_SSL, yyvsp[0].number); }
|
{ yyval.tuple = tuple_i_new(LEX_SSL, yyvsp[0].number); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 40:
|
case 41:
|
||||||
#line 168 "conf.y"
|
#line 171 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_AWAY_NICK,
|
{ yyval.tuple = tuple_s_new(LEX_AWAY_NICK,
|
||||||
yyvsp[0].string); }
|
yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 41:
|
case 42:
|
||||||
#line 170 "conf.y"
|
#line 173 "conf.y"
|
||||||
{
|
{
|
||||||
yyval.tuple = tuple_i_new(LEX_FOLLOW_NICK, yyvsp[0].number); }
|
yyval.tuple = tuple_i_new(LEX_FOLLOW_NICK, yyvsp[0].number); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 42:
|
case 43:
|
||||||
#line 172 "conf.y"
|
#line 175 "conf.y"
|
||||||
{ yyval.tuple = tuple_i_new(
|
{ yyval.tuple = tuple_i_new(
|
||||||
LEX_IGN_FIRST_NICK, yyvsp[0].number); }
|
LEX_IGN_FIRST_NICK, yyvsp[0].number); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 43:
|
case 44:
|
||||||
#line 174 "conf.y"
|
#line 177 "conf.y"
|
||||||
{ yyval.tuple = tuple_l_new(
|
{ yyval.tuple = tuple_l_new(
|
||||||
LEX_CHANNEL, yyvsp[-1].list); }
|
LEX_CHANNEL, yyvsp[-1].list); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 44:
|
case 45:
|
||||||
#line 176 "conf.y"
|
#line 179 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(
|
{ yyval.tuple = tuple_s_new(
|
||||||
LEX_ON_CONNECT_SEND, yyvsp[0].string); }
|
LEX_ON_CONNECT_SEND, yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 45:
|
|
||||||
#line 179 "conf.y"
|
|
||||||
{ yyval.list = list_new(NULL); }
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 46:
|
case 46:
|
||||||
#line 180 "conf.y"
|
#line 182 "conf.y"
|
||||||
{ list_add_last(yyvsp[-2].list, yyvsp[-1].tuple); yyval.list = yyvsp[-2].list; }
|
{ yyval.list = list_new(NULL); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 47:
|
case 47:
|
||||||
#line 183 "conf.y"
|
#line 183 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_NAME, yyvsp[0].string); }
|
{ list_add_last(yyvsp[-2].list, yyvsp[-1].tuple); yyval.list = yyvsp[-2].list; }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 48:
|
case 48:
|
||||||
#line 184 "conf.y"
|
#line 186 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_KEY, yyvsp[0].string); }
|
{ yyval.tuple = tuple_s_new(LEX_NAME, yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 49:
|
case 49:
|
||||||
#line 187 "conf.y"
|
#line 187 "conf.y"
|
||||||
{ yyval.list = list_new(NULL); }
|
{ yyval.tuple = tuple_s_new(LEX_KEY, yyvsp[0].string); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 50:
|
case 50:
|
||||||
#line 188 "conf.y"
|
#line 190 "conf.y"
|
||||||
{ list_add_last(yyvsp[-2].list, yyvsp[-1].tuple); yyval.list = yyvsp[-2].list; }
|
{ yyval.list = list_new(NULL); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 51:
|
case 51:
|
||||||
#line 191 "conf.y"
|
#line 191 "conf.y"
|
||||||
{ yyval.tuple = tuple_s_new(LEX_HOST, yyvsp[0].string); }
|
{ list_add_last(yyvsp[-2].list, yyvsp[-1].tuple); yyval.list = yyvsp[-2].list; }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 52:
|
case 52:
|
||||||
#line 192 "conf.y"
|
#line 194 "conf.y"
|
||||||
|
{ yyval.tuple = tuple_s_new(LEX_HOST, yyvsp[0].string); }
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 53:
|
||||||
|
#line 195 "conf.y"
|
||||||
{ yyval.tuple = tuple_i_new(LEX_PORT, yyvsp[0].number); }
|
{ yyval.tuple = tuple_i_new(LEX_PORT, yyvsp[0].number); }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1535,7 +1543,7 @@ yyreduce:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Line 1010 of yacc.c. */
|
/* Line 1010 of yacc.c. */
|
||||||
#line 1539 "y.tab.c"
|
#line 1547 "y.tab.c"
|
||||||
|
|
||||||
yyvsp -= yylen;
|
yyvsp -= yylen;
|
||||||
yyssp -= yylen;
|
yyssp -= yylen;
|
||||||
|
16
src/conf.h
16
src/conf.h
@ -69,9 +69,10 @@
|
|||||||
LEX_IGN_FIRST_NICK = 295,
|
LEX_IGN_FIRST_NICK = 295,
|
||||||
LEX_ALWAYS_BACKLOG = 296,
|
LEX_ALWAYS_BACKLOG = 296,
|
||||||
LEX_LOGIN = 297,
|
LEX_LOGIN = 297,
|
||||||
LEX_BOOL = 298,
|
LEX_BLRESET_ON_TALK = 298,
|
||||||
LEX_INT = 299,
|
LEX_BOOL = 299,
|
||||||
LEX_STRING = 300
|
LEX_INT = 300,
|
||||||
|
LEX_STRING = 301
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
#define LEX_IP 258
|
#define LEX_IP 258
|
||||||
@ -114,9 +115,10 @@
|
|||||||
#define LEX_IGN_FIRST_NICK 295
|
#define LEX_IGN_FIRST_NICK 295
|
||||||
#define LEX_ALWAYS_BACKLOG 296
|
#define LEX_ALWAYS_BACKLOG 296
|
||||||
#define LEX_LOGIN 297
|
#define LEX_LOGIN 297
|
||||||
#define LEX_BOOL 298
|
#define LEX_BLRESET_ON_TALK 298
|
||||||
#define LEX_INT 299
|
#define LEX_BOOL 299
|
||||||
#define LEX_STRING 300
|
#define LEX_INT 300
|
||||||
|
#define LEX_STRING 301
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -130,7 +132,7 @@ typedef union YYSTYPE {
|
|||||||
struct tuple *tuple;
|
struct tuple *tuple;
|
||||||
} YYSTYPE;
|
} YYSTYPE;
|
||||||
/* Line 1285 of yacc.c. */
|
/* Line 1285 of yacc.c. */
|
||||||
#line 134 "y.tab.h"
|
#line 136 "y.tab.h"
|
||||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||||
# define YYSTYPE_IS_DECLARED 1
|
# define YYSTYPE_IS_DECLARED 1
|
||||||
# define YYSTYPE_IS_TRIVIAL 1
|
# define YYSTYPE_IS_TRIVIAL 1
|
||||||
|
@ -80,7 +80,7 @@ struct tuple *tuple_l_new(int type, void *p)
|
|||||||
|
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%token LEX_IP LEX_EQ LEX_PORT LEX_CSS LEX_SEMICOLON LEX_CONNECTION LEX_NETWORK LEX_LBRA LEX_RBRA LEX_USER LEX_NAME LEX_USERNAME LEX_NICK LEX_SERVER LEX_PASSWORD LEX_SRCIP LEX_HOST LEX_VHOST LEX_SOURCE_PORT LEX_NONE LEX_COMMENT LEX_BUNCH LEX_REALNAME LEX_SSL LEX_CHANNEL LEX_KEY LEX_LOG_ROOT LEX_LOG_FORMAT LEX_LOG_LEVEL LEX_BACKLOG_LINES LEX_BACKLOG LEX_LOG LEX_LOG_SYNC_INTERVAL LEX_FOLLOW_NICK LEX_ON_CONNECT_SEND LEX_AWAY_NICK LEX_PID_FILE LEX_IGN_FIRST_NICK LEX_ALWAYS_BACKLOG LEX_LOGIN
|
%token LEX_IP LEX_EQ LEX_PORT LEX_CSS LEX_SEMICOLON LEX_CONNECTION LEX_NETWORK LEX_LBRA LEX_RBRA LEX_USER LEX_NAME LEX_USERNAME LEX_NICK LEX_SERVER LEX_PASSWORD LEX_SRCIP LEX_HOST LEX_VHOST LEX_SOURCE_PORT LEX_NONE LEX_COMMENT LEX_BUNCH LEX_REALNAME LEX_SSL LEX_CHANNEL LEX_KEY LEX_LOG_ROOT LEX_LOG_FORMAT LEX_LOG_LEVEL LEX_BACKLOG_LINES LEX_BACKLOG LEX_LOG LEX_LOG_SYNC_INTERVAL LEX_FOLLOW_NICK LEX_ON_CONNECT_SEND LEX_AWAY_NICK LEX_PID_FILE LEX_IGN_FIRST_NICK LEX_ALWAYS_BACKLOG LEX_LOGIN LEX_BLRESET_ON_TALK
|
||||||
|
|
||||||
%union {
|
%union {
|
||||||
int number;
|
int number;
|
||||||
@ -119,6 +119,9 @@ command:
|
|||||||
| LEX_LOG_SYNC_INTERVAL LEX_EQ LEX_INT { $$ = tuple_i_new(
|
| LEX_LOG_SYNC_INTERVAL LEX_EQ LEX_INT { $$ = tuple_i_new(
|
||||||
LEX_LOG_SYNC_INTERVAL, $3); }
|
LEX_LOG_SYNC_INTERVAL, $3); }
|
||||||
| LEX_PID_FILE LEX_EQ LEX_STRING { $$ = tuple_s_new(LEX_PID_FILE, $3); }
|
| LEX_PID_FILE LEX_EQ LEX_STRING { $$ = tuple_s_new(LEX_PID_FILE, $3); }
|
||||||
|
| LEX_BLRESET_ON_TALK LEX_EQ LEX_BOOL {
|
||||||
|
$$ = tuple_i_new(LEX_BLRESET_ON_TALK, $3);
|
||||||
|
}
|
||||||
| LEX_NETWORK LEX_LBRA network LEX_RBRA { $$ = tuple_l_new(LEX_NETWORK,
|
| LEX_NETWORK LEX_LBRA network LEX_RBRA { $$ = tuple_l_new(LEX_NETWORK,
|
||||||
$3); }
|
$3); }
|
||||||
| LEX_USER LEX_LBRA user LEX_RBRA { $$ = tuple_l_new(LEX_USER, $3); }
|
| LEX_USER LEX_LBRA user LEX_RBRA { $$ = tuple_l_new(LEX_USER, $3); }
|
||||||
|
@ -47,6 +47,7 @@ extern int conf_backlog;
|
|||||||
extern int conf_log_sync_interval;
|
extern int conf_log_sync_interval;
|
||||||
extern int conf_error;
|
extern int conf_error;
|
||||||
extern char conf_errstr[];
|
extern char conf_errstr[];
|
||||||
|
extern int conf_blreset_on_talk;
|
||||||
|
|
||||||
void write_user_list(connection_t *c, char *dest);
|
void write_user_list(connection_t *c, char *dest);
|
||||||
|
|
||||||
@ -713,10 +714,13 @@ static int irc_cli_quit(struct link_client *ic, struct line *line)
|
|||||||
return OK_CLOSE;
|
return OK_CLOSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void adm_blreset(struct link_client *ic);
|
||||||
static int irc_cli_privmsg(struct link_client *ic, struct line *line)
|
static int irc_cli_privmsg(struct link_client *ic, struct line *line)
|
||||||
{
|
{
|
||||||
log_cli_privmsg(LINK(ic)->log, LINK(ic)->l_server->nick,
|
log_cli_privmsg(LINK(ic)->log, LINK(ic)->l_server->nick,
|
||||||
line->elemv[1], line->elemv[2]);
|
line->elemv[1], line->elemv[2]);
|
||||||
|
if (conf_blreset_on_talk)
|
||||||
|
adm_blreset(ic);
|
||||||
return OK_COPY_CLI;
|
return OK_COPY_CLI;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
317
src/lex.c
317
src/lex.c
@ -351,8 +351,8 @@ static void yy_fatal_error (yyconst char msg[] );
|
|||||||
*yy_cp = '\0'; \
|
*yy_cp = '\0'; \
|
||||||
(yy_c_buf_p) = yy_cp;
|
(yy_c_buf_p) = yy_cp;
|
||||||
|
|
||||||
#define YY_NUM_RULES 44
|
#define YY_NUM_RULES 45
|
||||||
#define YY_END_OF_BUFFER 45
|
#define YY_END_OF_BUFFER 46
|
||||||
/* This struct is not used in this scanner,
|
/* This struct is not used in this scanner,
|
||||||
but its presence is necessary. */
|
but its presence is necessary. */
|
||||||
struct yy_trans_info
|
struct yy_trans_info
|
||||||
@ -360,35 +360,37 @@ struct yy_trans_info
|
|||||||
flex_int32_t yy_verify;
|
flex_int32_t yy_verify;
|
||||||
flex_int32_t yy_nxt;
|
flex_int32_t yy_nxt;
|
||||||
};
|
};
|
||||||
static yyconst flex_int16_t yy_accept[248] =
|
static yyconst flex_int16_t yy_accept[262] =
|
||||||
{ 0,
|
{ 0,
|
||||||
0, 0, 45, 43, 1, 2, 43, 43, 4, 42,
|
0, 0, 46, 44, 1, 2, 44, 44, 4, 43,
|
||||||
39, 43, 43, 43, 43, 43, 43, 43, 43, 43,
|
40, 44, 44, 44, 44, 44, 44, 44, 44, 44,
|
||||||
43, 43, 43, 43, 43, 43, 43, 40, 41, 1,
|
44, 44, 44, 44, 44, 44, 44, 41, 42, 1,
|
||||||
0, 38, 0, 3, 4, 0, 0, 0, 0, 0,
|
0, 39, 0, 3, 4, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 6, 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, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 23, 30, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 23, 30, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 22, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 11, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 11,
|
||||||
|
|
||||||
12, 0, 17, 0, 0, 0, 7, 0, 0, 0,
|
0, 0, 0, 12, 0, 17, 0, 0, 0, 7,
|
||||||
5, 14, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 5, 14, 0, 0, 0, 0, 0,
|
||||||
0, 0, 0, 0, 0, 15, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
|
||||||
0, 0, 0, 0, 20, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 20, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
0, 0, 9, 0, 0, 0, 0, 29, 24, 0,
|
0, 0, 0, 0, 0, 0, 0, 9, 0, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 10, 0, 0,
|
0, 0, 29, 0, 24, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 10, 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, 26, 0, 0, 21, 37, 18, 0,
|
26, 0, 0, 21, 37, 18, 0, 13, 0, 35,
|
||||||
13, 0, 35, 0, 0, 0, 0, 0, 0, 25,
|
|
||||||
|
|
||||||
0, 0, 0, 0, 0, 0, 16, 0, 0, 27,
|
0, 0, 0, 0, 0, 0, 0, 25, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 16, 0, 0, 27, 0,
|
||||||
0, 0, 0, 0, 0, 0, 33, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 33, 0, 0, 0,
|
||||||
19, 0, 0, 0, 0, 0, 0, 0, 28, 0,
|
19, 0, 0, 0, 0, 0, 0, 0, 0, 28,
|
||||||
0, 0, 0, 31, 0, 0, 0, 0, 8, 0,
|
0, 0, 0, 0, 0, 31, 0, 0, 0, 0,
|
||||||
0, 36, 0, 0, 34, 32, 0
|
0, 38, 8, 0, 0, 36, 0, 0, 34, 32,
|
||||||
|
0
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static yyconst flex_int32_t yy_ec[256] =
|
static yyconst flex_int32_t yy_ec[256] =
|
||||||
@ -431,140 +433,146 @@ static yyconst flex_int32_t yy_meta[35] =
|
|||||||
1, 1, 1, 1
|
1, 1, 1, 1
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static yyconst flex_int16_t yy_base[250] =
|
static yyconst flex_int16_t yy_base[264] =
|
||||||
{ 0,
|
{ 0,
|
||||||
0, 0, 259, 260, 33, 260, 253, 254, 249, 260,
|
0, 0, 273, 274, 33, 274, 267, 268, 263, 274,
|
||||||
260, 15, 244, 20, 28, 230, 23, 238, 228, 32,
|
274, 15, 27, 21, 29, 245, 24, 253, 243, 32,
|
||||||
228, 31, 235, 30, 223, 221, 229, 260, 260, 54,
|
243, 33, 250, 35, 238, 236, 244, 274, 274, 52,
|
||||||
241, 260, 242, 260, 237, 212, 231, 228, 229, 220,
|
256, 274, 257, 274, 252, 227, 246, 243, 229, 243,
|
||||||
215, 216, 215, 208, 211, 260, 201, 215, 209, 202,
|
234, 229, 230, 229, 222, 225, 274, 215, 229, 223,
|
||||||
216, 218, 200, 212, 199, 213, 197, 193, 200, 191,
|
216, 230, 232, 214, 226, 213, 227, 211, 207, 214,
|
||||||
204, 194, 206, 184, 195, 191, 198, 189, 184, 189,
|
205, 218, 208, 220, 198, 209, 213, 204, 211, 202,
|
||||||
181, 184, 260, 43, 192, 175, 185, 191, 176, 192,
|
197, 202, 194, 197, 274, 45, 205, 188, 198, 204,
|
||||||
173, 179, 169, 172, 260, 182, 170, 168, 162, 183,
|
189, 205, 186, 192, 182, 185, 274, 195, 183, 181,
|
||||||
171, 168, 167, 174, 173, 163, 260, 160, 43, 162,
|
175, 196, 184, 177, 180, 179, 186, 185, 175, 274,
|
||||||
|
|
||||||
260, 160, 260, 159, 151, 165, 260, 157, 164, 165,
|
172, 42, 174, 274, 172, 274, 171, 163, 177, 274,
|
||||||
260, 154, 148, 148, 151, 149, 157, 143, 157, 138,
|
169, 176, 177, 274, 166, 160, 160, 163, 161, 169,
|
||||||
153, 143, 151, 141, 132, 260, 137, 139, 137, 141,
|
168, 154, 168, 149, 164, 154, 162, 152, 143, 274,
|
||||||
148, 132, 142, 145, 260, 145, 135, 136, 131, 141,
|
148, 150, 148, 152, 159, 143, 153, 156, 274, 156,
|
||||||
122, 139, 138, 121, 116, 121, 121, 123, 119, 115,
|
146, 147, 135, 141, 151, 132, 149, 148, 131, 126,
|
||||||
119, 117, 260, 128, 115, 124, 122, 124, 260, 106,
|
131, 131, 133, 129, 125, 129, 127, 274, 138, 125,
|
||||||
113, 108, 114, 107, 113, 99, 113, 260, 110, 110,
|
134, 132, 134, 133, 274, 115, 122, 117, 123, 116,
|
||||||
108, 107, 96, 105, 108, 98, 96, 97, 91, 95,
|
122, 108, 122, 274, 119, 119, 117, 116, 105, 114,
|
||||||
94, 101, 90, 260, 100, 96, 260, 260, 260, 84,
|
117, 107, 105, 101, 105, 99, 103, 102, 109, 98,
|
||||||
260, 94, 260, 87, 91, 81, 90, 76, 73, 260,
|
274, 108, 104, 274, 274, 274, 92, 274, 102, 274,
|
||||||
|
|
||||||
81, 71, 72, 77, 73, 80, 260, 74, 66, 260,
|
95, 90, 98, 88, 97, 83, 80, 274, 88, 78,
|
||||||
69, 81, 62, 68, 73, 77, 260, 58, 57, 57,
|
79, 84, 80, 92, 86, 274, 80, 72, 274, 75,
|
||||||
260, 59, 55, 54, 70, 64, 63, 60, 260, 49,
|
87, 68, 74, 79, 65, 82, 274, 63, 62, 62,
|
||||||
52, 48, 50, 260, 51, 52, 38, 53, 260, 53,
|
274, 64, 60, 75, 58, 74, 68, 67, 64, 274,
|
||||||
54, 260, 43, 40, 260, 260, 260, 59, 48
|
59, 52, 55, 51, 53, 274, 55, 53, 54, 42,
|
||||||
|
57, 274, 274, 57, 56, 274, 46, 44, 274, 274,
|
||||||
|
274, 60, 59
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static yyconst flex_int16_t yy_def[250] =
|
static yyconst flex_int16_t yy_def[264] =
|
||||||
{ 0,
|
{ 0,
|
||||||
247, 1, 247, 247, 247, 247, 248, 249, 247, 247,
|
261, 1, 261, 261, 261, 261, 262, 263, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
248, 247, 249, 247, 247, 247, 247, 247, 247, 247,
|
262, 261, 263, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
|
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
|
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 0, 247, 247
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
|
0, 261, 261
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static yyconst flex_int16_t yy_nxt[295] =
|
static yyconst flex_int16_t yy_nxt[309] =
|
||||||
{ 0,
|
{ 0,
|
||||||
4, 5, 6, 5, 7, 8, 9, 10, 11, 4,
|
4, 5, 6, 5, 7, 8, 9, 10, 11, 4,
|
||||||
12, 13, 14, 4, 4, 15, 4, 16, 17, 18,
|
12, 13, 14, 4, 4, 15, 4, 16, 17, 18,
|
||||||
19, 4, 20, 21, 22, 23, 24, 25, 26, 27,
|
19, 4, 20, 21, 22, 23, 24, 25, 26, 27,
|
||||||
4, 4, 28, 29, 30, 36, 30, 39, 42, 45,
|
4, 4, 28, 29, 30, 36, 30, 38, 40, 43,
|
||||||
40, 53, 49, 41, 57, 37, 50, 46, 33, 54,
|
46, 41, 50, 54, 42, 37, 51, 39, 47, 58,
|
||||||
51, 43, 99, 58, 55, 30, 59, 30, 122, 31,
|
52, 55, 44, 30, 102, 30, 56, 126, 59, 33,
|
||||||
246, 100, 245, 123, 244, 243, 242, 241, 124, 125,
|
31, 60, 127, 103, 260, 259, 258, 128, 129, 257,
|
||||||
240, 239, 238, 237, 236, 235, 234, 233, 232, 231,
|
256, 255, 254, 253, 252, 251, 250, 249, 248, 247,
|
||||||
230, 229, 228, 227, 226, 225, 224, 223, 222, 221,
|
246, 245, 244, 243, 242, 241, 240, 239, 238, 237,
|
||||||
220, 219, 218, 217, 216, 215, 214, 213, 212, 211,
|
236, 235, 234, 233, 232, 231, 230, 229, 228, 227,
|
||||||
|
|
||||||
210, 209, 208, 207, 206, 205, 204, 203, 202, 201,
|
226, 225, 224, 223, 222, 221, 220, 219, 218, 217,
|
||||||
200, 199, 198, 197, 196, 195, 194, 193, 192, 191,
|
216, 215, 214, 213, 212, 211, 210, 209, 208, 207,
|
||||||
190, 189, 188, 187, 186, 185, 184, 183, 182, 181,
|
206, 205, 204, 203, 202, 201, 200, 199, 198, 197,
|
||||||
180, 179, 178, 177, 176, 175, 174, 173, 172, 171,
|
196, 195, 194, 193, 192, 191, 190, 189, 188, 187,
|
||||||
170, 169, 168, 167, 166, 165, 164, 163, 162, 161,
|
186, 185, 184, 183, 182, 181, 180, 179, 178, 177,
|
||||||
160, 159, 158, 157, 156, 155, 154, 153, 152, 151,
|
176, 175, 174, 173, 172, 171, 170, 169, 168, 167,
|
||||||
150, 149, 148, 147, 146, 145, 144, 143, 142, 141,
|
166, 165, 164, 163, 162, 161, 160, 159, 158, 157,
|
||||||
140, 139, 138, 137, 136, 135, 134, 133, 132, 131,
|
156, 155, 154, 153, 152, 151, 150, 149, 148, 147,
|
||||||
130, 129, 128, 127, 126, 121, 120, 111, 119, 118,
|
146, 145, 144, 143, 142, 141, 140, 139, 138, 137,
|
||||||
117, 116, 115, 114, 113, 112, 111, 110, 109, 108,
|
136, 135, 134, 133, 132, 131, 130, 125, 124, 114,
|
||||||
|
|
||||||
107, 106, 105, 104, 103, 102, 101, 98, 97, 96,
|
123, 122, 121, 120, 119, 118, 117, 116, 115, 114,
|
||||||
95, 94, 93, 92, 91, 90, 89, 88, 87, 86,
|
113, 112, 111, 110, 109, 108, 107, 106, 105, 104,
|
||||||
85, 84, 83, 82, 81, 80, 79, 78, 77, 76,
|
101, 100, 99, 98, 97, 96, 95, 94, 93, 92,
|
||||||
75, 74, 73, 72, 71, 70, 69, 68, 67, 66,
|
91, 90, 89, 88, 87, 86, 85, 84, 83, 82,
|
||||||
65, 64, 63, 35, 34, 32, 62, 61, 60, 56,
|
81, 80, 79, 78, 77, 76, 75, 74, 73, 72,
|
||||||
52, 48, 47, 44, 38, 35, 34, 32, 247, 3,
|
71, 70, 69, 68, 67, 66, 65, 64, 35, 34,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
32, 63, 62, 61, 57, 53, 49, 48, 45, 35,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
34, 32, 261, 3, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
|
|
||||||
|
261, 261, 261, 261, 261, 261, 261, 261
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static yyconst flex_int16_t yy_chk[295] =
|
static yyconst flex_int16_t yy_chk[309] =
|
||||||
{ 0,
|
{ 0,
|
||||||
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, 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, 1, 1, 1, 1, 1, 1,
|
||||||
1, 1, 1, 1, 5, 12, 5, 14, 15, 17,
|
1, 1, 1, 1, 5, 12, 5, 13, 14, 15,
|
||||||
14, 22, 20, 14, 24, 12, 20, 17, 249, 22,
|
17, 14, 20, 22, 14, 12, 20, 13, 17, 24,
|
||||||
20, 15, 74, 24, 22, 30, 24, 30, 99, 248,
|
20, 22, 15, 30, 76, 30, 22, 102, 24, 263,
|
||||||
244, 74, 243, 99, 241, 240, 238, 237, 99, 99,
|
262, 24, 102, 76, 258, 257, 255, 102, 102, 254,
|
||||||
236, 235, 233, 232, 231, 230, 228, 227, 226, 225,
|
251, 250, 249, 248, 247, 245, 244, 243, 242, 241,
|
||||||
224, 223, 222, 220, 219, 218, 216, 215, 214, 213,
|
239, 238, 237, 236, 235, 234, 233, 232, 230, 229,
|
||||||
212, 211, 209, 208, 206, 205, 204, 203, 202, 201,
|
228, 226, 225, 224, 223, 222, 221, 220, 218, 217,
|
||||||
|
|
||||||
199, 198, 197, 196, 195, 194, 192, 190, 186, 185,
|
215, 214, 213, 212, 211, 210, 209, 207, 206, 205,
|
||||||
183, 182, 181, 180, 179, 178, 177, 176, 175, 174,
|
204, 203, 202, 201, 199, 197, 193, 192, 190, 189,
|
||||||
173, 172, 171, 170, 169, 167, 166, 165, 164, 163,
|
188, 187, 186, 185, 184, 183, 182, 181, 180, 179,
|
||||||
162, 161, 160, 158, 157, 156, 155, 154, 152, 151,
|
178, 177, 176, 175, 173, 172, 171, 170, 169, 168,
|
||||||
150, 149, 148, 147, 146, 145, 144, 143, 142, 141,
|
167, 166, 164, 163, 162, 161, 160, 159, 157, 156,
|
||||||
140, 139, 138, 137, 136, 134, 133, 132, 131, 130,
|
155, 154, 153, 152, 151, 150, 149, 148, 147, 146,
|
||||||
129, 128, 127, 125, 124, 123, 122, 121, 120, 119,
|
145, 144, 143, 142, 141, 140, 138, 137, 136, 135,
|
||||||
118, 117, 116, 115, 114, 113, 112, 110, 109, 108,
|
134, 133, 132, 131, 129, 128, 127, 126, 125, 124,
|
||||||
106, 105, 104, 102, 100, 98, 96, 95, 94, 93,
|
123, 122, 121, 120, 119, 118, 117, 116, 115, 113,
|
||||||
92, 91, 90, 89, 88, 87, 86, 84, 83, 82,
|
112, 111, 109, 108, 107, 105, 103, 101, 99, 98,
|
||||||
|
|
||||||
81, 80, 79, 78, 77, 76, 75, 72, 71, 70,
|
97, 96, 95, 94, 93, 92, 91, 90, 89, 88,
|
||||||
69, 68, 67, 66, 65, 64, 63, 62, 61, 60,
|
86, 85, 84, 83, 82, 81, 80, 79, 78, 77,
|
||||||
59, 58, 57, 56, 55, 54, 53, 52, 51, 50,
|
74, 73, 72, 71, 70, 69, 68, 67, 66, 65,
|
||||||
49, 48, 47, 45, 44, 43, 42, 41, 40, 39,
|
64, 63, 62, 61, 60, 59, 58, 57, 56, 55,
|
||||||
38, 37, 36, 35, 33, 31, 27, 26, 25, 23,
|
54, 53, 52, 51, 50, 49, 48, 46, 45, 44,
|
||||||
21, 19, 18, 16, 13, 9, 8, 7, 3, 247,
|
43, 42, 41, 40, 39, 38, 37, 36, 35, 33,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
31, 27, 26, 25, 23, 21, 19, 18, 16, 9,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
8, 7, 3, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
247, 247, 247, 247
|
261, 261, 261, 261, 261, 261, 261, 261, 261, 261,
|
||||||
|
|
||||||
|
261, 261, 261, 261, 261, 261, 261, 261
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
static yy_state_type yy_last_accepting_state;
|
static yy_state_type yy_last_accepting_state;
|
||||||
@ -616,7 +624,7 @@ list_t *parse_conf(FILE *file)
|
|||||||
}
|
}
|
||||||
return root_list;
|
return root_list;
|
||||||
}
|
}
|
||||||
#line 620 "lex.yy.c"
|
#line 628 "lex.yy.c"
|
||||||
|
|
||||||
#define INITIAL 0
|
#define INITIAL 0
|
||||||
|
|
||||||
@ -769,7 +777,7 @@ YY_DECL
|
|||||||
|
|
||||||
#line 36 "lex.l"
|
#line 36 "lex.l"
|
||||||
|
|
||||||
#line 773 "lex.yy.c"
|
#line 781 "lex.yy.c"
|
||||||
|
|
||||||
if ( (yy_init) )
|
if ( (yy_init) )
|
||||||
{
|
{
|
||||||
@ -822,13 +830,13 @@ yy_match:
|
|||||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||||
{
|
{
|
||||||
yy_current_state = (int) yy_def[yy_current_state];
|
yy_current_state = (int) yy_def[yy_current_state];
|
||||||
if ( yy_current_state >= 248 )
|
if ( yy_current_state >= 262 )
|
||||||
yy_c = yy_meta[(unsigned int) yy_c];
|
yy_c = yy_meta[(unsigned int) yy_c];
|
||||||
}
|
}
|
||||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||||
++yy_cp;
|
++yy_cp;
|
||||||
}
|
}
|
||||||
while ( yy_base[yy_current_state] != 260 );
|
while ( yy_base[yy_current_state] != 274 );
|
||||||
|
|
||||||
yy_find_action:
|
yy_find_action:
|
||||||
yy_act = yy_accept[yy_current_state];
|
yy_act = yy_accept[yy_current_state];
|
||||||
@ -1049,9 +1057,14 @@ YY_RULE_SETUP
|
|||||||
{ return LEX_PID_FILE; }
|
{ return LEX_PID_FILE; }
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 38:
|
case 38:
|
||||||
/* rule 38 can match eol */
|
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 81 "lex.l"
|
#line 81 "lex.l"
|
||||||
|
{ return LEX_BLRESET_ON_TALK; }
|
||||||
|
YY_BREAK
|
||||||
|
case 39:
|
||||||
|
/* rule 39 can match eol */
|
||||||
|
YY_RULE_SETUP
|
||||||
|
#line 82 "lex.l"
|
||||||
{
|
{
|
||||||
size_t len = strlen(yytext) - 2;
|
size_t len = strlen(yytext) - 2;
|
||||||
yylval.string = malloc(len + 1);
|
yylval.string = malloc(len + 1);
|
||||||
@ -1062,38 +1075,38 @@ YY_RULE_SETUP
|
|||||||
return LEX_STRING;
|
return LEX_STRING;
|
||||||
}
|
}
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 39:
|
|
||||||
YY_RULE_SETUP
|
|
||||||
#line 90 "lex.l"
|
|
||||||
{ return LEX_EQ; }
|
|
||||||
YY_BREAK
|
|
||||||
case 40:
|
case 40:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 91 "lex.l"
|
#line 91 "lex.l"
|
||||||
{ return LEX_LBRA; }
|
{ return LEX_EQ; }
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 41:
|
case 41:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 92 "lex.l"
|
#line 92 "lex.l"
|
||||||
{ return LEX_RBRA; }
|
{ return LEX_LBRA; }
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 42:
|
case 42:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 93 "lex.l"
|
#line 93 "lex.l"
|
||||||
{ return LEX_SEMICOLON; }
|
{ return LEX_RBRA; }
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 43:
|
case 43:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 94 "lex.l"
|
#line 94 "lex.l"
|
||||||
{ printf("Parse error line %d, unknown character '%s'\n", linec + 1, yytext);
|
{ return LEX_SEMICOLON; }
|
||||||
return LEX_BUNCH; }
|
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
case 44:
|
case 44:
|
||||||
YY_RULE_SETUP
|
YY_RULE_SETUP
|
||||||
#line 96 "lex.l"
|
#line 95 "lex.l"
|
||||||
|
{ printf("Parse error line %d, unknown character '%s'\n", linec + 1, yytext);
|
||||||
|
return LEX_BUNCH; }
|
||||||
|
YY_BREAK
|
||||||
|
case 45:
|
||||||
|
YY_RULE_SETUP
|
||||||
|
#line 97 "lex.l"
|
||||||
ECHO;
|
ECHO;
|
||||||
YY_BREAK
|
YY_BREAK
|
||||||
#line 1097 "lex.yy.c"
|
#line 1110 "lex.yy.c"
|
||||||
case YY_STATE_EOF(INITIAL):
|
case YY_STATE_EOF(INITIAL):
|
||||||
yyterminate();
|
yyterminate();
|
||||||
|
|
||||||
@ -1377,7 +1390,7 @@ static int yy_get_next_buffer (void)
|
|||||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||||
{
|
{
|
||||||
yy_current_state = (int) yy_def[yy_current_state];
|
yy_current_state = (int) yy_def[yy_current_state];
|
||||||
if ( yy_current_state >= 248 )
|
if ( yy_current_state >= 262 )
|
||||||
yy_c = yy_meta[(unsigned int) yy_c];
|
yy_c = yy_meta[(unsigned int) yy_c];
|
||||||
}
|
}
|
||||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||||
@ -1405,11 +1418,11 @@ static int yy_get_next_buffer (void)
|
|||||||
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
|
||||||
{
|
{
|
||||||
yy_current_state = (int) yy_def[yy_current_state];
|
yy_current_state = (int) yy_def[yy_current_state];
|
||||||
if ( yy_current_state >= 248 )
|
if ( yy_current_state >= 262 )
|
||||||
yy_c = yy_meta[(unsigned int) yy_c];
|
yy_c = yy_meta[(unsigned int) yy_c];
|
||||||
}
|
}
|
||||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||||
yy_is_jam = (yy_current_state == 247);
|
yy_is_jam = (yy_current_state == 261);
|
||||||
|
|
||||||
return yy_is_jam ? 0 : yy_current_state;
|
return yy_is_jam ? 0 : yy_current_state;
|
||||||
}
|
}
|
||||||
@ -2059,7 +2072,7 @@ void yyfree (void * ptr )
|
|||||||
#undef YY_DECL_IS_OURS
|
#undef YY_DECL_IS_OURS
|
||||||
#undef YY_DECL
|
#undef YY_DECL
|
||||||
#endif
|
#endif
|
||||||
#line 96 "lex.l"
|
#line 97 "lex.l"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,6 +78,7 @@ list_t *parse_conf(FILE *file)
|
|||||||
"away_nick" { return LEX_AWAY_NICK; }
|
"away_nick" { return LEX_AWAY_NICK; }
|
||||||
"on_connect_send" { return LEX_ON_CONNECT_SEND; }
|
"on_connect_send" { return LEX_ON_CONNECT_SEND; }
|
||||||
"pid_file" { return LEX_PID_FILE; }
|
"pid_file" { return LEX_PID_FILE; }
|
||||||
|
"blreset_on_talk" { return LEX_BLRESET_ON_TALK; }
|
||||||
\"[^"]*\" {
|
\"[^"]*\" {
|
||||||
size_t len = strlen(yytext) - 2;
|
size_t len = strlen(yytext) - 2;
|
||||||
yylval.string = malloc(len + 1);
|
yylval.string = malloc(len + 1);
|
||||||
|
@ -181,6 +181,7 @@ void log_updatelast(logfile_t *lf)
|
|||||||
void log_reset(logfilegroup_t *lfg)
|
void log_reset(logfilegroup_t *lfg)
|
||||||
{
|
{
|
||||||
logfile_t *olf;
|
logfile_t *olf;
|
||||||
|
lfg->skip_advance = 0;
|
||||||
|
|
||||||
if (lfg->memlog) {
|
if (lfg->memlog) {
|
||||||
while (!list_is_empty(lfg->memlog))
|
while (!list_is_empty(lfg->memlog))
|
||||||
|
Loading…
Reference in New Issue
Block a user