mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-04-22 05:25:03 -05:00
Use preprocessor trickery to make the signal translation mechanism a little
less hideous. The output of the preprocessor should be basically unchanged. [originally from svn r7294]
This commit is contained in:
parent
f69a0cf005
commit
3ffd1fbe38
56
ssh.c
56
ssh.c
@ -6398,71 +6398,49 @@ static void ssh2_msg_channel_request(Ssh ssh, struct Packet *pktin)
|
|||||||
|
|
||||||
if (0)
|
if (0)
|
||||||
;
|
;
|
||||||
|
#define TRANSLATE_SIGNAL(s) \
|
||||||
|
else if (siglen == lenof(#s)-1 && !memcmp(sig, #s, siglen)) \
|
||||||
|
ssh->exitcode = 128 + SIG ## s
|
||||||
#ifdef SIGABRT
|
#ifdef SIGABRT
|
||||||
else if (siglen == lenof("ABRT")-1 &&
|
TRANSLATE_SIGNAL(ABRT);
|
||||||
!memcmp(sig, "ABRT", siglen))
|
|
||||||
ssh->exitcode = 128 + SIGABRT;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGALRM
|
#ifdef SIGALRM
|
||||||
else if (siglen == lenof("ALRM")-1 &&
|
TRANSLATE_SIGNAL(ALRM);
|
||||||
!memcmp(sig, "ALRM", siglen))
|
|
||||||
ssh->exitcode = 128 + SIGALRM;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGFPE
|
#ifdef SIGFPE
|
||||||
else if (siglen == lenof("FPE")-1 &&
|
TRANSLATE_SIGNAL(FPE);
|
||||||
!memcmp(sig, "FPE", siglen))
|
|
||||||
ssh->exitcode = 128 + SIGFPE;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGHUP
|
#ifdef SIGHUP
|
||||||
else if (siglen == lenof("HUP")-1 &&
|
TRANSLATE_SIGNAL(HUP);
|
||||||
!memcmp(sig, "HUP", siglen))
|
|
||||||
ssh->exitcode = 128 + SIGHUP;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGILL
|
#ifdef SIGILL
|
||||||
else if (siglen == lenof("ILL")-1 &&
|
TRANSLATE_SIGNAL(ILL);
|
||||||
!memcmp(sig, "ILL", siglen))
|
|
||||||
ssh->exitcode = 128 + SIGILL;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGINT
|
#ifdef SIGINT
|
||||||
else if (siglen == lenof("INT")-1 &&
|
TRANSLATE_SIGNAL(INT);
|
||||||
!memcmp(sig, "INT", siglen))
|
|
||||||
ssh->exitcode = 128 + SIGINT;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGKILL
|
#ifdef SIGKILL
|
||||||
else if (siglen == lenof("KILL")-1 &&
|
TRANSLATE_SIGNAL(KILL);
|
||||||
!memcmp(sig, "KILL", siglen))
|
|
||||||
ssh->exitcode = 128 + SIGKILL;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGPIPE
|
#ifdef SIGPIPE
|
||||||
else if (siglen == lenof("PIPE")-1 &&
|
TRANSLATE_SIGNAL(PIPE);
|
||||||
!memcmp(sig, "PIPE", siglen))
|
|
||||||
ssh->exitcode = 128 + SIGPIPE;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGQUIT
|
#ifdef SIGQUIT
|
||||||
else if (siglen == lenof("QUIT")-1 &&
|
TRANSLATE_SIGNAL(QUIT);
|
||||||
!memcmp(sig, "QUIT", siglen))
|
|
||||||
ssh->exitcode = 128 + SIGQUIT;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGSEGV
|
#ifdef SIGSEGV
|
||||||
else if (siglen == lenof("SEGV")-1 &&
|
TRANSLATE_SIGNAL(SEGV);
|
||||||
!memcmp(sig, "SEGV", siglen))
|
|
||||||
ssh->exitcode = 128 + SIGSEGV;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGTERM
|
#ifdef SIGTERM
|
||||||
else if (siglen == lenof("TERM")-1 &&
|
TRANSLATE_SIGNAL(TERM);
|
||||||
!memcmp(sig, "TERM", siglen))
|
|
||||||
ssh->exitcode = 128 + SIGTERM;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGUSR1
|
#ifdef SIGUSR1
|
||||||
else if (siglen == lenof("USR1")-1 &&
|
TRANSLATE_SIGNAL(USR1);
|
||||||
!memcmp(sig, "USR1", siglen))
|
|
||||||
ssh->exitcode = 128 + SIGUSR1;
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SIGUSR2
|
#ifdef SIGUSR2
|
||||||
else if (siglen == lenof("USR2")-1 &&
|
TRANSLATE_SIGNAL(USR2);
|
||||||
!memcmp(sig, "USR2", siglen))
|
|
||||||
ssh->exitcode = 128 + SIGUSR2;
|
|
||||||
#endif
|
#endif
|
||||||
|
#undef TRANSLATE_SIGNAL
|
||||||
else
|
else
|
||||||
ssh->exitcode = 128;
|
ssh->exitcode = 128;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user