summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-11-12 17:47:59 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-11-12 17:47:59 +0000
commitee3bdd6e5d886a558285157de93d2cef312ee74a (patch)
tree680744a96cf76bcbe704208be99f64dd3869f9d6 /src/modules/m_spanningtree.cpp
parent610cb2db1477482ae7bfafd46b02d6455118158e (diff)
Slight hax. When bursting a channel - in the fmode, if we dont have +n or +t set this side, explicitly put -n or -t into the mode string.
This is because the other side will ass-u-me +nt set because this is the default. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5719 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_spanningtree.cpp')
-rw-r--r--src/modules/m_spanningtree.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp
index 28d84fcdc..ba4f208d0 100644
--- a/src/modules/m_spanningtree.cpp
+++ b/src/modules/m_spanningtree.cpp
@@ -1927,6 +1927,25 @@ class TreeSocket : public InspSocket
if (numusers)
buffer.append(list).append("\r\n");
+ /* Sorry for the hax. Because newly created channels assume +nt,
+ * if this channel doesnt have +nt, explicitly send -n and -t for the missing modes.
+ */
+ bool inverted = false;
+ if (!c->IsModeSet('n'))
+ {
+ modes.append("-n");
+ inverted = true;
+ }
+ if (!c->IsModeSet('t'))
+ {
+ modes.append("-t");
+ inverted = true;
+ }
+ if (inverted)
+ {
+ modes.append("+");
+ }
+
for (BanList::iterator b = c->bans.begin(); b != c->bans.end(); b++)
{
modes.append("b");