summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2007-08-27 16:05:59 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2007-08-27 16:05:59 +0000
commit2b3394855d5adddb16285b905503d9ffe5a1d963 (patch)
tree5a253a4b3d9420758a510f15c0332d29410fff7a /src/modules/m_spanningtree
parent9bea99f973d8ff1148172ab3b4aa93e895bbc37e (diff)
Add a metric assload of TRANSLATE macros to modules.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7892 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_spanningtree')
-rw-r--r--src/modules/m_spanningtree/treesocket1.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp
index 21882eda8..c75bf17e9 100644
--- a/src/modules/m_spanningtree/treesocket1.cpp
+++ b/src/modules/m_spanningtree/treesocket1.cpp
@@ -966,6 +966,37 @@ bool TreeSocket::ParseUID(const std::string &source, std::deque<std::string> &pa
if (iter != this->Instance->clientlist->end())
{
/*
+ * Nick collision.
+ * Under old protocol rules, we would have had to kill both clients.
+ * Really, this sucks.
+ * These days, we have UID. And, so what we do is, force nick change client(s)
+ * involved according to timestamp rules.
+ *
+ * RULES:
+ * user@host equal:
+ * Force nick change on OLDER timestamped client
+ * user@host differ:
+ * Force nick change on NEWER timestamped client
+ * TS EQUAL:
+ * FNC both.
+ *
+ * Note that remote clients MUST be dealt with also to remove desyncs.
+ * XXX we don't do this yet.
+ *
+ * This stops abusive use of collisions, simplifies problems with loops, and so on.
+ * -- w00t
+ */
+
+ if (age == iter->second->signon)
+ {
+ /* TS equal, do both */
+
+ }
+ else
+ {
+ }
+
+ /*
* Uh oh, nick collision. Under old rules, we'd kill both. These days now we have UUID,
* we force both clients to change nick to their UUID. Just change ours, and the other
* server will change theirs when they see the collide. Problem solved! -- w00t