X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=include%2Fchannel.h;h=7cafdf8d50f8b73a8763a70d59e8bd19eca22826;hb=db5ce1caa14de28c6b333ac3e1484ed068dfd236;hp=6abc777ae37047ddd6867ca453e404927e05a9cc;hpb=5d06de42d57e503c81d24bcfdf0422a86eeee7fc;p=ircu2.10.12-pk.git diff --git a/include/channel.h b/include/channel.h index 6abc777..7cafdf8 100644 --- a/include/channel.h +++ b/include/channel.h @@ -101,6 +101,8 @@ struct Client; #define MODE_LIMIT 0x0400 /**< +l Limit */ #define MODE_REGONLY 0x0800 /**< Only +r users may join */ #define MODE_DELJOINS 0x1000 /**< New join messages are delayed */ +#define MODE_REGISTERED 0x2000 /**< Channel marked as registered + * (for future semantic expansion) */ #define MODE_SAVE 0x20000 /**< save this mode-with-arg 'til * later */ #define MODE_FREE 0x40000 /**< string needs to be passed to @@ -115,7 +117,7 @@ struct Client; #define MODE_WPARAS (MODE_CHANOP|MODE_VOICE|MODE_BAN|MODE_KEY|MODE_LIMIT|MODE_APASS|MODE_UPASS) /** Available Channel modes */ -#define infochanmodes feature_bool(FEAT_OPLEVELS) ? "AbiklmnopstUvrD" : "biklmnopstvrD" +#define infochanmodes feature_bool(FEAT_OPLEVELS) ? "AbiklmnopstUvrDR" : "biklmnopstvrDR" /** Available Channel modes that take parameters */ #define infochanmodeswithparams feature_bool(FEAT_OPLEVELS) ? "AbkloUv" : "bklov" @@ -149,6 +151,7 @@ typedef enum ChannelGetType { #define LISTARG_TOPICLIMITS 0x0001 #define LISTARG_SHOWSECRET 0x0002 #define LISTARG_NEGATEWILDCARD 0x0004 +#define LISTARG_SHOWMODES 0x0008 /** * Maximum acceptable lag time in seconds: A channel younger than @@ -163,15 +166,6 @@ typedef enum ChannelGetType { */ #define TS_LAG_TIME 86400 -/** - * A Magic TS that is used for channels that are created by JOIN, - * a channel with this TS accepts all TS without complaining that - * it might receive later via MODE or CREATE. - * - * Part of the P9 compatibility, shouldn't occur on a P10 network. - */ -#define MAGIC_REMOTE_JOIN_TS 1270080000 - extern const char* const PartFmt1; @@ -258,7 +252,7 @@ struct Mode { /** A single ban for a channel. */ struct Ban { struct Ban* next; /**< next ban in the channel */ - struct irc_in_addr address; /**< addres for BAN_IPMASK bans */ + struct irc_in_addr address; /**< address for BAN_IPMASK bans */ time_t when; /**< timestamp when ban was added */ unsigned short flags; /**< modifier flags for the ban */ unsigned char nu_len; /**< length of nick!user part of banstr */ @@ -317,6 +311,7 @@ struct ModeBuf { char *mbma_string; /**< A string */ struct Client *mbma_client; /**< A client */ } mbm_arg; /**< The mode argument */ + unsigned short mbm_oplevel; /**< Oplevel for a bounce */ } mb_modeargs[MAXMODEPARAMS]; /**< A mode w/args */ }; @@ -339,6 +334,7 @@ struct ModeBuf { #define MB_UINT(mb, i) ((mb)->mb_modeargs[(i)].mbm_arg.mbma_uint) #define MB_STRING(mb, i) ((mb)->mb_modeargs[(i)].mbm_arg.mbma_string) #define MB_CLIENT(mb, i) ((mb)->mb_modeargs[(i)].mbm_arg.mbma_client) +#define MB_OPLEVEL(mb, i) ((mb)->mb_modeargs[(i)].mbm_oplevel) /** A buffer represeting a list of joins to send */ struct JoinBuf { @@ -409,6 +405,7 @@ extern char *pretty_mask(char *mask); extern void del_invite(struct Client *cptr, struct Channel *chptr); extern void list_set_default(void); /* this belongs elsewhere! */ +extern void RevealDelayedJoinIfNeeded(struct Client *sptr, struct Channel *chptr); extern void RevealDelayedJoin(struct Membership *member); extern void CheckDelayedJoins(struct Channel *chan); @@ -421,7 +418,7 @@ extern void modebuf_mode_uint(struct ModeBuf *mbuf, unsigned int mode, extern void modebuf_mode_string(struct ModeBuf *mbuf, unsigned int mode, char *string, int free); extern void modebuf_mode_client(struct ModeBuf *mbuf, unsigned int mode, - struct Client *client); + struct Client *client, int oplevel); extern int modebuf_flush(struct ModeBuf *mbuf); extern void modebuf_extract(struct ModeBuf *mbuf, char *buf);