From 384ef31bc01e4a1a2e59d082c9066002410ba54a Mon Sep 17 00:00:00 2001 From: Peter Powell Date: Thu, 26 Jul 2018 19:43:54 +0100 Subject: [PATCH] Use CommandBase::Params instead of std::vector. This is presently a typedef but will soon be replaced with a class that encapsulates both tags and parameters. --- include/command_parse.h | 6 +- include/commands/cmd_whowas.h | 2 +- include/ctables.h | 14 +-- include/inspircd.h | 2 +- include/modules.h | 4 +- include/modules/sasl.h | 2 +- include/numeric.h | 6 +- include/protocol.h | 6 +- src/command_parse.cpp | 22 ++--- src/commands.cpp | 29 +++--- src/coremods/core_channel/cmd_invite.cpp | 4 +- src/coremods/core_channel/cmd_join.cpp | 2 +- src/coremods/core_channel/cmd_kick.cpp | 4 +- src/coremods/core_channel/cmd_names.cpp | 2 +- src/coremods/core_channel/cmd_topic.cpp | 2 +- src/coremods/core_channel/core_channel.h | 14 +-- src/coremods/core_info/cmd_admin.cpp | 2 +- src/coremods/core_info/cmd_commands.cpp | 2 +- src/coremods/core_info/cmd_info.cpp | 2 +- src/coremods/core_info/cmd_modules.cpp | 2 +- src/coremods/core_info/cmd_motd.cpp | 2 +- src/coremods/core_info/cmd_time.cpp | 2 +- src/coremods/core_info/cmd_version.cpp | 2 +- src/coremods/core_info/core_info.cpp | 2 +- src/coremods/core_info/core_info.h | 16 ++-- src/coremods/core_ison.cpp | 4 +- src/coremods/core_list.cpp | 4 +- src/coremods/core_loadmodule.cpp | 8 +- src/coremods/core_lusers.cpp | 4 +- src/coremods/core_oper/cmd_die.cpp | 2 +- src/coremods/core_oper/cmd_kill.cpp | 4 +- src/coremods/core_oper/cmd_oper.cpp | 2 +- src/coremods/core_oper/cmd_rehash.cpp | 2 +- src/coremods/core_oper/cmd_restart.cpp | 2 +- src/coremods/core_oper/core_oper.h | 12 +-- src/coremods/core_privmsg.cpp | 10 +- src/coremods/core_reloadmodule.cpp | 4 +- src/coremods/core_stats.cpp | 6 +- src/coremods/core_stub.cpp | 8 +- src/coremods/core_user/cmd_away.cpp | 4 +- src/coremods/core_user/cmd_mode.cpp | 4 +- src/coremods/core_user/cmd_nick.cpp | 2 +- src/coremods/core_user/cmd_part.cpp | 4 +- src/coremods/core_user/cmd_quit.cpp | 4 +- src/coremods/core_user/cmd_user.cpp | 2 +- src/coremods/core_user/core_user.cpp | 6 +- src/coremods/core_user/core_user.h | 20 ++-- src/coremods/core_userhost.cpp | 4 +- src/coremods/core_wallops.cpp | 6 +- src/coremods/core_who.cpp | 6 +- src/coremods/core_whois.cpp | 8 +- src/coremods/core_whowas.cpp | 2 +- src/coremods/core_xline/cmd_eline.cpp | 2 +- src/coremods/core_xline/cmd_gline.cpp | 2 +- src/coremods/core_xline/cmd_kline.cpp | 2 +- src/coremods/core_xline/cmd_qline.cpp | 2 +- src/coremods/core_xline/cmd_zline.cpp | 2 +- src/coremods/core_xline/core_xline.h | 10 +- src/modules.cpp | 4 +- src/modules/m_abbreviation.cpp | 2 +- src/modules/m_alias.cpp | 4 +- src/modules/m_alltime.cpp | 4 +- src/modules/m_blockamsg.cpp | 2 +- src/modules/m_callerid.cpp | 4 +- src/modules/m_cap.cpp | 2 +- src/modules/m_cban.cpp | 4 +- src/modules/m_cgiirc.cpp | 2 +- src/modules/m_check.cpp | 4 +- src/modules/m_chghost.cpp | 4 +- src/modules/m_chgident.cpp | 4 +- src/modules/m_chgname.cpp | 4 +- src/modules/m_clearchan.cpp | 4 +- src/modules/m_cloaking.cpp | 4 +- src/modules/m_clones.cpp | 2 +- src/modules/m_close.cpp | 2 +- src/modules/m_conn_umodes.cpp | 2 +- src/modules/m_conn_waitpong.cpp | 2 +- src/modules/m_customtitle.cpp | 2 +- src/modules/m_cycle.cpp | 2 +- src/modules/m_dccallow.cpp | 4 +- src/modules/m_filter.cpp | 10 +- src/modules/m_globalload.cpp | 12 +-- src/modules/m_globops.cpp | 2 +- src/modules/m_helpop.cpp | 2 +- src/modules/m_jumpserver.cpp | 2 +- src/modules/m_knock.cpp | 4 +- src/modules/m_ldapoper.cpp | 6 +- src/modules/m_lockserv.cpp | 4 +- src/modules/m_maphide.cpp | 2 +- src/modules/m_modenotice.cpp | 4 +- src/modules/m_monitor.cpp | 2 +- src/modules/m_namedmodes.cpp | 2 +- src/modules/m_namesx.cpp | 2 +- src/modules/m_nicklock.cpp | 8 +- src/modules/m_ojoin.cpp | 2 +- src/modules/m_operlog.cpp | 2 +- src/modules/m_opermodes.cpp | 2 +- src/modules/m_opermotd.cpp | 4 +- src/modules/m_password_hash.cpp | 2 +- src/modules/m_remove.cpp | 14 +-- src/modules/m_rline.cpp | 4 +- src/modules/m_rmode.cpp | 2 +- src/modules/m_sajoin.cpp | 4 +- src/modules/m_sakick.cpp | 4 +- src/modules/m_samode.cpp | 2 +- src/modules/m_sanick.cpp | 4 +- src/modules/m_sapart.cpp | 4 +- src/modules/m_saquit.cpp | 4 +- src/modules/m_sasl.cpp | 16 ++-- src/modules/m_satopic.cpp | 2 +- src/modules/m_securelist.cpp | 2 +- src/modules/m_sethost.cpp | 2 +- src/modules/m_setident.cpp | 2 +- src/modules/m_setidle.cpp | 2 +- src/modules/m_setname.cpp | 2 +- src/modules/m_showfile.cpp | 2 +- src/modules/m_showwhois.cpp | 4 +- src/modules/m_shun.cpp | 6 +- src/modules/m_silence.cpp | 9 +- src/modules/m_spanningtree/addline.cpp | 2 +- src/modules/m_spanningtree/away.cpp | 2 +- src/modules/m_spanningtree/capab.cpp | 2 +- src/modules/m_spanningtree/commands.h | 92 +++++++++---------- src/modules/m_spanningtree/compat.cpp | 6 +- src/modules/m_spanningtree/delline.cpp | 2 +- src/modules/m_spanningtree/encap.cpp | 6 +- src/modules/m_spanningtree/fjoin.cpp | 2 +- src/modules/m_spanningtree/fmode.cpp | 2 +- src/modules/m_spanningtree/ftopic.cpp | 2 +- src/modules/m_spanningtree/idle.cpp | 2 +- src/modules/m_spanningtree/ijoin.cpp | 4 +- src/modules/m_spanningtree/main.cpp | 6 +- src/modules/m_spanningtree/main.h | 14 +-- src/modules/m_spanningtree/metadata.cpp | 2 +- src/modules/m_spanningtree/misccommands.cpp | 4 +- src/modules/m_spanningtree/nick.cpp | 2 +- src/modules/m_spanningtree/num.cpp | 8 +- src/modules/m_spanningtree/opertype.cpp | 2 +- src/modules/m_spanningtree/override_map.cpp | 4 +- src/modules/m_spanningtree/override_squit.cpp | 2 +- src/modules/m_spanningtree/override_whois.cpp | 2 +- src/modules/m_spanningtree/ping.cpp | 2 +- src/modules/m_spanningtree/pong.cpp | 2 +- src/modules/m_spanningtree/postcommand.cpp | 4 +- src/modules/m_spanningtree/precommand.cpp | 2 +- .../m_spanningtree/protocolinterface.cpp | 4 +- .../m_spanningtree/protocolinterface.h | 4 +- src/modules/m_spanningtree/rconnect.cpp | 6 +- src/modules/m_spanningtree/rsquit.cpp | 4 +- src/modules/m_spanningtree/save.cpp | 2 +- src/modules/m_spanningtree/server.cpp | 12 +-- src/modules/m_spanningtree/servercommand.cpp | 2 +- src/modules/m_spanningtree/servercommand.h | 8 +- src/modules/m_spanningtree/sinfo.cpp | 2 +- src/modules/m_spanningtree/svsjoin.cpp | 4 +- src/modules/m_spanningtree/svsnick.cpp | 4 +- src/modules/m_spanningtree/svspart.cpp | 4 +- src/modules/m_spanningtree/treesocket.h | 16 ++-- src/modules/m_spanningtree/treesocket1.cpp | 2 +- src/modules/m_spanningtree/treesocket2.cpp | 10 +- src/modules/m_spanningtree/uid.cpp | 10 +- src/modules/m_spanningtree/utils.h | 2 +- src/modules/m_sqloper.cpp | 6 +- src/modules/m_sslinfo.cpp | 4 +- src/modules/m_starttls.cpp | 2 +- src/modules/m_svshold.cpp | 4 +- src/modules/m_swhois.cpp | 2 +- src/modules/m_timedbans.cpp | 4 +- src/modules/m_tline.cpp | 2 +- src/modules/m_topiclock.cpp | 4 +- src/modules/m_uhnames.cpp | 2 +- src/modules/m_uninvite.cpp | 4 +- src/modules/m_userip.cpp | 2 +- src/modules/m_vhost.cpp | 2 +- src/modules/m_watch.cpp | 2 +- src/users.cpp | 4 +- 176 files changed, 439 insertions(+), 431 deletions(-) diff --git a/include/command_parse.h b/include/command_parse.h index ec5ebba48..8324e5e25 100644 --- a/include/command_parse.h +++ b/include/command_parse.h @@ -65,7 +65,7 @@ class CoreExport CommandParser * command simply did not exist at all or the wrong number of parameters were given, or the user * was not privilaged enough to execute the command. */ - CmdResult CallHandler(const std::string& commandname, const std::vector& parameters, User* user, Command** cmd = NULL); + CmdResult CallHandler(const std::string& commandname, const CommandBase::Params& parameters, User* user, Command** cmd = NULL); /** Get the handler function for a command. * @param commandname The command required. Always use uppercase for this parameter. @@ -110,7 +110,7 @@ class CoreExport CommandParser * command handler for each entry on the list. When this occurs, the caller should return without doing anything, * otherwise it should continue into its main section of code. */ - static bool LoopCall(User* user, Command* handler, const std::vector& parameters, unsigned int splithere, int extra = -1, bool usemax = true); + static bool LoopCall(User* user, Command* handler, const CommandBase::Params& parameters, unsigned int splithere, int extra = -1, bool usemax = true); /** Take a raw input buffer from a recvq, and process it on behalf of a user. * @param buffer The buffer line to process @@ -144,7 +144,7 @@ class CoreExport CommandParser * @param custom_translator Used to translate the parameter if the translation type is TR_CUSTOM, if NULL, TR_CUSTOM will act like TR_TEXT * @return dest The output string */ - static std::string TranslateUIDs(const std::vector& to, const std::vector& source, bool prefix_final = false, CommandBase* custom_translator = NULL); + static std::string TranslateUIDs(const std::vector& to, const CommandBase::Params& source, bool prefix_final = false, CommandBase* custom_translator = NULL); }; /** A lookup table of values for multiplier characters used by diff --git a/include/commands/cmd_whowas.h b/include/commands/cmd_whowas.h index 03ffae905..6af0c7c55 100644 --- a/include/commands/cmd_whowas.h +++ b/include/commands/cmd_whowas.h @@ -203,5 +203,5 @@ class CommandWhowas : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; diff --git a/include/ctables.h b/include/ctables.h index 43a311a66..c34e4abeb 100644 --- a/include/ctables.h +++ b/include/ctables.h @@ -110,6 +110,8 @@ struct RouteDescriptor class CoreExport CommandBase : public ServiceProvider { public: + typedef std::vector Params; + /** User flags needed to execute the command or 0 */ unsigned char flags_needed; @@ -168,7 +170,7 @@ class CoreExport CommandBase : public ServiceProvider */ CommandBase(Module* me, const std::string& cmd, unsigned int minpara = 0, unsigned int maxpara = 0); - virtual RouteDescriptor GetRouting(User* user, const std::vector& parameters); + virtual RouteDescriptor GetRouting(User* user, const CommandBase::Params& parameters); /** Encode a parameter for server->server transmission. * Used for parameters for which the translation type is TR_CUSTOM. @@ -219,7 +221,7 @@ class CoreExport Command : public CommandBase * @param user The user who issued the command. * @return Return CMD_SUCCESS on success, or CMD_FAILURE on failure. */ - virtual CmdResult Handle(const std::vector& parameters, User* user) = 0; + virtual CmdResult Handle(User* user, const Params& parameters) = 0; /** Register this object in the CommandParser */ @@ -236,10 +238,10 @@ class CoreExport SplitCommand : public Command public: SplitCommand(Module* me, const std::string &cmd, unsigned int minpara = 0, unsigned int maxpara = 0) : Command(me, cmd, minpara, maxpara) {} - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; - virtual CmdResult HandleLocal(const std::vector& parameters, LocalUser* user); - virtual CmdResult HandleRemote(const std::vector& parameters, RemoteUser* user); - virtual CmdResult HandleServer(const std::vector& parameters, FakeUser* user); + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; + virtual CmdResult HandleLocal(LocalUser* user, const Params& parameters); + virtual CmdResult HandleRemote(RemoteUser* user, const Params& parameters); + virtual CmdResult HandleServer(FakeUser* user, const Params& parameters); }; /** Shortcut macros for defining translation lists diff --git a/include/inspircd.h b/include/inspircd.h index b028280f7..7180fd672 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -72,6 +72,7 @@ struct fakederef #include "cull_list.h" #include "extensible.h" #include "fileutils.h" +#include "ctables.h" #include "numerics.h" #include "numeric.h" #include "uid.h" @@ -83,7 +84,6 @@ struct fakederef #include "logger.h" #include "usermanager.h" #include "socket.h" -#include "ctables.h" #include "command_parse.h" #include "mode.h" #include "socketengine.h" diff --git a/include/modules.h b/include/modules.h index 9355712bf..432e70752 100644 --- a/include/modules.h +++ b/include/modules.h @@ -720,7 +720,7 @@ class CoreExport Module : public classbase, public usecountbase * @param original_line The entire original line as passed to the parser from the user * @return 1 to block the command, 0 to allow */ - virtual ModResult OnPreCommand(std::string &command, std::vector& parameters, LocalUser *user, bool validated, const std::string &original_line); + virtual ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line); /** Called after any command has been executed. * This event occurs for all registered commands, wether they are registered in the core, @@ -733,7 +733,7 @@ class CoreExport Module : public classbase, public usecountbase * @param result The return code given by the command handler, one of CMD_SUCCESS or CMD_FAILURE * @param original_line The entire original line as passed to the parser from the user */ - virtual void OnPostCommand(Command* command, const std::vector& parameters, LocalUser* user, CmdResult result, const std::string& original_line); + virtual void OnPostCommand(Command* command, const CommandBase::Params& parameters, LocalUser* user, CmdResult result, const std::string& original_line); /** Called when a user is first connecting, prior to starting DNS lookups, checking initial * connect class, or accepting any commands. diff --git a/include/modules/sasl.h b/include/modules/sasl.h index 0a7b19a70..8a54cfdb3 100644 --- a/include/modules/sasl.h +++ b/include/modules/sasl.h @@ -29,5 +29,5 @@ class SASLEventListener : public Events::ModuleEventListener { } - virtual void OnSASLAuth(const parameterlist& params) = 0; + virtual void OnSASLAuth(const CommandBase::Params& params) = 0; }; diff --git a/include/numeric.h b/include/numeric.h index 85f2f13f0..cc9f9cc9b 100644 --- a/include/numeric.h +++ b/include/numeric.h @@ -34,7 +34,7 @@ class Numeric::Numeric /** Parameters of the numeric */ - std::vector params; + CommandBase::Params params; /** Source server of the numeric, if NULL (the default) then it is the local server */ @@ -78,10 +78,10 @@ class Numeric::Numeric /** Get the parameters of the numeric * @return Parameters of the numeric as a const vector of strings */ - const std::vector& GetParams() const { return params; } + const CommandBase::Params& GetParams() const { return params; } /** Get the parameters of the numeric * @return Parameters of the numeric as a vector of strings */ - std::vector& GetParams() { return params; } + CommandBase::Params& GetParams() { return params; } }; diff --git a/include/protocol.h b/include/protocol.h index 7a2908a4c..a7c727e8c 100644 --- a/include/protocol.h +++ b/include/protocol.h @@ -24,8 +24,6 @@ class User; -typedef std::vector parameterlist; - class ProtocolServer { public: @@ -66,7 +64,7 @@ class CoreExport ProtocolInterface * and the message was sent, false if it was not found. * ENCAP (should) be used instead of creating new protocol messages for easier third party application support. */ - virtual bool SendEncapsulatedData(const std::string& targetmask, const std::string& cmd, const parameterlist& params, User* source = NULL) { return false; } + virtual bool SendEncapsulatedData(const std::string& targetmask, const std::string& cmd, const CommandBase::Params& params, User* source = NULL) { return false; } /** Send an ENCAP message to all servers. * See the protocol documentation for the purpose of ENCAP. @@ -76,7 +74,7 @@ class CoreExport ProtocolInterface * or NULL which is equivalent to the local server * @param omit If non-NULL the message won't be sent in the direction of this server, useful for forwarding messages */ - virtual void BroadcastEncap(const std::string& cmd, const parameterlist& params, User* source = NULL, User* omit = NULL) { } + virtual void BroadcastEncap(const std::string& cmd, const CommandBase::Params& params, User* source = NULL, User* omit = NULL) { } /** Send metadata for a channel to other linked servers. * @param chan The channel to send metadata for diff --git a/src/command_parse.cpp b/src/command_parse.cpp index 61f59ac0b..1ead005c4 100644 --- a/src/command_parse.cpp +++ b/src/command_parse.cpp @@ -43,7 +43,7 @@ bool InspIRCd::PassCompare(Extensible* ex, const std::string& data, const std::s return TimingSafeCompare(data, input); } -bool CommandParser::LoopCall(User* user, Command* handler, const std::vector& parameters, unsigned int splithere, int extra, bool usemax) +bool CommandParser::LoopCall(User* user, Command* handler, const CommandBase::Params& parameters, unsigned int splithere, int extra, bool usemax) { if (splithere >= parameters.size()) return false; @@ -82,7 +82,7 @@ bool CommandParser::LoopCall(User* user, Command* handler, const std::vector new_parameters(parameters); + CommandBase::Params new_parameters(parameters); new_parameters[splithere] = item; if (extra >= 0) @@ -93,7 +93,7 @@ bool CommandParser::LoopCall(User* user, Command* handler, const std::vectorHandle(new_parameters, user); + CmdResult result = handler->Handle(user, new_parameters); if (localuser) { // Run the OnPostCommand hook with the last parameter (original line) being empty @@ -118,7 +118,7 @@ Command* CommandParser::GetHandler(const std::string &commandname) // calls a handler function for a command -CmdResult CommandParser::CallHandler(const std::string& commandname, const std::vector& parameters, User* user, Command** cmd) +CmdResult CommandParser::CallHandler(const std::string& commandname, const CommandBase::Params& parameters, User* user, Command** cmd) { CommandMap::iterator n = cmdlist.find(commandname); @@ -152,7 +152,7 @@ CmdResult CommandParser::CallHandler(const std::string& commandname, const std:: { if (cmd) *cmd = n->second; - return n->second->Handle(parameters,user); + return n->second->Handle(user, parameters); } } } @@ -161,7 +161,7 @@ CmdResult CommandParser::CallHandler(const std::string& commandname, const std:: void CommandParser::ProcessCommand(LocalUser *user, std::string &cmd) { - std::vector command_p; + CommandBase::Params command_p; irc::tokenstream tokens(cmd); std::string command, token; tokens.GetToken(command); @@ -236,12 +236,12 @@ void CommandParser::ProcessCommand(LocalUser *user, std::string &cmd) */ // Iterator to the last parameter that will be kept - const std::vector::iterator lastkeep = command_p.begin() + (handler->max_params - 1); + const CommandBase::Params::iterator lastkeep = command_p.begin() + (handler->max_params - 1); // Iterator to the first excess parameter - const std::vector::iterator firstexcess = lastkeep + 1; + const CommandBase::Params::iterator firstexcess = lastkeep + 1; // Append all excess parameter(s) to the last parameter, seperated by spaces - for (std::vector::const_iterator i = firstexcess; i != command_p.end(); ++i) + for (CommandBase::Params::const_iterator i = firstexcess; i != command_p.end(); ++i) { lastkeep->push_back(' '); lastkeep->append(*i); @@ -329,7 +329,7 @@ void CommandParser::ProcessCommand(LocalUser *user, std::string &cmd) /* * WARNING: be careful, the user may be deleted soon */ - CmdResult result = handler->Handle(command_p, user); + CmdResult result = handler->Handle(user, command_p); FOREACH_MOD(OnPostCommand, (handler, command_p, user, result, cmd)); } @@ -363,7 +363,7 @@ void CommandBase::EncodeParameter(std::string& parameter, unsigned int index) { } -RouteDescriptor CommandBase::GetRouting(User* user, const std::vector& parameters) +RouteDescriptor CommandBase::GetRouting(User* user, const Params& parameters) { return ROUTE_LOCALONLY; } diff --git a/src/commands.cpp b/src/commands.cpp index c72a5dc73..c5b34c72f 100644 --- a/src/commands.cpp +++ b/src/commands.cpp @@ -23,29 +23,36 @@ #include "inspircd.h" -CmdResult SplitCommand::Handle(const std::vector& parms, User* u) +CmdResult SplitCommand::Handle(User* user, const Params& parameters) { - if (IS_LOCAL(u)) - return HandleLocal(parms, IS_LOCAL(u)); - if (IS_REMOTE(u)) - return HandleRemote(parms, IS_REMOTE(u)); - if (IS_SERVER(u)) - return HandleServer(parms, IS_SERVER(u)); - ServerInstance->Logs->Log("COMMAND", LOG_DEFAULT, "Unknown user type in command (uuid=%s)!", u->uuid.c_str()); + switch (user->usertype) + { + case USERTYPE_LOCAL: + return HandleLocal(static_cast(user), parameters); + + case USERTYPE_REMOTE: + return HandleRemote(static_cast(user), parameters); + + case USERTYPE_SERVER: + return HandleServer(static_cast(user), parameters); + } + + ServerInstance->Logs->Log("COMMAND", LOG_DEFAULT, "Unknown user type %d in command (uuid=%s)!", + user->usertype, user->uuid.c_str()); return CMD_INVALID; } -CmdResult SplitCommand::HandleLocal(const std::vector&, LocalUser*) +CmdResult SplitCommand::HandleLocal(LocalUser* user, const Params& parameters) { return CMD_INVALID; } -CmdResult SplitCommand::HandleRemote(const std::vector&, RemoteUser*) +CmdResult SplitCommand::HandleRemote(RemoteUser* user, const Params& parameters) { return CMD_INVALID; } -CmdResult SplitCommand::HandleServer(const std::vector&, FakeUser*) +CmdResult SplitCommand::HandleServer(FakeUser* user, const Params& parameters) { return CMD_INVALID; } diff --git a/src/coremods/core_channel/cmd_invite.cpp b/src/coremods/core_channel/cmd_invite.cpp index e9ce03a0c..89a2f6b69 100644 --- a/src/coremods/core_channel/cmd_invite.cpp +++ b/src/coremods/core_channel/cmd_invite.cpp @@ -34,7 +34,7 @@ CommandInvite::CommandInvite(Module* parent, Invite::APIImpl& invapiimpl) /** Handle /INVITE */ -CmdResult CommandInvite::Handle (const std::vector& parameters, User *user) +CmdResult CommandInvite::Handle(User* user, const Params& parameters) { ModResult MOD_RESULT; @@ -173,7 +173,7 @@ CmdResult CommandInvite::Handle (const std::vector& parameters, Use return CMD_SUCCESS; } -RouteDescriptor CommandInvite::GetRouting(User* user, const std::vector& parameters) +RouteDescriptor CommandInvite::GetRouting(User* user, const Params& parameters) { return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); } diff --git a/src/coremods/core_channel/cmd_join.cpp b/src/coremods/core_channel/cmd_join.cpp index a60f1b2c6..2caed9dc6 100644 --- a/src/coremods/core_channel/cmd_join.cpp +++ b/src/coremods/core_channel/cmd_join.cpp @@ -30,7 +30,7 @@ CommandJoin::CommandJoin(Module* parent) /** Handle /JOIN */ -CmdResult CommandJoin::HandleLocal(const std::vector& parameters, LocalUser *user) +CmdResult CommandJoin::HandleLocal(LocalUser* user, const Params& parameters) { if (parameters.size() > 1) { diff --git a/src/coremods/core_channel/cmd_kick.cpp b/src/coremods/core_channel/cmd_kick.cpp index 05e279751..755c6613b 100644 --- a/src/coremods/core_channel/cmd_kick.cpp +++ b/src/coremods/core_channel/cmd_kick.cpp @@ -29,7 +29,7 @@ CommandKick::CommandKick(Module* parent) /** Handle /KICK */ -CmdResult CommandKick::Handle (const std::vector& parameters, User *user) +CmdResult CommandKick::Handle(User* user, const Params& parameters) { Channel* c = ServerInstance->FindChan(parameters[0]); User* u; @@ -127,7 +127,7 @@ CmdResult CommandKick::Handle (const std::vector& parameters, User return CMD_SUCCESS; } -RouteDescriptor CommandKick::GetRouting(User* user, const std::vector& parameters) +RouteDescriptor CommandKick::GetRouting(User* user, const Params& parameters) { return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); } diff --git a/src/coremods/core_channel/cmd_names.cpp b/src/coremods/core_channel/cmd_names.cpp index 92f0810de..28273c903 100644 --- a/src/coremods/core_channel/cmd_names.cpp +++ b/src/coremods/core_channel/cmd_names.cpp @@ -32,7 +32,7 @@ CommandNames::CommandNames(Module* parent) /** Handle /NAMES */ -CmdResult CommandNames::HandleLocal(const std::vector& parameters, LocalUser* user) +CmdResult CommandNames::HandleLocal(LocalUser* user, const Params& parameters) { Channel* c; diff --git a/src/coremods/core_channel/cmd_topic.cpp b/src/coremods/core_channel/cmd_topic.cpp index fe913225e..0417f1a0c 100644 --- a/src/coremods/core_channel/cmd_topic.cpp +++ b/src/coremods/core_channel/cmd_topic.cpp @@ -33,7 +33,7 @@ CommandTopic::CommandTopic(Module* parent) Penalty = 2; } -CmdResult CommandTopic::HandleLocal(const std::vector& parameters, LocalUser* user) +CmdResult CommandTopic::HandleLocal(LocalUser* user, const Params& parameters) { Channel* c = ServerInstance->FindChan(parameters[0]); if (!c) diff --git a/src/coremods/core_channel/core_channel.h b/src/coremods/core_channel/core_channel.h index e59b2cdbd..59a417790 100644 --- a/src/coremods/core_channel/core_channel.h +++ b/src/coremods/core_channel/core_channel.h @@ -70,8 +70,8 @@ class CommandInvite : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /JOIN. @@ -88,7 +88,7 @@ class CommandJoin : public SplitCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE; + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /TOPIC. @@ -109,7 +109,7 @@ class CommandTopic : public SplitCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE; + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /NAMES. @@ -130,7 +130,7 @@ class CommandNames : public SplitCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE; + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE; /** Spool the NAMES list for a given channel to the given user * @param user User to spool the NAMES list to @@ -154,8 +154,8 @@ class CommandKick : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Channel mode +b diff --git a/src/coremods/core_info/cmd_admin.cpp b/src/coremods/core_info/cmd_admin.cpp index f79ebc036..44827555d 100644 --- a/src/coremods/core_info/cmd_admin.cpp +++ b/src/coremods/core_info/cmd_admin.cpp @@ -30,7 +30,7 @@ CommandAdmin::CommandAdmin(Module* parent) /** Handle /ADMIN */ -CmdResult CommandAdmin::Handle (const std::vector& parameters, User *user) +CmdResult CommandAdmin::Handle(User* user, const Params& parameters) { if (parameters.size() > 0 && parameters[0] != ServerInstance->Config->ServerName) return CMD_SUCCESS; diff --git a/src/coremods/core_info/cmd_commands.cpp b/src/coremods/core_info/cmd_commands.cpp index a7a622f5f..0a3efdf23 100644 --- a/src/coremods/core_info/cmd_commands.cpp +++ b/src/coremods/core_info/cmd_commands.cpp @@ -36,7 +36,7 @@ CommandCommands::CommandCommands(Module* parent) /** Handle /COMMANDS */ -CmdResult CommandCommands::Handle (const std::vector&, User *user) +CmdResult CommandCommands::Handle(User* user, const Params& parameters) { const CommandParser::CommandMap& commands = ServerInstance->Parser.GetCommands(); std::vector list; diff --git a/src/coremods/core_info/cmd_info.cpp b/src/coremods/core_info/cmd_info.cpp index e84daeccb..89e92e5a8 100644 --- a/src/coremods/core_info/cmd_info.cpp +++ b/src/coremods/core_info/cmd_info.cpp @@ -77,7 +77,7 @@ static const char* const lines[] = { /** Handle /INFO */ -CmdResult CommandInfo::Handle (const std::vector& parameters, User *user) +CmdResult CommandInfo::Handle(User* user, const Params& parameters) { if (parameters.size() > 0 && parameters[0] != ServerInstance->Config->ServerName) return CMD_SUCCESS; diff --git a/src/coremods/core_info/cmd_modules.cpp b/src/coremods/core_info/cmd_modules.cpp index fa8c2aebb..952b6bca2 100644 --- a/src/coremods/core_info/cmd_modules.cpp +++ b/src/coremods/core_info/cmd_modules.cpp @@ -38,7 +38,7 @@ CommandModules::CommandModules(Module* parent) /** Handle /MODULES */ -CmdResult CommandModules::Handle (const std::vector& parameters, User *user) +CmdResult CommandModules::Handle(User* user, const Params& parameters) { // Don't ask remote servers about their modules unless the local user asking is an oper // 2.0 asks anyway, so let's handle that the same way diff --git a/src/coremods/core_info/cmd_motd.cpp b/src/coremods/core_info/cmd_motd.cpp index cfb083eed..cc770b157 100644 --- a/src/coremods/core_info/cmd_motd.cpp +++ b/src/coremods/core_info/cmd_motd.cpp @@ -29,7 +29,7 @@ CommandMotd::CommandMotd(Module* parent) /** Handle /MOTD */ -CmdResult CommandMotd::Handle (const std::vector& parameters, User *user) +CmdResult CommandMotd::Handle(User* user, const Params& parameters) { if (parameters.size() > 0 && parameters[0] != ServerInstance->Config->ServerName) { diff --git a/src/coremods/core_info/cmd_time.cpp b/src/coremods/core_info/cmd_time.cpp index 6755e5837..73987cf01 100644 --- a/src/coremods/core_info/cmd_time.cpp +++ b/src/coremods/core_info/cmd_time.cpp @@ -27,7 +27,7 @@ CommandTime::CommandTime(Module* parent) syntax = "[]"; } -CmdResult CommandTime::Handle (const std::vector& parameters, User *user) +CmdResult CommandTime::Handle(User* user, const Params& parameters) { if (parameters.size() > 0 && parameters[0] != ServerInstance->Config->ServerName) return CMD_SUCCESS; diff --git a/src/coremods/core_info/cmd_version.cpp b/src/coremods/core_info/cmd_version.cpp index 9ec0108b1..29d96169e 100644 --- a/src/coremods/core_info/cmd_version.cpp +++ b/src/coremods/core_info/cmd_version.cpp @@ -27,7 +27,7 @@ CommandVersion::CommandVersion(Module* parent) syntax = "[]"; } -CmdResult CommandVersion::Handle (const std::vector&, User *user) +CmdResult CommandVersion::Handle(User* user, const Params& parameters) { std::string version = ServerInstance->GetVersionString((user->IsOper())); user->WriteNumeric(RPL_VERSION, version); diff --git a/src/coremods/core_info/core_info.cpp b/src/coremods/core_info/core_info.cpp index bd519076d..f1a17d089 100644 --- a/src/coremods/core_info/core_info.cpp +++ b/src/coremods/core_info/core_info.cpp @@ -20,7 +20,7 @@ #include "inspircd.h" #include "core_info.h" -RouteDescriptor ServerTargetCommand::GetRouting(User* user, const std::vector& parameters) +RouteDescriptor ServerTargetCommand::GetRouting(User* user, const Params& parameters) { // Parameter must be a server name, not a nickname or uuid if ((!parameters.empty()) && (parameters[0].find('.') != std::string::npos)) diff --git a/src/coremods/core_info/core_info.h b/src/coremods/core_info/core_info.h index 53b949ac5..127041b46 100644 --- a/src/coremods/core_info/core_info.h +++ b/src/coremods/core_info/core_info.h @@ -31,7 +31,7 @@ class ServerTargetCommand : public Command { } - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE; + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /ADMIN. @@ -63,7 +63,7 @@ class CommandAdmin : public ServerTargetCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /COMMANDS. @@ -80,7 +80,7 @@ class CommandCommands : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /INFO. @@ -97,7 +97,7 @@ class CommandInfo : public ServerTargetCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /MODULES. @@ -114,7 +114,7 @@ class CommandModules : public ServerTargetCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /MOTD. @@ -131,7 +131,7 @@ class CommandMotd : public ServerTargetCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /TIME. @@ -148,7 +148,7 @@ class CommandTime : public ServerTargetCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /VERSION. @@ -165,5 +165,5 @@ class CommandVersion : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; diff --git a/src/coremods/core_ison.cpp b/src/coremods/core_ison.cpp index 642e36b43..0c98dfe56 100644 --- a/src/coremods/core_ison.cpp +++ b/src/coremods/core_ison.cpp @@ -37,7 +37,7 @@ class CommandIson : public SplitCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE; + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE; }; class IsonReplyBuilder : public Numeric::Builder<' ', true> @@ -58,7 +58,7 @@ class IsonReplyBuilder : public Numeric::Builder<' ', true> /** Handle /ISON */ -CmdResult CommandIson::HandleLocal(const std::vector& parameters, LocalUser* user) +CmdResult CommandIson::HandleLocal(LocalUser* user, const Params& parameters) { IsonReplyBuilder reply(user); diff --git a/src/coremods/core_list.cpp b/src/coremods/core_list.cpp index 600ec47c2..f03fbbe5e 100644 --- a/src/coremods/core_list.cpp +++ b/src/coremods/core_list.cpp @@ -56,13 +56,13 @@ class CommandList : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /LIST */ -CmdResult CommandList::Handle (const std::vector& parameters, User *user) +CmdResult CommandList::Handle(User* user, const Params& parameters) { // C: Searching based on creation time, via the "Cval" modifiers // to search for a channel creation time that is lower or higher than val diff --git a/src/coremods/core_loadmodule.cpp b/src/coremods/core_loadmodule.cpp index 1064da6c8..69c6bbcef 100644 --- a/src/coremods/core_loadmodule.cpp +++ b/src/coremods/core_loadmodule.cpp @@ -33,12 +33,12 @@ class CommandLoadmodule : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /LOADMODULE */ -CmdResult CommandLoadmodule::Handle (const std::vector& parameters, User *user) +CmdResult CommandLoadmodule::Handle(User* user, const Params& parameters) { if (ServerInstance->Modules->Load(parameters[0])) { @@ -72,10 +72,10 @@ class CommandUnloadmodule : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; -CmdResult CommandUnloadmodule::Handle(const std::vector& parameters, User* user) +CmdResult CommandUnloadmodule::Handle(User* user, const Params& parameters) { if (!ServerInstance->Config->ConfValue("security")->getBool("allowcoreunload") && InspIRCd::Match(parameters[0], "core_*.so", ascii_case_insensitive_map)) diff --git a/src/coremods/core_lusers.cpp b/src/coremods/core_lusers.cpp index a995e59e7..39a5dac7f 100644 --- a/src/coremods/core_lusers.cpp +++ b/src/coremods/core_lusers.cpp @@ -61,12 +61,12 @@ class CommandLusers : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /LUSERS */ -CmdResult CommandLusers::Handle (const std::vector&, User *user) +CmdResult CommandLusers::Handle(User* user, const Params& parameters) { unsigned int n_users = ServerInstance->Users->RegisteredUserCount(); ProtocolInterface::ServerList serverlist; diff --git a/src/coremods/core_oper/cmd_die.cpp b/src/coremods/core_oper/cmd_die.cpp index 5fe643520..d10732952 100644 --- a/src/coremods/core_oper/cmd_die.cpp +++ b/src/coremods/core_oper/cmd_die.cpp @@ -58,7 +58,7 @@ void DieRestart::SendError(const std::string& message) /** Handle /DIE */ -CmdResult CommandDie::Handle (const std::vector& parameters, User *user) +CmdResult CommandDie::Handle(User* user, const Params& parameters) { if (DieRestart::CheckPass(user, parameters[0], "diepass")) { diff --git a/src/coremods/core_oper/cmd_kill.cpp b/src/coremods/core_oper/cmd_kill.cpp index 446b50c0b..fd6729f53 100644 --- a/src/coremods/core_oper/cmd_kill.cpp +++ b/src/coremods/core_oper/cmd_kill.cpp @@ -33,7 +33,7 @@ CommandKill::CommandKill(Module* parent) /** Handle /KILL */ -CmdResult CommandKill::Handle (const std::vector& parameters, User *user) +CmdResult CommandKill::Handle(User* user, const Params& parameters) { /* Allow comma seperated lists of users for /KILL (thanks w00t) */ if (CommandParser::LoopCall(user, this, parameters, 0)) @@ -118,7 +118,7 @@ CmdResult CommandKill::Handle (const std::vector& parameters, User return CMD_SUCCESS; } -RouteDescriptor CommandKill::GetRouting(User* user, const std::vector& parameters) +RouteDescriptor CommandKill::GetRouting(User* user, const Params& parameters) { // FindNick() doesn't work here because we quit the target user in Handle() which // removes it from the nicklist, so we check lastuuid: if it's empty then this KILL diff --git a/src/coremods/core_oper/cmd_oper.cpp b/src/coremods/core_oper/cmd_oper.cpp index e65ed9752..8c3c86adc 100644 --- a/src/coremods/core_oper/cmd_oper.cpp +++ b/src/coremods/core_oper/cmd_oper.cpp @@ -28,7 +28,7 @@ CommandOper::CommandOper(Module* parent) syntax = " "; } -CmdResult CommandOper::HandleLocal(const std::vector& parameters, LocalUser *user) +CmdResult CommandOper::HandleLocal(LocalUser* user, const Params& parameters) { bool match_login = false; bool match_pass = false; diff --git a/src/coremods/core_oper/cmd_rehash.cpp b/src/coremods/core_oper/cmd_rehash.cpp index 5ce38eb2c..e234e54b4 100644 --- a/src/coremods/core_oper/cmd_rehash.cpp +++ b/src/coremods/core_oper/cmd_rehash.cpp @@ -30,7 +30,7 @@ CommandRehash::CommandRehash(Module* parent) syntax = "[]"; } -CmdResult CommandRehash::Handle (const std::vector& parameters, User *user) +CmdResult CommandRehash::Handle(User* user, const Params& parameters) { std::string param = parameters.size() ? parameters[0] : ""; diff --git a/src/coremods/core_oper/cmd_restart.cpp b/src/coremods/core_oper/cmd_restart.cpp index 6c19329c3..936348f95 100644 --- a/src/coremods/core_oper/cmd_restart.cpp +++ b/src/coremods/core_oper/cmd_restart.cpp @@ -28,7 +28,7 @@ CommandRestart::CommandRestart(Module* parent) syntax = ""; } -CmdResult CommandRestart::Handle (const std::vector& parameters, User *user) +CmdResult CommandRestart::Handle(User* user, const Params& parameters) { ServerInstance->Logs->Log(MODNAME, LOG_DEFAULT, "Restart: %s", user->nick.c_str()); if (DieRestart::CheckPass(user, parameters[0], "restartpass")) diff --git a/src/coremods/core_oper/core_oper.h b/src/coremods/core_oper/core_oper.h index be615239e..b069c34b2 100644 --- a/src/coremods/core_oper/core_oper.h +++ b/src/coremods/core_oper/core_oper.h @@ -51,7 +51,7 @@ class CommandDie : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /KILL. @@ -71,8 +71,8 @@ class CommandKill : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE; void EncodeParameter(std::string& param, unsigned int index) CXX11_OVERRIDE; }; @@ -91,7 +91,7 @@ class CommandOper : public SplitCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE; + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /REHASH. @@ -108,7 +108,7 @@ class CommandRehash : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /RESTART @@ -125,5 +125,5 @@ class CommandRestart : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; diff --git a/src/coremods/core_privmsg.cpp b/src/coremods/core_privmsg.cpp index 29756a4c2..6078f5297 100644 --- a/src/coremods/core_privmsg.cpp +++ b/src/coremods/core_privmsg.cpp @@ -52,9 +52,9 @@ class MessageCommandBase : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult HandleMessage(const std::vector& parameters, User* user, MessageType mt); + CmdResult HandleMessage(User* user, const CommandBase::Params& parameters, MessageType mt); - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { if (IS_LOCAL(user)) // This is handled by the OnUserPostMessage hook to split the LoopCall pieces @@ -75,7 +75,7 @@ void MessageCommandBase::SendAll(User* user, const std::string& msg, MessageType } } -CmdResult MessageCommandBase::HandleMessage(const std::vector& parameters, User* user, MessageType mt) +CmdResult MessageCommandBase::HandleMessage(User* user, const CommandBase::Params& parameters, MessageType mt) { User *dest; Channel *chan; @@ -271,9 +271,9 @@ class CommandMessage : public MessageCommandBase { } - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { - return HandleMessage(parameters, user, MT); + return HandleMessage(user, parameters, MT); } }; diff --git a/src/coremods/core_reloadmodule.cpp b/src/coremods/core_reloadmodule.cpp index 910144221..23be33af8 100644 --- a/src/coremods/core_reloadmodule.cpp +++ b/src/coremods/core_reloadmodule.cpp @@ -45,7 +45,7 @@ class CommandReloadmodule : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; namespace ReloadModule @@ -608,7 +608,7 @@ class ReloadAction : public ActionBase } }; -CmdResult CommandReloadmodule::Handle (const std::vector& parameters, User *user) +CmdResult CommandReloadmodule::Handle(User* user, const Params& parameters) { Module* m = ServerInstance->Modules->Find(parameters[0]); if (m == creator) diff --git a/src/coremods/core_stats.cpp b/src/coremods/core_stats.cpp index 5642cd52e..bb20dd761 100644 --- a/src/coremods/core_stats.cpp +++ b/src/coremods/core_stats.cpp @@ -51,8 +51,8 @@ class CommandStats : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { if ((parameters.size() > 1) && (parameters[1].find('.') != std::string::npos)) return ROUTE_UNICAST(parameters[1]); @@ -375,7 +375,7 @@ void CommandStats::DoStats(Stats::Context& stats) return; } -CmdResult CommandStats::Handle (const std::vector& parameters, User *user) +CmdResult CommandStats::Handle(User* user, const Params& parameters) { if (parameters.size() > 1 && parameters[1] != ServerInstance->Config->ServerName) { diff --git a/src/coremods/core_stub.cpp b/src/coremods/core_stub.cpp index 6adc02f32..7ed3865e3 100644 --- a/src/coremods/core_stub.cpp +++ b/src/coremods/core_stub.cpp @@ -41,7 +41,7 @@ class CommandConnect : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { /* * This is handled by the server linking module, if necessary. Do not remove this stub. @@ -68,7 +68,7 @@ class CommandLinks : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { user->WriteNumeric(RPL_LINKS, ServerInstance->Config->ServerName, ServerInstance->Config->ServerName, InspIRCd::Format("0 %s", ServerInstance->Config->ServerDesc.c_str())); user->WriteNumeric(RPL_ENDOFLINKS, '*', "End of /LINKS list."); @@ -94,7 +94,7 @@ class CommandServer : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { if (user->registered == REG_ALL) { @@ -127,7 +127,7 @@ class CommandSquit : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { user->WriteNotice("Look into loading a linking module (like m_spanningtree) if you want this to do anything useful."); return CMD_FAILURE; diff --git a/src/coremods/core_user/cmd_away.cpp b/src/coremods/core_user/cmd_away.cpp index 32d4a9d84..1b7baceba 100644 --- a/src/coremods/core_user/cmd_away.cpp +++ b/src/coremods/core_user/cmd_away.cpp @@ -29,7 +29,7 @@ CommandAway::CommandAway(Module* parent) /** Handle /AWAY */ -CmdResult CommandAway::Handle (const std::vector& parameters, User *user) +CmdResult CommandAway::Handle(User* user, const Params& parameters) { ModResult MOD_RESULT; @@ -59,7 +59,7 @@ CmdResult CommandAway::Handle (const std::vector& parameters, User return CMD_SUCCESS; } -RouteDescriptor CommandAway::GetRouting(User* user, const std::vector& parameters) +RouteDescriptor CommandAway::GetRouting(User* user, const Params& parameters) { return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); } diff --git a/src/coremods/core_user/cmd_mode.cpp b/src/coremods/core_user/cmd_mode.cpp index ec75d6191..a3ebda16d 100644 --- a/src/coremods/core_user/cmd_mode.cpp +++ b/src/coremods/core_user/cmd_mode.cpp @@ -30,7 +30,7 @@ CommandMode::CommandMode(Module* parent) memset(&sent, 0, sizeof(sent)); } -CmdResult CommandMode::Handle(const std::vector& parameters, User* user) +CmdResult CommandMode::Handle(User* user, const Params& parameters) { const std::string& target = parameters[0]; Channel* targetchannel = ServerInstance->FindChan(target); @@ -103,7 +103,7 @@ CmdResult CommandMode::Handle(const std::vector& parameters, User* return CMD_SUCCESS; } -RouteDescriptor CommandMode::GetRouting(User* user, const std::vector& parameters) +RouteDescriptor CommandMode::GetRouting(User* user, const Params& parameters) { return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); } diff --git a/src/coremods/core_user/cmd_nick.cpp b/src/coremods/core_user/cmd_nick.cpp index 80bfbe674..670931f7a 100644 --- a/src/coremods/core_user/cmd_nick.cpp +++ b/src/coremods/core_user/cmd_nick.cpp @@ -36,7 +36,7 @@ CommandNick::CommandNick(Module* parent) * for the client introduction code in here, youre in the wrong place. * You need to look in the spanningtree module for this! */ -CmdResult CommandNick::HandleLocal(const std::vector& parameters, LocalUser* user) +CmdResult CommandNick::HandleLocal(LocalUser* user, const Params& parameters) { std::string oldnick = user->nick; std::string newnick = parameters[0]; diff --git a/src/coremods/core_user/cmd_part.cpp b/src/coremods/core_user/cmd_part.cpp index 261d75a70..2bc431ab3 100644 --- a/src/coremods/core_user/cmd_part.cpp +++ b/src/coremods/core_user/cmd_part.cpp @@ -28,7 +28,7 @@ CommandPart::CommandPart(Module* parent) syntax = "{,} []"; } -CmdResult CommandPart::Handle (const std::vector& parameters, User *user) +CmdResult CommandPart::Handle(User* user, const Params& parameters) { std::string reason; if (parameters.size() > 1) @@ -59,7 +59,7 @@ CmdResult CommandPart::Handle (const std::vector& parameters, User return CMD_SUCCESS; } -RouteDescriptor CommandPart::GetRouting(User* user, const std::vector& parameters) +RouteDescriptor CommandPart::GetRouting(User* user, const Params& parameters) { return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); } diff --git a/src/coremods/core_user/cmd_quit.cpp b/src/coremods/core_user/cmd_quit.cpp index f9a4e1f70..d919a5761 100644 --- a/src/coremods/core_user/cmd_quit.cpp +++ b/src/coremods/core_user/cmd_quit.cpp @@ -29,7 +29,7 @@ CommandQuit::CommandQuit(Module* parent) syntax = "[]"; } -CmdResult CommandQuit::Handle (const std::vector& parameters, User *user) +CmdResult CommandQuit::Handle(User* user, const Params& parameters) { std::string quitmsg; if (parameters.empty()) @@ -45,7 +45,7 @@ CmdResult CommandQuit::Handle (const std::vector& parameters, User return CMD_SUCCESS; } -RouteDescriptor CommandQuit::GetRouting(User* user, const std::vector& parameters) +RouteDescriptor CommandQuit::GetRouting(User* user, const Params& parameters) { return (IS_LOCAL(user) ? ROUTE_LOCALONLY : ROUTE_BROADCAST); } diff --git a/src/coremods/core_user/cmd_user.cpp b/src/coremods/core_user/cmd_user.cpp index 452146adc..f49b1339c 100644 --- a/src/coremods/core_user/cmd_user.cpp +++ b/src/coremods/core_user/cmd_user.cpp @@ -35,7 +35,7 @@ CommandUser::CommandUser(Module* parent) syntax = " "; } -CmdResult CommandUser::HandleLocal(const std::vector& parameters, LocalUser *user) +CmdResult CommandUser::HandleLocal(LocalUser* user, const Params& parameters) { /* A user may only send the USER command once */ if (!(user->registered & REG_USER)) diff --git a/src/coremods/core_user/core_user.cpp b/src/coremods/core_user/core_user.cpp index 8504de8e0..6e4e547c1 100644 --- a/src/coremods/core_user/core_user.cpp +++ b/src/coremods/core_user/core_user.cpp @@ -40,7 +40,7 @@ class CommandPass : public SplitCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE { // Check to make sure they haven't registered -- Fix by FCS if (user->registered == REG_ALL) @@ -73,7 +73,7 @@ class CommandPing : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { user->WriteServ("PONG %s :%s", ServerInstance->Config->ServerName.c_str(), parameters[0].c_str()); return CMD_SUCCESS; @@ -99,7 +99,7 @@ class CommandPong : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { // set the user as alive so they survive to next ping LocalUser* localuser = IS_LOCAL(user); diff --git a/src/coremods/core_user/core_user.h b/src/coremods/core_user/core_user.h index befb07ef5..f29d2e448 100644 --- a/src/coremods/core_user/core_user.h +++ b/src/coremods/core_user/core_user.h @@ -62,8 +62,8 @@ class CommandAway : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE; }; class CommandMode : public Command @@ -95,9 +95,9 @@ class CommandMode : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE; + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /NICK. @@ -114,7 +114,7 @@ class CommandNick : public SplitCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE; + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /PART. @@ -133,8 +133,8 @@ class CommandPart : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /QUIT. @@ -156,9 +156,9 @@ class CommandQuit : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE; + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /USER. @@ -175,7 +175,7 @@ class CommandUser : public SplitCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE; + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE; /** Run the OnUserRegister hook if the user has sent both NICK and USER. Called after an unregistered user * successfully executes the USER or the NICK command. diff --git a/src/coremods/core_userhost.cpp b/src/coremods/core_userhost.cpp index 2ed19f4d7..294f714b4 100644 --- a/src/coremods/core_userhost.cpp +++ b/src/coremods/core_userhost.cpp @@ -40,10 +40,10 @@ class CommandUserhost : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; -CmdResult CommandUserhost::Handle (const std::vector& parameters, User *user) +CmdResult CommandUserhost::Handle(User* user, const Params& parameters) { const bool has_privs = user->HasPrivPermission("users/auspex"); diff --git a/src/coremods/core_wallops.cpp b/src/coremods/core_wallops.cpp index d45ede846..856fcea74 100644 --- a/src/coremods/core_wallops.cpp +++ b/src/coremods/core_wallops.cpp @@ -42,15 +42,15 @@ class CommandWallops : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { return ROUTE_BROADCAST; } }; -CmdResult CommandWallops::Handle (const std::vector& parameters, User *user) +CmdResult CommandWallops::Handle(User* user, const Params& parameters) { std::string wallop("WALLOPS :"); wallop.append(parameters[0]); diff --git a/src/coremods/core_who.cpp b/src/coremods/core_who.cpp index 305733e03..8bba1f860 100644 --- a/src/coremods/core_who.cpp +++ b/src/coremods/core_who.cpp @@ -56,7 +56,7 @@ struct WhoData // A user specified label for the WHOX response. std::string whox_querytype; - WhoData(const std::vector& parameters) + WhoData(const CommandBase::Params& parameters) : whox(false) { // Find the matchtext and swap the 0 for a * so we can use InspIRCd::Match on it. @@ -168,7 +168,7 @@ class CommandWho : public SplitCommand /** Sends a WHO reply to a user. */ void SendWhoLine(LocalUser* user, const std::vector& parameters, Membership* memb, User* u, WhoData& data); - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE; + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE; }; template<> User* CommandWho::GetUser(UserManager::OperList::const_iterator& t) { return *t; } @@ -539,7 +539,7 @@ void CommandWho::SendWhoLine(LocalUser* source, const std::vector& data.results.push_back(wholine); } -CmdResult CommandWho::HandleLocal(const std::vector& parameters, LocalUser* user) +CmdResult CommandWho::HandleLocal(LocalUser* user, const Params& parameters) { WhoData data(parameters); diff --git a/src/coremods/core_whois.cpp b/src/coremods/core_whois.cpp index 4ec592781..8f09396b2 100644 --- a/src/coremods/core_whois.cpp +++ b/src/coremods/core_whois.cpp @@ -109,8 +109,8 @@ class CommandWhois : public SplitCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE; - CmdResult HandleRemote(const std::vector& parameters, RemoteUser* target) CXX11_OVERRIDE; + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE; + CmdResult HandleRemote(RemoteUser* target, const Params& parameters) CXX11_OVERRIDE; }; class WhoisNumericSink @@ -267,7 +267,7 @@ void CommandWhois::DoWhois(LocalUser* user, User* dest, time_t signon, unsigned whois.SendLine(RPL_ENDOFWHOIS, "End of /WHOIS list."); } -CmdResult CommandWhois::HandleRemote(const std::vector& parameters, RemoteUser* target) +CmdResult CommandWhois::HandleRemote(RemoteUser* target, const Params& parameters) { if (parameters.size() < 2) return CMD_FAILURE; @@ -287,7 +287,7 @@ CmdResult CommandWhois::HandleRemote(const std::vector& parameters, return CMD_SUCCESS; } -CmdResult CommandWhois::HandleLocal(const std::vector& parameters, LocalUser* user) +CmdResult CommandWhois::HandleLocal(LocalUser* user, const Params& parameters) { User *dest; unsigned int userindex = 0; diff --git a/src/coremods/core_whowas.cpp b/src/coremods/core_whowas.cpp index 188b0e4d5..6bcf6448b 100644 --- a/src/coremods/core_whowas.cpp +++ b/src/coremods/core_whowas.cpp @@ -41,7 +41,7 @@ CommandWhowas::CommandWhowas( Module* parent) Penalty = 2; } -CmdResult CommandWhowas::Handle (const std::vector& parameters, User* user) +CmdResult CommandWhowas::Handle(User* user, const Params& parameters) { /* if whowas disabled in config */ if (!manager.IsEnabled()) diff --git a/src/coremods/core_xline/cmd_eline.cpp b/src/coremods/core_xline/cmd_eline.cpp index 26b49894b..0cb52298c 100644 --- a/src/coremods/core_xline/cmd_eline.cpp +++ b/src/coremods/core_xline/cmd_eline.cpp @@ -31,7 +31,7 @@ CommandEline::CommandEline(Module* parent) /** Handle /ELINE */ -CmdResult CommandEline::Handle (const std::vector& parameters, User *user) +CmdResult CommandEline::Handle(User* user, const Params& parameters) { std::string target = parameters[0]; diff --git a/src/coremods/core_xline/cmd_gline.cpp b/src/coremods/core_xline/cmd_gline.cpp index 49932ba9d..79b3ce21f 100644 --- a/src/coremods/core_xline/cmd_gline.cpp +++ b/src/coremods/core_xline/cmd_gline.cpp @@ -31,7 +31,7 @@ CommandGline::CommandGline(Module* parent) /** Handle /GLINE */ -CmdResult CommandGline::Handle (const std::vector& parameters, User *user) +CmdResult CommandGline::Handle(User* user, const Params& parameters) { std::string target = parameters[0]; diff --git a/src/coremods/core_xline/cmd_kline.cpp b/src/coremods/core_xline/cmd_kline.cpp index db8862d37..0f04224d6 100644 --- a/src/coremods/core_xline/cmd_kline.cpp +++ b/src/coremods/core_xline/cmd_kline.cpp @@ -31,7 +31,7 @@ CommandKline::CommandKline(Module* parent) /** Handle /KLINE */ -CmdResult CommandKline::Handle (const std::vector& parameters, User *user) +CmdResult CommandKline::Handle(User* user, const Params& parameters) { std::string target = parameters[0]; diff --git a/src/coremods/core_xline/cmd_qline.cpp b/src/coremods/core_xline/cmd_qline.cpp index 6dc0da9ba..b75973861 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) { diff --git a/src/coremods/core_xline/cmd_zline.cpp b/src/coremods/core_xline/cmd_zline.cpp index af9d54a5b..350f3270c 100644 --- a/src/coremods/core_xline/cmd_zline.cpp +++ b/src/coremods/core_xline/cmd_zline.cpp @@ -30,7 +30,7 @@ CommandZline::CommandZline(Module* parent) syntax = " [ :]"; } -CmdResult CommandZline::Handle (const std::vector& parameters, User *user) +CmdResult CommandZline::Handle(User* user, const Params& parameters) { std::string target = parameters[0]; diff --git a/src/coremods/core_xline/core_xline.h b/src/coremods/core_xline/core_xline.h index 11756c06b..1e0bc74cc 100644 --- a/src/coremods/core_xline/core_xline.h +++ b/src/coremods/core_xline/core_xline.h @@ -79,7 +79,7 @@ class CommandEline : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /GLINE. @@ -96,7 +96,7 @@ class CommandGline : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /KLINE. @@ -113,7 +113,7 @@ class CommandKline : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /QLINE. @@ -136,7 +136,7 @@ class CommandQline : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /ZLINE. @@ -159,5 +159,5 @@ class CommandZline : public Command * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; diff --git a/src/modules.cpp b/src/modules.cpp index ab10d6ae1..334111e6d 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -94,8 +94,8 @@ ModResult Module::OnKill(User*, User*, const std::string&) { DetachEvent(I_OnKil void Module::OnLoadModule(Module*) { DetachEvent(I_OnLoadModule); } void Module::OnUnloadModule(Module*) { DetachEvent(I_OnUnloadModule); } void Module::OnBackgroundTimer(time_t) { DetachEvent(I_OnBackgroundTimer); } -ModResult Module::OnPreCommand(std::string&, std::vector&, LocalUser*, bool, const std::string&) { DetachEvent(I_OnPreCommand); return MOD_RES_PASSTHRU; } -void Module::OnPostCommand(Command*, const std::vector&, LocalUser*, CmdResult, const std::string&) { DetachEvent(I_OnPostCommand); } +ModResult Module::OnPreCommand(std::string&, CommandBase::Params&, LocalUser*, bool, const std::string&) { DetachEvent(I_OnPreCommand); return MOD_RES_PASSTHRU; } +void Module::OnPostCommand(Command*, const CommandBase::Params&, LocalUser*, CmdResult, const std::string&) { DetachEvent(I_OnPostCommand); } void Module::OnUserInit(LocalUser*) { DetachEvent(I_OnUserInit); } ModResult Module::OnCheckReady(LocalUser*) { DetachEvent(I_OnCheckReady); return MOD_RES_PASSTHRU; } ModResult Module::OnUserRegister(LocalUser*) { DetachEvent(I_OnUserRegister); return MOD_RES_PASSTHRU; } diff --git a/src/modules/m_abbreviation.cpp b/src/modules/m_abbreviation.cpp index c81caf142..22baa916b 100644 --- a/src/modules/m_abbreviation.cpp +++ b/src/modules/m_abbreviation.cpp @@ -38,7 +38,7 @@ class ModuleAbbreviation : public Module return Version("Provides the ability to abbreviate commands a-la BBC BASIC keywords.",VF_VENDOR); } - ModResult OnPreCommand(std::string &command, std::vector ¶meters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE + ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE { /* Command is already validated, has a length of 0, or last character is not a . */ if (validated || command.empty() || *command.rbegin() != '.') diff --git a/src/modules/m_alias.cpp b/src/modules/m_alias.cpp index 01338e8b4..a8e39cb47 100644 --- a/src/modules/m_alias.cpp +++ b/src/modules/m_alias.cpp @@ -129,7 +129,7 @@ class ModuleAlias : public Module return word; } - ModResult OnPreCommand(std::string &command, std::vector ¶meters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE + ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE { /* If theyre not registered yet, we dont want * to know. @@ -328,7 +328,7 @@ class ModuleAlias : public Module } irc::tokenstream ss(result); - std::vector pars; + CommandBase::Params pars; std::string command, token; ss.GetToken(command); diff --git a/src/modules/m_alltime.cpp b/src/modules/m_alltime.cpp index de3e702ac..486ad1c18 100644 --- a/src/modules/m_alltime.cpp +++ b/src/modules/m_alltime.cpp @@ -29,7 +29,7 @@ class CommandAlltime : public Command flags_needed = 'o'; } - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { const std::string fmtdate = InspIRCd::TimeString(ServerInstance->Time(), "%Y-%m-%d %H:%M:%S", true); @@ -41,7 +41,7 @@ class CommandAlltime : public Command return CMD_SUCCESS; } - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { return ROUTE_OPT_BCAST; } diff --git a/src/modules/m_blockamsg.cpp b/src/modules/m_blockamsg.cpp index 097041896..3c8fcd1b5 100644 --- a/src/modules/m_blockamsg.cpp +++ b/src/modules/m_blockamsg.cpp @@ -81,7 +81,7 @@ class ModuleBlockAmsg : public Module action = IBLOCK_KILLOPERS; } - ModResult OnPreCommand(std::string &command, std::vector ¶meters, LocalUser *user, bool validated, const std::string &original_line) CXX11_OVERRIDE + ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE { // Don't do anything with unregistered users if (user->registered != REG_ALL) diff --git a/src/modules/m_callerid.cpp b/src/modules/m_callerid.cpp index ecccbe91b..b0ec3b8ff 100644 --- a/src/modules/m_callerid.cpp +++ b/src/modules/m_callerid.cpp @@ -201,7 +201,7 @@ public: * /accept nick1,nick2,nick3,* * to add 3 nicks and then show your list */ - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { if (CommandParser::LoopCall(user, this, parameters, 0)) return CMD_SUCCESS; @@ -234,7 +234,7 @@ public: return (RemoveAccept(user, action.first) ? CMD_SUCCESS : CMD_FAILURE); } - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { // There is a list in parameters[0] in two cases: // Either when the source is remote, this happens because 2.0 servers send comma seperated uuid lists, diff --git a/src/modules/m_cap.cpp b/src/modules/m_cap.cpp index 1465f8a38..80e70d3e5 100644 --- a/src/modules/m_cap.cpp +++ b/src/modules/m_cap.cpp @@ -365,7 +365,7 @@ class CommandCap : public SplitCommand works_before_reg = true; } - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE { if (user->registered != REG_ALL) holdext.set(user, 1); diff --git a/src/modules/m_cban.cpp b/src/modules/m_cban.cpp index 7235a8bef..5f98def8f 100644 --- a/src/modules/m_cban.cpp +++ b/src/modules/m_cban.cpp @@ -85,7 +85,7 @@ class CommandCBan : public Command flags_needed = 'o'; this->syntax = " [ :]"; } - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { /* syntax: CBAN #channel time :reason goes here */ /* 'time' is a human-readable timestring, like 2d3h2s. */ @@ -132,7 +132,7 @@ class CommandCBan : public Command return CMD_SUCCESS; } - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { if (IS_LOCAL(user)) return ROUTE_LOCALONLY; // spanningtree will send ADDLINE diff --git a/src/modules/m_cgiirc.cpp b/src/modules/m_cgiirc.cpp index 7d4f671b9..ecb07f96e 100644 --- a/src/modules/m_cgiirc.cpp +++ b/src/modules/m_cgiirc.cpp @@ -110,7 +110,7 @@ class CommandWebIRC : public SplitCommand this->syntax = "password gateway hostname ip"; } - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE { if (user->registered == REG_ALL) return CMD_FAILURE; diff --git a/src/modules/m_check.cpp b/src/modules/m_check.cpp index f2da47f1b..cbb32db48 100644 --- a/src/modules/m_check.cpp +++ b/src/modules/m_check.cpp @@ -140,7 +140,7 @@ class CommandCheck : public Command return ret; } - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { if (parameters.size() > 1 && parameters[1] != ServerInstance->Config->ServerName) return CMD_SUCCESS; @@ -301,7 +301,7 @@ class CommandCheck : public Command return CMD_SUCCESS; } - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { if ((parameters.size() > 1) && (parameters[1].find('.') != std::string::npos)) return ROUTE_OPT_UCAST(parameters[1]); diff --git a/src/modules/m_chghost.cpp b/src/modules/m_chghost.cpp index 10e447b45..6e498a8be 100644 --- a/src/modules/m_chghost.cpp +++ b/src/modules/m_chghost.cpp @@ -37,7 +37,7 @@ class CommandChghost : public Command TRANSLATE2(TR_NICK, TR_TEXT); } - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { if (parameters[1].length() > ServerInstance->Config->Limits.MaxHost) { @@ -75,7 +75,7 @@ class CommandChghost : public Command return CMD_SUCCESS; } - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { return ROUTE_OPT_UCAST(parameters[0]); } diff --git a/src/modules/m_chgident.cpp b/src/modules/m_chgident.cpp index f09bef0ab..9a2d3b2ea 100644 --- a/src/modules/m_chgident.cpp +++ b/src/modules/m_chgident.cpp @@ -35,7 +35,7 @@ class CommandChgident : public Command TRANSLATE2(TR_NICK, TR_TEXT); } - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { User* dest = ServerInstance->FindNick(parameters[0]); @@ -68,7 +68,7 @@ class CommandChgident : public Command return CMD_SUCCESS; } - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { return ROUTE_OPT_UCAST(parameters[0]); } diff --git a/src/modules/m_chgname.cpp b/src/modules/m_chgname.cpp index b6c59d36f..fa35732b8 100644 --- a/src/modules/m_chgname.cpp +++ b/src/modules/m_chgname.cpp @@ -33,7 +33,7 @@ class CommandChgname : public Command TRANSLATE2(TR_NICK, TR_TEXT); } - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { User* dest = ServerInstance->FindNick(parameters[0]); @@ -64,7 +64,7 @@ class CommandChgname : public Command return CMD_SUCCESS; } - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE { return ROUTE_OPT_UCAST(parameters[0]); } diff --git a/src/modules/m_clearchan.cpp b/src/modules/m_clearchan.cpp index 0c6d52265..016d28737 100644 --- a/src/modules/m_clearchan.cpp +++ b/src/modules/m_clearchan.cpp @@ -35,7 +35,7 @@ class CommandClearChan : public Command force_manual_route = true; } - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { Channel* chan = activechan = ServerInstance->FindChan(parameters[0]); if (!chan) @@ -79,7 +79,7 @@ class CommandClearChan : public Command // The idea is that by the time our QUITs reach the next hop, it has already removed all their // clients from the channel, meaning victims on other servers won't see the victims on this // server quitting. - std::vector eparams; + CommandBase::Params eparams; eparams.push_back(chan->name); eparams.push_back(method); eparams.push_back(":"); diff --git a/src/modules/m_cloaking.cpp b/src/modules/m_cloaking.cpp index ad4b958c5..c277759d1 100644 --- a/src/modules/m_cloaking.cpp +++ b/src/modules/m_cloaking.cpp @@ -137,7 +137,7 @@ class CommandCloak : public Command syntax = ""; } - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; }; class ModuleCloaking : public Module @@ -403,7 +403,7 @@ class ModuleCloaking : public Module } }; -CmdResult CommandCloak::Handle(const std::vector ¶meters, User *user) +CmdResult CommandCloak::Handle(User* user, const Params& parameters) { ModuleCloaking* mod = (ModuleCloaking*)(Module*)creator; irc::sockets::sockaddrs sa; diff --git a/src/modules/m_clones.cpp b/src/modules/m_clones.cpp index 7cce32188..68c9639c2 100644 --- a/src/modules/m_clones.cpp +++ b/src/modules/m_clones.cpp @@ -31,7 +31,7 @@ class CommandClones : public Command flags_needed = 'o'; syntax = ""; } - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { std::string clonesstr = "CLONES "; diff --git a/src/modules/m_close.cpp b/src/modules/m_close.cpp index 8ef93830d..b0b45b4b6 100644 --- a/src/modules/m_close.cpp +++ b/src/modules/m_close.cpp @@ -31,7 +31,7 @@ class CommandClose : public Command flags_needed = 'o'; } - CmdResult Handle(const std::vector& parameters, User* src) CXX11_OVERRIDE + CmdResult Handle(User* src, const Params& parameters) CXX11_OVERRIDE { std::map closed; diff --git a/src/modules/m_conn_umodes.cpp b/src/modules/m_conn_umodes.cpp index c439f3bfe..1f2fe7455 100644 --- a/src/modules/m_conn_umodes.cpp +++ b/src/modules/m_conn_umodes.cpp @@ -49,7 +49,7 @@ class ModuleModesOnConnect : public Module std::string buf; irc::spacesepstream ss(ThisModes); - std::vector modes; + CommandBase::Params modes; modes.push_back(user->nick); // split ThisUserModes into modes and mode params diff --git a/src/modules/m_conn_waitpong.cpp b/src/modules/m_conn_waitpong.cpp index 87b6b51f2..f9e9262a7 100644 --- a/src/modules/m_conn_waitpong.cpp +++ b/src/modules/m_conn_waitpong.cpp @@ -56,7 +56,7 @@ class ModuleWaitPong : public Module return MOD_RES_PASSTHRU; } - ModResult OnPreCommand(std::string &command, std::vector ¶meters, LocalUser* user, bool validated, const std::string &original_line) CXX11_OVERRIDE + ModResult OnPreCommand(std::string& command, CommandBase::Params& parameters, LocalUser* user, bool validated, const std::string& original_line) CXX11_OVERRIDE { if (command == "PONG") { diff --git a/src/modules/m_customtitle.cpp b/src/modules/m_customtitle.cpp index ea07ba7d0..c16b1eda2 100644 --- a/src/modules/m_customtitle.cpp +++ b/src/modules/m_customtitle.cpp @@ -40,7 +40,7 @@ class CommandTitle : public Command syntax = " "; } - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { const std::string userHost = user->ident + "@" + user->GetRealHost(); const std::string userIP = user->ident + "@" + user->GetIPString(); diff --git a/src/modules/m_cycle.cpp b/src/modules/m_cycle.cpp index 1028fa977..3ead72a45 100644 --- a/src/modules/m_cycle.cpp +++ b/src/modules/m_cycle.cpp @@ -31,7 +31,7 @@ class CommandCycle : public SplitCommand Penalty = 3; syntax = " :[reason]"; } - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE { Channel* channel = ServerInstance->FindChan(parameters[0]); std::string reason = "Cycling"; diff --git a/src/modules/m_dccallow.cpp b/src/modules/m_dccallow.cpp index 647f69e7a..04f85739a 100644 --- a/src/modules/m_dccallow.cpp +++ b/src/modules/m_dccallow.cpp @@ -114,7 +114,7 @@ class CommandDccallow : public Command /* XXX we need to fix this so it can work with translation stuff (i.e. move +- into a seperate param */ } - CmdResult Handle(const std::vector& parameters, User* user) CXX11_OVERRIDE + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE { /* syntax: DCCALLOW [+|-] (