]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
Add sys_writev
authorVolker Lendecke <vl@samba.org>
Sun, 21 Dec 2008 22:22:30 +0000 (23:22 +0100)
committerKarolin Seeger <kseeger@samba.org>
Fri, 2 Jan 2009 11:44:25 +0000 (12:44 +0100)
(cherry picked from commit 886ebe3b6f7b5304ae9c185ee14a444977afac24)

source/include/proto.h
source/lib/system.c

index f6b1906068b8365904586e3ad5a1dc468e11c95f..d29a108ac48b17a433319d0ec527ad8d3f63d5d2 100644 (file)
@@ -1037,6 +1037,7 @@ void *sys_memalign( size_t align, size_t size );
 int sys_usleep(long usecs);
 ssize_t sys_read(int fd, void *buf, size_t count);
 ssize_t sys_write(int fd, const void *buf, size_t count);
+ssize_t sys_writev(int fd, const struct iovec *iov, int iovcnt);
 ssize_t sys_pread(int fd, void *buf, size_t count, SMB_OFF_T off);
 ssize_t sys_pwrite(int fd, const void *buf, size_t count, SMB_OFF_T off);
 ssize_t sys_send(int s, const void *msg, size_t len, int flags);
index eabb6d6dc48dbca7b1dc7fb9b4ea4b5cec934b2c..5b06d3c7600e943ab5dd33f66a26f4d0f37bb1ae 100644 (file)
@@ -141,6 +141,20 @@ ssize_t sys_write(int fd, const void *buf, size_t count)
        return ret;
 }
 
+/*******************************************************************
+A writev wrapper that will deal with EINTR.
+********************************************************************/
+
+ssize_t sys_writev(int fd, const struct iovec *iov, int iovcnt)
+{
+       ssize_t ret;
+
+       do {
+               ret = writev(fd, iov, iovcnt);
+       } while (ret == -1 && errno == EINTR);
+       return ret;
+}
+
 /*******************************************************************
 A pread wrapper that will deal with EINTR and 64-bit file offsets.
 ********************************************************************/