11use std:: { mem, ptr, fmt} ;
2- use std:: num:: Int ;
32use libc:: { c_void, c_int, socklen_t, size_t, ssize_t} ;
4- use fcntl:: { Fd , fcntl, F_SETFL , F_SETFD , FD_CLOEXEC , O_NONBLOCK } ;
3+ use fcntl:: { Fd , fcntl, FD_CLOEXEC , O_NONBLOCK } ;
4+ use fcntl:: FcntlArg :: { F_SETFD , F_SETFL } ;
55use errno:: { SysResult , SysError , from_ffi} ;
66use features;
77
@@ -257,6 +257,8 @@ pub fn listen(sockfd: Fd, backlog: uint) -> SysResult<()> {
257257}
258258
259259pub fn bind ( sockfd : Fd , addr : & SockAddr ) -> SysResult < ( ) > {
260+ use self :: SockAddr :: * ;
261+
260262 let res = unsafe {
261263 match * addr {
262264 SockIpV4 ( ref addr) => ffi:: bind ( sockfd, mem:: transmute ( addr) , mem:: size_of :: < sockaddr_in > ( ) as socklen_t ) ,
@@ -330,6 +332,8 @@ fn accept4_polyfill(sockfd: Fd, flags: SockFlag) -> SysResult<Fd> {
330332}
331333
332334pub fn connect ( sockfd : Fd , addr : & SockAddr ) -> SysResult < ( ) > {
335+ use self :: SockAddr :: * ;
336+
333337 let res = unsafe {
334338 match * addr {
335339 SockIpV4 ( ref addr) => ffi:: connect ( sockfd, mem:: transmute ( addr) , mem:: size_of :: < sockaddr_in > ( ) as socklen_t ) ,
@@ -344,7 +348,8 @@ pub fn connect(sockfd: Fd, addr: &SockAddr) -> SysResult<()> {
344348mod sa_helpers {
345349 use std:: mem;
346350 use libc:: { sockaddr_storage, sockaddr_in, sockaddr_in6, sockaddr_un} ;
347- use super :: { SockAddr , SockIpV6 , SockIpV4 , SockUnix } ;
351+ use super :: SockAddr ;
352+ use super :: SockAddr :: * ;
348353
349354 pub fn to_sockaddr_ipv4 ( addr : & sockaddr_storage ) -> SockAddr {
350355 let sin : & sockaddr_in = unsafe { mem:: transmute ( addr) } ;
@@ -385,6 +390,8 @@ pub fn recvfrom(sockfd: Fd, buf: &mut [u8]) -> SysResult<(uint, SockAddr)> {
385390}
386391
387392fn print_ipv4_addr ( sin : & sockaddr_in , f : & mut fmt:: Formatter ) -> fmt:: Result {
393+ use std:: num:: Int ;
394+
388395 let ip_addr = Int :: from_be ( sin. sin_addr . s_addr ) ;
389396 let port = Int :: from_be ( sin. sin_port ) ;
390397
@@ -399,7 +406,7 @@ fn print_ipv4_addr(sin: &sockaddr_in, f: &mut fmt::Formatter) -> fmt::Result {
399406impl fmt:: Show for SockAddr {
400407 fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
401408 match * self {
402- SockIpV4 ( sin) => print_ipv4_addr ( & sin, f) ,
409+ SockAddr :: SockIpV4 ( sin) => print_ipv4_addr ( & sin, f) ,
403410 _ => unimplemented ! ( )
404411 }
405412 }
@@ -420,6 +427,8 @@ fn sendto_sockaddr<T>(sockfd: Fd, buf: &[u8], flags: SockMessageFlags, addr: &T)
420427}
421428
422429pub fn sendto ( sockfd : Fd , buf : & [ u8 ] , addr : & SockAddr , flags : SockMessageFlags ) -> SysResult < uint > {
430+ use self :: SockAddr :: * ;
431+
423432 let ret = match * addr {
424433 SockIpV4 ( ref addr) => sendto_sockaddr ( sockfd, buf, flags, addr) ,
425434 SockIpV6 ( ref addr) => sendto_sockaddr ( sockfd, buf, flags, addr) ,
@@ -482,6 +491,8 @@ fn getsockname_sockaddr<T>(sockfd: Fd, addr: &T) -> SysResult<bool> {
482491}
483492
484493pub fn getsockname ( sockfd : Fd , addr : & mut SockAddr ) -> SysResult < bool > {
494+ use self :: SockAddr :: * ;
495+
485496 match * addr {
486497 SockIpV4 ( ref addr) => getsockname_sockaddr ( sockfd, addr) ,
487498 SockIpV6 ( ref addr) => getsockname_sockaddr ( sockfd, addr) ,
0 commit comments