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_FREETARGET 0x1000 /* can be forwarded to without authorization */
#define MODE_DISFORWARD 0x2000 /* disable channel forwarding */
#define MODE_NOCTCP 0x8000 /* Block CTCPs directed to this channel */
-#define MODE_NONOTICE 0x16000 /* Block notices directed to this channel */
-#define MODE_NOACTION 0x32000 /* Block CTCP ACTION directed to this channel */
-#define MODE_NOKICK 0x64000 /* Disable /kick on this channel */
-#define MODE_NONICK 0x128000 /* Disable /nick for anyone on this channel */
-#define MODE_NOCAPS 0x256000 /* Block messages in all capital letters */
-#define MODE_NOREJOIN 0x512000 /* Block rejoin immediately after kick */
+#define MODE_NONOTICE 0x10000 /* Block notices directed to this channel */
+#define MODE_NOACTION 0x20000 /* Block CTCP ACTION directed to this channel */
+#define MODE_NOKICK 0x40000 /* Disable /kick on this channel */
+#define MODE_NONICK 0x80000 /* Disable /nick for anyone on this channel */
+#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 */