diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-12-03 17:27:35 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-12-03 17:27:35 +0000 |
commit | 0f569eb0d610091b6a61593cd6646a047e2f7e66 (patch) | |
tree | d1e625e4c14c9542ac7d9aa45071000c9af0a33b | |
parent | 05d5a31d97bece968fc1f3c36fae7c7504aa837c (diff) |
More TS fixes
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2130 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/modules/m_spanningtree.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
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<std::string> 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<std::string> 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; } |