|
|
@ -146,7 +146,7 @@ pub trait Manager: Sync + Send { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
struct ManagerImpl { |
|
|
|
struct ManagerImpl { |
|
|
|
origin_store: sync::Arc<dyn origin::store::Store>, |
|
|
|
origin_store: Box<dyn origin::store::Store>, |
|
|
|
domain_config_store: sync::Arc<dyn config::Store>, |
|
|
|
domain_config_store: sync::Arc<dyn config::Store>, |
|
|
|
domain_checker: checker::DNSChecker, |
|
|
|
domain_checker: checker::DNSChecker, |
|
|
|
acme_manager: Option<sync::Arc<dyn acme::manager::Manager>>, |
|
|
|
acme_manager: Option<sync::Arc<dyn acme::manager::Manager>>, |
|
|
@ -179,22 +179,24 @@ async fn sync_origins(origin_store: &dyn origin::store::Store, canceller: Cancel |
|
|
|
|
|
|
|
|
|
|
|
pub fn new( |
|
|
|
pub fn new( |
|
|
|
task_stack: &mut util::TaskStack<unexpected::Error>, |
|
|
|
task_stack: &mut util::TaskStack<unexpected::Error>, |
|
|
|
origin_store: sync::Arc<dyn origin::store::Store>, |
|
|
|
origin_store: Box<dyn origin::store::Store>, |
|
|
|
domain_config_store: sync::Arc<dyn config::Store>, |
|
|
|
domain_config_store: sync::Arc<dyn config::Store>, |
|
|
|
domain_checker: checker::DNSChecker, |
|
|
|
domain_checker: checker::DNSChecker, |
|
|
|
acme_manager: Option<sync::Arc<dyn acme::manager::Manager>>, |
|
|
|
acme_manager: Option<sync::Arc<dyn acme::manager::Manager>>, |
|
|
|
) -> sync::Arc<dyn Manager> { |
|
|
|
) -> sync::Arc<dyn Manager> { |
|
|
|
task_stack.spawn(|canceller| { |
|
|
|
let manager = sync::Arc::new(ManagerImpl { |
|
|
|
let origin_store = origin_store.clone(); |
|
|
|
|
|
|
|
async move { Ok(sync_origins(origin_store.as_ref(), canceller).await) } |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sync::Arc::new(ManagerImpl { |
|
|
|
|
|
|
|
origin_store, |
|
|
|
origin_store, |
|
|
|
domain_config_store, |
|
|
|
domain_config_store, |
|
|
|
domain_checker, |
|
|
|
domain_checker, |
|
|
|
acme_manager, |
|
|
|
acme_manager, |
|
|
|
}) |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
task_stack.spawn(|canceller| { |
|
|
|
|
|
|
|
let manager = manager.clone(); |
|
|
|
|
|
|
|
async move { Ok(sync_origins(manager.origin_store.as_ref(), canceller).await) } |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
manager |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
impl Manager for ManagerImpl { |
|
|
|
impl Manager for ManagerImpl { |
|
|
|