From: Laurent Vivier <laur...@vivier.eu> Signed-off-by: Laurent Vivier <laur...@vivier.eu> Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Riku Voipio <riku.voi...@linaro.org> --- linux-user/syscall.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 505031b..7a093ba 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -1315,6 +1315,26 @@ static abi_long do_setsockopt(int sockfd, int level, int optname, goto unimplemented; } break; + case SOL_IPV6: + switch (optname) { + case IPV6_MTU_DISCOVER: + case IPV6_MTU: + case IPV6_V6ONLY: + case IPV6_RECVPKTINFO: + val = 0; + if (optlen < sizeof(uint32_t)) { + return -TARGET_EINVAL; + } + if (get_user_u32(val, optval_addr)) { + return -TARGET_EFAULT; + } + ret = get_errno(setsockopt(sockfd, level, optname, + &val, sizeof(val))); + break; + default: + goto unimplemented; + } + break; case SOL_RAW: switch (optname) { case ICMP_FILTER: -- 1.8.1.2