From 186bf476aeab0ff0838d1ae26a9dbcb2e40a8eb5 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 28 Aug 2023 15:02:14 +0200 Subject: what i invented here already existed: semaphore --- src/config.rs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'src/config.rs') diff --git a/src/config.rs b/src/config.rs index 89a2b54..c250b80 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,5 +1,8 @@ use anyhow::Context; -use serde::{Deserialize, Serialize, Deserializer, de::{Visitor, Error, SeqAccess, value}}; +use serde::{ + de::{value, Error, SeqAccess, Visitor}, + Deserialize, Deserializer, Serialize, +}; use std::{collections::HashMap, fmt, fs::read_to_string, net::SocketAddr, path::PathBuf}; #[derive(Debug, Serialize, Deserialize)] @@ -27,7 +30,6 @@ pub struct HttpConfig { #[derive(Debug, Serialize, Deserialize)] pub struct HttpsConfig { - #[serde(deserialize_with = "string_or_seq")] pub bind: Vec, pub tls_cert: PathBuf, pub tls_key: PathBuf, @@ -49,7 +51,9 @@ pub struct FileserverConfig { // fall back to expecting a single string and putting that in a 1-length vector fn string_or_seq<'de, D>(des: D) -> Result, D::Error> -where D: Deserializer<'de> { +where + D: Deserializer<'de>, +{ struct StringOrList; impl<'de> Visitor<'de> for StringOrList { type Value = Vec; @@ -59,13 +63,17 @@ where D: Deserializer<'de> { } fn visit_str(self, val: &str) -> Result, E> - where E: Error { + where + E: Error, + { let addr = SocketAddr::deserialize(value::StrDeserializer::new(val))?; Ok(vec![addr]) } fn visit_seq(self, val: A) -> Result, A::Error> - where A: SeqAccess<'de> { + where + A: SeqAccess<'de>, + { Vec::::deserialize(value::SeqAccessDeserializer::new(val)) } } @@ -85,7 +93,7 @@ impl Default for Limits { fn default() -> Self { Self { max_incoming_connections: 1024, - max_outgoing_connections: usize::MAX, + max_outgoing_connections: 2048, } } } -- cgit v1.2.3-70-g09d2