From 95a8c258e2bc051e8605ee14d1643f3310221271 Mon Sep 17 00:00:00 2001 From: w00t Date: Tue, 28 Aug 2007 13:13:57 +0000 Subject: Handle nick change collision through the same rules nick introduction collision is handled. No code duplication, and now, no kills either. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7937 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree/treesocket1.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/modules/m_spanningtree/treesocket1.cpp') diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp index a7f1ae66c..1a7531074 100644 --- a/src/modules/m_spanningtree/treesocket1.cpp +++ b/src/modules/m_spanningtree/treesocket1.cpp @@ -999,7 +999,18 @@ int TreeSocket::DoCollision(userrec *u, time_t remotets, const char *remoteident * have 928AAAB's nick set to that. * -- w00t */ - this->WriteLine(std::string(":")+this->Instance->Config->ServerName+" SVSNICK "+remoteuid+" " + remoteuid); + userrec *remote = this->Instance->FindUUID(remoteuid); + + if (remote) + { + /* buh.. nick change collide. force change their nick. */ + remote->ForceNickChange(remote->uuid); + } + else + { + /* user has not been introduced yet, just inform their server */ + this->WriteLine(std::string(":")+this->Instance->Config->ServerName+" SVSNICK "+remoteuid+" " + remoteuid); + } if (!bChangeRemote) return 2; -- cgit v1.3.1-10-gc9f91