mirror of
https://github.com/PowerShell/openssh-portable.git
synced 2025-07-28 16:24:39 +02:00
- OpenBSD CVS Sync
- djm@cvs.openbsd.org 2008/07/04 23:08:25 [packet.c] handle EINTR in packet_write_poll()l ok dtucker@
This commit is contained in:
parent
20d1694719
commit
d874fa517b
@ -5,6 +5,10 @@
|
|||||||
- (djm) [atomicio.c configure.ac] Disable poll() fallback in atomiciov for
|
- (djm) [atomicio.c configure.ac] Disable poll() fallback in atomiciov for
|
||||||
Tru64. readv doesn't seem to be a comparable object there.
|
Tru64. readv doesn't seem to be a comparable object there.
|
||||||
bz#1386, patch from dtucker@ ok me
|
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
|
20080704
|
||||||
- (dtucker) OpenBSD CVS Sync
|
- (dtucker) OpenBSD CVS Sync
|
||||||
@ -4578,4 +4582,4 @@
|
|||||||
OpenServer 6 and add osr5bigcrypt support so when someone migrates
|
OpenServer 6 and add osr5bigcrypt support so when someone migrates
|
||||||
passwords between UnixWare and OpenServer they will still work. OK dtucker@
|
passwords between UnixWare and OpenServer they will still work. OK dtucker@
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.5060 2008/07/04 23:36:58 djm Exp $
|
$Id: ChangeLog,v 1.5061 2008/07/04 23:40:56 djm Exp $
|
||||||
|
11
packet.c
11
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>
|
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||||
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
||||||
@ -1475,16 +1475,19 @@ packet_write_poll(void)
|
|||||||
|
|
||||||
if (len > 0) {
|
if (len > 0) {
|
||||||
len = write(connection_out, buffer_ptr(&output), len);
|
len = write(connection_out, buffer_ptr(&output), len);
|
||||||
if (len <= 0) {
|
if (len == -1) {
|
||||||
if (errno == EAGAIN || errno == EWOULDBLOCK)
|
if (errno == EINTR || errno == EAGAIN ||
|
||||||
|
errno == EWOULDBLOCK)
|
||||||
return;
|
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);
|
buffer_consume(&output, len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Calls packet_write_poll repeatedly until all pending output data has been
|
* Calls packet_write_poll repeatedly until all pending output data has been
|
||||||
* written.
|
* written.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user