TRANSLATE3(TR_NICK, TR_TEXT, TR_END);
}
- CmdResult Handle(const char* const* parameters, int pcnt, User *user)
+ CmdResult Handle(const std::vector<const std::string>& parameters, User *user)
{
User* target = ServerInstance->FindNick(parameters[0]);
irc::string server;
syntax = "[<servername>]";
}
- CmdResult Handle (const char* const* parameters, int pcnt, User* user)
+ CmdResult Handle (const std::vector<const std::string>& parameters, User* user)
{
return ShowOperMOTD(user);
}
return Utils->serverlist.size();
}
-void ModuleSpanningTree::HandleLinks(const char* const* parameters, int pcnt, User* user)
+void ModuleSpanningTree::HandleLinks(const std::vector<std::string>& parameters, User* user)
{
ShowLinks(Utils->TreeRoot,user,0);
user->WriteNumeric(365, "%s * :End of /LINKS list.",user->nick);
return;
}
-void ModuleSpanningTree::HandleLusers(const char* const* parameters, int pcnt, User* user)
+void ModuleSpanningTree::HandleLusers(const std::vector<std::string>& parameters, User* user)
{
unsigned int n_users = ServerInstance->Users->UserCount();
}
}
-int ModuleSpanningTree::HandleVersion(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleVersion(const std::vector<std::string>& parameters, User* user)
{
// we've already checked if pcnt > 0, so this is safe
TreeServer* found = Utils->FindServerMask(parameters[0]);
}
else
{
- user->WriteNumeric(402, "%s %s :No such server",user->nick,parameters[0]);
+ user->WriteNumeric(402, "%s %s :No such server",user->nick,parameters[0].c_str());
}
return 1;
}
SendingRemoteMessage = false;
}
-int ModuleSpanningTree::HandleConnect(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleConnect(const std::vector<std::string>& parameters, User* user)
{
for (std::vector<Link>::iterator x = Utils->LinkBlocks.begin(); x < Utils->LinkBlocks.end(); x++)
{
}
}
}
- RemoteMessage(user, "*** CONNECT: No server matching \002%s\002 could be found in the config file.",parameters[0]);
+ RemoteMessage(user, "*** CONNECT: No server matching \002%s\002 could be found in the config file.",parameters[0].c_str());
return 1;
}
/** Handle LINKS command
*/
- void HandleLinks(const char* const* parameters, int pcnt, User* user);
+ void HandleLinks(const std::vector<std::string>& parameters, User* user);
/** Handle LUSERS command
*/
- void HandleLusers(const char* const* parameters, int pcnt, User* user);
+ void HandleLusers(const std::vector<std::string>& parameters, User* user);
/** Show MAP output to a user (recursive)
*/
/** Handle remote MOTD
*/
- int HandleMotd(const char* const* parameters, int pcnt, User* user);
+ int HandleMotd(const std::vector<std::string>& parameters, User* user);
/** Handle remote ADMIN
*/
- int HandleAdmin(const char* const* parameters, int pcnt, User* user);
+ int HandleAdmin(const std::vector<std::string>& parameters, User* user);
/** Handle remote STATS
*/
- int HandleStats(const char* const* parameters, int pcnt, User* user);
+ int HandleStats(const std::vector<std::string>& parameters, User* user);
/** Handle MAP command
*/
- int HandleMap(const char* const* parameters, int pcnt, User* user);
+ int HandleMap(const std::vector<std::string>& parameters, User* user);
/** Handle SQUIT
*/
- int HandleSquit(const char* const* parameters, int pcnt, User* user);
+ int HandleSquit(const std::vector<std::string>& parameters, User* user);
/** Handle TIME
*/
- int HandleTime(const char* const* parameters, int pcnt, User* user);
+ int HandleTime(const std::vector<std::string>& parameters, User* user);
/** Handle remote WHOIS
*/
- int HandleRemoteWhois(const char* const* parameters, int pcnt, User* user);
+ int HandleRemoteWhois(const std::vector<std::string>& parameters, User* user);
/** Handle remote MODULES
*/
- int HandleModules(const char* const* parameters, int pcnt, User* user);
+ int HandleModules(const std::vector<std::string>& parameters, User* user);
/** Ping all local servers
*/
/** Handle remote VERSON
*/
- int HandleVersion(const char* const* parameters, int pcnt, User* user);
+ int HandleVersion(const std::vector<std::string>& parameters, User* user);
/** Handle CONNECT
*/
- int HandleConnect(const char* const* parameters, int pcnt, User* user);
+ int HandleConnect(const std::vector<std::string>& parameters, User* user);
/** Attempt to send a message to a user
*/
** *** MODULE EVENTS ***
**/
- virtual int OnPreCommand(const std::string &command, const char* const* parameters, int pcnt, User *user, bool validated, const std::string &original_line);
- virtual void OnPostCommand(const std::string &command, const char* const* parameters, int pcnt, User *user, CmdResult result, const std::string &original_line);
+ virtual int OnPreCommand(const std::string &command, const std::vector<std::string>& parameters, User *user, bool validated, const std::string &original_line);
+ virtual void OnPostCommand(const std::string &command, const std::vector<std::string>& parameters, User *user, CmdResult result, const std::string &original_line);
virtual void OnGetServerDescription(const std::string &servername,std::string &description);
virtual void OnUserInvite(User* source,User* dest,Channel* channel, time_t);
virtual void OnPostLocalTopicChange(User* user, Channel* chan, const std::string &topic);
/* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
-int ModuleSpanningTree::HandleAdmin(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleAdmin(const std::vector<std::string>& parameters, User* user)
{
- if (pcnt > 0)
+ if (parameters.size() > 0)
{
- if (match(ServerInstance->Config->ServerName, parameters[0]))
+ if (match(ServerInstance->Config->ServerName, parameters[0].c_str()))
return 0;
/* Remote ADMIN, the server is within the 1st parameter */
Utils->DoOneToOne(user->uuid, "ADMIN", params, s->GetName());
}
else
- user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0]);
+ user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0].c_str());
return 1;
}
return 0;
// and divisons, we instead render the map onto a backplane of characters
// (a character matrix), then draw the branches as a series of "L" shapes
// from the nodes. This is not only friendlier on CPU it uses less stack.
-int ModuleSpanningTree::HandleMap(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleMap(const std::vector<std::string>& parameters, User* user)
{
- if (pcnt > 0)
+ if (parameters.size() > 0)
{
/* Remote MAP, the server is within the 1st parameter */
TreeServer* s = Utils->FindServerMask(parameters[0]);
bool ret = false;
if (!s)
{
- user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0]);
+ user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0].c_str());
ret = true;
}
else if (s && s != Utils->TreeRoot)
/* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
-int ModuleSpanningTree::HandleModules(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleModules(const std::vector<std::string>& parameters, User* user)
{
- if (pcnt > 0)
+ if (parameters.size() > 0)
{
- if (match(ServerInstance->Config->ServerName, parameters[0]))
+ if (match(ServerInstance->Config->ServerName, parameters[0].c_str()))
return 0;
std::deque<std::string> params;
params.push_back(parameters[0]);
- TreeServer* s = Utils->FindServerMask(parameters[0]);
+ TreeServer* s = Utils->FindServerMask(parameters[0].c_str());
if (s)
{
params[0] = s->GetName();
Utils->DoOneToOne(user->uuid, "MODULES", params, s->GetName());
}
else
- user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0]);
+ user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0].c_str());
return 1;
}
return 0;
/* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
-int ModuleSpanningTree::HandleMotd(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleMotd(const std::vector<std::string>& parameters, User* user)
{
- if (pcnt > 0)
+ if (parameters.size() > 0)
{
- if (match(ServerInstance->Config->ServerName, parameters[0]))
+ if (match(ServerInstance->Config->ServerName, parameters[0].c_str()))
return 0;
/* Remote MOTD, the server is within the 1st parameter */
Utils->DoOneToOne(user->uuid, "MOTD", params, s->GetName());
}
else
- user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0]);
+ user->WriteServ( "402 %s %s :No such server", user->nick, parameters[0].c_str());
return 1;
}
return 0;
/* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
-int ModuleSpanningTree::HandleSquit(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleSquit(const std::vector<std::string>& parameters, User* user)
{
TreeServer* s = Utils->FindServerMask(parameters[0]);
if (s)
{
if (s == Utils->TreeRoot)
{
- user->WriteServ("NOTICE %s :*** SQUIT: Foolish mortal, you cannot make a server SQUIT itself! (%s matches local server name)",user->nick,parameters[0]);
+ user->WriteServ("NOTICE %s :*** SQUIT: Foolish mortal, you cannot make a server SQUIT itself! (%s matches local server name)",user->nick,parameters[0].c_str());
return 1;
}
if (sock)
{
- ServerInstance->SNO->WriteToSnoMask('l',"SQUIT: Server \002%s\002 removed from network by %s",parameters[0],user->nick);
+ ServerInstance->SNO->WriteToSnoMask('l',"SQUIT: Server \002%s\002 removed from network by %s",parameters[0].c_str(),user->nick);
sock->Squit(s,std::string("Server quit by ") + user->GetFullRealHost());
ServerInstance->SE->DelFd(sock);
sock->Close();
}
else
{
- user->WriteServ("NOTICE %s :*** SQUIT: The server \002%s\002 does not exist on the network.",user->nick,parameters[0]);
+ user->WriteServ("NOTICE %s :*** SQUIT: The server \002%s\002 does not exist on the network.",user->nick,parameters[0].c_str());
}
return 1;
}
/* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
-int ModuleSpanningTree::HandleStats(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleStats(const std::vector<std::string>& parameters, User* user)
{
- if (pcnt > 1)
+ if (parameters.size() > 1)
{
- if (match(ServerInstance->Config->ServerName, parameters[1]))
+ if (match(ServerInstance->Config->ServerName, parameters[1].c_str()))
return 0;
/* Remote STATS, the server is within the 2nd parameter */
}
else
{
- user->WriteServ( "402 %s %s :No such server", user->nick, parameters[1]);
+ user->WriteServ( "402 %s %s :No such server", user->nick, parameters[1].c_str());
}
return 1;
}
/* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
-int ModuleSpanningTree::HandleTime(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleTime(const std::vector<std::string>& parameters, User* user)
{
- if ((IS_LOCAL(user)) && (pcnt))
+ if ((IS_LOCAL(user)) && (parameters.size() > 0))
{
- TreeServer* found = Utils->FindServerMask(parameters[0]);
+ TreeServer* found = Utils->FindServerMask(parameters[0].c_str());
if (found)
{
// we dont' override for local server
}
else
{
- user->WriteNumeric(402, "%s %s :No such server",user->nick,parameters[0]);
+ user->WriteNumeric(402, "%s %s :No such server",user->nick,parameters[0].c_str());
}
}
return 1;
/* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
-int ModuleSpanningTree::HandleRemoteWhois(const char* const* parameters, int pcnt, User* user)
+int ModuleSpanningTree::HandleRemoteWhois(const std::vector<std::string>& parameters, User* user)
{
- if ((IS_LOCAL(user)) && (pcnt > 1))
+ if ((IS_LOCAL(user)) && (parameters.size() > 1))
{
User* remote = ServerInstance->FindNick(parameters[1]);
if ((remote) && (remote->GetFd() < 0))
}
else if (!remote)
{
- user->WriteNumeric(401, "%s %s :No such nick/channel",user->nick, parameters[1]);
- user->WriteNumeric(318, "%s %s :End of /WHOIS list.",user->nick, parameters[1]);
+ user->WriteNumeric(401, "%s %s :No such nick/channel",user->nick, parameters[1].c_str());
+ user->WriteNumeric(318, "%s %s :End of /WHOIS list.",user->nick, parameters[1].c_str());
return 1;
}
}
/* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
-void ModuleSpanningTree::OnPostCommand(const std::string &command, const char* const* parameters, int pcnt, User *user, CmdResult result, const std::string &original_line)
+void ModuleSpanningTree::OnPostCommand(const std::string &command, const std::vector<std::string>& parameters, User *user, CmdResult result, const std::string &original_line)
{
- if ((result == CMD_SUCCESS) && (ServerInstance->IsValidModuleCommand(command, pcnt, user)))
+ if ((result == CMD_SUCCESS) && (ServerInstance->IsValidModuleCommand(command, parameters.size(), user)))
{
/* Safe, we know its non-null because IsValidModuleCommand returned true */
Command* thiscmd = ServerInstance->Parser->GetHandler(command);
// commands and linking protocols.
std::deque<std::string> params;
params.clear();
- int n_translate = thiscmd->translation.size();
+ unsigned int n_translate = thiscmd->translation.size();
TranslateType translate_to;
/* To make sure that parameters with spaces, or empty
* parameters, etc, are always sent properly, *always*
* prefix the last parameter with a :. This also removes
* an extra strchr() */
- for (int j = 0; j < pcnt; j++)
+ for (unsigned int j = 0; j < parameters.size(); j++)
{
std::string target;
else
translate_to = TR_TEXT;
- ServerInstance->Logs->Log("m_spanningtree",DEBUG,"TRANSLATION: %s - type is %d", parameters[j], translate_to);
+ ServerInstance->Logs->Log("m_spanningtree",DEBUG,"TRANSLATION: %s - type is %d", parameters[j].c_str(), translate_to);
ServerInstance->Parser->TranslateUIDs(translate_to, parameters[j], target);
- if (j == (pcnt - 1))
+ if (j == (parameters.size() - 1))
params.push_back(":" + target);
else
params.push_back(target);
/* $ModDep: m_spanningtree/timesynctimer.h m_spanningtree/resolvers.h m_spanningtree/main.h m_spanningtree/utils.h m_spanningtree/treeserver.h m_spanningtree/link.h m_spanningtree/treesocket.h m_spanningtree/rconnect.h m_spanningtree/rsquit.h */
-int ModuleSpanningTree::OnPreCommand(const std::string &command, const char* const* parameters, int pcnt, User *user, bool validated, const std::string &original_line)
+int ModuleSpanningTree::OnPreCommand(const std::string &command, const std::vector<std::string>& parameters, User *user, bool validated, const std::string &original_line)
{
/* If the command doesnt appear to be valid, we dont want to mess with it. */
if (!validated)
if (command == "CONNECT")
{
- return this->HandleConnect(parameters,pcnt,user);
+ return this->HandleConnect(parameters,user);
}
else if (command == "STATS")
{
- return this->HandleStats(parameters,pcnt,user);
+ return this->HandleStats(parameters,user);
}
else if (command == "MOTD")
{
- return this->HandleMotd(parameters,pcnt,user);
+ return this->HandleMotd(parameters,user);
}
else if (command == "ADMIN")
{
- return this->HandleAdmin(parameters,pcnt,user);
+ return this->HandleAdmin(parameters,user);
}
else if (command == "SQUIT")
{
- return this->HandleSquit(parameters,pcnt,user);
+ return this->HandleSquit(parameters,user);
}
else if (command == "MAP")
{
- return this->HandleMap(parameters,pcnt,user);
+ return this->HandleMap(parameters,user);
}
- else if ((command == "TIME") && (pcnt > 0))
+ else if ((command == "TIME") && (parameters.size() > 0))
{
- return this->HandleTime(parameters,pcnt,user);
+ return this->HandleTime(parameters,user);
}
else if (command == "LUSERS")
{
- this->HandleLusers(parameters,pcnt,user);
+ this->HandleLusers(parameters,user);
return 1;
}
else if (command == "LINKS")
{
- this->HandleLinks(parameters,pcnt,user);
+ this->HandleLinks(parameters,user);
return 1;
}
else if (command == "WHOIS")
{
- if (pcnt > 1)
+ if (parameters.size() > 1)
{
// remote whois
- return this->HandleRemoteWhois(parameters,pcnt,user);
+ return this->HandleRemoteWhois(parameters,user);
}
}
- else if ((command == "VERSION") && (pcnt > 0))
+ else if ((command == "VERSION") && (parameters.size() > 0))
{
- this->HandleVersion(parameters,pcnt,user);
+ this->HandleVersion(parameters,user);
return 1;
}
- else if ((command == "MODULES") && (pcnt > 0))
+ else if ((command == "MODULES") && (parameters.size() > 0))
{
- return this->HandleModules(parameters,pcnt,user);
+ return this->HandleModules(parameters,user);
}
return 0;
}
syntax = "<remote-server-mask> <target-server-mask>";
}
-CmdResult cmd_rconnect::Handle (const char* const* parameters, int pcnt, User *user)
+CmdResult cmd_rconnect::Handle (const std::vector<std::string>& parameters, User *user)
{
if (IS_LOCAL(user))
{
if (!Utils->FindServerMask(parameters[0]))
{
- user->WriteServ("NOTICE %s :*** RCONNECT: Server \002%s\002 isn't connected to the network!", user->nick, parameters[0]);
+ user->WriteServ("NOTICE %s :*** RCONNECT: Server \002%s\002 isn't connected to the network!", user->nick, parameters[0].c_str());
return CMD_FAILURE;
}
- user->WriteServ("NOTICE %s :*** RCONNECT: Sending remote connect to \002%s\002 to connect server \002%s\002.",user->nick,parameters[0],parameters[1]);
+ user->WriteServ("NOTICE %s :*** RCONNECT: Sending remote connect to \002%s\002 to connect server \002%s\002.",user->nick,parameters[0].c_str(),parameters[1].c_str());
}
/* Is this aimed at our server? */
if (ServerInstance->MatchText(ServerInstance->Config->ServerName,parameters[0]))
{
/* Yes, initiate the given connect */
- ServerInstance->SNO->WriteToSnoMask('l',"Remote CONNECT from %s matching \002%s\002, connecting server \002%s\002",user->nick,parameters[0],parameters[1]);
- const char* para[1];
- para[0] = parameters[1];
+ ServerInstance->SNO->WriteToSnoMask('l',"Remote CONNECT from %s matching \002%s\002, connecting server \002%s\002",user->nick,parameters[0].c_str(),parameters[1].c_str());
+ std::vector<std::string> para(1);
+ para.push_back(parameters[1]);
std::string original_command = std::string("CONNECT ") + parameters[1];
- Creator->OnPreCommand("CONNECT", para, 1, user, true, original_command);
+ Creator->OnPreCommand("CONNECT", para, user, true, original_command);
}
return CMD_SUCCESS;
}
SpanningTreeUtilities* Utils; /* Utility class */
public:
cmd_rconnect (InspIRCd* Instance, Module* Callback, SpanningTreeUtilities* Util);
- CmdResult Handle (const char* const* parameters, int pcnt, User *user);
+ CmdResult Handle (const std::vector<std::string>& parameters, User *user);
};
#endif
syntax = "<target-server-mask> [reason]";
}
-CmdResult cmd_rsquit::Handle (const char* const* parameters, int pcnt, User *user)
+CmdResult cmd_rsquit::Handle (const std::vector<std::string>& parameters, User *user)
{
TreeServer *server_target; // Server to squit
TreeServer *server_linked; // Server target is linked to
server_target = Utils->FindServerMask(parameters[0]);
if (!server_target)
{
- user->WriteServ("NOTICE %s :*** RSQUIT: Server \002%s\002 isn't connected to the network!", user->nick, parameters[0]);
+ user->WriteServ("NOTICE %s :*** RSQUIT: Server \002%s\002 isn't connected to the network!", user->nick, parameters[0].c_str());
return CMD_FAILURE;
}
if (server_target == Utils->TreeRoot)
{
- NoticeUser(user, "*** RSQUIT: Foolish mortal, you cannot make a server SQUIT itself! ("+ConvToStr(parameters[0])+" matches local server name)");
+ NoticeUser(user, "*** RSQUIT: Foolish mortal, you cannot make a server SQUIT itself! ("+parameters[0]+" matches local server name)");
return CMD_FAILURE;
}
TreeSocket* sock = server_target->GetSocket();
if (sock)
{
- const char *reason = pcnt == 2 ? parameters[1] : "No reason";
- ServerInstance->SNO->WriteToSnoMask('l',"RSQUIT: Server \002%s\002 removed from network by %s (%s)", parameters[0], user->nick, reason);
+ const char *reason = parameters.size() == 2 ? parameters[1].c_str() : "No reason";
+ ServerInstance->SNO->WriteToSnoMask('l',"RSQUIT: Server \002%s\002 removed from network by %s (%s)", parameters[0].c_str(), user->nick, reason);
sock->Squit(server_target, std::string("Server quit by ") + user->GetFullRealHost() + " (" + reason + ")");
ServerInstance->SE->DelFd(sock);
sock->Close();
SpanningTreeUtilities* Utils; /* Utility class */
public:
cmd_rsquit (InspIRCd* Instance, Module* Callback, SpanningTreeUtilities* Util);
- CmdResult Handle (const char* const* parameters, int pcnt, User *user);
+ CmdResult Handle (const std::vector<std::string>& parameters, User *user);
void NoticeUser(User* user, const std::string &msg);
};
User* user = Instance->FindNick(prefix);
if (user)
{
- const char* ptrs[127];
- for (size_t n = 0; (n < params.size()) && (n < 127); ++n)
- ptrs[n] = params[n].c_str();
- return Utils->Creator->HandleMap(ptrs, params.size(), user);
+ std::vector<std::string> p(params.begin(), params.end());
+ return Utils->Creator->HandleMap(p, user);
}
}
else if (command == "SERVER")
else if (command == "MODE")
{
// Server-prefix MODE.
- const char* modelist[MAXPARAMETERS];
- for (size_t i = 0; i < params.size(); i++)
- modelist[i] = params[i].c_str();
+ std::vector<std::string> modelist(params.begin(), params.end());
/* We don't support this for channel mode changes any more! */
if (params.size() >= 1)
}
// Insert into the parser
- this->Instance->SendMode(modelist, params.size(), this->Instance->FakeClient);
+ this->Instance->SendMode(modelist, this->Instance->FakeClient);
// Pass out to the network
return Utils->DoOneToAllButSenderRaw(line,sourceserv,prefix,command,params);
}
// its a user
- const char* strparams[127];
- for (unsigned int q = 0; q < params.size(); q++)
- {
- strparams[q] = params[q].c_str();
- }
+ std::vector<std::string> strparams(params.begin(), params.end());
- switch (this->Instance->CallCommandHandler(command.c_str(), strparams, params.size(), who))
+ switch (this->Instance->CallCommandHandler(command.c_str(), strparams, who))
{
case CMD_INVALID:
/*