aboutsummaryrefslogtreecommitdiff
path: root/general_network.h
diff options
context:
space:
mode:
authorTest_User <hax@andrewyu.org>2024-06-14 02:51:58 -0400
committerTest_User <hax@andrewyu.org>2024-06-14 02:51:58 -0400
commit35c5a9f9adab04b821896978520af643ea8b697f (patch)
treeee474fe3e1b54f4e497e5dffa391fba6937d45f3 /general_network.h
parentdadd3396cf719e1ce659926833efd1e17064f2d5 (diff)
downloadhaxircd-35c5a9f9adab04b821896978520af643ea8b697f.tar.gz
haxircd-35c5a9f9adab04b821896978520af643ea8b697f.zip
Basic channel tracking added
Diffstat (limited to 'general_network.h')
-rw-r--r--general_network.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/general_network.h b/general_network.h
index 541e1ff..1cc5929 100644
--- a/general_network.h
+++ b/general_network.h
@@ -101,6 +101,15 @@ struct user_info {
char latency_ready;
};
+struct channel_info {
+ struct string name;
+
+ struct string channel_ts_str;
+ size_t channel_ts;
+
+ struct table user_list;
+};
+
int resolve(struct string address, struct string port, struct sockaddr *sockaddr);
int init_general_network(void);
@@ -110,6 +119,10 @@ int rename_user(struct string from, struct user_info *user, struct string nick,
void remove_user(struct string from, struct user_info *user, struct string reason, char propagate);
void kill_user(struct string from, struct string source, struct user_info *user, struct string reason);
+int set_channel(struct string from, struct string name, size_t timestamp, size_t user_count, struct user_info **users);
+int join_channel(struct string from, struct channel_info *channel, size_t user_count, struct user_info **users, char propagate);
+void part_channel(struct string from, struct channel_info *channel, struct user_info *user, struct string reason, char propagate);
+
extern char casemap[UCHAR_MAX+1];
#define CASEMAP(x) (casemap[(unsigned char)x])
@@ -128,3 +141,4 @@ extern struct network networks[NUM_NET_TYPES];
extern struct table server_list;
extern struct table user_list;
+extern struct table channel_list;