From 5b263961064af59b157ddd6725359ae749da6288 Mon Sep 17 00:00:00 2001 From: Brian Picciano Date: Fri, 19 May 2023 12:36:01 +0200 Subject: [PATCH] change http_domain into a domain::Name --- src/main.rs | 18 ++++++++++++------ src/service.rs | 8 ++++---- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4dff18a..5f3de3e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -21,7 +21,7 @@ use domiply::domain::manager::Manager; #[command(about = "A domiply to another dimension")] struct Cli { #[arg(long, required = true, env = "DOMIPLY_HTTP_DOMAIN")] - http_domain: String, + http_domain: domiply::domain::Name, #[arg(long, default_value_t = SocketAddr::from_str("[::]:3030").unwrap(), env = "DOMIPLY_HTTP_LISTEN_ADDR")] http_listen_addr: SocketAddr, @@ -185,7 +185,11 @@ fn main() { tokio_runtime.spawn(async move { let addr = config.http_listen_addr; - println!("Listening on http://{}:{}", http_domain, addr.port()); + println!( + "Listening on http://{}:{}", + http_domain.as_str(), + addr.port() + ); let server = hyper::Server::bind(&addr).serve(make_service); let graceful = server.with_graceful_shutdown(async { @@ -201,15 +205,17 @@ fn main() { // if there's an acme manager then it means that https is enabled, and we should ensure that // the http domain for domiply itself has a valid certificate. if let Some(domain_acme_manager) = domain_acme_manager { - let domain = domiply::domain::Name::from_str(&config.http_domain) - .expect("--http-domain parses as a domain"); + let http_domain = config.http_domain.clone(); wait_group.push(tokio_runtime.spawn(async move { _ = domain_acme_manager - .sync_domain(domain.clone()) + .sync_domain(http_domain.clone()) .await .inspect_err(|err| { - panic!("Error while getting cert for {}: {err}", domain.as_str()) + println!( + "Error while getting cert for {}: {err}", + http_domain.as_str() + ) }); })); } diff --git a/src/service.rs b/src/service.rs index a70430a..edc7d22 100644 --- a/src/service.rs +++ b/src/service.rs @@ -23,7 +23,7 @@ where domain_manager: DomainManager, target_a: net::Ipv4Addr, passphrase: String, - http_domain: String, + http_domain: domain::Name, handlebars: handlebars::Handlebars<'svc>, } @@ -31,7 +31,7 @@ pub fn new<'svc, DomainManager>( domain_manager: DomainManager, target_a: net::Ipv4Addr, passphrase: String, - http_domain: String, + http_domain: domain::Name, ) -> Service<'svc, DomainManager> where DomainManager: domain::manager::BoxedManager, @@ -324,8 +324,8 @@ where .map(strip_port), req.uri().host().map(strip_port), ) { - (Some(h), _) if h != svc.http_domain => Some(h), - (_, Some(h)) if h != svc.http_domain => Some(h), + (Some(h), _) if h != svc.http_domain.as_str() => Some(h), + (_, Some(h)) if h != svc.http_domain.as_str() => Some(h), _ => None, } .and_then(|h| domain::Name::from_str(h).ok());