From f73cbbafe1bbad627e359078988ce570fbf5d0d9 Mon Sep 17 00:00:00 2001 From: brain Date: Wed, 1 Feb 2006 21:58:09 +0000 Subject: Clean up ghosts on nick collision git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3010 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 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); } } -- cgit v1.2.3