@@ -451,6 +451,7 @@ pub async fn main(mut cli: Cli) -> Result<(), Error> {
451451 & cli,
452452 & metrics_registry,
453453 http_metrics. clone ( ) ,
454+ & mut tasks,
454455 )
455456 . context ( "unable to setup HTTPS" ) ?;
456457
@@ -731,7 +732,10 @@ fn setup_tls_resolver_stub(cli: &cli::Tls) -> Result<Arc<dyn ResolvesServerCert>
731732 Ok ( Arc :: new ( resolver) )
732733}
733734
734- fn setup_tls_resolver_acme ( cli : & cli:: Tls ) -> Result < Arc < dyn ResolvesServerCert > , Error > {
735+ fn setup_tls_resolver_acme (
736+ cli : & cli:: Tls ,
737+ tasks : & mut TaskManager ,
738+ ) -> Result < Arc < dyn ResolvesServerCert > , Error > {
735739 let path = cli
736740 . tls_acme_credentials_path
737741 . clone ( )
@@ -755,12 +759,18 @@ fn setup_tls_resolver_acme(cli: &cli::Tls) -> Result<Arc<dyn ResolvesServerCert>
755759 path,
756760 ) ;
757761
758- Ok ( Arc :: new ( AcmeAlpn :: AcmeAlpn :: new ( opts) ) )
762+ let acme = Arc :: new ( AcmeAlpn :: AcmeAlpn :: new ( opts) ) ;
763+ tasks. add ( "acme_alpn" , acme. clone ( ) ) ;
764+
765+ Ok ( acme)
759766}
760767
761768/// Try to load the static resolver first, then ACME one.
762769/// This is needed for integration tests where we cannot easily separate test/prod environments
763- fn setup_tls_resolver ( cli : & cli:: Tls ) -> Result < Arc < dyn ResolvesServerCert > , Error > {
770+ fn setup_tls_resolver (
771+ cli : & cli:: Tls ,
772+ tasks : & mut TaskManager ,
773+ ) -> Result < Arc < dyn ResolvesServerCert > , Error > {
764774 warn ! ( "TLS: Trying resolver: static files" ) ;
765775 match setup_tls_resolver_stub ( cli) {
766776 Ok ( v) => {
@@ -775,7 +785,7 @@ fn setup_tls_resolver(cli: &cli::Tls) -> Result<Arc<dyn ResolvesServerCert>, Err
775785 "TLS: Trying resolver: ACME ALPN-01 (staging: {})" ,
776786 cli. tls_acme_staging
777787 ) ;
778- match setup_tls_resolver_acme ( cli) {
788+ match setup_tls_resolver_acme ( cli, tasks ) {
779789 Ok ( v) => {
780790 warn ! ( "TLS: ACME resolver loaded" ) ;
781791 return Ok ( v) ;
@@ -793,10 +803,11 @@ fn setup_https(
793803 cli : & Cli ,
794804 registry : & Registry ,
795805 metrics : HttpServerMetrics ,
806+ tasks : & mut TaskManager ,
796807) -> Result < bnhttp:: Server , Error > {
797808 use ic_bn_lib:: tls;
798809
799- let resolver = setup_tls_resolver ( & cli. tls ) . context ( "unable to setup TLS resolver" ) ?;
810+ let resolver = setup_tls_resolver ( & cli. tls , tasks ) . context ( "unable to setup TLS resolver" ) ?;
800811
801812 let tls_opts = TlsOptions {
802813 additional_alpn : vec ! [ ALPN_ACME . to_vec( ) ] ,
0 commit comments