@@ -507,19 +507,6 @@ impl<S, B> Server<S, B>
507
507
}
508
508
}
509
509
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
-
523
510
fn date_render_interval ( handle : & Handle ) {
524
511
// Since we own the executor, we can spawn an interval to update the
525
512
// thread_local rendered date, instead of checking the clock on every
@@ -573,16 +560,29 @@ fn date_render_interval(handle: &Handle) {
573
560
}
574
561
}
575
562
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
+
576
576
#[ cfg( unix) ]
577
- fn reuse_port ( tcp : & net2:: TcpBuilder ) -> io :: Result < ( ) > {
577
+ fn reuse_port ( tcp : & net2:: TcpBuilder ) {
578
578
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
+ }
581
582
}
582
583
583
584
#[ cfg( not( unix) ) ]
584
- fn reuse_port ( _tcp : & net2:: TcpBuilder ) -> io:: Result < ( ) > {
585
- Ok ( ( ) )
585
+ fn reuse_port ( _tcp : & net2:: TcpBuilder ) {
586
586
}
587
587
588
588
impl < S : fmt:: Debug , B : Stream < Error =:: Error > > fmt:: Debug for Server < S , B >
0 commit comments