소스 검색

Show what kind of mass flood was detected (#37)

Bryan Drewery 14 년 전
부모
커밋
63512f2fa4
3개의 변경된 파일6개의 추가작업 그리고 6개의 파일을 삭제
  1. 1 1
      src/mod/irc.mod/chan.c
  2. 3 3
      src/mod/irc.mod/irc.c
  3. 2 2
      src/mod/irc.mod/irc.h

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

@@ -661,7 +661,7 @@ static bool detect_chan_flood(memberlist* m, const char *from, struct chanset_t
         (*global_floodnum).remove(which);
         (*global_floodtime).remove(which);
         if (!chan->channel.drone_set_mode) {
-          lockdown_chan(chan, FLOOD_DRONE);
+          lockdown_chan(chan, FLOOD_MASS_FLOOD, ftype);
         }
       }
     }

+ 3 - 3
src/mod/irc.mod/irc.c

@@ -160,7 +160,7 @@ void unlock_chan(struct chanset_t *chan)
   chan->channel.drone_set_mode = 0;
 }
 
-void lockdown_chan(struct chanset_t* chan, flood_reason_t reason) {
+void lockdown_chan(struct chanset_t* chan, flood_reason_t reason, const char* flood_type) {
   if (!me_op(chan)) {
     return;
   }
@@ -193,8 +193,8 @@ void lockdown_chan(struct chanset_t* chan, flood_reason_t reason) {
       putlog(LOG_MISC, "*", "Join flood detected in %s! Locking for %d seconds.", chan->dname, chan->flood_lock_time);
     } else if (reason == FLOOD_BANLIST) {
       putlog(LOG_MISC, "*", "Banlist full in %s! Locking for %d seconds.", chan->dname, chan->flood_lock_time);
-    } else if (reason == FLOOD_DRONE) {
-      putlog(LOG_MISC, "*", "Drone flood detected in %s! Locking for %d seconds.", chan->dname, chan->flood_lock_time);
+    } else if (reason == FLOOD_MASS_FLOOD) {
+      putlog(LOG_MISC, "*", "Mass flood (%s) detected in %s! Locking for %d seconds.", flood_type, chan->dname, chan->flood_lock_time);
     }
   }
 }

+ 2 - 2
src/mod/irc.mod/irc.h

@@ -27,7 +27,7 @@ namespace bd {
 enum flood_reason_t {
   FLOOD_MASSJOIN,
   FLOOD_BANLIST,
-  FLOOD_DRONE
+  FLOOD_MASS_FLOOD
 };
 
 #ifdef CACHE
@@ -96,7 +96,7 @@ static bool killmember(struct chanset_t *chan, char *nick);
 static void check_lonely_channel(struct chanset_t *chan);
 static int gotmode(char *, char *);
 void unset_im(struct chanset_t* chan);
-void lockdown_chan(struct chanset_t* chan, flood_reason_t reason);
+void lockdown_chan(struct chanset_t* chan, flood_reason_t reason, const char* flood_type = NULL);
 static void send_chan_who(int queue, struct chanset_t* chan, bool chain = 0);
 #define newban(chan, mask, who)         new_mask((chan)->channel.ban, mask, who)
 #define newexempt(chan, mask, who)      new_mask((chan)->channel.exempt, mask, who)