Selaa lähdekoodia

Fix victim flagrec not being updated for every [+-]o mode

Regression of #35
Bryan Drewery 13 vuotta sitten
vanhempi
commit
844b8ff2d7
2 muutettua tiedostoa jossa 8 lisäystä ja 9 poistoa
  1. 2 0
      doc/UPDATES
  2. 6 9
      src/mod/irc.mod/mode.c

+ 2 - 0
doc/UPDATES

@@ -5,6 +5,8 @@ maint
   * Don't allow more than 5 bots per binary.
   * Fix CAPS/COLOR flood detection not obeying x|x flags
   * Fix OPs engaging the mass flood protection
+  * Fix +bitch not working under some conditions
+  * Fix "+d virus" causing bots to enforce deop anyone who ops someone who opped a +d user
 
 1.4.0 - http://wraith.botpack.net/milestone/1.4.0
   * Updated server list, 'set -yes servers -' and 'set -yes servers6 -' to get new list.

+ 6 - 9
src/mod/irc.mod/mode.c

@@ -557,14 +557,13 @@ got_op(struct chanset_t *chan, memberlist *m, memberlist *mv)
     meop = 1;
   }
 
-  if (mv->user) {
-    get_user_flagrec(mv->user, &victim, chan->dname, chan);
+  get_user_flagrec(mv->user, &victim, chan->dname, chan);
 
-    // Did some other bot just get opped, and I'm not opped yet?
-    if (mv->user->bot && !me_opped && !meop) {
-      chan->channel.do_opreq = 1;
-    }
+  // Did some other bot just get opped, and I'm not opped yet?
+  if (mv->user && mv->user->bot && !me_opped && !meop) {
+    chan->channel.do_opreq = 1;
   }
+
   /* Flags need to be set correctly right from the beginning now, so that
    * add_mode() doesn't get irritated.
    */
@@ -655,9 +654,7 @@ got_deop(struct chanset_t *chan, memberlist *m, memberlist *mv, char *isserver)
     return;
 
   /* m is NULL if a server made the change */
-  if (mv->user) {
-    get_user_flagrec(mv->user, &victim, chan->dname, chan);
-  }
+  get_user_flagrec(mv->user, &victim, chan->dname, chan);
 
   /* Flags need to be set correctly right from the beginning now, so that
    * add_mode() doesn't get irritated.