aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/fmode.cpp
diff options
context:
space:
mode:
authorGravatar danieldg2009-05-13 17:04:17 +0000
committerGravatar danieldg2009-05-13 17:04:17 +0000
commit97c0e6b4c4e304a1c4e764fc06a7e2663a41743d (patch)
treee8ed104d85a573545a94c3ddc9eda144c05c7bbc /src/modules/m_spanningtree/fmode.cpp
parentMake the previous patches actually work (diff)
Use Utils->ServerUser instead of ServerInstance->FakeClient in m_spanningtree
This makes it possible to determine which server initiated a mode change, instead of having only a flag saying that some server did. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11379 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_spanningtree/fmode.cpp')
-rw-r--r--src/modules/m_spanningtree/fmode.cpp14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/modules/m_spanningtree/fmode.cpp b/src/modules/m_spanningtree/fmode.cpp
index 24047226d..2d9c37339 100644
--- a/src/modules/m_spanningtree/fmode.cpp
+++ b/src/modules/m_spanningtree/fmode.cpp
@@ -31,7 +31,6 @@ bool TreeSocket::ForceMode(const std::string &source, std::deque<std::string> &p
return true;
}
- bool smode = false;
std::string sourceserv;
/* Are we dealing with an FMODE from a user, or from a server? */
@@ -44,8 +43,7 @@ bool TreeSocket::ForceMode(const std::string &source, std::deque<std::string> &p
else
{
/* FMODE from a server, use a fake user to receive mode feedback */
- who = this->ServerInstance->FakeClient;
- smode = true; /* Setting this flag tells us it is a server mode*/
+ who = Utils->ServerUser;
sourceserv = source; /* Set sourceserv to the actual source string */
}
std::vector<std::string> modelist;
@@ -99,14 +97,8 @@ bool TreeSocket::ForceMode(const std::string &source, std::deque<std::string> &p
*/
if (TS <= ourTS)
{
- if (smode)
- {
- this->ServerInstance->SendMode(modelist, who);
- }
- else
- {
- this->ServerInstance->CallCommandHandler("MODE", modelist, who);
- }
+ ServerInstance->Modes->Process(modelist, who, (who == Utils->ServerUser));
+
/* HOT POTATO! PASS IT ON! */
Utils->DoOneToAllButSender(source,"FMODE",params,sourceserv);
}