]> andersk Git - openssh.git/commitdiff
- reyk@cvs.openbsd.org 2006/01/30 12:22:22
authordjm <djm>
Tue, 31 Jan 2006 10:47:15 +0000 (10:47 +0000)
committerdjm <djm>
Tue, 31 Jan 2006 10:47:15 +0000 (10:47 +0000)
     [channels.c]
     mark channel as write failed or dead instead of read failed on error
     of the channel output filter.
     ok markus@

ChangeLog
channels.c

index b275fbeb8846ec49f982519d57978ce43e13973c..37f2a23e5c137e6666489c01ad12d6bffa2ef443 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
      written with a lot of help from jakob;
      feedback dtucker/markus;
      ok markus
+   - reyk@cvs.openbsd.org 2006/01/30 12:22:22
+     [channels.c]
+     mark channel as write failed or dead instead of read failed on error
+     of the channel output filter.
+     ok markus@
 
 20060129
  - (dtucker) [configure.ac opensshd.init.in] Bug #1144: Use /bin/sh for the
index 5fa80fbadce66352dc383d5d7dbd39694810e018..1252f344673b8e4efb39dc25b7aa4638e8d1633b 100644 (file)
@@ -39,7 +39,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: channels.c,v 1.231 2005/12/30 15:56:36 reyk Exp $");
+RCSID("$OpenBSD: channels.c,v 1.232 2006/01/30 12:22:22 reyk Exp $");
 
 #include "ssh.h"
 #include "ssh1.h"
@@ -1466,7 +1466,11 @@ channel_handle_wfd(Channel *c, fd_set * readset, fd_set * writeset)
                if (c->output_filter != NULL) {
                        if ((buf = c->output_filter(c, &data, &dlen)) == NULL) {
                                debug2("channel %d: filter stops", c->self);
-                               chan_read_failed(c);
+                               if (c->type != SSH_CHANNEL_OPEN)
+                                       chan_mark_dead(c);
+                               else
+                                       chan_write_failed(c);
+                               return -1;
                        }
                } else if (c->datagram) {
                        buf = data = buffer_get_string(&c->output, &dlen);
This page took 0.184714 seconds and 5 git commands to generate.