diff options
| author | Robby Zambito <contact@robbyzambito.me> | 2025-12-29 00:35:06 +0000 |
|---|---|---|
| committer | Robby Zambito <contact@robbyzambito.me> | 2025-12-29 00:35:06 +0000 |
| commit | 335c4aa092b2ba1b8233c8c4b25d98c8f01f584e (patch) | |
| tree | 9a0ac052a9cf41e60ed9a84e0e8144b6cf013ab2 /src/server/client.zig | |
| parent | 18f4475aaf15df2e71fe0c568a77ecc00beb4d02 (diff) | |
Diffstat (limited to 'src/server/client.zig')
| -rw-r--r-- | src/server/client.zig | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/server/client.zig b/src/server/client.zig index 87bb177..c7aa41a 100644 --- a/src/server/client.zig +++ b/src/server/client.zig @@ -77,7 +77,7 @@ pub const ClientState = struct { } /// Return true if the value was put in the clients buffer to process, else false. - pub fn send(self: *ClientState, io: std.Io, msg: Message) (std.Io.Cancelable||std.Io.QueueClosedError)!bool { + pub fn send(self: *ClientState, io: std.Io, msg: Message) (std.Io.Cancelable || std.Io.QueueClosedError)!bool { try self.recv_queue.putOne(io, msg); return true; } @@ -110,6 +110,16 @@ pub fn writeInfo(out: *std.Io.Writer, info: Message.ServerInfo) !void { fn writeMsg(out: *std.Io.Writer, msg: Message.Msg) !void { std.debug.print("PRINTING MESSAGE\n\n\n\n", .{}); + std.debug.print( + "MSG {s} {s} {s} {d}\r\n{s}\r\n-\n\n\n", + .{ + msg.subject, + msg.sid, + msg.reply_to orelse "", + msg.payload.len, + msg.payload, + }, + ); try out.print( "MSG {s} {s} {s} {d}\r\n{s}\r\n", .{ @@ -135,6 +145,7 @@ test { var from_client_queue: std.Io.Queue(Message) = .init(&from_client_buf); { + // Simulate stream while (Message.next(gpa, &from_client)) |msg| { switch (msg) { .eos => { @@ -145,7 +156,10 @@ test { try from_client_queue.putOne(io, msg); }, } - } else |_| {} + } else |err| switch (err) { + error.EndOfStream => try from_client_queue.close(io), + else => return err, + } while (from_client_queue.getOne(io)) |msg| { switch (msg) { |
