From f64da93c684ab65189f73ea4c07ef5079a32231a Mon Sep 17 00:00:00 2001 From: Bartel Sielski Date: Fri, 25 Sep 2020 15:50:23 +0200 Subject: [PATCH] Add struct ip_mreqn to more Linux targets Support was previously added to gnu x86_64 and all musl targets but others were not included because of a roundtrip issue [1]. This commit adds support for the ip_mreqn struct on all Linux GNU targets which did not have the roundtrip issue. [1]: https://github.com/rust-lang/libc/issues/1558 Signed-off-by: Bartel Sielski --- src/unix/linux_like/linux/gnu/b32/mod.rs | 6 ++++++ src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 6 ++++++ src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs | 6 ++++++ src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs | 6 ++++++ 4 files changed, 24 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 2eab8ddf61e54..01a1fc305444b 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -115,6 +115,12 @@ s! { pub mem_unit: ::c_uint, pub _f: [::c_char; 8], } + + pub struct ip_mreqn { + pub imr_multiaddr: ::in_addr, + pub imr_address: ::in_addr, + pub imr_ifindex: ::c_int, + } } pub const O_NOATIME: ::c_int = 0o1000000; diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index a65199ab7757a..4a218c7020aa0 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -203,6 +203,12 @@ s! { pub ss_flags: ::c_int, pub ss_size: ::size_t } + + pub struct ip_mreqn { + pub imr_multiaddr: ::in_addr, + pub imr_address: ::in_addr, + pub imr_ifindex: ::c_int, + } } pub const VEOF: usize = 4; diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index 9cf0b2170701b..c71620a0aa681 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -190,6 +190,12 @@ s! { pub ss_flags: ::c_int, pub ss_size: ::size_t } + + pub struct ip_mreqn { + pub imr_multiaddr: ::in_addr, + pub imr_address: ::in_addr, + pub imr_ifindex: ::c_int, + } } pub const POSIX_FADV_DONTNEED: ::c_int = 4; diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index 9fa0f0a963d76..6123403ef6334 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -191,6 +191,12 @@ s! { pub l_len: ::off64_t, pub l_pid: ::pid_t, } + + pub struct ip_mreqn { + pub imr_multiaddr: ::in_addr, + pub imr_address: ::in_addr, + pub imr_ifindex: ::c_int, + } } pub const POSIX_FADV_DONTNEED: ::c_int = 4;