@@ -20,19 +20,13 @@ async fn main() {
2020
2121 let local_addr = "0.0.0.0:3000" . parse :: < SocketAddr > ( ) . unwrap ( ) ;
2222 let tcp_listener = tokio:: net:: TcpListener :: bind ( local_addr) . await . unwrap ( ) ;
23- let listener = Listener {
24- inner : TlsListener :: new ( tls_acceptor ( ) , tcp_listener) ,
25- local_addr,
26- } ;
23+ let listener = Listener ( TlsListener :: new ( tls_acceptor ( ) , tcp_listener) ) ;
2724
2825 axum:: serve ( listener, app) . await . unwrap ( ) ;
2926}
3027
3128// We use a wrapper type to bridge axum's `Listener` trait to our `TlsListener` type.
32- struct Listener {
33- inner : TlsListener < TcpListener , tls_config:: Acceptor > ,
34- local_addr : SocketAddr ,
35- }
29+ struct Listener ( TlsListener < TcpListener , tls_config:: Acceptor > ) ;
3630
3731impl axum:: serve:: Listener for Listener {
3832 type Io = tls_config:: Stream < TcpStream > ;
@@ -41,7 +35,7 @@ impl axum::serve::Listener for Listener {
4135 loop {
4236 // To change the TLS certificate dynamically, you could `select!` on this call with a
4337 // channel receiver, and call `self.inner.replace_acceptor` in the other branch.
44- match self . inner . accept ( ) . await {
38+ match self . 0 . accept ( ) . await {
4539 Ok ( tuple) => break tuple,
4640 Err ( tls_listener:: Error :: ListenerError ( e) ) if !is_connection_error ( & e) => {
4741 // See https://github.com/tokio-rs/axum/blob/da3539cb0e5eed381361b2e688a776da77c52cd6/axum/src/serve/listener.rs#L145-L157
@@ -53,7 +47,7 @@ impl axum::serve::Listener for Listener {
5347 }
5448 }
5549 fn local_addr ( & self ) -> io:: Result < Self :: Addr > {
56- Ok ( self . local_addr )
50+ self . 0 . listener ( ) . local_addr ( )
5751 }
5852}
5953
0 commit comments