X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcoremods%2Fcore_xline%2Fcmd_qline.cpp;h=086d860fc70a24a5b02acb963fcbef34ab15825f;hb=f2e3fd5952b23209b084bde4f464e6643c8a00ff;hp=6dc0da9bad7ec210e62fbe690a6bd39840ae9c9d;hpb=7851faac62d7a83c94cd5d37e0109b5d0a152bf9;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/coremods/core_xline/cmd_qline.cpp b/src/coremods/core_xline/cmd_qline.cpp index 6dc0da9ba..086d860fc 100644 --- a/src/coremods/core_xline/cmd_qline.cpp +++ b/src/coremods/core_xline/cmd_qline.cpp @@ -30,7 +30,7 @@ CommandQline::CommandQline(Module* parent) syntax = " [ :]"; } -CmdResult CommandQline::Handle (const std::vector& parameters, User *user) +CmdResult CommandQline::Handle(User* user, const Params& parameters) { if (parameters.size() >= 3) { @@ -40,11 +40,16 @@ CmdResult CommandQline::Handle (const std::vector& parameters, User if (parameters[0].find('@') != std::string::npos || parameters[0].find('!') != std::string::npos || parameters[0].find('.') != std::string::npos) { - user->WriteNotice("*** A Q-Line only bans a nick pattern, not a nick!user@host pattern."); + user->WriteNotice("*** A Q-line only bans a nick pattern, not a nick!user@host pattern."); return CMD_FAILURE; } - unsigned long duration = InspIRCd::Duration(parameters[1]); + unsigned long duration; + if (!InspIRCd::Duration(parameters[1], duration)) + { + user->WriteNotice("*** Invalid duration for Q-line."); + return CMD_FAILURE; + } QLine* ql = new QLine(ServerInstance->Time(), duration, user->nick.c_str(), parameters[2].c_str(), parameters[0].c_str()); if (ServerInstance->XLines->AddLine(ql,user)) { @@ -64,7 +69,7 @@ CmdResult CommandQline::Handle (const std::vector& parameters, User else { delete ql; - user->WriteNotice("*** Q-Line for " + parameters[0] + " already exists"); + user->WriteNotice("*** Q-line for " + parameters[0] + " already exists."); } } else @@ -75,7 +80,7 @@ CmdResult CommandQline::Handle (const std::vector& parameters, User } else { - user->WriteNotice("*** Q-Line " + parameters[0] + " not found in list, try /stats q."); + user->WriteNotice("*** Q-line " + parameters[0] + " not found in list, try /stats q."); return CMD_FAILURE; } }