From f64da93c684ab65189f73ea4c07ef5079a32231a Mon Sep 17 00:00:00 2001 From: Bartel Sielski <bartel.sielski@gmail.com> 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 <bartel.sielski@gmail.com> --- 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 2eab8ddf..01a1fc30 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 a65199ab..4a218c70 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 9cf0b217..c71620a0 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 9fa0f0a9..6123403e 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; -- GitLab