summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)