summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-02-05 13:00:26 +0100
committermetamuffin <metamuffin@disroot.org>2025-02-05 13:00:26 +0100
commit96da4a575ebcfa38ab0a789ac8c25a0af03896a7 (patch)
treedae4d713031326241b08ba224df7a86faee2961c
parent27a503c1a92c8f8b0e398187d58e677ecf68e915 (diff)
downloadgnix-96da4a575ebcfa38ab0a789ac8c25a0af03896a7.tar
gnix-96da4a575ebcfa38ab0a789ac8c25a0af03896a7.tar.bz2
gnix-96da4a575ebcfa38ab0a789ac8c25a0af03896a7.tar.zst
fix fallback module
-rw-r--r--src/modules/fallback.rs20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/modules/fallback.rs b/src/modules/fallback.rs
index b0deed1..6a5caaa 100644
--- a/src/modules/fallback.rs
+++ b/src/modules/fallback.rs
@@ -36,7 +36,7 @@ impl Node for Fallback {
for (i, h) in self.0.iter().enumerate() {
let last = i == self.0.len() - 1;
- let resp = h
+ let res = h
.handle(
context,
Request::from_parts(
@@ -44,13 +44,17 @@ impl Node for Fallback {
BoxBody::new(Full::new(body.clone()).map_err(|x| match x {})),
),
)
- .await?;
- if resp.status().is_success()
- || resp.status().is_redirection()
- || resp.status().is_informational()
- || last
- {
- return Ok(resp);
+ .await;
+ if last {
+ return res;
+ }
+ if let Ok(resp) = res {
+ if resp.status().is_success()
+ || resp.status().is_redirection()
+ || resp.status().is_informational()
+ {
+ return Ok(resp);
+ }
}
}
return Err(ServiceError::CustomStatic(