summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md2
-rw-r--r--src/sys/socket/mod.rs32
2 files changed, 24 insertions, 10 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 15c7b859..9205945e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -39,6 +39,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
(#[1244](https://github.com/nix-rust/nix/pull/1244))
- Added `unistd::ttyname`
(#[1259](https://github.com/nix-rust/nix/pull/1259))
+- Added support for `Ipv4PacketInfo` and `Ipv6PacketInfo` to `ControlMessage` for iOS and Android.
+ (#[1265](https://github.com/nix-rust/nix/pull/1265))
### Changed
- Changed `fallocate` return type from `c_int` to `()` (#[1201](https://github.com/nix-rust/nix/pull/1201))
diff --git a/src/sys/socket/mod.rs b/src/sys/socket/mod.rs
index aafa849c..0328319f 100644
--- a/src/sys/socket/mod.rs
+++ b/src/sys/socket/mod.rs
@@ -730,7 +730,9 @@ pub enum ControlMessage<'a> {
/// [`ip(7)`](http://man7.org/linux/man-pages/man7/ip.7.html) man page.
#[cfg(any(target_os = "linux",
target_os = "macos",
- target_os = "netbsd"))]
+ target_os = "netbsd",
+ target_os = "android",
+ target_os = "ios",))]
Ipv4PacketInfo(&'a libc::in_pktinfo),
/// Configure the sending addressing and interface for v6
@@ -740,7 +742,9 @@ pub enum ControlMessage<'a> {
#[cfg(any(target_os = "linux",
target_os = "macos",
target_os = "netbsd",
- target_os = "freebsd"))]
+ target_os = "freebsd",
+ target_os = "android",
+ target_os = "ios",))]
Ipv6PacketInfo(&'a libc::in6_pktinfo),
}
@@ -824,10 +828,12 @@ impl<'a> ControlMessage<'a> {
gso_size as *const _ as *const u8
},
#[cfg(any(target_os = "linux", target_os = "macos",
- target_os = "netbsd"))]
+ target_os = "netbsd", target_os = "android",
+ target_os = "ios",))]
ControlMessage::Ipv4PacketInfo(info) => info as *const _ as *const u8,
#[cfg(any(target_os = "linux", target_os = "macos",
- target_os = "netbsd", target_os = "freebsd"))]
+ target_os = "netbsd", target_os = "freebsd",
+ target_os = "android", target_os = "ios",))]
ControlMessage::Ipv6PacketInfo(info) => info as *const _ as *const u8,
};
unsafe {
@@ -870,10 +876,12 @@ impl<'a> ControlMessage<'a> {
mem::size_of_val(gso_size)
},
#[cfg(any(target_os = "linux", target_os = "macos",
- target_os = "netbsd"))]
+ target_os = "netbsd", target_os = "android",
+ target_os = "ios",))]
ControlMessage::Ipv4PacketInfo(info) => mem::size_of_val(info),
#[cfg(any(target_os = "linux", target_os = "macos",
- target_os = "netbsd", target_os = "freebsd"))]
+ target_os = "netbsd", target_os = "freebsd",
+ target_os = "android", target_os = "ios",))]
ControlMessage::Ipv6PacketInfo(info) => mem::size_of_val(info),
}
}
@@ -892,10 +900,12 @@ impl<'a> ControlMessage<'a> {
#[cfg(target_os = "linux")]
ControlMessage::UdpGsoSegments(_) => libc::SOL_UDP,
#[cfg(any(target_os = "linux", target_os = "macos",
- target_os = "netbsd"))]
+ target_os = "netbsd", target_os = "android",
+ target_os = "ios",))]
ControlMessage::Ipv4PacketInfo(_) => libc::IPPROTO_IP,
#[cfg(any(target_os = "linux", target_os = "macos",
- target_os = "netbsd", target_os = "freebsd"))]
+ target_os = "netbsd", target_os = "freebsd",
+ target_os = "android", target_os = "ios",))]
ControlMessage::Ipv6PacketInfo(_) => libc::IPPROTO_IPV6,
}
}
@@ -925,10 +935,12 @@ impl<'a> ControlMessage<'a> {
libc::UDP_SEGMENT
},
#[cfg(any(target_os = "linux", target_os = "macos",
- target_os = "netbsd"))]
+ target_os = "netbsd", target_os = "android",
+ target_os = "ios",))]
ControlMessage::Ipv4PacketInfo(_) => libc::IP_PKTINFO,
#[cfg(any(target_os = "linux", target_os = "macos",
- target_os = "netbsd", target_os = "freebsd"))]
+ target_os = "netbsd", target_os = "freebsd",
+ target_os = "android", target_os = "ios",))]
ControlMessage::Ipv6PacketInfo(_) => libc::IPV6_PKTINFO,
}
}