summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2013-12-09 19:44:09 +0100
committerAndreas Schneider <asn@cryptomilk.org>2013-12-09 19:44:09 +0100
commit430abbadb0fdbc49879ce5bf02066f0194384fdb (patch)
tree10ea77a7458bc8d5482f03bf6d48770387bddef5
parent89fcdfbf7bf162a950c52692e677f80c266971cf (diff)
downloadsocket_wrapper-430abbadb0fdbc49879ce5bf02066f0194384fdb.tar.gz
socket_wrapper-430abbadb0fdbc49879ce5bf02066f0194384fdb.tar.xz
socket_wrapper-430abbadb0fdbc49879ce5bf02066f0194384fdb.zip
swrap: Add libc_read().
-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 ce35307..05b4a6d 100644
--- a/src/socket_wrapper.c
+++ b/src/socket_wrapper.c
@@ -688,6 +688,13 @@ static int libc_listen(int sockfd, int backlog)
return swrap.fns.libc_listen(sockfd, backlog);
}
+static int libc_read(int fd, void *buf, size_t count)
+{
+ swrap_load_lib_function(SWRAP_LIBC, read);
+
+ return swrap.fns.libc_read(fd, buf, count);
+}
+
/*********************************************************
* SWRAP HELPER FUNCTIONS
*********************************************************/
@@ -3007,14 +3014,14 @@ static ssize_t swrap_read(int s, void *buf, size_t len)
struct socket_info *si = find_socket_info(s);
if (!si) {
- return swrap.fns.libc_read(s, buf, len);
+ return libc_read(s, buf, len);
}
if (si->type == SOCK_STREAM) {
len = MIN(len, SOCKET_MAX_PACKET);
}
- ret = swrap.fns.libc_read(s, buf, len);
+ ret = libc_read(s, buf, len);
if (ret == -1 && errno != EAGAIN && errno != ENOBUFS) {
swrap_dump_packet(si, NULL, SWRAP_RECV_RST, NULL, 0);
} else if (ret == 0) { /* END OF FILE */