mirror of
https://gitee.com/openharmony/third_party_rust_nix
synced 2025-01-05 23:09:03 +00:00
Add IP_TTL/IPV6_UNICAST_HOPS SockOpts
Test: `cargo test --test test test_ttl_opts`
This commit is contained in:
parent
ccc1434960
commit
1ce595f526
@ -40,6 +40,8 @@ This project adheres to [Semantic Versioning](https://semver.org/).
|
||||
(#[1514](https://github.com/nix-rust/nix/pull/1514))
|
||||
- Added `AsRawFd` implementation on `PollFd`.
|
||||
(#[1516](https://github.com/nix-rust/nix/pull/1516))
|
||||
- Added `Ipv4Ttl` and `Ipv6Ttl` sockopts.
|
||||
(#[1515](https://github.com/nix-rust/nix/pull/1515))
|
||||
|
||||
### Changed
|
||||
|
||||
|
@ -356,6 +356,10 @@ sockopt_impl!(Both, Ipv6V6Only, libc::IPPROTO_IPV6, libc::IPV6_V6ONLY, bool);
|
||||
sockopt_impl!(Both, Ipv4RecvErr, libc::IPPROTO_IP, libc::IP_RECVERR, bool);
|
||||
#[cfg(any(target_os = "android", target_os = "linux"))]
|
||||
sockopt_impl!(Both, Ipv6RecvErr, libc::IPPROTO_IPV6, libc::IPV6_RECVERR, bool);
|
||||
#[cfg(any(target_os = "android", target_os = "freebsd", target_os = "linux"))]
|
||||
sockopt_impl!(Both, Ipv4Ttl, libc::IPPROTO_IP, libc::IP_TTL, libc::c_int);
|
||||
#[cfg(any(target_os = "android", target_os = "freebsd", target_os = "linux"))]
|
||||
sockopt_impl!(Both, Ipv6Ttl, libc::IPPROTO_IPV6, libc::IPV6_UNICAST_HOPS, libc::c_int);
|
||||
|
||||
#[cfg(any(target_os = "android", target_os = "linux"))]
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
|
@ -186,3 +186,14 @@ fn test_so_tcp_keepalive() {
|
||||
assert_eq!(getsockopt(fd, sockopt::TcpKeepInterval).unwrap(), x + 1);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(any(target_os = "android", target_os = "freebsd", target_os = "linux"))]
|
||||
fn test_ttl_opts() {
|
||||
let fd4 = socket(AddressFamily::Inet, SockType::Datagram, SockFlag::empty(), None).unwrap();
|
||||
setsockopt(fd4, sockopt::Ipv4Ttl, &1)
|
||||
.expect("setting ipv4ttl on an inet socket should succeed");
|
||||
let fd6 = socket(AddressFamily::Inet6, SockType::Datagram, SockFlag::empty(), None).unwrap();
|
||||
setsockopt(fd6, sockopt::Ipv6Ttl, &1)
|
||||
.expect("setting ipv6ttl on an inet6 socket should succeed");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user