chore: style
This commit is contained in:
@@ -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),
|
||||||
|
|||||||
13
src/main.rs
13
src/main.rs
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user