]> andersk Git - openssh.git/blobdiff - nchan.c
- djm@cvs.openbsd.org 2009/11/20 00:54:01
[openssh.git] / nchan.c
diff --git a/nchan.c b/nchan.c
index a4a456eab8f456f304d5f2608e8c2cd58f97d811..160445e5a26a62aaaf8b44db4cb2b8903312eab3 100644 (file)
--- a/nchan.c
+++ b/nchan.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nchan.c,v 1.59 2008/05/09 16:21:13 markus Exp $ */
+/* $OpenBSD: nchan.c,v 1.62 2008/11/07 18:50:18 stevesk Exp $ */
 /*
  * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl.  All rights reserved.
  *
@@ -334,7 +334,8 @@ chan_write_failed2(Channel *c)
        case CHAN_OUTPUT_OPEN:
        case CHAN_OUTPUT_WAIT_DRAIN:
                chan_shutdown_write(c);
-               chan_send_eow2(c);
+               if (strcmp(c->ctype, "session") == 0)
+                       chan_send_eow2(c);
                chan_set_ostate(c, CHAN_OUTPUT_CLOSED);
                break;
        default:
@@ -386,6 +387,8 @@ chan_send_eow2(Channel *c)
                    c->self);
                return;
        }
+       if (!(datafellows & SSH_NEW_OPENSSH))
+               return;
        packet_start(SSH2_MSG_CHANNEL_REQUEST);
        packet_put_int(c->remote_id);
        packet_put_cstring("eow@openssh.com");
@@ -483,12 +486,12 @@ chan_shutdown_write(Channel *c)
        if (c->sock != -1) {
                if (shutdown(c->sock, SHUT_WR) < 0)
                        debug2("channel %d: chan_shutdown_write: "
-                           "shutdown() failed for fd%d: %.100s",
+                           "shutdown() failed for fd %d: %.100s",
                            c->self, c->sock, strerror(errno));
        } else {
                if (channel_close_fd(&c->wfd) < 0)
                        logit("channel %d: chan_shutdown_write: "
-                           "close() failed for fd%d: %.100s",
+                           "close() failed for fd %d: %.100s",
                            c->self, c->wfd, strerror(errno));
        }
 }
@@ -507,13 +510,13 @@ chan_shutdown_read(Channel *c)
                if (shutdown(c->sock, SHUT_RD) < 0
                    && errno != ENOTCONN)
                        error("channel %d: chan_shutdown_read: "
-                           "shutdown() failed for fd%d [i%d o%d]: %.100s",
+                           "shutdown() failed for fd %d [i%d o%d]: %.100s",
                            c->self, c->sock, c->istate, c->ostate,
                            strerror(errno));
        } else {
                if (channel_close_fd(&c->rfd) < 0)
                        logit("channel %d: chan_shutdown_read: "
-                           "close() failed for fd%d: %.100s",
+                           "close() failed for fd %d: %.100s",
                            c->self, c->rfd, strerror(errno));
        }
 }
This page took 0.038651 seconds and 4 git commands to generate.