Author: Ghostwolf <foxxe@wtfs.net>
[ircu2.10.12-pk.git] / include / channel.h
index 7294cb4513de609f8fe6bf66117c0f6220603d92..66ba3d5412c0f249edb518953da41974acaad350 100644 (file)
@@ -21,9 +21,6 @@
  */
 #ifndef INCLUDED_channel_h
 #define INCLUDED_channel_h
-#ifndef INCLUDED_config_h
-#include "config.h"
-#endif
 #ifndef INCLUDED_ircd_defs_h
 #include "ircd_defs.h"        /* NICKLEN */
 #endif
@@ -44,8 +41,6 @@ struct Client;
 
 #define KEYLEN          23
 #define CHANNELLEN      200
-#define MAXBANS         30
-#define MAXBANLENGTH    1024
 
 #define MAXJOINARGS    15 /* number of slots for join buffer */
 #define STARTJOINLEN   10 /* fuzzy numbers */
@@ -89,11 +84,11 @@ struct Client;
 #define MODE_KEY        0x0100
 #define MODE_BAN        0x0200
 #define MODE_LIMIT      0x0400
-#define MODE_SENDTS     0x0800  /* TS was 0 during a local user /join; send
-                                 * temporary TS; can be removed when all 2.10 */
+#define MODE_REGONLY    0x0800  /* Only +r users may join */
 #define MODE_LISTED     0x10000
 #define MODE_SAVE      0x20000 /* save this mode-with-arg 'til later */
 #define MODE_FREE      0x40000 /* string needs to be passed to MyFree() */
+#define MODE_BURSTADDED        0x80000 /* channel was created by a BURST */
 /*
  * mode flags which take another parameter (With PARAmeterS)
  */
@@ -115,12 +110,6 @@ struct Client;
 #define IsChannelName(name)     (*(name) == '#' || \
                                 IsModelessChannel(name) || IsLocalChannel(name))
 
-/*
- * Check if a sptr is an oper, and chptr is a local channel.
- */
-#define IsOperOnLocalChannel(sptr,chname) \
-                ((IsAnOper(sptr)) && (IsLocalChannel(chname)))
-
 typedef enum ChannelGetType {
   CGT_NO_CREATE,
   CGT_CREATE
@@ -152,12 +141,10 @@ typedef enum ChannelGetType {
  */
 #define MAGIC_REMOTE_JOIN_TS 1270080000
 
-#ifdef OPER_WALK_THROUGH_LMODES
 /*
  * used in can_join to determine if an oper forced a join on a channel
  */
 #define MAGIC_OPER_OVERRIDE 1000
-#endif
 
 
 extern const char* const PartFmt1;
@@ -298,7 +285,7 @@ extern int             LocalChanOperMode;
  */
 extern void clean_channelname(char* name);
 extern void channel_modes(struct Client *cptr, char *mbuf, char *pbuf,
-                          struct Channel *chptr);
+                          int buflen, struct Channel *chptr);
 extern int set_mode(struct Client* cptr, struct Client* sptr,
                     struct Channel* chptr, int parc, char* parv[],
                     char* mbuf, char* pbuf, char* npbuf, int* badop);
@@ -344,7 +331,7 @@ extern void send_channel_modes(struct Client *cptr, struct Channel *chptr);
 extern char *pretty_mask(char *mask);
 extern void del_invite(struct Client *cptr, struct Channel *chptr);
 extern void list_next_channels(struct Client *cptr, int nr);
-extern void send_user_joins(struct Client *cptr, struct Client *user);
+extern void list_set_default(void); /* this belongs elsewhere! */
 
 extern void modebuf_init(struct ModeBuf *mbuf, struct Client *source,
                         struct Client *connect, struct Channel *chan,
@@ -357,6 +344,7 @@ extern void modebuf_mode_string(struct ModeBuf *mbuf, unsigned int mode,
 extern void modebuf_mode_client(struct ModeBuf *mbuf, unsigned int mode,
                                struct Client *client);
 extern int modebuf_flush(struct ModeBuf *mbuf);
+extern void modebuf_extract(struct ModeBuf *mbuf, char *buf);
 
 extern void mode_ban_invalidate(struct Channel *chan);
 extern void mode_invite_clear(struct Channel *chan);
@@ -371,6 +359,8 @@ extern int mode_parse(struct ModeBuf *mbuf, struct Client *cptr,
 #define MODE_PARSE_BOUNCE      0x08    /* we will be bouncing the modes */
 #define MODE_PARSE_NOTOPER     0x10    /* send "not chanop" to user */
 #define MODE_PARSE_NOTMEMBER   0x20    /* send "not member" to user */
+#define MODE_PARSE_WIPEOUT     0x40    /* wipe out +k and +l during burst */
+#define MODE_PARSE_BURST       0x80    /* be even more strict w/extra args */
 
 extern void joinbuf_init(struct JoinBuf *jbuf, struct Client *source,
                         struct Client *connect, unsigned int type,