From 15cd0c4779b083b75347b0d5d92956679dd10e45 Mon Sep 17 00:00:00 2001 From: AnErrupTion Date: Thu, 30 Apr 2026 14:38:56 +0200 Subject: [PATCH] Use SIGINT instead of SIGCHILD for TTY control transfer Signed-off-by: AnErrupTion --- src/auth.zig | 2 +- src/main.zig | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/auth.zig b/src/auth.zig index d191d55..87ddc09 100644 --- a/src/auth.zig +++ b/src/auth.zig @@ -201,7 +201,7 @@ fn startSession( // Signal to the session process to give up control on the TTY try log_file.info(io, "auth/sys", "releasing tty", .{}); - std.posix.kill(options.session_pid, std.posix.SIG.CHLD) catch return error.TtyControlTransferFailed; + std.posix.kill(options.session_pid, std.posix.SIG.INT) catch return error.TtyControlTransferFailed; // Execute what the user requested switch (current_environment.display_server) { diff --git a/src/main.zig b/src/main.zig index 382e5f3..81c44b4 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1541,9 +1541,9 @@ fn authenticate(ptr: *anyopaque) !bool { const tty_control_transfer_act = std.posix.Sigaction{ .handler = .{ .handler = &ttyControlTransferSignalHandler }, .mask = std.posix.sigemptyset(), - .flags = std.posix.SA.RESTART, // For waitpid() + .flags = 0, }; - std.posix.sigaction(std.posix.SIG.CHLD, &tty_control_transfer_act, null); + std.posix.sigaction(std.posix.SIG.INT, &tty_control_transfer_act, null); try state.log_file.reinit(state.io);