Separate notion of _FLOOD constant from the flags stored in the Flooding struct

This adds a FLOOD_FLAG() macro to convert a _FLOOD constant to the appropriate flag.  For now this just
casts the argument to unsigned int.

Rename Flooding.type to Flooding.flags and change it to unsigned int, to reflect that it's a bitfield of
flags for multiple flooding types.
This commit is contained in:
Kevin Easton
2017-01-18 17:03:06 +11:00
parent 78dbdea441
commit fef98f43ba
3 changed files with 6 additions and 4 deletions

View File

@@ -26,6 +26,8 @@ void clean_flood_list(void);
#define KICK_FLOOD 0x0800
#define JOIN_FLOOD 0x1000
#define FLOOD_FLAG(t) ((unsigned)(t))
#include "hash.h"
#define FLOOD_HASHSIZE 31
extern HashEntry no_flood_list[FLOOD_HASHSIZE];

View File

@@ -1012,7 +1012,7 @@ typedef struct flood_stru
char *name;
char *host;
char *channel;
int type;
unsigned flags;
char flood;
unsigned long cnt;
struct timeval start;

View File

@@ -401,15 +401,15 @@ int BX_check_flooding(char *nick, int type, char *line, char *channel)
{
remove_oldest_flood_hashlist(&flood_list[0]);
tmp = add_name_to_floodlist(nick, FromUserHost, channel, flood_list, FLOOD_HASHSIZE);
tmp->type = type;
tmp->flags = FLOOD_FLAG(type);
tmp->cnt = 1;
get_time(&tmp->start);
tmp->flood = 0;
return 1;
}
if (!(tmp->type & type))
if (!(tmp->flags & FLOOD_FLAG(type)))
{
tmp->type |= type;
tmp->flags |= FLOOD_FLAG(type);
return 1;
}