summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/fmode.cpp
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-04-04 19:36:39 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-04-04 19:36:39 +0000
commit056682a6e1746306117a7f3e820e8c4ea37f722a (patch)
treed7bb1ba6a85258b9e9a5ceefb623f314387fabdf /src/modules/m_spanningtree/fmode.cpp
parent1acc89351c396fbee1bb8e196da412c88b0e9302 (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.cpp7
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);