diff options
| author | 2007-08-28 13:13:57 +0000 | |
|---|---|---|
| committer | 2007-08-28 13:13:57 +0000 | |
| commit | 95a8c258e2bc051e8605ee14d1643f3310221271 (patch) | |
| tree | 493937a1dbf3fb53f14615919c5d822869416461 /src/modules/m_spanningtree/treesocket1.cpp | |
| parent | Move nickname collision logic into TreeSocket::DoCollision so that nickname c... (diff) | |
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
Diffstat (limited to 'src/modules/m_spanningtree/treesocket1.cpp')
| -rw-r--r-- | src/modules/m_spanningtree/treesocket1.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
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; |
