diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2013-12-09 19:46:00 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2013-12-09 19:46:00 +0100 |
commit | c1b2021ede8f3e2527ec0d5b28dd5bef259fca8a (patch) | |
tree | b8e1212bab5ac9fcd7cb645d1549460e20fdb794 | |
parent | 430abbadb0fdbc49879ce5bf02066f0194384fdb (diff) | |
download | socket_wrapper-c1b2021ede8f3e2527ec0d5b28dd5bef259fca8a.tar.gz socket_wrapper-c1b2021ede8f3e2527ec0d5b28dd5bef259fca8a.tar.xz socket_wrapper-c1b2021ede8f3e2527ec0d5b28dd5bef259fca8a.zip |
swrap: Add libc_readv().
-rw-r--r-- | src/socket_wrapper.c | 11 |
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 */ |