diff options
author | Steven <sluong@cisco.com> | 2017-10-12 17:10:33 -0700 |
---|---|---|
committer | Keith Burns <alagalah@gmail.com> | 2017-10-13 16:46:51 +0000 |
commit | b59f227ab010837874614551c1f86ed06f3075dd (patch) | |
tree | f88082ed69d70ca434213fce9fa78d706020d710 /extras/vcl-ldpreload/src/libvcl-ldpreload/vcom_socket_wrapper.c | |
parent | bccd339a59788435d67e37845cd2446626466e98 (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.c | 21 |
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) { |