fix logging out

This commit is contained in:
Kinzie 2024-04-14 11:50:22 +01:00
parent 0aa400383a
commit f02d3e2db2
2 changed files with 3 additions and 8 deletions

View File

@ -169,11 +169,7 @@ pub fn authenticate(allocator: Allocator, config: Config, desktop: Desktop, logi
addUtmpEntry(&entry, pwd.pw_name, pid) catch {}; addUtmpEntry(&entry, pwd.pw_name, pid) catch {};
// Wait for the session to stop // Wait for the session to stop
const ch_proc = std.os.waitpid(pid, 0); _ = std.os.waitpid(pid, 0);
var err = shared_err.readError();
if (ch_proc.status != 0 and err == null)
err = error.UnknownError;
removeUtmpEntry(&entry); removeUtmpEntry(&entry);
@ -189,8 +185,7 @@ pub fn authenticate(allocator: Allocator, config: Config, desktop: Desktop, logi
status = interop.pam.pam_end(handle, status); status = interop.pam.pam_end(handle, status);
if (status != 0) return pamDiagnose(status); if (status != 0) return pamDiagnose(status);
if (err != null) if (shared_err.readError()) |err| return err;
return err.?;
} }
fn initEnv(allocator: Allocator, pwd: *interop.passwd, path: ?[]const u8) !void { fn initEnv(allocator: Allocator, pwd: *interop.passwd, path: ?[]const u8) !void {

View File

@ -543,7 +543,7 @@ pub fn main() !void {
auth_fails += 1; auth_fails += 1;
active_input = .password; active_input = .password;
info_line = getAuthErrorMsg(err, lang); info_line = getAuthErrorMsg(err, lang);
if (config.clear_password) password.clear(); if (config.clear_password or err != error.PamAuthError) password.clear();
} else { } else {
password.clear(); password.clear();
info_line = lang.logout; info_line = lang.logout;