chore: style

This commit is contained in:
2021-05-01 14:10:39 +08:00
parent c2a845ee2e
commit 8a4132011a
2 changed files with 29 additions and 4 deletions

View File

@@ -16,7 +16,17 @@ pub enum AcmeAlgo {
Rsa(u32), Rsa(u32),
} }
impl Default for AcmeAlgo {
fn default() -> Self {
Self::Ec384
}
}
impl AcmeAlgo { impl AcmeAlgo {
pub fn parse_or_default(s: &str) -> AcmeAlgo {
Self::parse(s).unwrap_or_else(|_| Default::default())
}
pub fn parse(s: &str) -> XResult<AcmeAlgo> { pub fn parse(s: &str) -> XResult<AcmeAlgo> {
match s { match s {
"ec256" => Ok(AcmeAlgo::Ec256), "ec256" => Ok(AcmeAlgo::Ec256),
@@ -35,7 +45,17 @@ pub enum AcmeMode {
Test, Test,
} }
impl Default for AcmeMode {
fn default() -> Self {
Self::Prod
}
}
impl AcmeMode { impl AcmeMode {
pub fn parse_or_default(s: &str) -> AcmeMode {
Self::parse(s).unwrap_or_else(|_| Default::default())
}
pub fn parse(s: &str) -> XResult<AcmeMode> { pub fn parse(s: &str) -> XResult<AcmeMode> {
match s { match s {
"prod" => Ok(AcmeMode::Prod), "prod" => Ok(AcmeMode::Prod),

View File

@@ -16,6 +16,8 @@ use std::collections::BTreeMap;
use tide::Request; use tide::Request;
use std::process::exit; use std::process::exit;
use std::time::Duration; use std::time::Duration;
use async_std::task;
use async_std::channel;
use async_std::channel::Sender; use async_std::channel::Sender;
use config::AcmeAlgo; use config::AcmeAlgo;
use config::AcmeMode; use config::AcmeMode;
@@ -29,7 +31,7 @@ lazy_static! {
static ref TOKEN_MAP: RwLock<BTreeMap<String, String>> = RwLock::new(BTreeMap::new()); static ref TOKEN_MAP: RwLock<BTreeMap<String, String>> = RwLock::new(BTreeMap::new());
} }
#[derive(Debug)] #[derive(Debug, Default)]
struct AcmeRequest<'a> { struct AcmeRequest<'a> {
contract_email: &'a str, contract_email: &'a str,
primary_name: &'a str, primary_name: &'a str,
@@ -38,6 +40,8 @@ struct AcmeRequest<'a> {
mode: AcmeMode, mode: AcmeMode,
dir: &'a str, dir: &'a str,
timeout: u64, timeout: u64,
key_file: Option<String>,
cert_file: Option<String>,
} }
#[async_std::main] #[async_std::main]
@@ -121,10 +125,10 @@ async fn main() -> tide::Result<()> {
exit(1); exit(1);
}); });
let (s, r) = async_std::channel::bounded(1); let (s, r) = channel::bounded(1);
startup_http_server(s, port); startup_http_server(s, port);
r.recv().await.ok(); r.recv().await.ok();
async_std::task::sleep(Duration::from_millis(500)).await; task::sleep(Duration::from_millis(500)).await;
let domains: Vec<&str> = domains_val.collect::<Vec<_>>(); let domains: Vec<&str> = domains_val.collect::<Vec<_>>();
let primary_name = domains[0]; let primary_name = domains[0];
@@ -138,6 +142,7 @@ async fn main() -> tide::Result<()> {
mode, mode,
dir, dir,
timeout, timeout,
..Default::default()
}; };
if let Err(e) = request_domains(acme_request) { if let Err(e) = request_domains(acme_request) {
failure!("Request certificate by acme failed: {}", e); failure!("Request certificate by acme failed: {}", e);
@@ -199,7 +204,7 @@ fn request_domains(acme_request: AcmeRequest) -> XResult<()> {
} }
fn startup_http_server(s: Sender<i32>, port: u16) { fn startup_http_server(s: Sender<i32>, port: u16) {
async_std::task::spawn(async move { task::spawn(async move {
information!("Listen at 0.0.0.0:{}", port); information!("Listen at 0.0.0.0:{}", port);
let mut app = tide::new(); let mut app = tide::new();
app.at("/.well-known/acme-challenge/:token").get(|req: Request<()>| async move { app.at("/.well-known/acme-challenge/:token").get(|req: Request<()>| async move {