summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-11-24 16:32:16 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-11-24 16:32:16 +0000
commitf13202da23167c8bf8ea457ba75a497d83806f34 (patch)
treebf03d2afdcfa16cf3582fb665e31d3581b78bf9f /src/modules
parentc397545cd83a2dc38e44c67822446cedb386d663 (diff)
In answer to w00ts question, the channel might not exist, because of the following situation
user A exists on both servers. When servers link, user A is collided, but one or both servers still get the FJOIN: FJOIN #chan 1234 :@,A of course, A is gone, the only join to the channel fails, so the channel actually doesnt exist at the end of the loop, so chan == NULL :) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5790 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/m_spanningtree.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp
index 9138e7ff1..b5c4ce92d 100644
--- a/src/modules/m_spanningtree.cpp
+++ b/src/modules/m_spanningtree.cpp
@@ -1810,7 +1810,12 @@ class TreeSocket : public InspSocket
{
/* find created channel .. */
chan = this->Instance->FindChan(channel);
- if (chan) /* shouldn't be needed, seems it is */
+ if (chan)
+ /* w00t said this shouldnt be needed but it is.
+ * This isnt strictly true, as chan can be NULL
+ * if a nick collision has occured and therefore
+ * the channel was never created.
+ */
chan->age = TS;
}