options, )?))) .directory(if cfg!(test) { LETS_ENCRYPT_STAGING_DIRECTORY } else { LETS_ENCRYPT_PRODUCTION_DIRECTORY }); let mut state = config.state(); let acceptor = state.axum_acceptor(Arc::new( rustls::ServerConfig::builder() .with_safe_defaults() .with_no_client_auth() .with_cert_resolver(state.resolver()), )); tokio::spawn(async move { while let Some(result) = state.next().await { match result { Ok(ok) => log::info!("ACME event: {:?}", ok), Err(err) => log::error!("ACME error: {:?}", err), } } }); Ok(acceptor) } fn index_height(index: &Index) -> ServerResult { index.block_height()?.ok_or_not_found(|| "genesis block") } async fn clock(Extension(index): Extension>) -> ServerResult { Ok( ( [( header::CONTENT_SECURITY_POLICY, HeaderValue::from_static("default-src 'unsafe-inline'"),