summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorDamien Miller <djm@cvs.openbsd.org>2004-06-18 10:40:20 +0000
committerDamien Miller <djm@cvs.openbsd.org>2004-06-18 10:40:20 +0000
commit78293bd3bcf2e2dbcb1ad7c084d9bd9aecc7e1a6 (patch)
tree246a8053046c18af74971b39bfc673302c2fe794 /usr.bin
parent787042cf647753b8fbaf8e5a3958248ef4f45d5b (diff)
delay signal handler setup until we have finished talking to the master.
allow interrupting of setup (e.g. if master is stuck); ok markus@
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/ssh/ssh.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/usr.bin/ssh/ssh.c b/usr.bin/ssh/ssh.c
index 28fb4ca60b4..9124dff0248 100644
--- a/usr.bin/ssh/ssh.c
+++ b/usr.bin/ssh/ssh.c
@@ -40,7 +40,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: ssh.c,v 1.217 2004/06/17 23:56:57 djm Exp $");
+RCSID("$OpenBSD: ssh.c,v 1.218 2004/06/18 10:40:19 djm Exp $");
#include <openssl/evp.h>
#include <openssl/err.h>
@@ -1240,10 +1240,6 @@ control_client(const char *path)
if ((cp = getenv("TERM")) == NULL)
cp = "";
- signal(SIGINT, control_client_sighandler);
- signal(SIGTERM, control_client_sighandler);
- signal(SIGWINCH, control_client_sigrelay);
-
buffer_init(&m);
/* Get PID of controlee */
@@ -1286,6 +1282,10 @@ control_client(const char *path)
fatal("%s: master returned error", __func__);
buffer_free(&m);
+ signal(SIGINT, control_client_sighandler);
+ signal(SIGTERM, control_client_sighandler);
+ signal(SIGWINCH, control_client_sigrelay);
+
if (tty_flag)
enter_raw_mode();