Prechádzať zdrojové kódy

On a nick change, clear any pending modes, but still check for actions on the new nick!uhost.

Upstream issue https://github.com/eggheads/eggdrop/issues/94
Bryan Drewery 10 rokov pred
rodič
commit
c8f3802ee9
2 zmenil súbory, kde vykonal 5 pridanie a 10 odobranie
  1. 1 0
      doc/UPDATES.md
  2. 4 10
      src/mod/irc.mod/chan.cc

+ 1 - 0
doc/UPDATES.md

@@ -11,6 +11,7 @@
   * Fix bot not auto-opping after just connecting.
   * Fix invites not being applied in -dynamicinvites channels when +i is set.
   * Fix not handling auto-op in minutely channel rechecks.
+  * Fix auto-voice and auto-op not applying after a nick change.
 
 # 1.4.6
   * Disable demo TCL support by default to prevent confusion during build.

+ 4 - 10
src/mod/irc.mod/chan.cc

@@ -3073,19 +3073,13 @@ static int gotnick(char *from, char *msg)
 
       detect_chan_flood(m, from, chan, FLOOD_NICK);
 
-      /* don't fill the serverqueue with modes or kicks in a nickflood */
-      if (chan_sentkick(m) || chan_sentdeop(m) || chan_sentop(m) ||
-	  chan_sentdevoice(m) || chan_sentvoice(m))
-	m->flags |= STOPCHECK;
       /* Any pending kick or mode to the old nick is lost. */
-	m->flags &= ~(SENTKICK | SENTDEOP | SENTOP |
-		      SENTVOICE | SENTDEVOICE);
+      m->flags &= ~(SENTKICK | SENTDEOP | SENTOP |
+          SENTVOICE | SENTDEVOICE);
 
       /* nick-ban or nick is +k or something? */
-      if (!chan_stopcheck(m)) {
-	get_user_flagrec(m->user, &fr, chan->dname, chan);
-	check_this_member(chan, m->nick, &fr);
-      }
+      get_user_flagrec(m->user, &fr, chan->dname, chan);
+      check_this_member(chan, m->nick, &fr);
     }
   }
   return 0;