diff options
author | Robby Zambito <contact@robbyzambito.me> | 2025-04-30 14:51:54 -0400 |
---|---|---|
committer | Robby Zambito <contact@robbyzambito.me> | 2025-04-30 17:00:12 -0400 |
commit | 9280fd095f0cbe93f1e35311f70dc5a0c43c5ea2 (patch) | |
tree | 361ed32f34b52782afb07d4642838e9ca3f5d327 /src/Client.zig | |
parent | b575ad90942bf6317ac60a2f48e36f54ecddac7a (diff) |
Diffstat (limited to 'src/Client.zig')
-rw-r--r-- | src/Client.zig | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/Client.zig b/src/Client.zig index 46ed75d..0a1cd99 100644 --- a/src/Client.zig +++ b/src/Client.zig @@ -1,3 +1,6 @@ +const base64Enc = std.base64.Base64Encoder.init(std.base64.standard_alphabet_chars, '='); +const base64Dec = std.base64.Base64Decoder.init(std.base64.standard_alphabet_chars, '='); + var rand: ?Random = null; pub fn init() !void { @@ -15,6 +18,10 @@ pub fn deinit() void { } fn broadcastSaprusMessage(msg: *SaprusMessage, udp_port: u16) !void { + if (false) { + var foo: gcat.nic.RawSocket = try .init("enp7s0"); // /proc/net/dev + defer foo.deinit(); + } const msg_bytes = msg.asBytes(); try msg.networkFromNativeEndian(); defer msg.nativeFromNetworkEndian() catch unreachable; @@ -41,11 +48,15 @@ fn broadcastSaprusMessage(msg: *SaprusMessage, udp_port: u16) !void { } pub fn sendRelay(payload: []const u8, dest: [4]u8, allocator: Allocator) !void { - const msg: *SaprusMessage = try .init(allocator, .relay, @intCast(payload.len)); + const msg: *SaprusMessage = try .init( + allocator, + .relay, + @intCast(base64Enc.calcSize(payload.len)), + ); defer msg.deinit(allocator); const relay = (try msg.getSaprusTypePayload()).relay; relay.dest = dest; - @memcpy(relay.getPayload(), payload); + _ = base64Enc.encode(relay.getPayload(), payload); try broadcastSaprusMessage(msg, 8888); } @@ -74,11 +85,6 @@ pub fn sendInitialConnection(payload: []const u8, initial_port: u16, allocator: } pub fn connect(payload: []const u8, allocator: Allocator) !?SaprusConnection { - if (false) { - var foo: gcat.nic.RawSocket = try .init("enp7s0"); // /proc/net/dev - defer foo.deinit(); - } - var initial_port: u16 = 0; if (rand) |r| { initial_port = r.intRangeAtMost(u16, 1024, 65000); |