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:
@@ -26,6 +26,8 @@ void clean_flood_list(void);
|
|||||||
#define KICK_FLOOD 0x0800
|
#define KICK_FLOOD 0x0800
|
||||||
#define JOIN_FLOOD 0x1000
|
#define JOIN_FLOOD 0x1000
|
||||||
|
|
||||||
|
#define FLOOD_FLAG(t) ((unsigned)(t))
|
||||||
|
|
||||||
#include "hash.h"
|
#include "hash.h"
|
||||||
#define FLOOD_HASHSIZE 31
|
#define FLOOD_HASHSIZE 31
|
||||||
extern HashEntry no_flood_list[FLOOD_HASHSIZE];
|
extern HashEntry no_flood_list[FLOOD_HASHSIZE];
|
||||||
|
|||||||
@@ -1012,7 +1012,7 @@ typedef struct flood_stru
|
|||||||
char *name;
|
char *name;
|
||||||
char *host;
|
char *host;
|
||||||
char *channel;
|
char *channel;
|
||||||
int type;
|
unsigned flags;
|
||||||
char flood;
|
char flood;
|
||||||
unsigned long cnt;
|
unsigned long cnt;
|
||||||
struct timeval start;
|
struct timeval start;
|
||||||
|
|||||||
@@ -401,15 +401,15 @@ int BX_check_flooding(char *nick, int type, char *line, char *channel)
|
|||||||
{
|
{
|
||||||
remove_oldest_flood_hashlist(&flood_list[0]);
|
remove_oldest_flood_hashlist(&flood_list[0]);
|
||||||
tmp = add_name_to_floodlist(nick, FromUserHost, channel, flood_list, FLOOD_HASHSIZE);
|
tmp = add_name_to_floodlist(nick, FromUserHost, channel, flood_list, FLOOD_HASHSIZE);
|
||||||
tmp->type = type;
|
tmp->flags = FLOOD_FLAG(type);
|
||||||
tmp->cnt = 1;
|
tmp->cnt = 1;
|
||||||
get_time(&tmp->start);
|
get_time(&tmp->start);
|
||||||
tmp->flood = 0;
|
tmp->flood = 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (!(tmp->type & type))
|
if (!(tmp->flags & FLOOD_FLAG(type)))
|
||||||
{
|
{
|
||||||
tmp->type |= type;
|
tmp->flags |= FLOOD_FLAG(type);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user