From c876bb001f999e288410201b2306e8c3f3261836 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sun, 8 Jun 2025 13:02:49 +0200 Subject: optional stdev in delay module + fmt --- src/modules/delay.rs | 7 ++++--- src/modules/headers.rs | 8 ++------ src/modules/mod.rs | 2 +- src/modules/semaphore.rs | 6 +----- 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/modules/delay.rs b/src/modules/delay.rs index 5b5ce06..31036fe 100644 --- a/src/modules/delay.rs +++ b/src/modules/delay.rs @@ -17,7 +17,7 @@ pub struct DelayKind; #[derive(Deserialize)] struct Delay { duration: u64, - stdev: u64, + stdev: Option, next: DynNode, } @@ -36,11 +36,12 @@ impl Node for Delay { request: NodeRequest, ) -> Pin> + Send + Sync + 'a>> { Box::pin(async move { - sleep(Duration::from_millis(if self.stdev == 0 { + let stdev = self.stdev.unwrap_or_default(); + sleep(Duration::from_millis(if stdev == 0 { self.duration } else { self.duration.saturating_add_signed( - rand_distr::Normal::new(0., self.stdev as f32) + rand_distr::Normal::new(0., stdev as f32) .unwrap() .sample(&mut rand::rng()) as i64, ) diff --git a/src/modules/headers.rs b/src/modules/headers.rs index 3d0a238..f5b081f 100644 --- a/src/modules/headers.rs +++ b/src/modules/headers.rs @@ -41,13 +41,9 @@ impl Node for Headers { mut request: NodeRequest, ) -> Pin> + Send + Sync + 'a>> { Box::pin(async move { - request - .headers_mut() - .extend(self.request.0.clone()); + request.headers_mut().extend(self.request.0.clone()); let mut response = self.next.handle(context, request).await?; - response - .headers_mut() - .extend(self.response.0.clone()); + response.headers_mut().extend(self.response.0.clone()); Ok(response) }) } diff --git a/src/modules/mod.rs b/src/modules/mod.rs index 71f60c9..b267a04 100644 --- a/src/modules/mod.rs +++ b/src/modules/mod.rs @@ -32,9 +32,9 @@ mod paths; mod proxy; mod ratelimit; mod redirect; +mod semaphore; mod switch; mod upgrade_insecure; -mod semaphore; pub type NodeRequest = Request>; pub type NodeResponse = Response>; diff --git a/src/modules/semaphore.rs b/src/modules/semaphore.rs index b4f50b2..7aa8283 100644 --- a/src/modules/semaphore.rs +++ b/src/modules/semaphore.rs @@ -8,11 +8,7 @@ use crate::{config::DynNode, error::ServiceError}; use anyhow::Result; use serde::Deserialize; use serde_yml::Value; -use std::{ - future::Future, - pin::Pin, - sync::Arc, -}; +use std::{future::Future, pin::Pin, sync::Arc}; use tokio::sync::Semaphore; pub struct SemaphoreKind; -- cgit v1.2.3-70-g09d2