diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-05-13 20:55:58 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-05-13 20:55:58 +0000 |
commit | 763deccf122440ed8ea876ac53e0a6198b38240e (patch) | |
tree | b366715edc3578da4d243956423fe3e96653e94d /src/modules/m_spanningtree | |
parent | 74c85f2c45b8207d4aa4b80a97f4c298ede28b56 (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.cpp | 6 | ||||
-rw-r--r-- | src/modules/m_spanningtree/treesocket1.cpp | 2 |
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) |