summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.zig14
1 files changed, 12 insertions, 2 deletions
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;