diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-02-01 21:58:09 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-02-01 21:58:09 +0000 |
commit | f73cbbafe1bbad627e359078988ce570fbf5d0d9 (patch) | |
tree | 62a1450ec7b05f99109c1a15175dfeb3f2b5cede | |
parent | 47f66dc6cf78dde18f8984e61a6fa9a822d1d781 (diff) |
Clean up ghosts on nick collision
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3010 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/modules/m_spanningtree.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp index 8117b7ef9..ca25fe4a6 100644 --- a/src/modules/m_spanningtree.cpp +++ b/src/modules/m_spanningtree.cpp @@ -2135,8 +2135,20 @@ class TreeSocket : public InspSocket userrec* x = Srv->FindNick(params[0]); if (x) { - this->WriteLine(":"+Srv->GetServerName()+" KILL "+params[0]+" :Nickname collision ("+prefix+" -> "+params[0]+")"); + std::deque<std::string> p; + p.push_back(params[0]); + p.push_back("Nickname collision ("+prefix+" -> "+params[0]+")"); + DoOneToMany(Srv->GetServerName(),"KILL",p); + p.clear(); + p.push_back(prefix); + p.push_back("KILL "+prefix+" :Nickname collision"); + DoOneToMany(Srv->GetServerName(),"KILL",p); Srv->QuitUser(x,"Nickname collision ("+prefix+" -> "+params[0]+")"); + userrec* y = Srv->FindNick(prefix); + if (y) + { + Srv->QuitUser(y,"Nickname collision"); + } return DoOneToAllButSenderRaw(line,sourceserv,prefix,command,params); } } |