@@ -15,7 +15,6 @@ use crate::*;
15
15
pub fn test_inetv4_addr_to_sock_addr ( ) {
16
16
let actual: net:: SocketAddr = FromStr :: from_str ( "127.0.0.1:3000" ) . unwrap ( ) ;
17
17
let addr = InetAddr :: from_std ( & actual) ;
18
- let sockaddr = SockAddr :: new_inet ( addr) ;
19
18
20
19
match addr {
21
20
InetAddr :: V4 ( addr) => {
@@ -33,6 +32,13 @@ pub fn test_inetv4_addr_to_sock_addr() {
33
32
34
33
let inet = addr. to_std ( ) ;
35
34
assert_eq ! ( actual, inet) ;
35
+ }
36
+
37
+ #[ test]
38
+ pub fn test_inetv4_addr_roundtrip_sockaddr_storage_to_addr ( ) {
39
+ let actual: net:: SocketAddr = FromStr :: from_str ( "127.0.0.1:3000" ) . unwrap ( ) ;
40
+ let addr = InetAddr :: from_std ( & actual) ;
41
+ let sockaddr = SockAddr :: new_inet ( addr) ;
36
42
37
43
let ( storage, ffi_size) = {
38
44
let mut storage = MaybeUninit :: < sockaddr_storage > :: zeroed ( ) ;
@@ -60,7 +66,6 @@ pub fn test_inetv6_addr_to_sock_addr() {
60
66
61
67
let actual = SocketAddr :: V6 ( SocketAddrV6 :: new ( ip, port, flowinfo, scope_id) ) ;
62
68
let addr = InetAddr :: from_std ( & actual) ;
63
- let sockaddr = SockAddr :: new_inet ( addr) ;
64
69
65
70
match addr {
66
71
InetAddr :: V6 ( addr) => {
@@ -72,6 +77,17 @@ pub fn test_inetv6_addr_to_sock_addr() {
72
77
}
73
78
74
79
assert_eq ! ( actual, addr. to_std( ) ) ;
80
+ }
81
+ #[ test]
82
+ pub fn test_inetv6_addr_roundtrip_sockaddr_storage_to_addr ( ) {
83
+ let port: u16 = 3000 ;
84
+ let flowinfo: u32 = 1 ;
85
+ let scope_id: u32 = 2 ;
86
+ let ip: Ipv6Addr = "fe80::1" . parse ( ) . unwrap ( ) ;
87
+
88
+ let actual = SocketAddr :: V6 ( SocketAddrV6 :: new ( ip, port, flowinfo, scope_id) ) ;
89
+ let addr = InetAddr :: from_std ( & actual) ;
90
+ let sockaddr = SockAddr :: new_inet ( addr) ;
75
91
76
92
let ( storage, ffi_size) = {
77
93
let mut storage = MaybeUninit :: < sockaddr_storage > :: zeroed ( ) ;
0 commit comments