summary refs log tree commit diff
path: root/ircd.h
diff options
context:
space:
mode:
Diffstat (limited to 'ircd.h')
-rw-r--r--ircd.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/ircd.h b/ircd.h
index d05614c..0959d12 100644
--- a/ircd.h
+++ b/ircd.h
@@ -66,11 +66,13 @@ struct Channel
 	enum { GLOBAL, LOCAL, MODELESS, SAFE } type;
 	char name[CHANNEL_NAME_MAX];
 	struct {
-		char mode;
-		char param[MESSAGE_MAX - 1];
-	} modes[CHANNEL_MODES_MAX];
-	struct Peer *users[CHANNEL_USERS_MAX];
-	size_t modes_c, users_c;
+		struct Peer *p;
+		enum ChannelPeerMode {
+			BIT(CHANNEL_OPER),
+			BIT(CHANNEL_VOICE),
+		} modes;
+	} peers[CHANNEL_PEERS_MAX];
+	size_t modes_c, peers_c;
 };
 
 struct Oper