From d809601a92292a0bb363feafee64c934ec3ecebb Mon Sep 17 00:00:00 2001
From: Alex Crichton <alex@alexcrichton.com>
Date: Wed, 16 Sep 2015 16:36:30 -0700
Subject: [PATCH] OK, different strategy for fixing

---
 src/unix/bsd/mod.rs          | 5 -----
 src/unix/mod.rs              | 8 ++++++++
 src/unix/notbsd/android.rs   | 5 -----
 src/unix/notbsd/linux/mod.rs | 5 -----
 4 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs
index ecb21b1c..d55c7816 100644
--- a/src/unix/bsd/mod.rs
+++ b/src/unix/bsd/mod.rs
@@ -27,11 +27,6 @@ s! {
         pub sun_family: sa_family_t,
         pub sun_path: [c_char; 104]
     }
-
-    pub struct ipv6_mreq {
-        pub ipv6mr_multiaddr: ::in6_addr,
-        pub ipv6mr_interface: ::c_uint,
-    }
 }
 
 extern {
diff --git a/src/unix/mod.rs b/src/unix/mod.rs
index 8c568c00..6ec4bf6d 100644
--- a/src/unix/mod.rs
+++ b/src/unix/mod.rs
@@ -56,6 +56,14 @@ s! {
         pub imr_multiaddr: in_addr,
         pub imr_interface: in_addr,
     }
+
+    pub struct ipv6_mreq {
+        pub ipv6mr_multiaddr: in6_addr,
+        #[cfg(target_os = "android")]
+        pub ipv6mr_interface: c_uint,
+        #[cfg(not(target_os = "android"))]
+        pub ipv6mr_interface: c_int,
+    }
 }
 
 cfg_if! {
diff --git a/src/unix/notbsd/android.rs b/src/unix/notbsd/android.rs
index 637f6467..96fdc200 100644
--- a/src/unix/notbsd/android.rs
+++ b/src/unix/notbsd/android.rs
@@ -54,11 +54,6 @@ s! {
         pub sched_policy: ::int32_t,
         pub sched_priority: ::int32_t,
     }
-
-    pub struct ipv6_mreq {
-        pub ipv6mr_multiaddr: ::in6_addr,
-        pub ipv6mr_interface: ::c_int,
-    }
 }
 
 pub const BUFSIZ: ::c_uint = 1024;
diff --git a/src/unix/notbsd/linux/mod.rs b/src/unix/notbsd/linux/mod.rs
index 4afac2d2..d17f3306 100644
--- a/src/unix/notbsd/linux/mod.rs
+++ b/src/unix/notbsd/linux/mod.rs
@@ -28,11 +28,6 @@ s! {
         pub ifa_ifu: *mut ::sockaddr, // FIXME This should be a union
         pub ifa_data: *mut ::c_void
     }
-
-    pub struct ipv6_mreq {
-        pub ipv6mr_multiaddr: ::in6_addr,
-        pub ipv6mr_interface: ::c_uint,
-    }
 }
 
 pub const BUFSIZ: ::c_uint = 8192;
-- 
GitLab