@@ -4,9 +4,11 @@ use std::ptr;
44use std:: fmt;
55
66#[ cfg( unix) ]
7- use libc:: { sockaddr, sockaddr_storage, sa_family_t, socklen_t, AF_INET , AF_INET6 } ;
7+ use libc:: { sockaddr, sockaddr_storage, sockaddr_in, sockaddr_in6, sa_family_t, socklen_t, AF_INET ,
8+ AF_INET6 } ;
89#[ cfg( windows) ]
910use winapi:: { SOCKADDR as sockaddr, SOCKADDR_STORAGE as sockaddr_storage,
11+ SOCKADDR_IN as sockaddr_in, SOCKADDR_IN6 as sockaddr_in6,
1012 ADDRESS_FAMILY as sa_family_t, socklen_t, AF_INET , AF_INET6 } ;
1113
1214use SockAddr ;
@@ -76,6 +78,14 @@ impl SockAddr {
7678
7779// SocketAddrV4 and SocketAddrV6 are just wrappers around sockaddr_in and sockaddr_in6
7880
81+ // check to make sure that the sizes at least match up
82+ fn _size_checks ( v4 : SocketAddrV4 , v6 : SocketAddrV6 ) {
83+ unsafe {
84+ mem:: transmute :: < SocketAddrV4 , sockaddr_in > ( v4) ;
85+ mem:: transmute :: < SocketAddrV6 , sockaddr_in6 > ( v6) ;
86+ }
87+ }
88+
7989impl From < SocketAddrV4 > for SockAddr {
8090 fn from ( addr : SocketAddrV4 ) -> SockAddr {
8191 unsafe {
@@ -85,7 +95,6 @@ impl From<SocketAddrV4> for SockAddr {
8595 }
8696}
8797
88-
8998impl From < SocketAddrV6 > for SockAddr {
9099 fn from ( addr : SocketAddrV6 ) -> SockAddr {
91100 unsafe {
0 commit comments