From 27a7b731e5c3456b070cad128555b3a21801ed31 Mon Sep 17 00:00:00 2001 From: Kinzie Date: Sat, 6 Apr 2024 00:55:05 +0100 Subject: [PATCH] fix utmp entry --- src/auth.zig | 14 ++++++++++---- src/bigclock.zig | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/auth.zig b/src/auth.zig index 791872f..3df14cb 100644 --- a/src/auth.zig +++ b/src/auth.zig @@ -477,20 +477,26 @@ fn addUtmpEntry(entry: *Utmp, username: [*:0]const u8, pid: c_int) !void { var buf: [4096]u8 = undefined; const ttyname = try std.os.getFdPath(0, &buf); - var ttyname_buf: [32]u8 = undefined; - + var ttyname_buf: [32]u8 = std.mem.zeroes([32]u8); _ = try std.fmt.bufPrint(&ttyname_buf, "{s}", .{ttyname["/dev/".len..]}); entry.ut_line = ttyname_buf; entry.ut_id = ttyname_buf["tty".len..7].*; - var username_buf: [32]u8 = undefined; + var username_buf: [32]u8 = std.mem.zeroes([32]u8); _ = try std.fmt.bufPrint(&username_buf, "{s}", .{username}); + entry.ut_user = username_buf; entry.ut_host = std.mem.zeroes([256]u8); - entry.ut_tv.tv_sec = @truncate(std.time.timestamp()); + var tv: std.c.timeval = undefined; + _ = std.c.gettimeofday(&tv, null); + + entry.ut_tv = .{ + .tv_sec = @intCast(tv.tv_sec), + .tv_usec = @intCast(tv.tv_usec), + }; entry.ut_addr_v6[0] = 0; utmp.setutent(); diff --git a/src/bigclock.zig b/src/bigclock.zig index 0150dc2..71e5635 100644 --- a/src/bigclock.zig +++ b/src/bigclock.zig @@ -102,7 +102,7 @@ const E = [_]u32{ pub fn clockCell(animate: bool, char: u8, fg: u8, bg: u8) [SIZE]termbox.tb_cell { var cells = std.mem.zeroes([SIZE]termbox.tb_cell); - var tv = std.mem.zeroes(std.c.timeval); + var tv: std.c.timeval = undefined; _ = std.c.gettimeofday(&tv, null); const clock_chars = toBigNumber(if (animate and char == ':' and @divTrunc(tv.tv_usec, 500000) != 0) ' ' else char);