diff options
author | Damien Miller <djm@mindrot.org> | 2002-01-22 23:34:52 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2002-01-22 23:34:52 +1100 |
commit | 73f1074272add17aeaaff10c5ec6ab310e513d9d (patch) | |
tree | 7e1cb3b483b9cf7e7e109461733a9ddc4a7f6aaa | |
parent | 914bef437e7b80da027116e140e41746dafc45ee (diff) |
- markus@cvs.openbsd.org 2002/01/21 23:27:10
[channels.c nchan.c]
cleanup channels faster if the are empty and we are in drain-state; ok deraadt@
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | channels.c | 4 | ||||
-rw-r--r-- | nchan.c | 5 |
3 files changed, 12 insertions, 3 deletions
@@ -219,6 +219,10 @@ [cipher.c compat.c myproposal.h] remove "rijndael-*", just use "aes-" since this how rijndael is called in the drafts; ok stevesk@ + - markus@cvs.openbsd.org 2002/01/21 23:27:10 + [channels.c nchan.c] + cleanup channels faster if the are empty and we are in drain-state; + ok deraadt@ 20020121 - (djm) Rework ssh-rand-helper: @@ -7366,4 +7370,4 @@ - Wrote replacements for strlcpy and mkdtemp - Released 1.0pre1 -$Id: ChangeLog,v 1.1784 2002/01/22 12:34:35 djm Exp $ +$Id: ChangeLog,v 1.1785 2002/01/22 12:34:52 djm Exp $ @@ -39,7 +39,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: channels.c,v 1.160 2002/01/16 13:17:51 markus Exp $"); +RCSID("$OpenBSD: channels.c,v 1.161 2002/01/21 23:27:10 markus Exp $"); #include "ssh.h" #include "ssh1.h" @@ -1793,6 +1793,8 @@ channel_input_ieof(int type, u_int32_t seq, void *ctxt) if (c->force_drain && c->istate == CHAN_INPUT_OPEN) { debug("channel %d: FORCE input drain", c->self); c->istate = CHAN_INPUT_WAIT_DRAIN; + if (buffer_len(&c->input) == 0) + chan_ibuf_empty(c); } } @@ -23,7 +23,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: nchan.c,v 1.43 2002/01/14 13:57:03 markus Exp $"); +RCSID("$OpenBSD: nchan.c,v 1.44 2002/01/21 23:27:10 markus Exp $"); #include "ssh1.h" #include "ssh2.h" @@ -364,6 +364,9 @@ chan_rcvd_ieof(Channel *c) chan_rcvd_eof2(c); else chan_rcvd_ieof1(c); + if (c->ostate == CHAN_OUTPUT_WAIT_DRAIN && + buffer_len(&c->output) == 0) + chan_obuf_empty(c); } void chan_rcvd_oclose(Channel *c) |