* The second version is much simpler and just has the one stream to read, and is used in NAMES, WHOIS, PRIVMSG etc.
* Both will only parse until they reach ServerInstance->Config->MaxTargets number of targets, to stop abuse via spam.
*/
-int CommandParser::LoopCall(User* user, Command* CommandObj, const char** parameters, int pcnt, unsigned int splithere, unsigned int extra)
+int CommandParser::LoopCall(User* user, Command* CommandObj, const char* const* parameters, int pcnt, unsigned int splithere, unsigned int extra)
{
/* First check if we have more than one item in the list, if we don't we return zero here and the handler
* which called us just carries on as it was.
return 1;
}
-int CommandParser::LoopCall(User* user, Command* CommandObj, const char** parameters, int pcnt, unsigned int splithere)
+int CommandParser::LoopCall(User* user, Command* CommandObj, const char* const* parameters, int pcnt, unsigned int splithere)
{
/* First check if we have more than one item in the list, if we don't we return zero here and the handler
* which called us just carries on as it was.
new_parameters[splithere] = item.c_str();
- parameters[splithere] = item.c_str();
-
/* Execute the command handler over and over. If someone pulls our user
* record out from under us (e.g. if we /kill a comma sep list, and we're
* in that list ourselves) abort if we're gone.
// calls a handler function for a command
-CmdResult CommandParser::CallHandler(const std::string &commandname,const char** parameters, int pcnt, User *user)
+CmdResult CommandParser::CallHandler(const std::string &commandname,const char* const* parameters, int pcnt, User *user)
{
Commandable::iterator n = cmdlist.find(commandname);
{
if (user->registered == REG_ALL)
{
- user->WriteServ("421 %s %s :Unknown command",user->nick,command.c_str());
+ user->WriteNumeric(421, "%s %s :Unknown command",user->nick,command.c_str());
}
ServerInstance->stats->statsUnknown++;
return true;
{
if (!user->IsModeSet(cm->second->flags_needed))
{
- user->WriteServ("481 %s :Permission Denied - You do not have the required operator privileges",user->nick);
+ user->WriteNumeric(481, "%s :Permission Denied - You do not have the required operator privileges",user->nick);
return do_more;
}
if (!user->HasPermission(command))
{
- user->WriteServ("481 %s :Permission Denied - Oper type %s does not have access to command %s",user->nick,user->oper,command.c_str());
+ user->WriteNumeric(481, "%s :Permission Denied - Oper type %s does not have access to command %s",user->nick,user->oper,command.c_str());
return do_more;
}
}
if ((user->registered == REG_ALL) && (!IS_OPER(user)) && (cm->second->IsDisabled()))
{
/* command is disabled! */
- user->WriteServ("421 %s %s :This command has been disabled.",user->nick,command.c_str());
+ user->WriteNumeric(421, "%s %s :This command has been disabled.",user->nick,command.c_str());
ServerInstance->SNO->WriteToSnoMask('d', "%s denied for %s (%s@%s)",
command.c_str(), user->nick, user->ident, user->host);
return do_more;
}
if (items < cm->second->min_params)
{
- user->WriteServ("461 %s %s :Not enough parameters.", user->nick, command.c_str());
+ user->WriteNumeric(461, "%s %s :Not enough parameters.", user->nick, command.c_str());
if ((ServerInstance->Config->SyntaxHints) && (user->registered == REG_ALL) && (cm->second->syntax.length()))
- user->WriteServ("304 %s :SYNTAX %s %s", user->nick, cm->second->command.c_str(), cm->second->syntax.c_str());
+ user->WriteNumeric(304, "%s :SYNTAX %s %s", user->nick, cm->second->command.c_str(), cm->second->syntax.c_str());
return do_more;
}
if ((user->registered != REG_ALL) && (!cm->second->WorksBeforeReg()))
{
- user->WriteServ("451 %s :You have not registered",command.c_str());
+ user->WriteNumeric(451, "%s :You have not registered",command.c_str());
return do_more;
}
else
cm->second->total_bytes += cmd.length();
/* module calls too */
- int MOD_RESULT = 0;
+ MOD_RESULT = 0;
FOREACH_RESULT(I_OnPreCommand,OnPreCommand(command,command_p,items,user,true,cmd));
if (MOD_RESULT == 1)
return do_more;
if (buffer.length())
{
- ServerInstance->Log(DEBUG,"C[%d] I :%s %s",user->GetFd(), user->nick, buffer.c_str());
+ ServerInstance->Logs->Log("USERINPUT", DEBUG,"C[%d] I :%s %s",user->GetFd(), user->nick, buffer.c_str());
return this->ProcessCommand(user,buffer);
}
RFCCommands[f->command] = so_handle;
else
{
- ServerInstance->Log(DEFAULT,"ERK! Somehow, we loaded a cmd_*.so file twice! Only the first instance is being recorded.");
+ ServerInstance->Logs->Log("COMMAND",DEFAULT,"ERK! Somehow, we loaded a cmd_*.so file twice! Only the first instance is being recorded.");
return false;
}
}
const char* err = dlerror();
if (err && !(*v))
{
- ServerInstance->Log(SPARSE, "Error loading core command %s: %s\n", name.c_str(), err);
+ ServerInstance->Logs->Log("COMMAND",SPARSE, "Error loading core command %s: %s\n", name.c_str(), err);
return false;
}
return true;
return false;
}
-CmdResult cmd_reload::Handle(const char** parameters, int /* pcnt */, User *user)
+CmdResult cmd_reload::Handle(const char* const* parameters, int /* pcnt */, User *user)
{
user->WriteServ("NOTICE %s :*** Reloading command '%s'",user->nick, parameters[0]);
if (ServerInstance->Parser->ReloadCommand(parameters[0], user))
/* Command already exists? Succeed silently - this is needed for REHASH */
if (RFCCommands.find(name) != RFCCommands.end())
{
- ServerInstance->Log(DEBUG,"Not reloading command %s/%s, it already exists", LIBRARYDIR, name);
+ ServerInstance->Logs->Log("COMMAND",DEBUG,"Not reloading command %s/%s, it already exists", LIBRARYDIR, name);
return NULL;
}
if (!h)
{
const char* n = dlerror();
- ServerInstance->Log(SPARSE, "Error loading core command %s: %s", name, n);
+ ServerInstance->Logs->Log("COMMAND",SPARSE, "Error loading core command %s: %s", name, n);
return n;
}