]> andersk Git - openssh.git/commitdiff
- OpenBSD CVS Sync
authordjm <djm>
Fri, 4 Jul 2008 23:40:56 +0000 (23:40 +0000)
committerdjm <djm>
Fri, 4 Jul 2008 23:40:56 +0000 (23:40 +0000)
   - djm@cvs.openbsd.org 2008/07/04 23:08:25
     [packet.c]
     handle EINTR in packet_write_poll()l ok dtucker@

ChangeLog
packet.c

index 0db459f9ebf17f8d276f6942fa9cfacaa8d08d8b..4af616da6af5a7cf4907e1a68164c38d77561c36 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,10 @@
  - (djm) [atomicio.c configure.ac] Disable poll() fallback in atomiciov for
    Tru64. readv doesn't seem to be a comparable object there.
    bz#1386, patch from dtucker@ ok me
+ - (djm) OpenBSD CVS Sync
+   - djm@cvs.openbsd.org 2008/07/04 23:08:25
+     [packet.c]
+     handle EINTR in packet_write_poll()l ok dtucker@
 
 20080704
  - (dtucker) OpenBSD CVS Sync
index ff22be68f4c49b1d9658149e52d4b28c50e46264..1dda4a29458a1b66fd26cd36521960f664c1a397 100644 (file)
--- a/packet.c
+++ b/packet.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: packet.c,v 1.155 2008/06/13 09:44:36 deraadt Exp $ */
+/* $OpenBSD: packet.c,v 1.156 2008/07/04 23:08:25 djm Exp $ */
 /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -1475,16 +1475,19 @@ packet_write_poll(void)
 
        if (len > 0) {
                len = write(connection_out, buffer_ptr(&output), len);
-               if (len <= 0) {
-                       if (errno == EAGAIN || errno == EWOULDBLOCK)
+               if (len == -1) {
+                       if (errno == EINTR || errno == EAGAIN ||
+                           errno == EWOULDBLOCK)
                                return;
-                       else
-                               fatal("Write failed: %.100s", strerror(errno));
+                       fatal("Write failed: %.100s", strerror(errno));
                }
+               if (len == 0)
+                       fatal("Write connection closed");
                buffer_consume(&output, len);
        }
 }
 
+
 /*
  * Calls packet_write_poll repeatedly until all pending output data has been
  * written.
This page took 0.193357 seconds and 5 git commands to generate.