diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2023-07-17 21:32:09 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-17 21:32:09 +0000 |
commit | 1d61638a72d91e5a5df03da4ab83182352a4d8e4 (patch) | |
tree | d041f77b3b82c2fed7fa6a6634f4cb7c9f132c33 /src/sys | |
parent | c3e6e6a14244d68a9715ff75dc844d6c856049b9 (diff) | |
parent | 87190dab193d3ceaf8443556adfeba35177bdd24 (diff) | |
download | nix-1d61638a72d91e5a5df03da4ab83182352a4d8e4.zip |
Merge #2077
2077: Enable socket timestamping options on Android r=asomers a=spencercw
Requires https://github.com/rust-lang/libc/pull/3267 which landed in libc 0.2.147.
Co-authored-by: Chris Spencer <spencercw@gmail.com>
Diffstat (limited to 'src/sys')
-rw-r--r-- | src/sys/socket/mod.rs | 14 | ||||
-rw-r--r-- | src/sys/socket/sockopt.rs | 4 |
2 files changed, 9 insertions, 9 deletions
diff --git a/src/sys/socket/mod.rs b/src/sys/socket/mod.rs index e6665aaf..06b93c6f 100644 --- a/src/sys/socket/mod.rs +++ b/src/sys/socket/mod.rs @@ -1,7 +1,7 @@ //! Socket interface functions //! //! [Further reading](https://man7.org/linux/man-pages/man7/socket.7.html) -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "android", target_os = "linux"))] #[cfg(feature = "uio")] use crate::sys::time::TimeSpec; #[cfg(not(target_os = "redox"))] @@ -236,7 +236,7 @@ impl SockProtocol { #[allow(non_upper_case_globals)] pub const CanBcm: SockProtocol = SockProtocol::NetlinkUserSock; // Matches libc::CAN_BCM } -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "android", target_os = "linux"))] libc_bitflags! { /// Configuration flags for `SO_TIMESTAMPING` interface /// @@ -737,12 +737,12 @@ pub enum ControlMessageOwned { /// A set of nanosecond resolution timestamps /// /// [Further reading](https://www.kernel.org/doc/html/latest/networking/timestamping.html) - #[cfg(all(target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "linux"))] ScmTimestampsns(Timestamps), /// Nanoseconds resolution timestamp /// /// [Further reading](https://www.kernel.org/doc/html/latest/networking/timestamping.html) - #[cfg(all(target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "linux"))] #[cfg_attr(docsrs, doc(cfg(all())))] ScmTimestampns(TimeSpec), #[cfg(any( @@ -839,7 +839,7 @@ pub enum ControlMessageOwned { } /// For representing packet timestamps via `SO_TIMESTAMPING` interface -#[cfg(all(target_os = "linux"))] +#[cfg(any(target_os = "android", target_os = "linux"))] #[derive(Copy, Clone, Debug, Eq, PartialEq)] pub struct Timestamps { /// software based timestamp, usually one containing data @@ -892,12 +892,12 @@ impl ControlMessageOwned { let tv: libc::timeval = ptr::read_unaligned(p as *const _); ControlMessageOwned::ScmTimestamp(TimeVal::from(tv)) }, - #[cfg(all(target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "linux"))] (libc::SOL_SOCKET, libc::SCM_TIMESTAMPNS) => { let ts: libc::timespec = ptr::read_unaligned(p as *const _); ControlMessageOwned::ScmTimestampns(TimeSpec::from(ts)) } - #[cfg(all(target_os = "linux"))] + #[cfg(any(target_os = "android", target_os = "linux"))] (libc::SOL_SOCKET, libc::SCM_TIMESTAMPING) => { let tp = p as *const libc::timespec; let ts: libc::timespec = ptr::read_unaligned(tp); diff --git a/src/sys/socket/sockopt.rs b/src/sys/socket/sockopt.rs index d5bcda4c..0d675ffb 100644 --- a/src/sys/socket/sockopt.rs +++ b/src/sys/socket/sockopt.rs @@ -683,7 +683,7 @@ sockopt_impl!( libc::IP6T_SO_ORIGINAL_DST, libc::sockaddr_in6 ); -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "android", target_os = "linux"))] sockopt_impl!( /// Specifies exact type of timestamping information collected by the kernel /// [Further reading](https://www.kernel.org/doc/html/latest/networking/timestamping.html) @@ -702,7 +702,7 @@ sockopt_impl!( libc::SO_TIMESTAMP, bool ); -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "android", target_os = "linux"))] sockopt_impl!( /// Enable or disable the receiving of the `SO_TIMESTAMPNS` control message. ReceiveTimestampns, |