From 09152377ed537c9b262e6b0a66a8ce88ca2619ad Mon Sep 17 00:00:00 2001 From: Robby Zambito Date: Sat, 24 Jan 2026 19:19:00 -0500 Subject: Fix reconnection Was failing to reconnect due to trying to reuse the same socket that already had a BPF filter on it. --- src/RawSocket.zig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/RawSocket.zig') diff --git a/src/RawSocket.zig b/src/RawSocket.zig index 1a00982..f790e4e 100644 --- a/src/RawSocket.zig +++ b/src/RawSocket.zig @@ -1,5 +1,7 @@ const RawSocket = @This(); +const is_debug = builtin.mode == .Debug; + fd: i32, sockaddr_ll: std.posix.sockaddr.ll, mac: [6]u8, @@ -70,7 +72,7 @@ pub fn init() !RawSocket { const bind_ret = std.os.linux.bind(socket, @ptrCast(&sockaddr_ll), @sizeOf(@TypeOf(sockaddr_ll))); if (bind_ret != 0) return error.BindError; - const timeout: std.os.linux.timeval = .{ .sec = 600, .usec = 0 }; + const timeout: std.os.linux.timeval = .{ .sec = 60 * if (is_debug) 1 else 10, .usec = 0 }; const timeout_ret = std.os.linux.setsockopt(socket, std.os.linux.SOL.SOCKET, std.os.linux.SO.RCVTIMEO, @ptrCast(&timeout), @sizeOf(@TypeOf(timeout))); if (timeout_ret != 0) return error.SetTimeoutError; -- cgit