]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Slight hax. When bursting a channel - in the fmode, if we dont have +n or +t set...
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 12 Nov 2006 17:47:59 +0000 (17:47 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 12 Nov 2006 17:47:59 +0000 (17:47 +0000)
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

src/modules/m_spanningtree.cpp

index 28d84fcdc06fe8821c26d8cb5308a453676433df..ba4f208d02402ec00a1b0d710ad022db5db9f9b6 100644 (file)
@@ -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");