summaryrefslogtreecommitdiff
path: root/src/modules/headers.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-03-04 23:39:04 +0100
committermetamuffin <metamuffin@disroot.org>2025-03-04 23:39:04 +0100
commite7dc02a0c86c9f0b5d25dff5d20fe53cdbe671cb (patch)
tree95574b22aad6ec370875115dd28b227586b5ebd2 /src/modules/headers.rs
parent10dba4e7c79e622249cf4539cff3347619e15059 (diff)
downloadgnix-e7dc02a0c86c9f0b5d25dff5d20fe53cdbe671cb.tar
gnix-e7dc02a0c86c9f0b5d25dff5d20fe53cdbe671cb.tar.bz2
gnix-e7dc02a0c86c9f0b5d25dff5d20fe53cdbe671cb.tar.zst
improve headers module (breaking change)
Diffstat (limited to 'src/modules/headers.rs')
-rw-r--r--src/modules/headers.rs19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/modules/headers.rs b/src/modules/headers.rs
index 52686eb..bdfbdc4 100644
--- a/src/modules/headers.rs
+++ b/src/modules/headers.rs
@@ -13,8 +13,9 @@ pub struct HeadersKind;
#[derive(Deserialize)]
pub struct Headers {
- headers: HeaderMapWrap,
- inner: DynNode,
+ request: HeaderMapWrap,
+ response: HeaderMapWrap,
+ next: DynNode,
}
impl NodeKind for HeadersKind {
@@ -30,13 +31,17 @@ impl Node for Headers {
fn handle<'a>(
&'a self,
context: &'a mut NodeContext,
- request: NodeRequest,
+ mut request: NodeRequest,
) -> Pin<Box<dyn Future<Output = Result<NodeResponse, ServiceError>> + Send + Sync + 'a>> {
Box::pin(async move {
- let mut resp = self.inner.handle(context, request).await?;
- resp.headers_mut()
- .extend(self.headers.0.clone().into_iter());
- Ok(resp)
+ request
+ .headers_mut()
+ .extend(self.request.0.clone().into_iter());
+ let mut response = self.next.handle(context, request).await?;
+ response
+ .headers_mut()
+ .extend(self.response.0.clone().into_iter());
+ Ok(response)
})
}
}