From 4836d9548d8078fa53b854cc5510820922e8211b Mon Sep 17 00:00:00 2001 From: rburchell Date: Wed, 11 Feb 2009 23:59:18 +0000 Subject: Audit cs_ban, cs_clear, cs_drop. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2017 5417fbe8-f217-4b02-8779-1006273d7864 --- src/core/cs_ban.c | 26 ++++++++++++++++---------- src/core/cs_clear.c | 4 +--- src/core/cs_drop.c | 2 +- 3 files changed, 18 insertions(+), 14 deletions(-) (limited to 'src/core') diff --git a/src/core/cs_ban.c b/src/core/cs_ban.c index c72e45ff8..51288fa6e 100644 --- a/src/core/cs_ban.c +++ b/src/core/cs_ban.c @@ -31,7 +31,7 @@ void myChanServHelp(User * u) class CommandCSBan : public Command { public: - CommandCSBan() : Command("BAN", 1, 3) + CommandCSBan() : Command("BAN", 2, 3) { } @@ -40,24 +40,24 @@ class CommandCSBan : public Command { const char *chan = params[0].c_str(); const char *target = params[1].c_str(); - params[2].resize(200); - const char *reason = params[2].c_str(); + const char *reason = NULL; + + if (params.size() > 2) + { + params[2].resize(200); + reason = params[2].c_str(); + + } Channel *c; ChannelInfo *ci; User *u2; - if (!chan) - return MOD_CONT; - int is_same; if (!reason) reason = "Requested"; - if (!target) - target = u->nick; - is_same = (stricmp(target, u->nick) == 0); if (!(c = findchan(chan))) { @@ -119,6 +119,12 @@ class CommandCSBan : public Command notice_lang(s_ChanServ, u, CHAN_HELP_BAN); return true; } + + void OnSyntaxError(User *u) + { + // XXX: temporary, this can be tackled when the language system isn't so goddamn hairy. + syntax_error(s_ChanServ, u, "BAN", CHAN_UNBAN_SYNTAX); + } }; @@ -133,7 +139,7 @@ class CommandCSUnban : public Command CommandReturn Execute(User *u, std::vector ¶ms) { - char *chan = strtok(NULL, " "); + const char *chan = params[0].c_str(); Channel *c; ChannelInfo *ci; diff --git a/src/core/cs_clear.c b/src/core/cs_clear.c index e7dfa2972..48ee0cf9d 100644 --- a/src/core/cs_clear.c +++ b/src/core/cs_clear.c @@ -41,9 +41,7 @@ class CommandCSClear : public Command Channel *c; ChannelInfo *ci; - if (!what) { - syntax_error(s_ChanServ, u, "CLEAR", CHAN_CLEAR_SYNTAX); - } else if (!(c = findchan(chan))) { + if (!(c = findchan(chan))) { notice_lang(s_ChanServ, u, CHAN_X_NOT_IN_USE, chan); } else if (!(ci = c->ci)) { notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan); diff --git a/src/core/cs_drop.c b/src/core/cs_drop.c index 84e72a7a8..6dfa016d9 100644 --- a/src/core/cs_drop.c +++ b/src/core/cs_drop.c @@ -36,7 +36,7 @@ class CommandCSDrop : public Command CommandReturn Execute(User *u, std::vector ¶ms) { - char *chan = strtok(NULL, " "); + const char *chan = params[0].c_str(); ChannelInfo *ci; int is_servadmin = is_services_admin(u); -- cgit