From 0f569eb0d610091b6a61593cd6646a047e2f7e66 Mon Sep 17 00:00:00 2001 From: brain Date: Sat, 3 Dec 2005 17:27:35 +0000 Subject: More TS fixes git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2130 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree.cpp | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp index e78740934..5eab7ca34 100644 --- a/src/modules/m_spanningtree.cpp +++ b/src/modules/m_spanningtree.cpp @@ -516,6 +516,10 @@ class TreeSocket : public InspSocket } log(DEBUG,"FJOIN detected, our TS=%lu, their TS=%lu",ourTS,TS); + + // do this first, so our mode reversals are correctly received by other servers + // if there is a TS collision. + DoOneToAllButSender(source,"FJOIN",params,source); for (unsigned int usernum = 2; usernum < params.size(); usernum++) { @@ -558,7 +562,6 @@ class TreeSocket : public InspSocket log(DEBUG,"Their channel newer than ours, bouncing their modes"); // bouncy bouncy! std::deque params; - params.push_back(channel); // modes are now being UNSET... *mode_users[1] = '-'; for (unsigned int x = 0; x < modectr; x++) @@ -586,7 +589,6 @@ class TreeSocket : public InspSocket { log(DEBUG,"Their channel newer than ours, bouncing their modes"); std::deque params; - params.push_back(channel); *mode_users[1] = '-'; for (unsigned int x = 0; x < modectr; x++) { @@ -595,13 +597,6 @@ class TreeSocket : public InspSocket DoOneToMany(Srv->GetServerName(),"FMODE",params); } } - // sync the TS - us = Srv->FindChannel(channel); - if (us) - { - us->age = TS; - } - DoOneToAllButSender(source,"FJOIN",params,source); return true; } -- cgit v1.2.3