summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/treesocket1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/m_spanningtree/treesocket1.cpp')
-rw-r--r--src/modules/m_spanningtree/treesocket1.cpp13
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;