mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-10 19:19:02 -04:00
Use PUSH to let remote servers advise of errors.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7328 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
parent
e6fee8bcfb
commit
f35042f332
@ -63,13 +63,15 @@ CmdResult cmd_rsquit::Handle (const char** parameters, int pcnt, userrec *user)
|
||||
{
|
||||
if (s == Utils->TreeRoot)
|
||||
{
|
||||
ServerInstance->SNO->WriteToSnoMask('l',"RSQUIT: %s told me to SQUIT myself! (%s matches local server name)",user->nick,parameters[1]);
|
||||
//ServerInstance->SNO->WriteToSnoMask('l',"RSQUIT: %s told me to SQUIT myself! (%s matches local server name)",user->nick,parameters[1]);
|
||||
NoticeUser(user, "*** RSQUIT: Foolish mortal, you cannot make a server SQUIT itself! ("+ConvToStr(parameters[1])+" matches local server name)");
|
||||
return CMD_FAILURE;
|
||||
}
|
||||
TreeSocket* sock = s->GetSocket();
|
||||
if (!sock)
|
||||
{
|
||||
ServerInstance->SNO->WriteToSnoMask('l',"RSQUIT: %s told me to SQUIT \002%s\002 but the server isn't linked here.",user->nick,parameters[1]);
|
||||
//ServerInstance->SNO->WriteToSnoMask('l',"RSQUIT: %s told me to SQUIT \002%s\002 but the server isn't linked here.",user->nick,parameters[1]);
|
||||
NoticeUser(user, "*** RSQUIT: Server \002"+ConvToStr(parameters[1])+"\002 isn't connected to \002"+ConvToStr(parameters[0])+"\002.");
|
||||
return CMD_FAILURE;
|
||||
}
|
||||
ServerInstance->SNO->WriteToSnoMask('l',"Remote SQUIT from %s matching \002%s\002, squitting server \002%s\002",user->nick,parameters[0],parameters[1]);
|
||||
@ -83,7 +85,7 @@ CmdResult cmd_rsquit::Handle (const char** parameters, int pcnt, userrec *user)
|
||||
{
|
||||
if (s == Utils->TreeRoot)
|
||||
{
|
||||
user->WriteServ("NOTICE %s :*** RSQUIT: Foolish mortal, you cannot make a server SQUIT itself! (%s matches local server name)",user->nick,parameters[0]);
|
||||
NoticeUser(user, "*** RSQUIT: Foolish mortal, you cannot make a server SQUIT itself! ("+ConvToStr(parameters[0])+" matches local server name)");
|
||||
return CMD_FAILURE;
|
||||
}
|
||||
TreeSocket* sock = s->GetSocket();
|
||||
@ -99,3 +101,19 @@ CmdResult cmd_rsquit::Handle (const char** parameters, int pcnt, userrec *user)
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
void cmd_rsquit::NoticeUser(userrec* user, const std::string &msg)
|
||||
{
|
||||
if (IS_LOCAL(user))
|
||||
{
|
||||
user->WriteServ("NOTICE %s :%s",user->nick,msg.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
//bool DoOneToOne(const std::string &prefix, const std::string &command, std::deque<std::string> ¶ms, std::string target);
|
||||
std::deque<std::string> params;
|
||||
params.push_back(user->nick);
|
||||
params.push_back("NOTICE "+ConvToStr(user->nick)+" :"+msg);
|
||||
Utils->DoOneToOne(ServerInstance->Config->ServerName, "PUSH", params, user->server);
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ class cmd_rsquit : public command_t
|
||||
public:
|
||||
cmd_rsquit (InspIRCd* Instance, Module* Callback, SpanningTreeUtilities* Util);
|
||||
CmdResult Handle (const char** parameters, int pcnt, userrec *user);
|
||||
void NoticeUser(userrec* user, const std::string &msg);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user