summaryrefslogtreecommitdiff
path: root/usr/src/lib/libresolv2_joy/common/bsd/readv.c
diff options
context:
space:
mode:
authorRobert Mustacchi <rm@joyent.com>2013-04-11 20:06:23 +0000
committerRobert Mustacchi <rm@joyent.com>2013-04-23 00:54:54 +0000
commit0a073d9c072a82ec2d59f578a3a68c82aca35b5c (patch)
treece678151ab5f89e38d255e73fb8af07513c2e548 /usr/src/lib/libresolv2_joy/common/bsd/readv.c
parentebdeab6a22ff38dc9e8777a6c4ed3270a3d4b044 (diff)
downloadillumos-joyent-0a073d9c072a82ec2d59f578a3a68c82aca35b5c.tar.gz
OS-2115 /etc/resolv.conf only handles a fixed number of DNS resolvers
OS-2148 suspect nscd is not honoring DNS TTLs
Diffstat (limited to 'usr/src/lib/libresolv2_joy/common/bsd/readv.c')
-rw-r--r--usr/src/lib/libresolv2_joy/common/bsd/readv.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/usr/src/lib/libresolv2_joy/common/bsd/readv.c b/usr/src/lib/libresolv2_joy/common/bsd/readv.c
new file mode 100644
index 0000000000..5fa691a92f
--- /dev/null
+++ b/usr/src/lib/libresolv2_joy/common/bsd/readv.c
@@ -0,0 +1,39 @@
+#ifndef LINT
+static const char rcsid[] = "$Id: readv.c,v 1.2 2005/04/27 04:56:11 sra Exp $";
+#endif
+
+#include "port_before.h"
+
+#include <sys/types.h>
+#include <sys/uio.h>
+#include <sys/stat.h>
+#include <sys/socket.h>
+
+#include "port_after.h"
+
+#ifndef NEED_READV
+int __bindcompat_readv;
+#else
+
+int
+__readv(fd, vp, vpcount)
+ int fd;
+ const struct iovec *vp;
+ int vpcount;
+{
+ int count = 0;
+
+ while (vpcount-- > 0) {
+ int bytes = read(fd, vp->iov_base, vp->iov_len);
+
+ if (bytes < 0)
+ return (-1);
+ count += bytes;
+ if (bytes != vp->iov_len)
+ break;
+ vp++;
+ }
+ return (count);
+}
+#endif /* NEED_READV */
+/*! \file */