summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorMarkus Friedl <markus@cvs.openbsd.org>2002-01-14 13:22:36 +0000
committerMarkus Friedl <markus@cvs.openbsd.org>2002-01-14 13:22:36 +0000
commita281f96040d0ad797bde05e99723565eef73b972 (patch)
treed6311c2a2862822ee2268b9fb24d2c3b0bdef81a /usr.bin
parent329cc2cc87730afac9b71e587a23dd70c8b53901 (diff)
chan_send_oclose1() no longer calls chan_shutdown_write(); ok provos@
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/ssh/nchan.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/usr.bin/ssh/nchan.c b/usr.bin/ssh/nchan.c
index e7f2e3cbc3f..cfe13937823 100644
--- a/usr.bin/ssh/nchan.c
+++ b/usr.bin/ssh/nchan.c
@@ -23,7 +23,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: nchan.c,v 1.37 2002/01/13 21:31:20 markus Exp $");
+RCSID("$OpenBSD: nchan.c,v 1.38 2002/01/14 13:22:35 markus Exp $");
#include "ssh1.h"
#include "ssh2.h"
@@ -191,10 +191,12 @@ chan_write_failed1(Channel *c)
debug("channel %d: write failed", c->self);
switch (c->ostate) {
case CHAN_OUTPUT_OPEN:
+ chan_shutdown_write(c);
chan_send_oclose1(c);
chan_set_ostate(c, CHAN_OUTPUT_WAIT_IEOF);
break;
case CHAN_OUTPUT_WAIT_DRAIN:
+ chan_shutdown_write(c);
chan_send_oclose1(c);
chan_set_ostate(c, CHAN_OUTPUT_CLOSED);
break;
@@ -215,6 +217,7 @@ chan_obuf_empty1(Channel *c)
}
switch (c->ostate) {
case CHAN_OUTPUT_WAIT_DRAIN:
+ chan_shutdown_write(c);
chan_send_oclose1(c);
chan_set_ostate(c, CHAN_OUTPUT_CLOSED);
break;
@@ -248,7 +251,6 @@ chan_send_oclose1(Channel *c)
switch (c->ostate) {
case CHAN_OUTPUT_OPEN:
case CHAN_OUTPUT_WAIT_DRAIN:
- chan_shutdown_write(c);
buffer_clear(&c->output);
packet_start(SSH_MSG_CHANNEL_OUTPUT_CLOSE);
packet_put_int(c->remote_id);