[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 2/8] linux-user: add missing UDP get/setsockopt option
From: |
Shu-Chun Weng |
Subject: |
[PATCH v2 2/8] linux-user: add missing UDP get/setsockopt option |
Date: |
Tue, 11 Aug 2020 00:09:42 -0700 |
SOL_UDP manipulate options at UDP level. All six options currently defined
in linux source include/uapi/linux/udp.h take integer values.
Signed-off-by: Shu-Chun Weng <scw@google.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
---
v1 -> v2:
Split out SOL_UDP into own patch.
Updated do_print_sockopt().
linux-user/strace.c | 6 ++++++
linux-user/syscall.c | 7 +++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/linux-user/strace.c b/linux-user/strace.c
index 4fff24b880..854b54a2ad 100644
--- a/linux-user/strace.c
+++ b/linux-user/strace.c
@@ -7,6 +7,7 @@
#include <sys/mount.h>
#include <arpa/inet.h>
#include <netinet/tcp.h>
+#include <netinet/udp.h>
#include <linux/if_packet.h>
#include <linux/netlink.h>
#include <sched.h>
@@ -2190,6 +2191,11 @@ static void do_print_sockopt(const char *name, abi_long
arg1)
print_raw_param(TARGET_ABI_FMT_ld, optname, 0);
print_pointer(optval, 0);
break;
+ case SOL_UDP:
+ qemu_log("SOL_UDP,");
+ print_raw_param(TARGET_ABI_FMT_ld, optname, 0);
+ print_pointer(optval, 0);
+ break;
case SOL_IP:
qemu_log("SOL_IP,");
print_raw_param(TARGET_ABI_FMT_ld, optname, 0);
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 5645862798..177eec5201 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -53,6 +53,7 @@
//#include <sys/user.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
+#include <netinet/udp.h>
#include <linux/wireless.h>
#include <linux/icmp.h>
#include <linux/icmpv6.h>
@@ -1938,7 +1939,8 @@ static abi_long do_setsockopt(int sockfd, int level, int
optname,
switch(level) {
case SOL_TCP:
- /* TCP options all take an 'int' value. */
+ case SOL_UDP:
+ /* TCP and UDP options all take an 'int' value. */
if (optlen < sizeof(uint32_t))
return -TARGET_EINVAL;
@@ -2586,7 +2588,8 @@ get_timeout:
}
break;
case SOL_TCP:
- /* TCP options all take an 'int' value. */
+ case SOL_UDP:
+ /* TCP and UDP options all take an 'int' value. */
int_case:
if (get_user_u32(len, optlen))
return -TARGET_EFAULT;
--
2.28.0.220.ged08abb693-goog
- [PATCH v2 0/8] fcntl, sockopt, and ioctl options, Shu-Chun Weng, 2020/08/11
- [PATCH v2 1/8] linux-user: Support F_ADD_SEALS and F_GET_SEALS fcntls, Shu-Chun Weng, 2020/08/11
- [PATCH v2 2/8] linux-user: add missing UDP get/setsockopt option,
Shu-Chun Weng <=
- [PATCH v2 3/8] linux-user: add missing IPv6 get/setsockopt option, Shu-Chun Weng, 2020/08/11
- [PATCH v2 4/8] linux-user: Add IPv6 options to do_print_sockopt(), Shu-Chun Weng, 2020/08/11
- [PATCH v2 5/8] linux-user: Update SO_TIMESTAMP to SO_TIMESTAMP_OLD/NEW, Shu-Chun Weng, 2020/08/11
- [PATCH v2 7/8] thunk: supports flexible arrays, Shu-Chun Weng, 2020/08/11
- [PATCH v2 6/8] linux-user: setsockopt() SO_TIMESTAMPNS and SO_TIMESTAMPING, Shu-Chun Weng, 2020/08/11
- [PATCH v2 8/8] linux-user: Add support for SIOCETHTOOL ioctl, Shu-Chun Weng, 2020/08/11