mirror of https://github.com/fairyglade/ly.git
check for getenvlist error, shorten code
This commit is contained in:
parent
59cb780ff0
commit
a1caf7c0d8
15
src/auth.zig
15
src/auth.zig
|
|
@ -119,15 +119,11 @@ fn startSession(
|
||||||
try initEnv(pwd, config.path);
|
try initEnv(pwd, config.path);
|
||||||
|
|
||||||
// Set the PAM variables
|
// Set the PAM variables
|
||||||
const pam_env_vars = interop.pam.pam_getenvlist(handle);
|
const pam_env_vars: ?[*:null]?[*:0]u8 = interop.pam.pam_getenvlist(handle);
|
||||||
|
if (pam_env_vars == null) return error.GetEnvListFailed;
|
||||||
|
|
||||||
var index: usize = 0;
|
const env_list = std.mem.span(pam_env_vars.?);
|
||||||
while (true) : (index += 1) {
|
for (env_list) |env_var| _ = interop.putenv(env_var.?);
|
||||||
const pam_env_var = pam_env_vars[index];
|
|
||||||
if (pam_env_var == null) break;
|
|
||||||
|
|
||||||
_ = interop.putenv(pam_env_var);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Execute what the user requested
|
// Execute what the user requested
|
||||||
std.posix.chdirZ(pwd.pw_dir) catch return error.ChangeDirectoryFailed;
|
std.posix.chdirZ(pwd.pw_dir) catch return error.ChangeDirectoryFailed;
|
||||||
|
|
@ -146,9 +142,6 @@ fn startSession(
|
||||||
}
|
}
|
||||||
|
|
||||||
fn initEnv(pwd: *interop.passwd, path_env: ?[:0]const u8) !void {
|
fn initEnv(pwd: *interop.passwd, path_env: ?[:0]const u8) !void {
|
||||||
const term_env = std.posix.getenv("TERM");
|
|
||||||
|
|
||||||
if (term_env) |term| _ = interop.setenv("TERM", term, 1);
|
|
||||||
_ = interop.setenv("HOME", pwd.pw_dir, 1);
|
_ = interop.setenv("HOME", pwd.pw_dir, 1);
|
||||||
_ = interop.setenv("PWD", pwd.pw_dir, 1);
|
_ = interop.setenv("PWD", pwd.pw_dir, 1);
|
||||||
_ = interop.setenv("SHELL", pwd.pw_shell, 1);
|
_ = interop.setenv("SHELL", pwd.pw_shell, 1);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue