@@ -199,7 +199,7 @@ impl HttpService {
199199 pub async fn run ( & self , cancel_token : CancellationToken ) -> Result < ( ) > {
200200 let address = format ! ( "{}:{}" , self . host, self . port) ;
201201 let protocol = if self . enable_tls { "HTTPS" } else { "HTTP" } ;
202- tracing:: info!( address, "Starting {protocol} service on: {address} " ) ;
202+ tracing:: info!( protocol , address, "Starting HTTP(S) service" ) ;
203203
204204 let router = self . router . clone ( ) ;
205205 let observer = cancel_token. child_token ( ) ;
@@ -220,26 +220,27 @@ impl HttpService {
220220
221221 // aws_lc_rs is the default but other crates pull in `ring` also,
222222 // so rustls doesn't know which one to use. Tell it.
223- let rustls_out = rustls:: crypto:: aws_lc_rs:: default_provider ( ) . install_default ( ) ;
224- // The Err type is `Arc<Self>`. Very strange.
225- if rustls_out. is_err ( ) {
226- anyhow:: bail!(
227- "Failed installing AWS-LC-RS as the TLS crypto provider. Cannot start web server."
228- ) ;
223+ if let Err ( e) = rustls:: crypto:: aws_lc_rs:: default_provider ( ) . install_default ( ) {
224+ tracing:: debug!( "TLS crypto provider already installed: {e:?}" ) ;
229225 }
230226
231227 let config = RustlsConfig :: from_pem_file ( cert_path, key_path)
232228 . await
233229 . map_err ( |e| anyhow:: anyhow!( "Failed to create TLS config: {}" , e) ) ?;
234230
235- let server = axum_server:: bind_rustls ( addr, config) . serve ( router. into_make_service ( ) ) ;
231+ let handle = axum_server:: Handle :: new ( ) ;
232+ let server = axum_server:: bind_rustls ( addr, config)
233+ . handle ( handle. clone ( ) )
234+ . serve ( router. into_make_service ( ) ) ;
236235
237236 tokio:: select! {
238237 result = server => {
239238 result. map_err( |e| anyhow:: anyhow!( "HTTPS server error: {}" , e) ) ?;
240239 }
241240 _ = observer. cancelled( ) => {
242241 tracing:: info!( "HTTPS server shutdown requested" ) ;
242+ handle. graceful_shutdown( Some ( Duration :: from_secs( 5 ) ) ) ;
243+ // TODO: Do we need to wait?
243244 }
244245 }
245246 } else {
0 commit comments