1
1
#![ allow( unused, non_upper_case_globals) ]
2
2
3
- use winapi:: basetsd:: { UINT32 , UINT8 , ULONG64 } ;
4
- use winapi:: guiddef:: GUID ;
5
- use winapi:: minwindef:: { BYTE , DWORD , PULONG , ULONG } ;
6
- use winapi:: winnt :: { PCHAR , PVOID , PWCHAR , WCHAR } ;
7
- use winapi:: ws2def :: SOCKET_ADDRESS ;
3
+ use winapi:: shared :: basetsd:: { UINT32 , UINT8 , ULONG64 } ;
4
+ use winapi:: shared :: guiddef:: GUID ;
5
+ use winapi:: shared :: minwindef:: { BYTE , DWORD , PULONG , ULONG } ;
6
+ use winapi:: shared :: ws2def :: SOCKET_ADDRESS ;
7
+ use winapi:: um :: winnt :: { PCHAR , PVOID , PWCHAR , WCHAR } ;
8
8
9
9
const MAX_ADAPTER_ADDRESS_LENGTH : usize = 8 ;
10
10
const ZONE_INDICES_LENGTH : usize = 16 ;
@@ -19,12 +19,12 @@ use std::mem;
19
19
use std:: net:: { Ipv4Addr , SocketAddr , SocketAddrV4 , SocketAddrV6 } ;
20
20
use std:: ptr;
21
21
22
- use winapi:: winerror:: {
22
+ use winapi:: shared :: winerror:: {
23
23
ERROR_ADDRESS_NOT_ASSOCIATED , ERROR_BUFFER_OVERFLOW , ERROR_INVALID_PARAMETER ,
24
24
ERROR_NOT_ENOUGH_MEMORY , ERROR_NO_DATA , ERROR_SUCCESS ,
25
25
} ;
26
- use winapi:: ws2def:: { AF_INET , AF_INET6 , AF_UNSPEC , SOCKADDR_IN } ;
27
- use winapi:: ws2ipdef:: sockaddr_in6 ;
26
+ use winapi:: shared :: ws2def:: { AF_INET , AF_INET6 , AF_UNSPEC , SOCKADDR_IN } ;
27
+ use winapi:: shared :: ws2ipdef:: SOCKADDR_IN6 ;
28
28
29
29
const PREALLOC_ADAPTERS_LEN : usize = 15 * 1024 ;
30
30
@@ -251,10 +251,10 @@ unsafe fn v4_socket_from_adapter(unicast_addr: &IpAdapterUnicastAddress) -> Sock
251
251
let sin_addr = in_addr. sin_addr . S_un ;
252
252
253
253
let v4_addr = Ipv4Addr :: new (
254
- sin_addr as u8 ,
255
- ( sin_addr >> 8 ) as u8 ,
256
- ( sin_addr >> 16 ) as u8 ,
257
- ( sin_addr >> 24 ) as u8 ,
254
+ * sin_addr. S_addr ( ) as u8 ,
255
+ ( * sin_addr. S_addr ( ) >> 8 ) as u8 ,
256
+ ( * sin_addr. S_addr ( ) >> 16 ) as u8 ,
257
+ ( * sin_addr. S_addr ( ) >> 24 ) as u8 ,
258
258
) ;
259
259
260
260
SocketAddrV4 :: new ( v4_addr, 0 )
@@ -263,12 +263,17 @@ unsafe fn v4_socket_from_adapter(unicast_addr: &IpAdapterUnicastAddress) -> Sock
263
263
unsafe fn v6_socket_from_adapter ( unicast_addr : & IpAdapterUnicastAddress ) -> SocketAddrV6 {
264
264
let socket_addr = & unicast_addr. address ;
265
265
266
- let sock_addr6: * const sockaddr_in6 = socket_addr. lpSockaddr as * const winapi :: sockaddr_in6 ;
267
- let in6_addr: sockaddr_in6 = * sock_addr6;
266
+ let sock_addr6: * const SOCKADDR_IN6 = socket_addr. lpSockaddr as * const SOCKADDR_IN6 ;
267
+ let in6_addr: SOCKADDR_IN6 = * sock_addr6;
268
268
269
- let v6_addr = in6_addr. sin6_addr . s6_addr . into ( ) ;
269
+ let v6_addr = ( * in6_addr. sin6_addr . u . Word ( ) ) . into ( ) ;
270
270
271
- SocketAddrV6 :: new ( v6_addr, 0 , in6_addr. sin6_flowinfo , in6_addr. sin6_scope_id )
271
+ SocketAddrV6 :: new (
272
+ v6_addr,
273
+ 0 ,
274
+ in6_addr. sin6_flowinfo ,
275
+ * in6_addr. u . sin6_scope_id ( ) ,
276
+ )
272
277
}
273
278
274
279
unsafe fn local_ifaces_with_buffer ( buffer : & mut Vec < u8 > ) -> io:: Result < ( ) > {
0 commit comments