]> andersk Git - openssh.git/commitdiff
- markus@cvs.openbsd.org 2002/01/21 23:27:10
authordjm <djm>
Tue, 22 Jan 2002 12:34:52 +0000 (12:34 +0000)
committerdjm <djm>
Tue, 22 Jan 2002 12:34:52 +0000 (12:34 +0000)
     [channels.c nchan.c]
     cleanup channels faster if the are empty and we are in drain-state; ok deraadt@

ChangeLog
channels.c
nchan.c

index bf06f2fae307a440747603769386a6e8700bc582..52b8d43646a2aa9e2b769adae57a5ee5fe2029e1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
      [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:
index 03f12d3968130ff10a6f6504d7882182a328daad..73bc10a1a1c1e040f47ee18a7b631c79dd30655e 100644 (file)
@@ -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);
        }
 
 }
diff --git a/nchan.c b/nchan.c
index 070f14a7ae3c52b2440a81b0be9bfcd6d6c05396..fc8e7f18de6d6ee2bba07c2c3d619795d5cdace3 100644 (file)
--- a/nchan.c
+++ b/nchan.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)
This page took 1.019949 seconds and 5 git commands to generate.