diff options
author | Alex <alex@adnab.me> | 2022-12-01 16:51:20 +0000 |
---|---|---|
committer | Alex <alex@adnab.me> | 2022-12-01 16:51:20 +0000 |
commit | f306e8dc8d0e93478353ce39b6064e8c06a8bca6 (patch) | |
tree | 2f7ee2b28a161dc0d5268a6c053c6a8126f64e68 /src/consul.rs | |
parent | 862e8ce8768338ccdb190055fd05dc7f8e0a01cd (diff) | |
parent | f8431271d9021bfd4bfb85d8c3ba331d5dff9dac (diff) | |
download | diplonat-f306e8dc8d0e93478353ce39b6064e8c06a8bca6.tar.gz diplonat-f306e8dc8d0e93478353ce39b6064e8c06a8bca6.zip |
Merge pull request 'Make repoa Nix flake' (#16) from nix-flake into main
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/diplonat/pulls/16
Diffstat (limited to 'src/consul.rs')
-rw-r--r-- | src/consul.rs | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/consul.rs b/src/consul.rs index 4e4f79c..c7ac2b6 100644 --- a/src/consul.rs +++ b/src/consul.rs @@ -3,6 +3,8 @@ use std::collections::HashMap; use anyhow::{anyhow, Result}; use serde::{Deserialize, Serialize}; +use crate::config::RuntimeConfigConsul; + #[derive(Serialize, Deserialize, Debug)] pub struct ServiceEntry { pub Tags: Vec<String>, @@ -20,10 +22,35 @@ pub struct Consul { } impl Consul { - pub fn new(url: &str) -> Self { + pub fn new(config: &RuntimeConfigConsul) -> Self { + let client = if let Some((ca, skip_verify, ident)) = config.tls.clone() { + if skip_verify { + reqwest::Client::builder() + .use_rustls_tls() + .danger_accept_invalid_certs(true) + .identity(ident) + .build() + .expect("Unable to build reqwest client") + } else if let Some(ca) = ca { + reqwest::Client::builder() + .use_rustls_tls() + .add_root_certificate(ca) + .identity(ident) + .build() + .expect("Unable to build reqwest client") + } else { + reqwest::Client::builder() + .use_rustls_tls() + .identity(ident) + .build() + .expect("Unable to build reqwest client") + } + } else { + reqwest::Client::new() + }; return Self { - client: reqwest::Client::new(), - url: url.to_string(), + client, + url: config.url.clone(), idx: None, }; } |