*
* This file is part of x3.
*
- * srvx is free software; you can redistribute it and/or modify
+ * x3 is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
check_track_user(struct userNode *user)
{
int found;
+ if(!user)
+ return 0;
dict_find(track_db, (const char *)user->nick, &found);
return found;
}
static void
track_kick(struct userNode *kicker, struct userNode *victim, struct chanNode *chan) {
if (!track_cfg.enabled) return;
- if (check_track_kick(track_cfg) && (check_track_user(kicker) || check_track_user(victim)))
+ if (check_track_kick(track_cfg) && ((check_track_user(kicker) || check_track_user(victim))))
{
UPDATE_TIMESTAMP();
TRACK("$bKICK$b %s from %s by %s", victim->nick, chan->name, (kicker ? kicker->nick : "some server"));
if(who)
{
if (who->uplink->burst && !track_cfg.show_bursts) return;
- if (!check_track_chanmode(track_cfg) && !check_track_user(who)) return;
+ if (!check_track_chanmode(track_cfg) || !check_track_user(who)) return;
} else
return;
static void
check_track_state(struct userNode *user)
{
- send_message_type(4, user, track_cfg.bot, "TRACK snomask is:%s%s%s%s%s%s%s%s%s",
+ send_message_type(4, user, track_cfg.bot, "TRACK is tracking: %s%s%s%s%s%s%s%s%s",
check_track_nick(track_cfg) ? " nick":"", check_track_join(track_cfg) ? " join":"",
check_track_part(track_cfg) ? " part":"", check_track_kick(track_cfg) ? " kick":"",
check_track_new(track_cfg) ? " new":"", check_track_del(track_cfg) ? " del":"",
if(argc == 1)
{
+ svccmd_send_help_brief(user, track_cfg.bot, cmd);
check_track_state(user);
return 0;
}
if(add == 2)
{
- if ((!strcasecmp(&data[i], "all")))
+ if ((!strcasecmp(data, "all")))
{
set_track_all(track_cfg);
check_track_state(user);
TRACK("$bALERT$b TRACK fully enabled by %s", user->nick);
}
- else if (!strcasecmp(&data[i], "none"))
+ else if (!strcasecmp(data, "none"))
{
clear_track_all(track_cfg);
check_track_state(user);
TRACK("$bALERT$b TRACK disabled by %s", user->nick);
}
else
- TRACK("Unrecognised parameter: %s", data);
+ {
+ send_message_type(4, user, track_cfg.bot, "Unrecognised parameter: %s", data);
+ svccmd_send_help_brief(user, track_cfg.bot, cmd);
+ }
return 0;
}
send_message_type(4, user, track_cfg.bot, "This nick isn't monitored.");
}
else
+ {
send_message_type(4, user, track_cfg.bot, "No nick or invalid nick specified.");
+ svccmd_send_help_brief(user, track_cfg.bot, cmd);
+ }
return 0;
}
UPDATE_TIMESTAMP();
TRACK("$bALERT$b Manually enabled monitoring of %s!%s@%s on %s requested by %s",
un->nick, un->ident, un->hostname, un->uplink->name, user->nick);
+ send_message_type(4, user, track_cfg.bot, "Now tracking %s!%s@%s on %s", un->nick,un->ident,un->hostname, un->uplink->name);
}
else
+ {
send_message_type(4, user, track_cfg.bot, "No nick or invalid nick specified.");
+ svccmd_send_help_brief(user, track_cfg.bot, cmd);
+ }
return 0;
}
str = database_get_data(node, "channel", RECDB_QSTRING);
if (!str)
return;
- track_cfg.channel = AddChannel(str, now, "+sntim", NULL, NULL);
+ // XXX - dont do addchannel if the channel is being shared with
+ // another module:
+ track_cfg.channel = AddChannel(str, now, "+sntOm", NULL, NULL);
if (!track_cfg.channel)
return;
str = database_get_data(node, "show_bursts", RECDB_QSTRING);