summaryrefslogtreecommitdiff
path: root/src/RawSocket.zig
diff options
context:
space:
mode:
authorRobby Zambito <contact@robbyzambito.me>2026-01-24 19:19:00 -0500
committerRobby Zambito <contact@robbyzambito.me>2026-01-24 20:14:22 -0500
commit09152377ed537c9b262e6b0a66a8ce88ca2619ad (patch)
treef3e5365ae2827082fa61c029bb4654f2acc026c8 /src/RawSocket.zig
parentc3b17f826740bed3f2785e97550f647cf38dfb7f (diff)
Fix reconnection
Was failing to reconnect due to trying to reuse the same socket that already had a BPF filter on it.
Diffstat (limited to 'src/RawSocket.zig')
-rw-r--r--src/RawSocket.zig4
1 files changed, 3 insertions, 1 deletions
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;