summaryrefslogtreecommitdiff
path: root/src/server/client.zig
diff options
context:
space:
mode:
authorRobby Zambito <contact@robbyzambito.me>2025-12-29 00:35:06 +0000
committerRobby Zambito <contact@robbyzambito.me>2025-12-29 00:35:06 +0000
commit335c4aa092b2ba1b8233c8c4b25d98c8f01f584e (patch)
tree9a0ac052a9cf41e60ed9a84e0e8144b6cf013ab2 /src/server/client.zig
parent18f4475aaf15df2e71fe0c568a77ecc00beb4d02 (diff)
Diffstat (limited to 'src/server/client.zig')
-rw-r--r--src/server/client.zig18
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) {