diff options
author | Damien Miller <djm@mindrot.org> | 2008-07-05 09:36:58 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2008-07-05 09:36:58 +1000 |
commit | 20d16947190d17f9ed8db983bee6cb7bd20722b5 (patch) | |
tree | 4048846ae4e22af8cb180200890386cb83e24308 | |
parent | 22989f1b5e845830abb2f0598907a9894e9fcb4b (diff) |
- (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
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | atomicio.c | 4 | ||||
-rw-r--r-- | configure.ac | 5 |
3 files changed, 11 insertions, 3 deletions
@@ -2,6 +2,9 @@ | |||
2 | - (djm) [auth.c] Fixed test for locked account on HP/UX with shadowed | 2 | - (djm) [auth.c] Fixed test for locked account on HP/UX with shadowed |
3 | passwords disabled. bz#1083 report & patch from senthilkumar_sen AT | 3 | passwords disabled. bz#1083 report & patch from senthilkumar_sen AT |
4 | hotpop.com, w/ dtucker@ | 4 | hotpop.com, w/ dtucker@ |
5 | - (djm) [atomicio.c configure.ac] Disable poll() fallback in atomiciov for | ||
6 | Tru64. readv doesn't seem to be a comparable object there. | ||
7 | bz#1386, patch from dtucker@ ok me | ||
5 | 8 | ||
6 | 20080704 | 9 | 20080704 |
7 | - (dtucker) OpenBSD CVS Sync | 10 | - (dtucker) OpenBSD CVS Sync |
@@ -4575,4 +4578,4 @@ | |||
4575 | OpenServer 6 and add osr5bigcrypt support so when someone migrates | 4578 | OpenServer 6 and add osr5bigcrypt support so when someone migrates |
4576 | passwords between UnixWare and OpenServer they will still work. OK dtucker@ | 4579 | passwords between UnixWare and OpenServer they will still work. OK dtucker@ |
4577 | 4580 | ||
4578 | $Id: ChangeLog,v 1.5059 2008/07/04 22:59:43 djm Exp $ | 4581 | $Id: ChangeLog,v 1.5060 2008/07/04 23:36:58 djm Exp $ |
diff --git a/atomicio.c b/atomicio.c index bb44c3230..a6b2d127a 100644 --- a/atomicio.c +++ b/atomicio.c | |||
@@ -97,8 +97,10 @@ atomiciov(ssize_t (*f) (int, const struct iovec *, int), int fd, | |||
97 | /* Make a copy of the iov array because we may modify it below */ | 97 | /* Make a copy of the iov array because we may modify it below */ |
98 | memcpy(iov, _iov, iovcnt * sizeof(*_iov)); | 98 | memcpy(iov, _iov, iovcnt * sizeof(*_iov)); |
99 | 99 | ||
100 | #ifndef BROKEN_READV_COMPARISON | ||
100 | pfd.fd = fd; | 101 | pfd.fd = fd; |
101 | pfd.events = f == readv ? POLLIN : POLLOUT; | 102 | pfd.events = f == readv ? POLLIN : POLLOUT; |
103 | #endif | ||
102 | for (; iovcnt > 0 && iov[0].iov_len > 0;) { | 104 | for (; iovcnt > 0 && iov[0].iov_len > 0;) { |
103 | res = (f) (fd, iov, iovcnt); | 105 | res = (f) (fd, iov, iovcnt); |
104 | switch (res) { | 106 | switch (res) { |
@@ -106,7 +108,9 @@ atomiciov(ssize_t (*f) (int, const struct iovec *, int), int fd, | |||
106 | if (errno == EINTR) | 108 | if (errno == EINTR) |
107 | continue; | 109 | continue; |
108 | if (errno == EAGAIN || errno == EWOULDBLOCK) { | 110 | if (errno == EAGAIN || errno == EWOULDBLOCK) { |
111 | #ifndef BROKEN_READV_COMPARISON | ||
109 | (void)poll(&pfd, 1, -1); | 112 | (void)poll(&pfd, 1, -1); |
113 | #endif | ||
110 | continue; | 114 | continue; |
111 | } | 115 | } |
112 | return 0; | 116 | return 0; |
diff --git a/configure.ac b/configure.ac index eb71a879a..330b0eb5e 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -1,4 +1,4 @@ | |||
1 | # $Id: configure.ac,v 1.406 2008/06/15 16:27:48 dtucker Exp $ | 1 | # $Id: configure.ac,v 1.407 2008/07/04 23:36:58 djm Exp $ |
2 | # | 2 | # |
3 | # Copyright (c) 1999-2004 Damien Miller | 3 | # Copyright (c) 1999-2004 Damien Miller |
4 | # | 4 | # |
@@ -15,7 +15,7 @@ | |||
15 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 15 | # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
16 | 16 | ||
17 | AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) | 17 | AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) |
18 | AC_REVISION($Revision: 1.406 $) | 18 | AC_REVISION($Revision: 1.407 $) |
19 | AC_CONFIG_SRCDIR([ssh.c]) | 19 | AC_CONFIG_SRCDIR([ssh.c]) |
20 | 20 | ||
21 | AC_CONFIG_HEADER(config.h) | 21 | AC_CONFIG_HEADER(config.h) |
@@ -841,6 +841,7 @@ mips-sony-bsd|mips-sony-newsos4) | |||
841 | AC_DEFINE(SETEUID_BREAKS_SETUID) | 841 | AC_DEFINE(SETEUID_BREAKS_SETUID) |
842 | AC_DEFINE(BROKEN_SETREUID) | 842 | AC_DEFINE(BROKEN_SETREUID) |
843 | AC_DEFINE(BROKEN_SETREGID) | 843 | AC_DEFINE(BROKEN_SETREGID) |
844 | AC_DEFINE(BROKEN_READV_COMPARISON, 1, [Can't do comparisons on readv])) | ||
844 | ;; | 845 | ;; |
845 | 846 | ||
846 | *-*-nto-qnx*) | 847 | *-*-nto-qnx*) |