mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-12 20:19:02 -04:00
Add back remote kill handler for server origin kills
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7249 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
parent
315c7e7484
commit
7fb9621053
@ -376,6 +376,29 @@ bool TreeSocket::RemoteRehash(const std::string &prefix, std::deque<std::string>
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TreeSocket::RemoteKill(const std::string &prefix, std::deque<std::string> ¶ms)
|
||||
{
|
||||
if (params.size() != 2)
|
||||
return true;
|
||||
|
||||
userrec* who = this->Instance->FindNick(params[0]);
|
||||
|
||||
if (who)
|
||||
{
|
||||
/* Prepend kill source, if we don't have one */
|
||||
if (*(params[1].c_str()) != '[')
|
||||
{
|
||||
params[1] = "[" + prefix + "] Killed (" + params[1] +")";
|
||||
}
|
||||
std::string reason = params[1];
|
||||
params[1] = ":" + params[1];
|
||||
Utils->DoOneToAllButSender(prefix,"KILL",params,prefix);
|
||||
who->Write(":%s KILL %s :%s (%s)", prefix.c_str(), who->nick, prefix.c_str(), reason.c_str());
|
||||
userrec::QuitUser(this->Instance,who,reason);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TreeSocket::LocalPong(const std::string &prefix, std::deque<std::string> ¶ms)
|
||||
{
|
||||
if (params.size() < 1)
|
||||
@ -1182,6 +1205,10 @@ bool TreeSocket::ProcessLine(std::string &line)
|
||||
{
|
||||
return this->Motd(prefix, params);
|
||||
}
|
||||
else if (command == "KILL" && Utils->IsServer(prefix))
|
||||
{
|
||||
return this->RemoteKill(prefix,params);
|
||||
}
|
||||
else if (command == "MODULES")
|
||||
{
|
||||
return this->Modules(prefix, params);
|
||||
|
Loading…
x
Reference in New Issue
Block a user