[PATCH v2] linux-user: add missing MULTICAST_IF get/setsockopt option

Jiaxun Yang posted 1 patch 3 years, 1 month ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210305040542.9879-1-jiaxun.yang@flygoat.com
Maintainers: Laurent Vivier <laurent@vivier.eu>
There is a newer version of this series
linux-user/syscall.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH v2] linux-user: add missing MULTICAST_IF get/setsockopt option
Posted by Jiaxun Yang 3 years, 1 month ago
{IP,IPV6}_MULTICAST_IF was not supported.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
 linux-user/syscall.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 389ec09764..77343130b3 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -2219,6 +2219,7 @@ static abi_long do_setsockopt(int sockfd, int level, int optname,
 #ifdef IP_FREEBIND
         case IP_FREEBIND:
 #endif
+        case IP_MULTICAST_IF:
         case IP_MULTICAST_TTL:
         case IP_MULTICAST_LOOP:
             val = 0;
@@ -2265,6 +2266,7 @@ static abi_long do_setsockopt(int sockfd, int level, int optname,
         case IPV6_V6ONLY:
         case IPV6_RECVPKTINFO:
         case IPV6_UNICAST_HOPS:
+        case IPV6_MULTICAST_IF:
         case IPV6_MULTICAST_HOPS:
         case IPV6_MULTICAST_LOOP:
         case IPV6_RECVERR:
@@ -2891,6 +2893,7 @@ get_timeout:
 #ifdef IP_FREEBIND
         case IP_FREEBIND:
 #endif
+        case IP_MULTICAST_IF:
         case IP_MULTICAST_TTL:
         case IP_MULTICAST_LOOP:
             if (get_user_u32(len, optlen))
@@ -2926,6 +2929,7 @@ get_timeout:
         case IPV6_V6ONLY:
         case IPV6_RECVPKTINFO:
         case IPV6_UNICAST_HOPS:
+        case IPV6_MULTICAST_IF:
         case IPV6_MULTICAST_HOPS:
         case IPV6_MULTICAST_LOOP:
         case IPV6_RECVERR:
-- 
2.30.1


Re: [PATCH v2] linux-user: add missing MULTICAST_IF get/setsockopt option
Posted by Philippe Mathieu-Daudé 3 years, 1 month ago
On 3/5/21 5:05 AM, Jiaxun Yang wrote:
> {IP,IPV6}_MULTICAST_IF was not supported.
> 

FWIW in v1 you had "Reported-by: Yunqiang Su <syq@debian.org>"

> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
> ---
>  linux-user/syscall.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 389ec09764..77343130b3 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -2219,6 +2219,7 @@ static abi_long do_setsockopt(int sockfd, int level, int optname,
>  #ifdef IP_FREEBIND
>          case IP_FREEBIND:
>  #endif
> +        case IP_MULTICAST_IF:
>          case IP_MULTICAST_TTL:
>          case IP_MULTICAST_LOOP:
>              val = 0;
> @@ -2265,6 +2266,7 @@ static abi_long do_setsockopt(int sockfd, int level, int optname,
>          case IPV6_V6ONLY:
>          case IPV6_RECVPKTINFO:
>          case IPV6_UNICAST_HOPS:
> +        case IPV6_MULTICAST_IF:
>          case IPV6_MULTICAST_HOPS:
>          case IPV6_MULTICAST_LOOP:
>          case IPV6_RECVERR:
> @@ -2891,6 +2893,7 @@ get_timeout:
>  #ifdef IP_FREEBIND
>          case IP_FREEBIND:
>  #endif
> +        case IP_MULTICAST_IF:
>          case IP_MULTICAST_TTL:
>          case IP_MULTICAST_LOOP:
>              if (get_user_u32(len, optlen))
> @@ -2926,6 +2929,7 @@ get_timeout:
>          case IPV6_V6ONLY:
>          case IPV6_RECVPKTINFO:
>          case IPV6_UNICAST_HOPS:
> +        case IPV6_MULTICAST_IF:
>          case IPV6_MULTICAST_HOPS:
>          case IPV6_MULTICAST_LOOP:
>          case IPV6_RECVERR:
>