@@ -4,9 +4,11 @@ use std::ptr;
4
4
use std:: fmt;
5
5
6
6
#[ 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 } ;
8
9
#[ cfg( windows) ]
9
10
use winapi:: { SOCKADDR as sockaddr, SOCKADDR_STORAGE as sockaddr_storage,
11
+ SOCKADDR_IN as sockaddr_in, SOCKADDR_IN6 as sockaddr_in6,
10
12
ADDRESS_FAMILY as sa_family_t, socklen_t, AF_INET , AF_INET6 } ;
11
13
12
14
use SockAddr ;
@@ -76,6 +78,14 @@ impl SockAddr {
76
78
77
79
// SocketAddrV4 and SocketAddrV6 are just wrappers around sockaddr_in and sockaddr_in6
78
80
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
+
79
89
impl From < SocketAddrV4 > for SockAddr {
80
90
fn from ( addr : SocketAddrV4 ) -> SockAddr {
81
91
unsafe {
@@ -85,7 +95,6 @@ impl From<SocketAddrV4> for SockAddr {
85
95
}
86
96
}
87
97
88
-
89
98
impl From < SocketAddrV6 > for SockAddr {
90
99
fn from ( addr : SocketAddrV6 ) -> SockAddr {
91
100
unsafe {
0 commit comments