added basic ssl support to ircu
[ircu2.10.12-pk.git] / include / channel.h
index 6abc777ae37047ddd6867ca453e404927e05a9cc..57ed5dc4a91bc37424653c0970de12f06230891c 100644 (file)
@@ -101,6 +101,8 @@ struct Client;
 #define MODE_LIMIT      0x0400         /**< +l Limit */
 #define MODE_REGONLY    0x0800         /**< Only +r users may join */
 #define MODE_DELJOINS   0x1000         /**< New join messages are delayed */
+#define MODE_REGISTERED 0x2000         /**< Channel marked as registered
+                                        * (for future semantic expansion) */
 #define MODE_SAVE      0x20000         /**< save this mode-with-arg 'til 
                                         * later */
 #define MODE_FREE      0x40000         /**< string needs to be passed to 
@@ -115,7 +117,7 @@ struct Client;
 #define MODE_WPARAS     (MODE_CHANOP|MODE_VOICE|MODE_BAN|MODE_KEY|MODE_LIMIT|MODE_APASS|MODE_UPASS)
 
 /** Available Channel modes */
-#define infochanmodes feature_bool(FEAT_OPLEVELS) ? "AbiklmnopstUvrD" : "biklmnopstvrD"
+#define infochanmodes feature_bool(FEAT_OPLEVELS) ? "AbiklmnopstUvrDdR" : "biklmnopstvrDdR"
 /** Available Channel modes that take parameters */
 #define infochanmodeswithparams feature_bool(FEAT_OPLEVELS) ? "AbkloUv" : "bklov"
 
@@ -149,6 +151,7 @@ typedef enum ChannelGetType {
 #define LISTARG_TOPICLIMITS     0x0001
 #define LISTARG_SHOWSECRET      0x0002
 #define LISTARG_NEGATEWILDCARD  0x0004
+#define LISTARG_SHOWMODES       0x0008
 
 /**
  * Maximum acceptable lag time in seconds: A channel younger than
@@ -163,15 +166,6 @@ typedef enum ChannelGetType {
  */
 #define TS_LAG_TIME 86400
 
-/**
- * A Magic TS that is used for channels that are created by JOIN,
- * a channel with this TS accepts all TS without complaining that
- * it might receive later via MODE or CREATE.
- *
- * Part of the P9 compatibility, shouldn't occur on a P10 network.
- */
-#define MAGIC_REMOTE_JOIN_TS 1270080000
-
 
 
 extern const char* const PartFmt1;
@@ -258,7 +252,7 @@ struct Mode {
 /** A single ban for a channel. */
 struct Ban {
   struct Ban* next;           /**< next ban in the channel */
-  struct irc_in_addr address; /**< addres for BAN_IPMASK bans */
+  struct irc_in_addr address; /**< address 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 */
@@ -317,6 +311,7 @@ struct ModeBuf {
       char            *mbma_string;    /**< A string */
       struct Client    *mbma_client;   /**< A client */
     }                  mbm_arg;        /**< The mode argument */
+    unsigned short      mbm_oplevel;    /**< Oplevel for a bounce */
   }                    mb_modeargs[MAXMODEPARAMS];
                                        /**< A mode w/args */
 };
@@ -339,6 +334,7 @@ struct ModeBuf {
 #define MB_UINT(mb, i)         ((mb)->mb_modeargs[(i)].mbm_arg.mbma_uint)
 #define MB_STRING(mb, i)       ((mb)->mb_modeargs[(i)].mbm_arg.mbma_string)
 #define MB_CLIENT(mb, i)       ((mb)->mb_modeargs[(i)].mbm_arg.mbma_client)
+#define MB_OPLEVEL(mb, i)       ((mb)->mb_modeargs[(i)].mbm_oplevel)
 
 /** A buffer represeting a list of joins to send */
 struct JoinBuf {
@@ -409,6 +405,7 @@ extern char *pretty_mask(char *mask);
 extern void del_invite(struct Client *cptr, struct Channel *chptr);
 extern void list_set_default(void); /* this belongs elsewhere! */
 
+extern void RevealDelayedJoinIfNeeded(struct Client *sptr, struct Channel *chptr);
 extern void RevealDelayedJoin(struct Membership *member);
 extern void CheckDelayedJoins(struct Channel *chan);
 
@@ -421,7 +418,7 @@ extern void modebuf_mode_uint(struct ModeBuf *mbuf, unsigned int mode,
 extern void modebuf_mode_string(struct ModeBuf *mbuf, unsigned int mode,
                                char *string, int free);
 extern void modebuf_mode_client(struct ModeBuf *mbuf, unsigned int mode,
-                               struct Client *client);
+                               struct Client *client, int oplevel);
 extern int modebuf_flush(struct ModeBuf *mbuf);
 extern void modebuf_extract(struct ModeBuf *mbuf, char *buf);