Bryan Drewery 22 tahun lalu
induk
melakukan
f8e8fb5585
1 mengubah file dengan 5 tambahan dan 5 penghapusan
  1. 5 5
      src/mod/irc.mod/mode.c

+ 5 - 5
src/mod/irc.mod/mode.c

@@ -948,7 +948,7 @@ gotmode(char *from, char *msg)
         if (me_opped && !me_op(chan) && channel_take(chan))
           do_take(chan);
 
-        /* Now we got modes[], chan, u, nick, hfrom, and count of each relevant mode */
+        /* Now we got modes[], chan, u, nick, and count of each relevant mode */
 
         /* check for mdop */
         if (me_op(chan)) {
@@ -981,14 +981,14 @@ gotmode(char *from, char *msg)
             if (u->bot && !channel_fastop(chan) && !channel_take(chan)) {
               int isbadop = 0;
 
-              /* if unbans == 1 && ops */
-              if ((modecnt != 2) || (strncmp(modes[0], "+o", 2)) || (strncmp(modes[1], "-b", 2))) {
+              /* If no unbans or the -b is not the LAST mode, it's bad. */
+              if (unbans != 1 || (strncmp(modes[modecnt], "-b", 2))) {
                 isbadop = 1;
               } else {
                 char enccookie[25] = "", plaincookie[25] = "", key[NICKLEN + 20] = "", goodcookie[25] = "";
 
                 /* -b *!*@[...] */
-                strncpyz(enccookie, (char *) &(modes[1][8]), sizeof(enccookie));
+                strncpyz(enccookie, (char *) &(modes[modecnt][8]), sizeof(enccookie));
                 p = enccookie + strlen(enccookie) - 1;
                 strcpy(key, nick);
                 strcat(key, SALT2);
@@ -1000,7 +1000,7 @@ gotmode(char *from, char *msg)
                  * last 5 chars of nick
                  * last 5 regular chars of chan
                  */
-                makeplaincookie(chan->dname, (char *) (modes[0] + 3), goodcookie);
+                makeplaincookie(chan->dname, (char *) (modes[0] + 3), goodcookie);	/*[0]+3 is first +o nick */
                 if (strncmp((char *) &plaincookie[6], (char *) &goodcookie[6], 5))
                   isbadop = 2;
                 else if (strncmp((char *) &plaincookie[11], (char *) &goodcookie[11], 5))