summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2013-12-09 19:46:00 +0100
committerAndreas Schneider <asn@cryptomilk.org>2013-12-09 19:46:00 +0100
commitc1b2021ede8f3e2527ec0d5b28dd5bef259fca8a (patch)
treeb8e1212bab5ac9fcd7cb645d1549460e20fdb794
parent430abbadb0fdbc49879ce5bf02066f0194384fdb (diff)
downloadsocket_wrapper-c1b2021ede8f3e2527ec0d5b28dd5bef259fca8a.tar.gz
socket_wrapper-c1b2021ede8f3e2527ec0d5b28dd5bef259fca8a.tar.xz
socket_wrapper-c1b2021ede8f3e2527ec0d5b28dd5bef259fca8a.zip
swrap: Add libc_readv().
-rw-r--r--src/socket_wrapper.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c
index 05b4a6d..63a8301 100644
--- a/src/socket_wrapper.c
+++ b/src/socket_wrapper.c
@@ -695,6 +695,13 @@ static int libc_read(int fd, void *buf, size_t count)
return swrap.fns.libc_read(fd, buf, count);
}
+static ssize_t libc_readv(int fd, const struct iovec *iov, int iovcnt)
+{
+ swrap_load_lib_function(SWRAP_LIBSOCKET, readv);
+
+ return swrap.fns.libc_readv(fd, iov, iovcnt);
+}
+
/*********************************************************
* SWRAP HELPER FUNCTIONS
*********************************************************/
@@ -3205,7 +3212,7 @@ static ssize_t swrap_readv(int s, const struct iovec *vector, int count)
struct iovec v;
if (!si) {
- return swrap.fns.libc_readv(s, vector, count);
+ return libc_readv(s, vector, count);
}
if (!si->connected) {
@@ -3233,7 +3240,7 @@ static ssize_t swrap_readv(int s, const struct iovec *vector, int count)
}
}
- ret = swrap.fns.libc_readv(s, vector, count);
+ ret = libc_readv(s, vector, count);
if (ret == -1 && errno != EAGAIN && errno != ENOBUFS) {
swrap_dump_packet(si, NULL, SWRAP_RECV_RST, NULL, 0);
} else if (ret == 0) { /* END OF FILE */