diff --git a/ChangeLog b/ChangeLog index 43d5e365b..9deb7bde2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,8 @@ [channels.c] Correct test for window updates every three packets; prevents sending window updates for every single packet. ok markus@ + - (dtucker) [atomicio.c] Test for EWOULDBLOCK in atomiciov to match + atomicio. 20070614 - (dtucker) [cipher-ctr.c umac.c openbsd-compat/openssl-compat.h] Move the @@ -3095,4 +3097,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.4707 2007/06/25 09:04:46 dtucker Exp $ +$Id: ChangeLog,v 1.4708 2007/06/25 09:06:53 dtucker Exp $ diff --git a/atomicio.c b/atomicio.c index 253139e99..79dba9f29 100644 --- a/atomicio.c +++ b/atomicio.c @@ -101,7 +101,11 @@ atomiciov(ssize_t (*f) (int, const struct iovec *, int), int fd, res = (f) (fd, iov, iovcnt); switch (res) { case -1: +#ifdef EWOULDBLOCK + if (errno == EINTR || errno == EWOULDBLOCK) +#else if (errno == EINTR) +#endif continue; if (errno == EAGAIN) { (void)poll(&pfd, 1, -1);