mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-06-30 19:12:48 -05:00
uxserver: option to generate numeric "exit-signal".
This mimics a bug in some old SSH servers for which PuTTY contains
compensation code (parsing an incoming "exit-signal" two ways and
seeing which one worked). I completely rewrote that code in commit
7535f645a
, as part of the BinarySource rework. Now I can finally test
it sensibly.
This commit is contained in:
18
unix/uxpty.c
18
unix/uxpty.c
@ -1526,17 +1526,23 @@ static int pty_exitcode(Backend *be)
|
||||
return WEXITSTATUS(pty->exit_code);
|
||||
}
|
||||
|
||||
ptrlen pty_backend_exit_signame(Backend *be, char **aux_msg)
|
||||
int pty_backend_exit_signum(Backend *be)
|
||||
{
|
||||
Pty *pty = container_of(be, Pty, backend);
|
||||
int sig;
|
||||
|
||||
*aux_msg = NULL;
|
||||
|
||||
if (!pty->finished || !WIFSIGNALED(pty->exit_code))
|
||||
return PTRLEN_LITERAL("");
|
||||
return -1;
|
||||
|
||||
sig = WTERMSIG(pty->exit_code);
|
||||
return WTERMSIG(pty->exit_code);
|
||||
}
|
||||
|
||||
ptrlen pty_backend_exit_signame(Backend *be, char **aux_msg)
|
||||
{
|
||||
*aux_msg = NULL;
|
||||
|
||||
int sig = pty_backend_exit_signum(be);
|
||||
if (sig < 0)
|
||||
return PTRLEN_LITERAL("");
|
||||
|
||||
#define TRANSLATE_SIGNAL(s) do \
|
||||
{ \
|
||||
|
@ -542,6 +542,8 @@ int main(int argc, char **argv)
|
||||
ssc.banner = ptrlen_from_strbuf(sb);
|
||||
} else if (longoptarg(arg, "--bannertext", &val, &argc, &argv)) {
|
||||
ssc.banner = ptrlen_from_asciz(val);
|
||||
} else if (longoptnoarg(arg, "--exitsignum")) {
|
||||
ssc.exit_signal_numeric = true;
|
||||
} else if (longoptarg(arg, "--sshlog", &val, &argc, &argv) ||
|
||||
longoptarg(arg, "-sshlog", &val, &argc, &argv)) {
|
||||
Filename *logfile = filename_from_str(val);
|
||||
|
Reference in New Issue
Block a user