ssh_kitten: Proper exit code for termination by SIGINT

This commit is contained in:
Kovid Goyal 2023-05-08 16:27:07 +05:30
parent 454acd4f5c
commit a1d791083b
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -696,9 +696,15 @@ func run_ssh(ssh_args, server_args, found_extra_args []string) (rc int, err erro
}() }()
err = c.Wait() err = c.Wait()
drain_potential_tty_garbage(term) drain_potential_tty_garbage(term)
signal.Reset(unix.SIGINT, unix.SIGTERM)
if err != nil { if err != nil {
var exit_err *exec.ExitError var exit_err *exec.ExitError
if errors.As(err, &exit_err) { if errors.As(err, &exit_err) {
if state := exit_err.ProcessState.String(); state == "signal: interrupt" {
unix.Kill(os.Getpid(), unix.SIGINT)
// Give the signal time to be delivered
time.Sleep(20 * time.Millisecond)
}
return exit_err.ExitCode(), nil return exit_err.ExitCode(), nil
} }
return 1, err return 1, err