diff options
Diffstat (limited to 'ssh.c')
-rw-r--r-- | ssh.c | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -39,7 +39,7 @@ | |||
39 | */ | 39 | */ |
40 | 40 | ||
41 | #include "includes.h" | 41 | #include "includes.h" |
42 | RCSID("$OpenBSD: ssh.c,v 1.68 2000/10/11 20:27:24 markus Exp $"); | 42 | RCSID("$OpenBSD: ssh.c,v 1.69 2000/10/27 07:32:19 markus Exp $"); |
43 | 43 | ||
44 | #include <openssl/evp.h> | 44 | #include <openssl/evp.h> |
45 | #include <openssl/dsa.h> | 45 | #include <openssl/dsa.h> |
@@ -1008,6 +1008,14 @@ ssh_session2(void) | |||
1008 | if (in < 0 || out < 0 || err < 0) | 1008 | if (in < 0 || out < 0 || err < 0) |
1009 | fatal("dup() in/out/err failed"); | 1009 | fatal("dup() in/out/err failed"); |
1010 | 1010 | ||
1011 | /* enable nonblocking unless tty */ | ||
1012 | if (!isatty(in)) | ||
1013 | set_nonblock(in); | ||
1014 | if (!isatty(out)) | ||
1015 | set_nonblock(out); | ||
1016 | if (!isatty(err)) | ||
1017 | set_nonblock(err); | ||
1018 | |||
1011 | /* should be pre-session */ | 1019 | /* should be pre-session */ |
1012 | init_local_fwd(); | 1020 | init_local_fwd(); |
1013 | 1021 | ||
@@ -1025,7 +1033,7 @@ ssh_session2(void) | |||
1025 | id = channel_new( | 1033 | id = channel_new( |
1026 | "session", SSH_CHANNEL_OPENING, in, out, err, | 1034 | "session", SSH_CHANNEL_OPENING, in, out, err, |
1027 | window, packetmax, CHAN_EXTENDED_WRITE, | 1035 | window, packetmax, CHAN_EXTENDED_WRITE, |
1028 | xstrdup("client-session")); | 1036 | xstrdup("client-session"), /*nonblock*/0); |
1029 | 1037 | ||
1030 | channel_open(id); | 1038 | channel_open(id); |
1031 | channel_register_callback(id, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION, client_init, (void *)0); | 1039 | channel_register_callback(id, SSH2_MSG_CHANNEL_OPEN_CONFIRMATION, client_init, (void *)0); |