#define MODEBUFLEN 200 /**< Maximum length of a mode */
#define KEYLEN 23 /**< Maximum length of a key */
-#define PASSLEN 23 /**< Maximum length of a password */
#define CHANNELLEN 200 /**< Maximum length of a channel */
#define MAXJOINARGS 15 /**< number of slots for join buffer */
#define LISTARG_TOPICLIMITS 0x0001
#define LISTARG_SHOWSECRET 0x0002
+#define LISTARG_NEGATEWILDCARD 0x0004
/**
* Maximum acceptable lag time in seconds: A channel younger than
*/
#define MAGIC_REMOTE_JOIN_TS 1270080000
-/**
- * used in can_join to determine if an oper forced a join on a channel
- */
-#define MAGIC_OPER_OVERRIDE 1000
extern const char* const PartFmt1;
unsigned int mode;
unsigned int limit;
char key[KEYLEN + 1];
- char upass[PASSLEN + 1];
- char apass[PASSLEN + 1];
+ char upass[KEYLEN + 1];
+ char apass[KEYLEN + 1];
};
#define BAN_IPMASK 0x0001 /**< ban mask is an IP-number mask */
/** A single ban for a channel. */
struct Ban {
- struct Ban* next; /**< next ban in the channel */
+ struct Ban* next; /**< next ban in the channel */
struct irc_in_addr address; /**< addres 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 */
- unsigned char addrbits; /**< netmask length for BAN_IPMASK bans */
- char *who; /**< name of client that set the ban */
- char *banstr; /**< hostmask that the ban matches */
+ 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 */
+ unsigned char addrbits; /**< netmask length for BAN_IPMASK bans */
+ char who[NICKLEN+1]; /**< name of client that set the ban */
+ char banstr[NICKLEN+USERLEN+HOSTLEN+3]; /**< hostmask that the ban matches */
};
/** Information about a channel */
time_t max_topic_time;
time_t min_topic_time;
unsigned int bucket;
+ char wildcard[CHANNELLEN];
};
struct ModeBuf {
const struct Client* cptr);
extern int sub1_from_channel(struct Channel* chptr);
extern int destruct_channel(struct Channel* chptr);
-extern int can_join(struct Client *sptr, struct Channel *chptr, char *key);
extern void add_user_to_channel(struct Channel* chptr, struct Client* who,
unsigned int flags, int oplevel);
extern void make_zombie(struct Membership* member, struct Client* who,