aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2021-12-07 18:50:58 +0100
committerAlex Auvolat <alex@adnab.me>2021-12-07 18:50:58 +0100
commit11c6f0b1c29b10893de9390f5be559de49e78410 (patch)
tree92a1208b960e390b034fdc59502b4b67789fd102 /src/main.rs
parente8b789f5e047c074af25dd814ed8309216d57e0f (diff)
downloadtricot-11c6f0b1c29b10893de9390f5be559de49e78410.tar.gz
tricot-11c6f0b1c29b10893de9390f5be559de49e78410.zip
Better handle get_cert for https request (faster path, hostname verification)
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs35
1 files changed, 23 insertions, 12 deletions
diff --git a/src/main.rs b/src/main.rs
index f38767e..c6fd1d1 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -18,11 +18,19 @@ use log::*;
#[structopt(name = "tricot")]
struct Opt {
/// Address of consul server
- #[structopt(long = "consul-addr", env = "TRICOT_CONSUL_HOST", default_value = "http://127.0.0.1:8500/")]
+ #[structopt(
+ long = "consul-addr",
+ env = "TRICOT_CONSUL_HOST",
+ default_value = "http://127.0.0.1:8500/"
+ )]
pub consul_addr: String,
/// Prefix of Tricot's entries in Consul KV space
- #[structopt(long = "consul-kv-prefix", env = "TRICOT_CONSUL_KV_PREFIX", default_value = "tricot/")]
+ #[structopt(
+ long = "consul-kv-prefix",
+ env = "TRICOT_CONSUL_KV_PREFIX",
+ default_value = "tricot/"
+ )]
pub consul_kv_prefix: String,
/// Node name
@@ -30,15 +38,22 @@ struct Opt {
pub node_name: String,
/// Bind address for HTTP server
- #[structopt(long = "http-bind-addr", env = "TRICOT_HTTP_BIND_ADDR", default_value = "0.0.0.0:80")]
+ #[structopt(
+ long = "http-bind-addr",
+ env = "TRICOT_HTTP_BIND_ADDR",
+ default_value = "0.0.0.0:80"
+ )]
pub http_bind_addr: SocketAddr,
/// Bind address for HTTPS server
- #[structopt(long = "https-bind-addr", env = "TRICOT_HTTPS_BIND_ADDR", default_value = "0.0.0.0:443")]
+ #[structopt(
+ long = "https-bind-addr",
+ env = "TRICOT_HTTPS_BIND_ADDR",
+ default_value = "0.0.0.0:443"
+ )]
pub https_bind_addr: SocketAddr,
}
-
#[tokio::main(flavor = "multi_thread", worker_threads = 10)]
async fn main() {
if std::env::var("RUST_LOG").is_err() {
@@ -53,16 +68,12 @@ async fn main() {
let consul = consul::Consul::new(&opt.consul_addr, &opt.consul_kv_prefix, &opt.node_name);
let mut rx_proxy_config = proxy_config::spawn_proxy_config_task(consul.clone());
- let cert_store = cert_store::CertStore::new(consul.clone());
- tokio::spawn(
- cert_store
- .clone()
- .watch_proxy_config(rx_proxy_config.clone()),
- );
+ let cert_store = cert_store::CertStore::new(consul.clone(), rx_proxy_config.clone());
+ tokio::spawn(cert_store.clone().watch_proxy_config());
tokio::spawn(http::serve_http(opt.http_bind_addr, consul.clone()));
tokio::spawn(https::serve_https(
- opt.https_bind_addr,
+ opt.https_bind_addr,
cert_store.clone(),
rx_proxy_config.clone(),
));