#define MODE_SSLONLY 0x00400000 /* +Z ssl only */
#define MODE_HALFOP 0x00800000 /* +h USER */
#define MODE_EXEMPT 0x01000000 /* +e exempt */
+#define MODE_HIDEMODE 0x02000000 /* +L hide modes */
#define MODE_REMOVE 0x80000000
#define FLAGS_OPER 0x0001 /* Operator +O */
#define NICKLEN 30
#define USERLEN 10
#define HOSTLEN 63
-#define ACCOUNTLEN 15
+#define ACCOUNTLEN 15
#define REALLEN 50
#define TOPICLEN 250
#define CHANNELLEN 200
#define MAXMODEPARAMS 6
-#define MAXBANS 45
+#define MAXBANS 128
#define MAXEXEMPTS 45
/* IDLEN is 6 because it takes 5.33 Base64 digits to store 32 bytes. */
char numeric[COMBO_NUMERIC_LEN+1];
unsigned int num_local : 18;
#endif
+ unsigned int loc; /* Is user connecting via LOC? */
unsigned int dead : 1; /* Is user waiting to be recycled? */
struct in_addr ip; /* User's IP address */
long modes; /* user flags +isw etc... */
typedef int (*topic_func_t)(struct userNode *who, struct chanNode *chan, const char *old_topic);
void reg_topic_func(topic_func_t handler);
-void SetChannelTopic(struct chanNode *channel, struct userNode *user, const char *topic, int announce);
+void SetChannelTopic(struct chanNode *channel, struct userNode *service, struct userNode *user, const char *topic, int announce);
+struct userNode *IsInChannel(struct chanNode *channel, struct userNode *user);
void init_structs(void);