]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree.cpp
Clean up ghosts on nick collision
[user/henk/code/inspircd.git] / src / modules / m_spanningtree.cpp
index 8117b7ef9cf19237441762561af0911743c6863f..ca25fe4a689938d2b09bed10e10cfcbf55f66043 100644 (file)
@@ -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);
                                                        }
                                                }