unsigned int join_count; /* joins within delta */
unsigned int join_delta; /* last ts of join */
+ struct Dictionary *c_metadata;
+
unsigned long bants;
time_t channelts;
char *chname;
unsigned long bants;
};
+struct c_Metadata
+{
+ const char *name;
+ const char *value;
+ time_t timevalue;
+};
+
#define BANLEN 195
struct Ban
{
int caps;
int nocaps;
int mems;
+ int override;
struct Client *client;
};
#define ONLY_SERVERS 0x0020
#define CHFL_HALFOP 0x0040
#define CHFL_OWNER 0x0080
+#define ONLY_OPERS 0x0100
#define ALL_MEMBERS CHFL_PEON
#define ONLY_CHANOPS CHFL_CHANOP
#define ONLY_CHANOPSVOICED (CHFL_CHANOP|CHFL_VOICE)
#define MODE_NOCAPS 0x100000 /* Block messages in all capital letters */
#define MODE_NOREJOIN 0x200000 /* Block rejoin immediately after kick */
#define MODE_NOREPEAT 0x400000 /* Block repeat messages */
+#define MODE_NOOPERKICK 0x800000 /* disallow kicking opers */
#define CHFL_BAN 0x10000000 /* ban channel flag */
#define CHFL_EXCEPTION 0x20000000 /* exception to ban channel flag */
extern void do_join_0(struct Client *client_p, struct Client *source_p);
extern int check_channel_name_loc(struct Client *source_p, const char *name);
+extern struct Metadata *channel_metadata_add(struct Channel *target, const char *name, const char *value, int propegate);
+extern void channel_metadata_delete(struct Channel *target, const char *name, int propegate);
+extern struct Metadata *channel_metadata_find(struct Channel *target, const char *name);
+
+extern struct Metadata *channel_metadata_add(struct Channel *target, const char *name, const char *value, int propegate);
+extern struct Metadata *channel_metadata_time_add(struct Channel *target, const char *name, time_t value);
+extern void channel_metadata_delete(struct Channel *target, const char *name, int propegate);
+extern struct Metadata *channel_metadata_find(struct Channel *target, const char *name);
+extern void channel_metadata_clear(struct Channel *target);
+
+
#endif /* INCLUDED_channel_h */