summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules')
-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)
})
}
}