time_t users_last; /* when last user was in channel */
time_t last_knock; /* don't allow knock to flood */
time_t users_last; /* when last user was in channel */
time_t last_knock; /* don't allow knock to flood */
#define CHFL_PEON 0x0000 /* normal member of channel */
#define CHFL_CHANOP 0x0001 /* Channel operator */
#define CHFL_VOICE 0x0002 /* the power to speak */
#define CHFL_PEON 0x0000 /* normal member of channel */
#define CHFL_CHANOP 0x0001 /* Channel operator */
#define CHFL_VOICE 0x0002 /* the power to speak */
#define CHFL_BANNED 0x0008 /* cached as banned */
#define CHFL_QUIETED 0x0010 /* cached as being +q victim */
#define ONLY_SERVERS 0x0020
#define CHFL_BANNED 0x0008 /* cached as banned */
#define CHFL_QUIETED 0x0010 /* cached as being +q victim */
#define ONLY_SERVERS 0x0020
#define is_chanop(x) ((x) && (x)->flags & CHFL_CHANOP)
#define is_voiced(x) ((x) && (x)->flags & CHFL_VOICE)
#define is_chanop_voiced(x) ((x) && (x)->flags & (CHFL_CHANOP|CHFL_VOICE))
#define is_chanop(x) ((x) && (x)->flags & CHFL_CHANOP)
#define is_voiced(x) ((x) && (x)->flags & CHFL_VOICE)
#define is_chanop_voiced(x) ((x) && (x)->flags & (CHFL_CHANOP|CHFL_VOICE))
#define EXTBAN_NOMATCH 0 /* valid mask, no match */
#define EXTBAN_MATCH 1 /* matches */
#define EXTBAN_NOMATCH 0 /* valid mask, no match */
#define EXTBAN_MATCH 1 /* matches */
extern void remove_user_from_channels(struct Client *);
extern void invalidate_bancache_user(struct Client *);
extern void remove_user_from_channels(struct Client *);
extern void invalidate_bancache_user(struct Client *);
extern struct ChannelMode chmode_table[256];
extern int add_id(struct Client *source_p, struct Channel *chptr, const char *banid,
extern struct ChannelMode chmode_table[256];
extern int add_id(struct Client *source_p, struct Channel *chptr, const char *banid,
-extern int del_id(struct Channel *chptr, const char *banid, dlink_list * list, long mode_type);
+extern int del_id(struct Channel *chptr, const char *banid, rb_dlink_list * list, long mode_type);