aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/treesocket2.cpp
diff options
context:
space:
mode:
authorGravatar w00t2008-05-05 21:17:09 +0000
committerGravatar w00t2008-05-05 21:17:09 +0000
commit2ebf1f0055bf5c4c74dae2a0b5dee6d9ad3cfeb0 (patch)
treef93d8e7268215283b20da8f6dc52099da1c0d59c /src/modules/m_spanningtree/treesocket2.cpp
parentDon't propegate SETHOST, ChangeDisplayedHost sends out hostchange anyway (diff)
Okay, this was good in theory, but totally and utterly fucked in implementation. Rip out automatic global snotice code. It's not going to be *that* difficult to trigger global snotice with protocol interface now anyway I guess. We need to re-add calls to protocol interfaces in places like failed oper and so on.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9649 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_spanningtree/treesocket2.cpp')
-rw-r--r--src/modules/m_spanningtree/treesocket2.cpp28
1 files changed, 2 insertions, 26 deletions
diff --git a/src/modules/m_spanningtree/treesocket2.cpp b/src/modules/m_spanningtree/treesocket2.cpp
index 915158f8d..5d2471b2c 100644
--- a/src/modules/m_spanningtree/treesocket2.cpp
+++ b/src/modules/m_spanningtree/treesocket2.cpp
@@ -488,34 +488,10 @@ bool TreeSocket::ProcessLine(std::string &line)
{
if (params.size() >= 2)
{
- /*
- * XXX:
- * The SetLocalOnly stuff here is to work around a bit of a nasty recursion bug.
- * WriteToSnoMask() sends global snotices out globally, but of course this is a problem
- * when triggering it from an already global snotice (yay loops).
- *
- * The current (horrible) solution I'm implementing here because nobody else seems to
- * want to look at this except me, sets the snotice local-only temporarily, sends the snotice
- * and then flushes the snomask.
- *
- * This works, but it is total and utter garbage, as it bypasses the snotice compression
- * totally for this snomask (and may well trigger other snotices to send too early.....)
- * but at least it won't crash the server.
- *
- * Master of hacks, we salute you!
- * -- w00t
- */
-
- // If we get a SNONOTICE, it must have been global... so set it local
- Instance->SNO->SetLocalOnly(*(params[0].c_str()), true);
- // send the message
Instance->SNO->WriteToSnoMask(*(params[0].c_str()), "From " + (ServerSource ? ServerSource->GetName().c_str() : prefix) + ": "+ params[1]);
- // flush the queue
- Instance->SNO->FlushSnotices();
- // set it global again
- Instance->SNO->SetLocalOnly(*(params[0].c_str()), true);
+ return Utils->DoOneToAllButSenderRaw(line, sourceserv, prefix, command, params);
}
- return Utils->DoOneToAllButSenderRaw(line, sourceserv, prefix, command, params);
+
}
else if (command == "BURST")
{