diff options
Diffstat (limited to 'clientloop.c')
-rw-r--r-- | clientloop.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/clientloop.c b/clientloop.c index 2c030e71b..fcd75d2d7 100644 --- a/clientloop.c +++ b/clientloop.c | |||
@@ -59,7 +59,7 @@ | |||
59 | */ | 59 | */ |
60 | 60 | ||
61 | #include "includes.h" | 61 | #include "includes.h" |
62 | RCSID("$OpenBSD: clientloop.c,v 1.104 2002/08/22 19:38:42 stevesk Exp $"); | 62 | RCSID("$OpenBSD: clientloop.c,v 1.105 2002/11/18 16:43:44 markus Exp $"); |
63 | 63 | ||
64 | #include "ssh.h" | 64 | #include "ssh.h" |
65 | #include "ssh1.h" | 65 | #include "ssh1.h" |
@@ -888,10 +888,16 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id) | |||
888 | 888 | ||
889 | client_init_dispatch(); | 889 | client_init_dispatch(); |
890 | 890 | ||
891 | /* Set signal handlers to restore non-blocking mode. */ | 891 | /* |
892 | signal(SIGINT, signal_handler); | 892 | * Set signal handlers, (e.g. to restore non-blocking mode) |
893 | signal(SIGQUIT, signal_handler); | 893 | * but don't overwrite SIG_IGN, matches behaviour from rsh(1) |
894 | signal(SIGTERM, signal_handler); | 894 | */ |
895 | if (signal(SIGINT, SIG_IGN) != SIG_IGN) | ||
896 | signal(SIGINT, signal_handler); | ||
897 | if (signal(SIGQUIT, SIG_IGN) != SIG_IGN) | ||
898 | signal(SIGQUIT, signal_handler); | ||
899 | if (signal(SIGTERM, SIG_IGN) != SIG_IGN) | ||
900 | signal(SIGTERM, signal_handler); | ||
895 | if (have_pty) | 901 | if (have_pty) |
896 | signal(SIGWINCH, window_change_handler); | 902 | signal(SIGWINCH, window_change_handler); |
897 | 903 | ||