Committer  : a1kmm
CVSROOT    : /cvsroot/undernet-ircu
Module     : ircu2.10
Commit time: 2005-10-30 01:29:08 UTC

Modified files:
     ircd/m_join.c ChangeLog

Log message:

Fix OVERRIDE when key is OVERRIDE.

---------------------- diff included ----------------------
Index: ircu2.10/ChangeLog
diff -u ircu2.10/ChangeLog:1.728 ircu2.10/ChangeLog:1.729
--- ircu2.10/ChangeLog:1.728    Fri Oct 28 00:25:46 2005
+++ ircu2.10/ChangeLog  Sat Oct 29 18:28:57 2005
@@ -1,3 +1,8 @@
+2005-10-30  Andrew Miller  <[EMAIL PROTECTED]>
+
+       * ircd/m_join.c (m_join): Fix check for OVERRIDE when the real channel
+       key is override.
+
 2005-10-28  Alex Badea  <[EMAIL PROTECTED]>
 
        * ircd/m_kick.c (ms_kick): Fix format string typo (bug #1339538)
Index: ircu2.10/ircd/m_join.c
diff -u ircu2.10/ircd/m_join.c:1.35 ircu2.10/ircd/m_join.c:1.36
--- ircu2.10/ircd/m_join.c:1.35 Thu Oct  6 16:49:25 2005
+++ ircu2.10/ircd/m_join.c      Sat Oct 29 18:28:57 2005
@@ -20,7 +20,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
- * $Id: m_join.c,v 1.35 2005/10/06 23:49:25 entrope Exp $
+ * $Id: m_join.c,v 1.36 2005/10/30 01:28:57 a1kmm Exp $
  */
 
 #include "config.h"
@@ -210,24 +210,30 @@
       if (IsLocalChannel(chptr->chname)
           && HasPriv(sptr, PRIV_WALK_LCHAN)
           && !(flags & CHFL_CHANOP)
-          && key && !strcmp(key, "OVERRIDE")
-          && strcmp(chptr->mode.key, "OVERRIDE"))
+          && key && !strcmp(key, "OVERRIDE"))
       {
-        switch (err) {
-        case 0:
+        if (err == 0 && strcmp(chptr->mode.key, "OVERRIDE") &&
+            strcmp(chptr->mode.apass, "OVERRIDE") &&
+            strcmp(chptr->mode.upass, "OVERRIDE"))
+        {
           send_reply(sptr, ERR_DONTCHEAT, chptr->chname);
           continue;
-        case ERR_INVITEONLYCHAN: err = 'i'; break;
-        case ERR_CHANNELISFULL:  err = 'l'; break;
-        case ERR_BANNEDFROMCHAN: err = 'b'; break;
-        case ERR_BADCHANNELKEY:  err = 'k'; break;
-        case ERR_NEEDREGGEDNICK: err = 'r'; break;
-        default: err = '?'; break;
         }
-        /* send accountability notice */
-        sendto_opmask_butone(0, SNO_HACK4, "OPER JOIN: %C JOIN %H "
-                             "(overriding +%c)", sptr, chptr, err);
-        err = 0;
+        if (err != 0)
+        {
+          switch (err) {
+          case ERR_INVITEONLYCHAN: err = 'i'; break;
+          case ERR_CHANNELISFULL:  err = 'l'; break;
+          case ERR_BANNEDFROMCHAN: err = 'b'; break;
+          case ERR_BADCHANNELKEY:  err = 'k'; break;
+          case ERR_NEEDREGGEDNICK: err = 'r'; break;
+          default: err = '?'; break;
+          }
+          /* send accountability notice */
+          sendto_opmask_butone(0, SNO_HACK4, "OPER JOIN: %C JOIN %H "
+                               "(overriding +%c)", sptr, chptr, err);
+          err = 0;
+        }
       }
 
       /* Is there some reason the user may not join? */
----------------------- End of diff -----------------------
_______________________________________________
Patches mailing list
[email protected]
http://undernet.sbg.org/mailman/listinfo/patches

Reply via email to