deduplicated the reqwest::CLient
Dieser Commit ist enthalten in:
Ursprung
9c8b9375d3
Commit
a8b3482eb3
3 geänderte Dateien mit 22 neuen und 14 gelöschten Zeilen
12
src/main.rs
12
src/main.rs
|
@ -42,7 +42,10 @@ use openssl::{
|
||||||
Private,
|
Private,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
use reqwest::tls::Version;
|
use reqwest::{
|
||||||
|
Client,
|
||||||
|
tls::Version,
|
||||||
|
};
|
||||||
use schemars::{
|
use schemars::{
|
||||||
SchemaGenerator,
|
SchemaGenerator,
|
||||||
consts::meta_schemas::DRAFT07,
|
consts::meta_schemas::DRAFT07,
|
||||||
|
@ -84,8 +87,9 @@ use tokio_stream::{
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
fn default_client() -> Result<reqwest::Client, Error> {
|
fn default_client() -> Result<Client, Error> {
|
||||||
reqwest::Client::builder()
|
trace!("Initialized new reqwest Client");
|
||||||
|
Client::builder()
|
||||||
.min_tls_version(Version::TLS_1_2)
|
.min_tls_version(Version::TLS_1_2)
|
||||||
.https_only(true)
|
.https_only(true)
|
||||||
.pool_max_idle_per_host(POOL_SIZE)
|
.pool_max_idle_per_host(POOL_SIZE)
|
||||||
|
@ -112,7 +116,7 @@ async fn load_privkey(path: PathBuf) -> Result<PKey<Private>, Error> {
|
||||||
|
|
||||||
async fn racme(flags: Arguments) -> Result<(), Error> {
|
async fn racme(flags: Arguments) -> Result<(), Error> {
|
||||||
let client = default_client()?;
|
let client = default_client()?;
|
||||||
let mut dns_manager = Manager::new();
|
let mut dns_manager = Manager::new(client.clone());
|
||||||
let systemd_access = daemon::booted();
|
let systemd_access = daemon::booted();
|
||||||
let mainconfig = {
|
let mainconfig = {
|
||||||
let file = match FILE_MODE.open(flags.config).await {
|
let file = match FILE_MODE.open(flags.config).await {
|
||||||
|
|
|
@ -23,6 +23,7 @@ use crate::{
|
||||||
};
|
};
|
||||||
use log::*;
|
use log::*;
|
||||||
use macro_rules_attribute::macro_rules_derive;
|
use macro_rules_attribute::macro_rules_derive;
|
||||||
|
use reqwest::Client;
|
||||||
use schemars::JsonSchema;
|
use schemars::JsonSchema;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use std::{
|
use std::{
|
||||||
|
@ -32,13 +33,16 @@ use std::{
|
||||||
use tokio::sync::Mutex;
|
use tokio::sync::Mutex;
|
||||||
|
|
||||||
#[macro_rules_derive(DefDer)]
|
#[macro_rules_derive(DefDer)]
|
||||||
pub struct Manager(Arc<Mutex<InnerManager>>);
|
pub struct Manager(Arc<Mutex<InnerManager>>, Client);
|
||||||
|
|
||||||
impl Manager {
|
impl Manager {
|
||||||
pub fn new() -> Self {
|
pub fn new(client: Client) -> Self {
|
||||||
Self(Arc::new(Mutex::new(InnerManager {
|
Self(
|
||||||
servers: HashMap::new(),
|
Arc::new(Mutex::new(InnerManager {
|
||||||
})))
|
servers: HashMap::new(),
|
||||||
|
})),
|
||||||
|
client,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn set_record(&self, domain: String, value: String) -> Option<DnsToken> {
|
pub async fn set_record(&self, domain: String, value: String) -> Option<DnsToken> {
|
||||||
|
@ -79,7 +83,7 @@ impl Manager {
|
||||||
self.0.lock().await.servers.insert(
|
self.0.lock().await.servers.insert(
|
||||||
fixed_zone,
|
fixed_zone,
|
||||||
match builder {
|
match builder {
|
||||||
DnsBuilder::PowerDNS(pdns_client_options) => pdns_client_options.build(zone),
|
DnsBuilder::PowerDNS(pdns_client_options) => pdns_client_options.build(zone, self.1.clone()),
|
||||||
DnsBuilder::DNSUpdate(dnsupdate_client_options) => dnsupdate_client_options.build(zone),
|
DnsBuilder::DNSUpdate(dnsupdate_client_options) => dnsupdate_client_options.build(zone),
|
||||||
DnsBuilder::None => Dns::None,
|
DnsBuilder::None => Dns::None,
|
||||||
},
|
},
|
||||||
|
|
|
@ -7,6 +7,7 @@ use derive_new::new;
|
||||||
use log::*;
|
use log::*;
|
||||||
use macro_rules_attribute::macro_rules_derive;
|
use macro_rules_attribute::macro_rules_derive;
|
||||||
use reqwest::{
|
use reqwest::{
|
||||||
|
Client,
|
||||||
RequestBuilder,
|
RequestBuilder,
|
||||||
StatusCode,
|
StatusCode,
|
||||||
Url,
|
Url,
|
||||||
|
@ -18,7 +19,6 @@ use serde::{
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
default_client,
|
|
||||||
macros::DefDer,
|
macros::DefDer,
|
||||||
types::{
|
types::{
|
||||||
dns::Dns,
|
dns::Dns,
|
||||||
|
@ -48,9 +48,9 @@ impl PdnsClientOptions {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl PdnsClientOptions {
|
impl PdnsClientOptions {
|
||||||
pub fn build(self, zone: String) -> Dns {
|
pub fn build(self, zone: String, client: Client) -> Dns {
|
||||||
Dns::PowerDNS(PdnsHandler {
|
Dns::PowerDNS(PdnsHandler {
|
||||||
client: default_client().unwrap(),
|
client,
|
||||||
server: self.server,
|
server: self.server,
|
||||||
api_key: self.api_key,
|
api_key: self.api_key,
|
||||||
server_id: self.server_id,
|
server_id: self.server_id,
|
||||||
|
@ -61,7 +61,7 @@ impl PdnsClientOptions {
|
||||||
|
|
||||||
#[macro_rules_derive(DefDer)]
|
#[macro_rules_derive(DefDer)]
|
||||||
pub struct PdnsHandler {
|
pub struct PdnsHandler {
|
||||||
client: reqwest::Client,
|
client: Client,
|
||||||
server: String,
|
server: String,
|
||||||
api_key: String,
|
api_key: String,
|
||||||
server_id: String,
|
server_id: String,
|
||||||
|
|
Laden …
Tabelle hinzufügen
In neuem Issue referenzieren