From cf365673b5c78de4a3811cd35a79e9986123354a Mon Sep 17 00:00:00 2001 From: Robby Zambito Date: Sat, 24 Jan 2026 18:50:22 -0500 Subject: Retry timing Wait 2 minutes if trying for initial connect. Wait 10 minutes if connection to sentinel has timed out --- src/main.zig | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/main.zig') diff --git a/src/main.zig b/src/main.zig index 2cbcb24..25ead5e 100644 --- a/src/main.zig +++ b/src/main.zig @@ -126,6 +126,8 @@ pub fn main(init: std.process.Init) !void { return; } + var retry_seconds: u16 = 120; + if (flags.connect != null) { reconnect: while (true) { log.debug("Starting connection", .{}); @@ -133,14 +135,22 @@ pub fn main(init: std.process.Init) !void { var init_con_buf: [SaprusClient.max_payload_len]u8 = undefined; var w: Writer = .fixed(&init_con_buf); try w.print("{b64}", .{flags.connect.?}); - var connection = try client.connect(init.io, w.buffered()); + var connection = client.connect(init.io, w.buffered()) catch { + try init.io.sleep(.fromSeconds(retry_seconds), .boot); + continue; + }; defer connection.deinit(); + retry_seconds = 600; + log.debug("Connection started", .{}); while (true) { var res_buf: [2048]u8 = undefined; - const next = connection.next(init.io, &res_buf) catch continue :reconnect; + const next = connection.next(init.io, &res_buf) catch { + try init.io.sleep(.fromSeconds(retry_seconds), .boot); + continue :reconnect; + }; const b64d = std.base64.standard.Decoder; var connection_payload_buf: [2048]u8 = undefined; -- cgit