浏览代码

Use enum for reason for locking chan (#37)

Bryan Drewery 14 年之前
父节点
当前提交
66bdaede24
共有 3 个文件被更改,包括 10 次插入4 次删除
  1. 1 1
      src/mod/irc.mod/chan.c
  2. 4 2
      src/mod/irc.mod/irc.c
  3. 5 1
      src/mod/irc.mod/irc.h

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

@@ -2714,7 +2714,7 @@ static int gotjoin(char *from, char *chname)
           chan->channel.drone_jointime = now;
 
           if (!chan->channel.drone_set_mode && chan->channel.drone_joins >= chan->flood_mjoin_thr) {  //flood from dronenet, let's attempt to set +im
-            detected_drone_flood(chan, m);
+            detected_drone_flood(chan, m, FLOOD_DRONE);
           }
         }
 

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

@@ -160,7 +160,7 @@ void unlock_chan(struct chanset_t *chan)
   chan->channel.drone_set_mode = 0;
 }
 
-void detected_drone_flood(struct chanset_t* chan, memberlist* m) {
+void detected_drone_flood(struct chanset_t* chan, memberlist* m, flood_reason_t reason) {
   egg_timeval_t howlong;
 
   chan->channel.drone_set_mode = 0;
@@ -186,7 +186,9 @@ void detected_drone_flood(struct chanset_t* chan, memberlist* m) {
     howlong.usec = 0;
     timer_create_complex(&howlong, "unlock", (Function) unlock_chan, (void *) chan, 0);
 
-    putlog(LOG_MISC, "*", "Flood detected in %s! Locking for %d seconds.", chan->dname, chan->flood_lock_time);
+    if (reason == FLOOD_DRONE) {
+      putlog(LOG_MISC, "*", "Flood detected in %s! Locking for %d seconds.", chan->dname, chan->flood_lock_time);
+    }
   }
 }
 

+ 5 - 1
src/mod/irc.mod/irc.h

@@ -24,6 +24,10 @@ namespace bd {
   class String;
 }
 
+enum flood_reason_t {
+  FLOOD_DRONE
+};
+
 #ifdef CACHE
 typedef struct cache_chan_b {
   struct cache_chan_b *next;
@@ -90,7 +94,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 detected_drone_flood(struct chanset_t* chan, memberlist*);
+void detected_drone_flood(struct chanset_t* chan, memberlist*, flood_reason_t reason);
 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)