@@ -507,19 +507,6 @@ impl<S, B> Server<S, B>
507507 }
508508}
509509
510- fn thread_listener ( addr : & SocketAddr , handle : & Handle ) -> io:: Result < TcpListener > {
511- let listener = match * addr {
512- SocketAddr :: V4 ( _) => try!( net2:: TcpBuilder :: new_v4 ( ) ) ,
513- SocketAddr :: V6 ( _) => try!( net2:: TcpBuilder :: new_v6 ( ) ) ,
514- } ;
515- try!( reuse_port ( & listener) ) ;
516- try!( listener. reuse_address ( true ) ) ;
517- try!( listener. bind ( addr) ) ;
518- listener. listen ( 1024 ) . and_then ( |l| {
519- TcpListener :: from_listener ( l, addr, handle)
520- } )
521- }
522-
523510fn date_render_interval ( handle : & Handle ) {
524511 // Since we own the executor, we can spawn an interval to update the
525512 // thread_local rendered date, instead of checking the clock on every
@@ -573,16 +560,29 @@ fn date_render_interval(handle: &Handle) {
573560 }
574561}
575562
563+ fn thread_listener ( addr : & SocketAddr , handle : & Handle ) -> io:: Result < TcpListener > {
564+ let listener = match * addr {
565+ SocketAddr :: V4 ( _) => net2:: TcpBuilder :: new_v4 ( ) ?,
566+ SocketAddr :: V6 ( _) => net2:: TcpBuilder :: new_v6 ( ) ?,
567+ } ;
568+ reuse_port ( & listener) ;
569+ listener. reuse_address ( true ) ?;
570+ listener. bind ( addr) ?;
571+ listener. listen ( 1024 ) . and_then ( |l| {
572+ TcpListener :: from_listener ( l, addr, handle)
573+ } )
574+ }
575+
576576#[ cfg( unix) ]
577- fn reuse_port ( tcp : & net2:: TcpBuilder ) -> io :: Result < ( ) > {
577+ fn reuse_port ( tcp : & net2:: TcpBuilder ) {
578578 use net2:: unix:: * ;
579- try!( tcp. reuse_port ( true ) ) ;
580- Ok ( ( ) )
579+ if let Err ( e) = tcp. reuse_port ( true ) {
580+ debug ! ( "error setting SO_REUSEPORT: {}" , e) ;
581+ }
581582}
582583
583584#[ cfg( not( unix) ) ]
584- fn reuse_port ( _tcp : & net2:: TcpBuilder ) -> io:: Result < ( ) > {
585- Ok ( ( ) )
585+ fn reuse_port ( _tcp : & net2:: TcpBuilder ) {
586586}
587587
588588impl < S : fmt:: Debug , B : Stream < Error =:: Error > > fmt:: Debug for Server < S , B >
0 commit comments