X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/be29ec793d7efd234292d91231e7366b158a85ea..ad516b7d47389fabe9cc211a1279bb5a492829b9:/include/channel.h?ds=sidebyside diff --git a/include/channel.h b/include/channel.h index 0999a964..a9c07529 100644 --- a/include/channel.h +++ b/include/channel.h @@ -20,8 +20,6 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA - * - * $Id: channel.h 3580 2007-11-07 23:45:14Z jilles $ */ #ifndef INCLUDED_channel_h @@ -33,6 +31,8 @@ #define MAXMODEPARAMS 4 #define MAXMODEPARAMSSERV 10 +#include + struct Client; /* mode structure for channels */ @@ -73,7 +73,7 @@ struct Channel unsigned int join_count; /* joins within delta */ unsigned int join_delta; /* last ts of join */ - unsigned long bants; + time_t bants; time_t channelts; char *chname; @@ -93,7 +93,7 @@ struct membership struct Client *client_p; unsigned int flags; - unsigned long bants; + time_t bants; }; #define BANLEN 195 @@ -193,7 +193,7 @@ typedef int (*ExtbanFunc)(const char *data, struct Client *client_p, #define IsMember(who, chan) ((who && who->user && \ find_channel_membership(chan, who)) ? 1 : 0) -#define IsChannelName(name) ((name) && (*(name) == '#' || *(name) == '&')) +#define IsChannelName(name) ((name) && (IsChanPrefix(*(name)))) /* extban function results */ #define EXTBAN_INVALID -1 /* invalid mask, false even if negated */ @@ -213,12 +213,14 @@ extern void destroy_channel(struct Channel *); extern int can_send(struct Channel *chptr, struct Client *who, struct membership *); -extern int flood_attack_channel(int p_or_n, struct Client *source_p, +extern bool flood_attack_channel(int p_or_n, struct Client *source_p, struct Channel *chptr, char *chname); +struct matchset; extern int is_banned(struct Channel *chptr, struct Client *who, - struct membership *msptr, const char *, const char *, const char **); + struct membership *msptr, const struct matchset *ms, + const char **); extern int is_quieted(struct Channel *chptr, struct Client *who, - struct membership *msptr, const char *, const char *); + struct membership *msptr, const struct matchset *ms); extern int can_join(struct Client *source_p, struct Channel *chptr, const char *key, const char **forward); @@ -231,7 +233,7 @@ extern void invalidate_bancache_user(struct Client *); extern void free_channel_list(rb_dlink_list *); -extern int check_channel_name(const char *name); +extern bool check_channel_name(const char *name); extern void channel_member_names(struct Channel *chptr, struct Client *, int show_eon); @@ -260,11 +262,11 @@ void resv_chan_forcepart(const char *name, const char *reason, int temp_time); extern void set_channel_mode(struct Client *client_p, struct Client *source_p, struct Channel *chptr, struct membership *msptr, int parc, const char *parv[]); extern void set_channel_mlock(struct Client *client_p, struct Client *source_p, - struct Channel *chptr, const char *newmlock, int propagate); + struct Channel *chptr, const char *newmlock, bool propagate); extern struct ChannelMode chmode_table[256]; -extern int add_id(struct Client *source_p, struct Channel *chptr, const char *banid, +extern bool add_id(struct Client *source_p, struct Channel *chptr, const char *banid, const char *forward, rb_dlink_list * list, long mode_type); extern struct Ban * del_id(struct Channel *chptr, const char *banid, rb_dlink_list * list, @@ -276,7 +278,7 @@ extern int match_extban(const char *banstr, struct Client *client_p, struct Chan extern int valid_extban(const char *banstr, struct Client *client_p, struct Channel *chptr, long mode_type); const char * get_extban_string(void); -extern int get_channel_access(struct Client *source_p, struct membership *msptr, int dir, const char *modestr); +extern int get_channel_access(struct Client *source_p, struct Channel *chptr, struct membership *msptr, int dir, const char *modestr); extern void send_channel_join(struct Channel *chptr, struct Client *client_p);