summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-05-13 20:55:58 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-05-13 20:55:58 +0000
commit763deccf122440ed8ea876ac53e0a6198b38240e (patch)
treeb366715edc3578da4d243956423fe3e96653e94d /src/modules/m_spanningtree
parent74c85f2c45b8207d4aa4b80a97f4c298ede28b56 (diff)
We dont need to send FMODE for user mode changes, and the FMODE handler doesnt need to error on FMODE from a user if we get one
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7017 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_spanningtree')
-rw-r--r--src/modules/m_spanningtree/main.cpp6
-rw-r--r--src/modules/m_spanningtree/treesocket1.cpp2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/modules/m_spanningtree/main.cpp b/src/modules/m_spanningtree/main.cpp
index ab1908224..5c6fecc8f 100644
--- a/src/modules/m_spanningtree/main.cpp
+++ b/src/modules/m_spanningtree/main.cpp
@@ -1260,6 +1260,8 @@ void ModuleSpanningTree::OnEvent(Event* event)
if (a)
{
ourTS = a->age;
+ Utils->DoOneToMany(ServerInstance->Config->ServerName,"MODE",*params);
+ return;
}
else
{
@@ -1267,10 +1269,10 @@ void ModuleSpanningTree::OnEvent(Event* event)
if (a)
{
ourTS = a->age;
+ params->insert(params->begin() + 1,ConvToStr(ourTS));
+ Utils->DoOneToMany(ServerInstance->Config->ServerName,"FMODE",*params);
}
}
- params->insert(params->begin() + 1,ConvToStr(ourTS));
- Utils->DoOneToMany(ServerInstance->Config->ServerName,"FMODE",*params);
}
else if (event->GetEventID() == "send_mode_explicit")
{
diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp
index 80799ca7a..b858061cb 100644
--- a/src/modules/m_spanningtree/treesocket1.cpp
+++ b/src/modules/m_spanningtree/treesocket1.cpp
@@ -662,7 +662,7 @@ bool TreeSocket::ForceMode(const std::string &source, std::deque<std::string> &p
*/
if (TS <= ourTS)
{
- if (TS < ourTS)
+ if ((TS < ourTS) && (!dst))
Instance->Log(DEFAULT,"*** BUG *** Channel TS sent in FMODE to %s is %lu which is not equal to %lu!", params[0].c_str(), TS, ourTS);
if (smode)