summaryrefslogtreecommitdiff
path: root/src/server/client.zig
diff options
context:
space:
mode:
authorRobby Zambito <contact@robbyzambito.me>2026-01-02 03:00:49 +0000
committerRobby Zambito <contact@robbyzambito.me>2026-01-02 04:01:03 +0000
commit4bf064056cf8938c90fe5ac8ac374a6e998fbc27 (patch)
treed623affd4589405fbc18f9bbd041a2a8319df147 /src/server/client.zig
parenta71f08e1f64ed7b6d14f69978121fe6d9e487051 (diff)
reorganize but crashing
not sure why, seems like i'm using the right allocators everywhere? need to take another pass at this later.
Diffstat (limited to 'src/server/client.zig')
-rw-r--r--src/server/client.zig13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/server/client.zig b/src/server/client.zig
index af48fb5..5db6ff1 100644
--- a/src/server/client.zig
+++ b/src/server/client.zig
@@ -23,9 +23,20 @@ pub fn init(
};
}
-pub fn start(self: *Client, io: std.Io, alloc: std.mem.Allocator, queue: *std.Io.Queue(Message)) !void {
+pub fn deinit(self: *Client, alloc: std.mem.Allocator) void {
+ if (self.connect) |c| {
+ c.deinit(alloc);
+ }
+ self.* = undefined;
+}
+
+pub fn start(self: *Client, io: std.Io, alloc: std.mem.Allocator, queue: *std.Io.Queue(Message), server_info: Message.ServerInfo) !void {
self.recv_queue = queue;
var msgs: [8]Message = undefined;
+
+ // Do initial handshake with client
+ try queue.putOne(io, .{ .info = server_info });
+
while (true) {
const len = try queue.get(io, &msgs, 1);
std.debug.assert(len <= msgs.len);