aboutsummaryrefslogtreecommitdiffstats
path: root/extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c
diff options
context:
space:
mode:
authorSteven <sluong@cisco.com>2017-10-12 17:10:33 -0700
committerKeith Burns <alagalah@gmail.com>2017-10-13 16:46:51 +0000
commitb59f227ab010837874614551c1f86ed06f3075dd (patch)
treef88082ed69d70ca434213fce9fa78d706020d710 /extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c
parentbccd339a59788435d67e37845cd2446626466e98 (diff)
LDPRELOAD: Add ioctl, fcntl, and setsockopt support
Add support for the following system calls: ioctl (FIONREAD) fcntl (F_GETFL) fcntl (F_SETFL) setsockopt (SOL_IPV6, IPV6_V6ONLY) setsockopt (SOL_TCP, TCP_NODELAY) setsockopt (SOL_SOCKET, SO_REUSEADDR) setsockopt (SOL_SOCKET, SO_BROADCAST) This patch supersedes https://gerrit.fd.io/r/#/c/8765/ Change-Id: I5d5309d9f43d93a990b389d8cb667631de1903fe Signed-off-by: Steven <sluong@cisco.com>
Diffstat (limited to 'extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c')
-rw-r--r--extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c b/extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c
index 74a0dcf3b11..087cd6bbc52 100644
--- a/extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c
+++ b/extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c
@@ -555,6 +555,27 @@ libc_vfcntl (int fd, int cmd, va_list ap)
return rc;
}
+DO_NOT_SANITIZE_ADDRESS_ATTRIBUTE int
+libc_vioctl (int fd, int cmd, va_list ap)
+{
+ long int args[4];
+ int rc;
+ int i;
+
+ swrap_bind_symbol_libc (ioctl);
+
+ for (i = 0; i < 4; i++)
+ {
+ args[i] = va_arg (ap, long int);
+ }
+
+ rc = swrap.libc.symbols._libc_ioctl.f (fd,
+ cmd,
+ args[0], args[1], args[2], args[3]);
+
+ return rc;
+}
+
int
libc_getpeername (int sockfd, struct sockaddr *addr, socklen_t * addrlen)
{