From 50ac6f1310f32a6b5e06d9616f9f24af95f56d13 Mon Sep 17 00:00:00 2001 From: "Jeffrey C. Ollie" Date: Sat, 14 Oct 2023 22:16:04 -0500 Subject: [PATCH] get password from file --- .gitignore | 1 + src/main.zig | 25 +++++++++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 4500c5f..171b74e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /zig-cache /zig-out /config.json +/password diff --git a/src/main.zig b/src/main.zig index 71e31b2..b97317c 100644 --- a/src/main.zig +++ b/src/main.zig @@ -90,15 +90,29 @@ pub fn main() !void { const b64 = std.base64.standard.Encoder; + var password_buffer: [128]u8 = undefined; + var password: []const u8 = undefined; + if (config.value.loki.password_file) |password_file_path| { + password = try std.fs.cwd().readFile(password_file_path, &password_buffer); + password = std.mem.trimRight(u8, password, "\r\n"); + } else if (config.value.loki.password) |password_data| { + @memcpy(&password_buffer, password_data); + password = password_buffer[0..password_data.len]; + } else { + iperf3_log.err("unable to determine password!", .{}); + return; + } + var auth_buf: [256]u8 = undefined; const auth = try std.fmt.bufPrint( &auth_buf, "{s}:{s}", .{ config.value.loki.username, - config.value.loki.password.?, + password, }, ); + var auth_encoded_buf: [b64.calcSize(auth_buf.len)]u8 = undefined; var auth_encoded = b64.encode(&auth_encoded_buf, auth); var auth_header_buf: [256]u8 = undefined; @@ -106,18 +120,9 @@ pub fn main() !void { const uri = try std.Uri.parse(config.value.loki.url); - // var headers = std.http.Headers{ .allocator = allocator }; - // try headers.append("Authorization", auth_header); - // try headers.append("Content-Type", "application/json"); - var client = std.http.Client{ .allocator = allocator }; defer client.deinit(); - // const stderr_file = std.io.getStdErr().writer(); - // var stderr_bw = std.io.bufferedWriter(stderr_file); - // const stderr = stderr_bw.writer(); - // _ = stderr; - var port_buf: [16]u8 = undefined; var port: []u8 = undefined; if (config.value.iperf3.port) |p| {