瀏覽代碼

Fix wrong nick getting logged for revenge deflags

Bryan Drewery 14 年之前
父節點
當前提交
440e69e18f
共有 2 個文件被更改,包括 5 次插入5 次删除
  1. 1 1
      src/mod/irc.mod/chan.c
  2. 4 4
      src/mod/irc.mod/mode.c

+ 1 - 1
src/mod/irc.mod/chan.c

@@ -2995,7 +2995,7 @@ static int gotkick(char *from, char *origmsg)
         } else {
           if (m->user) {
             char tmp[128] = "";
-            simple_snprintf(tmp, sizeof(tmp), "Kicked bot %s on %s", m->nick, chan->dname);
+            simple_snprintf(tmp, sizeof(tmp), "Kicked bot %s on %s", mv->nick, chan->dname);
             deflag_user(m->user, DEFLAG_EVENT_REVENGE_KICK, tmp, chan);
           }
         }

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

@@ -725,7 +725,7 @@ got_deop(struct chanset_t *chan, memberlist *m, memberlist *mv, char *isserver)
       } else {
         if (m->user) {
           char tmp[128] = "";
-          simple_snprintf(tmp, sizeof(tmp), "Deopped bot %s on %s", m->nick, chan->dname);
+          simple_snprintf(tmp, sizeof(tmp), "Deopped bot %s on %s", mv->nick, chan->dname);
           deflag_user(m->user, DEFLAG_EVENT_REVENGE_DEOP, tmp, chan);
         }
       }
@@ -748,14 +748,14 @@ got_ban(struct chanset_t *chan, memberlist *m, char *mask, char *isserver)
 
   // Make an array of all matching users
   bd::Array<memberlist*> matchedUserMembers;
-  bool matched_bot = false;
+  memberlist *matched_bot = NULL;
 
   for (memberlist *mv = chan->channel.member; mv && mv->nick[0]; mv = mv->next) {
     member_getuser(mv);
     if (mv->user) {
       if ((wild_match(mask, mv->from) || match_cidr(mask, mv->from))) {
         if (!matched_bot && mv != m && mv->user->bot) {
-          matched_bot = true;
+          matched_bot = mv;
         }
         if (mv->user && !isexempted(chan, mv->from)) {
           matchedUserMembers << mv;
@@ -772,7 +772,7 @@ got_ban(struct chanset_t *chan, memberlist *m, char *mask, char *isserver)
     } else {
       if (m->user) {
         char tmp[128] = "";
-        simple_snprintf(tmp, sizeof(tmp), "Banned bot %s (%s) on %s", m->nick, mask, chan->dname);
+        simple_snprintf(tmp, sizeof(tmp), "Banned bot %s (%s) on %s", matched_bot->nick, mask, chan->dname);
         deflag_user(m->user, DEFLAG_EVENT_REVENGE_BAN, tmp, chan);
       }
     }