diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2022-11-25 22:35:51 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-25 22:35:51 +0000 |
commit | 33a4d495d99590d17ce4ced675bb6bf4a11d9251 (patch) | |
tree | 029843f9d2d0470186f467be8232b77570a047c4 /test | |
parent | acd01d763472ecd4df7b854aa2f26b74f4bde742 (diff) | |
parent | e9f07eea61d78dd1b4555e0e7814ab1078cb10d9 (diff) | |
download | nix-33a4d495d99590d17ce4ced675bb6bf4a11d9251.zip |
Merge #1865
1865: Add IpMtu sockopt r=asomers a=ShadowJonathan
Resolves https://github.com/nix-rust/nix/issues/1864
Co-authored-by: Jonathan de Jong <jonathandejong02@gmail.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/sys/test_sockopt.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/sys/test_sockopt.rs b/test/sys/test_sockopt.rs index e6acfa59..47b01c16 100644 --- a/test/sys/test_sockopt.rs +++ b/test/sys/test_sockopt.rs @@ -237,6 +237,33 @@ fn test_so_tcp_keepalive() { } #[test] +#[cfg(any(target_os = "android", target_os = "linux"))] +#[cfg_attr(qemu, ignore)] +fn test_get_mtu() { + use nix::sys::socket::{bind, connect, SockaddrIn}; + use std::net::SocketAddrV4; + use std::str::FromStr; + + let std_sa = SocketAddrV4::from_str("127.0.0.1:4001").unwrap(); + let std_sb = SocketAddrV4::from_str("127.0.0.1:4002").unwrap(); + + let usock = socket( + AddressFamily::Inet, + SockType::Datagram, + SockFlag::empty(), + SockProtocol::Udp, + ) + .unwrap(); + + // Bind and initiate connection + bind(usock, &SockaddrIn::from(std_sa)).unwrap(); + connect(usock, &SockaddrIn::from(std_sb)).unwrap(); + + // Loopback connections have 2^16 - the maximum - MTU + assert_eq!(getsockopt(usock, sockopt::IpMtu), Ok(u16::MAX as i32)) +} + +#[test] #[cfg(any(target_os = "android", target_os = "freebsd", target_os = "linux"))] fn test_ttl_opts() { let fd4 = socket( |