+2005-08-19 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/parse.c (tok_tree): Re-add token tree structure.
+ (initmsgtree): Populate it.
+ (parse_server): Prefer it to full message tree.
+
+2005-08-18 Michael Poole <mdpoole@troilus.org>
+
+ * ircd/m_kill.c (do_kill): When FEAT_HIS_KILLWHO, change apparent
+ source of KILLs to &his instead of &me.
+
2005-08-16 Michael Poole <mdpoole@troilus.org>
* ircd/channel.c (mode_parse_ban): Avoid overwriting part of
* always sees the kill as coming from me.
*/
if (MyConnect(victim))
- sendcmdto_one(feature_bool(FEAT_HIS_KILLWHO) ? &me : sptr, CMD_KILL,
+ sendcmdto_one(feature_bool(FEAT_HIS_KILLWHO) ? &his : sptr, CMD_KILL,
victim, "%C :%s %s", victim, feature_bool(FEAT_HIS_KILLWHO)
? feature_str(FEAT_HIS_SERVERNAME) : cli_name(sptr), msg);
return exit_client_msg(cptr, victim, feature_bool(FEAT_HIS_KILLWHO)
- ? &me : sptr, "Killed (%s %s)",
- feature_bool(FEAT_HIS_KILLWHO) ?
+ ? &his : sptr, "Killed (%s %s)",
+ feature_bool(FEAT_HIS_KILLWHO) ?
feature_str(FEAT_HIS_SERVERNAME) : cli_name(sptr),
msg);
}
/** Root of command lookup trie. */
static struct MessageTree msg_tree;
+static struct MessageTree tok_tree;
/** Array of all supported commands. */
struct Message msgtab[] = {
int i;
memset(&msg_tree, 0, sizeof(msg_tree));
+ memset(&tok_tree, 0, sizeof(tok_tree));
for (i = 0; msgtab[i].cmd != NULL ; i++)
{
add_msg_element(&msg_tree, &msgtab[i], msgtab[i].cmd);
- add_msg_element(&msg_tree, &msgtab[i], msgtab[i].tok);
+ add_msg_element(&tok_tree, &msgtab[i], msgtab[i].tok);
}
}
* And for the record, this trie parser really does not care. - Dianora
*/
- mptr = msg_tree_parse(ch, &msg_tree);
+ mptr = msg_tree_parse(ch, &tok_tree);
+
+ if (mptr == NULL)
+ {
+ mptr = msg_tree_parse(ch, &msg_tree);
+ }
if (mptr == NULL)
{