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';