]> andersk Git - openssh.git/commitdiff
- (djm) [atomicio.c configure.ac] Disable poll() fallback in atomiciov for
authordjm <djm>
Fri, 4 Jul 2008 23:36:58 +0000 (23:36 +0000)
committerdjm <djm>
Fri, 4 Jul 2008 23:36:58 +0000 (23:36 +0000)
   Tru64. readv doesn't seem to be a comparable object there.
   bz#1386, patch from dtucker@ ok me

ChangeLog
atomicio.c
configure.ac

index d57808f3c45725a97ee48989370b8ce8de55a725..0db459f9ebf17f8d276f6942fa9cfacaa8d08d8b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,9 @@
  - (djm) [auth.c] Fixed test for locked account on HP/UX with shadowed
    passwords disabled. bz#1083 report & patch from senthilkumar_sen AT
    hotpop.com, w/ dtucker@
+ - (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
 
 20080704
  - (dtucker) OpenBSD CVS Sync
index bb44c32300d368b77f84b9d22adb1c229e34b88b..a6b2d127a9b803a8e4e1c85359d351eaaabecaf9 100644 (file)
@@ -97,8 +97,10 @@ atomiciov(ssize_t (*f) (int, const struct iovec *, int), int fd,
        /* Make a copy of the iov array because we may modify it below */
        memcpy(iov, _iov, iovcnt * sizeof(*_iov));
 
+#ifndef BROKEN_READV_COMPARISON
        pfd.fd = fd;
        pfd.events = f == readv ? POLLIN : POLLOUT;
+#endif
        for (; iovcnt > 0 && iov[0].iov_len > 0;) {
                res = (f) (fd, iov, iovcnt);
                switch (res) {
@@ -106,7 +108,9 @@ atomiciov(ssize_t (*f) (int, const struct iovec *, int), int fd,
                        if (errno == EINTR)
                                continue;
                        if (errno == EAGAIN || errno == EWOULDBLOCK) {
+#ifndef BROKEN_READV_COMPARISON
                                (void)poll(&pfd, 1, -1);
+#endif
                                continue;
                        }
                        return 0;
index 2e8d270d8313fe4b7648b59dad99e5a2d656a02d..a970e02ad68c7c6d169bed5b6b8ecf9f18cc92e0 100644 (file)
@@ -841,6 +841,7 @@ mips-sony-bsd|mips-sony-newsos4)
        AC_DEFINE(SETEUID_BREAKS_SETUID)
        AC_DEFINE(BROKEN_SETREUID)
        AC_DEFINE(BROKEN_SETREGID)
+       AC_DEFINE(BROKEN_READV_COMPARISON, 1, [Can't do comparisons on readv]))
        ;;
 
 *-*-nto-qnx*)
This page took 0.189243 seconds and 5 git commands to generate.