diff options
author | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-04-04 19:36:39 +0000 |
---|---|---|
committer | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-04-04 19:36:39 +0000 |
commit | 056682a6e1746306117a7f3e820e8c4ea37f722a (patch) | |
tree | d7bb1ba6a85258b9e9a5ceefb623f314387fabdf /src/modules/m_spanningtree/fmode.cpp | |
parent | 1acc89351c396fbee1bb8e196da412c88b0e9302 (diff) |
Add simple modes to FJOIN instead of sending a seperate FMODE all the time. This has the benefit of less bandwidth, making us closer to TS6 compliant, and perhaps defeating a few desync conditions in the future..
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9333 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_spanningtree/fmode.cpp')
-rw-r--r-- | src/modules/m_spanningtree/fmode.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/modules/m_spanningtree/fmode.cpp b/src/modules/m_spanningtree/fmode.cpp index 94a5c1dce..6fa269584 100644 --- a/src/modules/m_spanningtree/fmode.cpp +++ b/src/modules/m_spanningtree/fmode.cpp @@ -33,6 +33,7 @@ bool TreeSocket::ForceMode(const std::string &source, std::deque<std::string> &p bool smode = false; std::string sourceserv; + /* Are we dealing with an FMODE from a user, or from a server? */ User* who = this->Instance->FindNick(source); if (who) @@ -44,7 +45,7 @@ bool TreeSocket::ForceMode(const std::string &source, std::deque<std::string> &p { /* FMODE from a server, use a fake user to receive mode feedback */ who = this->Instance->FakeClient; - smode = true; /* Setting this flag tells us we should free the User later */ + smode = true; /* Setting this flag tells us it is a server mode*/ sourceserv = source; /* Set sourceserv to the actual source string */ } const char* modelist[64]; @@ -72,6 +73,7 @@ bool TreeSocket::ForceMode(const std::string &source, std::deque<std::string> &p User* dst = this->Instance->FindNick(params[0]); Channel* chan = NULL; time_t ourTS = 0; + if (dst) { ourTS = dst->age; @@ -99,9 +101,6 @@ bool TreeSocket::ForceMode(const std::string &source, std::deque<std::string> &p */ if (TS <= ourTS) { - if ((TS < ourTS) && (!dst)) - Instance->Logs->Log("m_spanningtree",DEFAULT,"*** BUG *** Channel TS sent in FMODE to %s is %lu which is not equal to %lu!", params[0].c_str(), (unsigned long) TS, (unsigned long) ourTS); - if (smode) { this->Instance->SendMode(modelist, n, who); |