summary refs log tree commit diff
path: root/ircd.h
diff options
context:
space:
mode:
Diffstat (limited to 'ircd.h')
-rw-r--r--ircd.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/ircd.h b/ircd.h
index 29457d8..931948b 100644
--- a/ircd.h
+++ b/ircd.h
@@ -61,6 +61,13 @@ struct Peer
 	time_t last, ping;
 };
 
+struct ChannelModeParam
+{
+	char *param;
+	int set;
+	char mode;
+};
+
 struct Channel
 {
 	enum { GLOBAL, LOCAL, MODELESS, SAFE } type;
@@ -72,7 +79,11 @@ struct Channel
 			BIT(CHANNEL_VOICE),
 		} modes;
 	} peers[CHANNEL_PEERS_MAX];
-	size_t modes_c, peers_c;
+	size_t peers_c;
+	enum ChannelMode
+	{
+		BIT(CHANNEL_SECRET),
+	} modes;
 };
 
 struct Oper
@@ -101,6 +112,7 @@ void user_remove(size_t pid);
 
 int channel_join(struct Channel *channel, struct Peer *peer);
 int channel_exit(struct Channel *channel, struct Peer *peer);
+const struct ChannelModeParam *channel_modes_parse(const struct Message *msg);
 void channel_remove(size_t cid);
 
 int parse_message(char *buf, struct Message *msg);