summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-02-01 21:58:09 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-02-01 21:58:09 +0000
commitf73cbbafe1bbad627e359078988ce570fbf5d0d9 (patch)
tree62a1450ec7b05f99109c1a15175dfeb3f2b5cede
parent47f66dc6cf78dde18f8984e61a6fa9a822d1d781 (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.cpp14
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);
}
}