From e31d17e28ee3933c44d3882fa75a26582f04016a Mon Sep 17 00:00:00 2001 From: brain Date: Sat, 10 Mar 2007 18:15:13 +0000 Subject: [PATCH] Move FJOIN propogation above the FMODEs generated by winning an FJOIN git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6648 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree/treesocket1.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp index d5aeb223c..dbbe865b1 100644 --- a/src/modules/m_spanningtree/treesocket1.cpp +++ b/src/modules/m_spanningtree/treesocket1.cpp @@ -645,6 +645,13 @@ bool TreeSocket::ForceJoin(const std::string &source, std::deque &p ourTS = chan->age; else created = true; /* don't perform deops, and set TS to correct time after processing. */ + + /* do this first, so our mode reversals are correctly received by other servers + * if there is a TS collision. + */ + params[2] = ":" + params[2]; + Utils->DoOneToAllButSender(source,"FJOIN",params,source); + /* In 1.1, if they have the newer channel, we immediately clear * all status modes from our users. We then accept their modes. * If WE have the newer channel its the other side's job to do this. @@ -671,11 +678,7 @@ bool TreeSocket::ForceJoin(const std::string &source, std::deque &p /* Put the final parameter of the FJOIN into a tokenstream ready to split it */ irc::tokenstream users(params[2]); std::string item = "*"; - /* do this first, so our mode reversals are correctly received by other servers - * if there is a TS collision. - */ - params[2] = ":" + params[2]; - Utils->DoOneToAllButSender(source,"FJOIN",params,source); + /* Now, process every 'prefixes,nick' pair */ while (item != "") { -- 2.39.5