linux-user: netlink: Add IP_PKTINFO cmsg parsing
authorHelge Deller <deller@gmx.de>
Sun, 19 Jan 2025 02:20:03 +0000 (03:20 +0100)
committerHelge Deller <deller@gmx.de>
Fri, 24 Jan 2025 12:58:40 +0000 (13:58 +0100)
Fixes those warnings:
 Unsupported host ancillary data: 0/8

Signed-off-by: Helge Deller <deller@gmx.de>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
linux-user/syscall.c
linux-user/syscall_defs.h

index a157abc40c9f81a8f65258ff689d114b05c31a60..df8609b4d84ac2fdd4677219aeab4d7a3dd8f2dc 100644 (file)
@@ -1998,6 +1998,16 @@ static inline abi_long host_to_target_cmsg(struct target_msghdr *target_msgh,
                     (void *) &errh->offender, sizeof(errh->offender));
                 break;
             }
+            case IP_PKTINFO:
+            {
+                struct in_pktinfo *pkti = data;
+                struct target_in_pktinfo *target_pi = target_data;
+
+                __put_user(pkti->ipi_ifindex, &target_pi->ipi_ifindex);
+                target_pi->ipi_spec_dst.s_addr = pkti->ipi_spec_dst.s_addr;
+                target_pi->ipi_addr.s_addr = pkti->ipi_addr.s_addr;
+                break;
+            }
             default:
                 goto unimplemented;
             }
index faad9147c910775ee2138fd90f96e0dec9a232f3..86d773add7509081f26a08b16bcaa2d241c8788e 100644 (file)
@@ -2622,6 +2622,12 @@ struct target_ucred {
     abi_uint gid;
 };
 
+struct target_in_pktinfo {
+    abi_int               ipi_ifindex;
+    struct target_in_addr ipi_spec_dst;
+    struct target_in_addr ipi_addr;
+};
+
 typedef abi_int target_timer_t;
 
 #define TARGET_SIGEV_MAX_SIZE 64