deduplicated the reqwest::CLient

Dieser Commit ist enthalten in:
Sebastian Tobie 2025-06-19 10:26:14 +02:00
Ursprung 9c8b9375d3
Commit a8b3482eb3
3 geänderte Dateien mit 22 neuen und 14 gelöschten Zeilen

Datei anzeigen

@ -42,7 +42,10 @@ use openssl::{
Private,
},
};
use reqwest::tls::Version;
use reqwest::{
Client,
tls::Version,
};
use schemars::{
SchemaGenerator,
consts::meta_schemas::DRAFT07,
@ -84,8 +87,9 @@ use tokio_stream::{
};
fn default_client() -> Result<reqwest::Client, Error> {
reqwest::Client::builder()
fn default_client() -> Result<Client, Error> {
trace!("Initialized new reqwest Client");
Client::builder()
.min_tls_version(Version::TLS_1_2)
.https_only(true)
.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> {
let client = default_client()?;
let mut dns_manager = Manager::new();
let mut dns_manager = Manager::new(client.clone());
let systemd_access = daemon::booted();
let mainconfig = {
let file = match FILE_MODE.open(flags.config).await {

Datei anzeigen

@ -23,6 +23,7 @@ use crate::{
};
use log::*;
use macro_rules_attribute::macro_rules_derive;
use reqwest::Client;
use schemars::JsonSchema;
use serde::Deserialize;
use std::{
@ -32,13 +33,16 @@ use std::{
use tokio::sync::Mutex;
#[macro_rules_derive(DefDer)]
pub struct Manager(Arc<Mutex<InnerManager>>);
pub struct Manager(Arc<Mutex<InnerManager>>, Client);
impl Manager {
pub fn new() -> Self {
Self(Arc::new(Mutex::new(InnerManager {
servers: HashMap::new(),
})))
pub fn new(client: Client) -> Self {
Self(
Arc::new(Mutex::new(InnerManager {
servers: HashMap::new(),
})),
client,
)
}
pub async fn set_record(&self, domain: String, value: String) -> Option<DnsToken> {
@ -79,7 +83,7 @@ impl Manager {
self.0.lock().await.servers.insert(
fixed_zone,
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::None => Dns::None,
},

Datei anzeigen

@ -7,6 +7,7 @@ use derive_new::new;
use log::*;
use macro_rules_attribute::macro_rules_derive;
use reqwest::{
Client,
RequestBuilder,
StatusCode,
Url,
@ -18,7 +19,6 @@ use serde::{
};
use crate::{
default_client,
macros::DefDer,
types::{
dns::Dns,
@ -48,9 +48,9 @@ impl PdnsClientOptions {
}
impl PdnsClientOptions {
pub fn build(self, zone: String) -> Dns {
pub fn build(self, zone: String, client: Client) -> Dns {
Dns::PowerDNS(PdnsHandler {
client: default_client().unwrap(),
client,
server: self.server,
api_key: self.api_key,
server_id: self.server_id,
@ -61,7 +61,7 @@ impl PdnsClientOptions {
#[macro_rules_derive(DefDer)]
pub struct PdnsHandler {
client: reqwest::Client,
client: Client,
server: String,
api_key: String,
server_id: String,