]> jfr.im git - irc/quakenet/snircd-patchqueue.git/commitdiff
oplevelforward.patch - revert to earlier fix + comments
authorwiebe <redacted>
Wed, 11 Feb 2009 15:27:16 +0000 (16:27 +0100)
committerwiebe <redacted>
Wed, 11 Feb 2009 15:27:16 +0000 (16:27 +0100)
oplevelforward.patch

index 8db253950a2620df06eb88baf46a6095c6a61ea5..016bfcacebdf0719950456ccdc4eeff46e149998 100644 (file)
@@ -1,19 +1,32 @@
 Fix forwarding by hub of oplevels for non Apass channels.
 
-diff -r 8097c580c34d ircd/m_burst.c
---- a/ircd/m_burst.c   Sat Jan 24 00:27:47 2009 +0100
-+++ b/ircd/m_burst.c   Sat Jan 24 01:10:18 2009 +0100
-@@ -544,7 +544,12 @@
+diff -r 3ccde3df7274 ircd/m_burst.c
+--- a/ircd/m_burst.c   Wed Feb 11 15:00:23 2009 +0100
++++ b/ircd/m_burst.c   Wed Feb 11 16:25:54 2009 +0100
+@@ -544,7 +544,25 @@
              nickstr[nickpos++] = 'v';
            if (current_mode & CHFL_CHANOP)
              {
 -              if (chptr->mode.apass[0])
 +              /* snircd - oplevel forward fix
-+               * appearantly this is done for some anti netrider stuff? why though..?
-+               * anyway, we do not need to bother with it with OPLEVELS disabled
-+               * and just pass on the oplevel to our uplinks
++               *
++               * oplevel is not forwarded for -A channels
++               *  appearantly this is done for some anti net rider stuff?
++               *  but there does not seem any mention of that in
++               *  http://undernet-ircu.svn.sf.net/viewvc/undernet-ircu/ircu2/trunk/ircd/m_burst.c?r1=1340&r2=1342
++               *
++               *  it just seems to be a fix to not forward oplevel 999 as numeric:999
++               *  but as numeric:o, which are the same level, but a legacy server cannot
++               *  handle numeric:999
++               *
++               * the fix seems to be to pass on the oplevel when
++               * oplevel smaller than MAXOPLEVEL, else just an 'o'
 +               */
-+              if (chptr->mode.apass[0] || !feature_bool(FEAT_OPLEVELS))
++              /* oplevel is lower than MAXOPLEVEL, and thus we forward oplevels
++               *   if in the future outgoing burst is changed
++               *   to sent :999 instead of :o this condition needs changing too
++               */
++              if (oplevel < MAXOPLEVEL)
                nickpos += ircd_snprintf(0, nickstr + nickpos, sizeof(nickstr) - nickpos, "%u", oplevel);
                else
                  nickstr[nickpos++] = 'o';