Only attempt ump decoding when response is successful.

This commit is contained in:
Kavin 2024-01-03 18:25:30 +00:00
parent 000a14e738
commit e0bb6a3a78
No known key found for this signature in database
GPG key ID: 6E4598CA5C92C41F

View file

@ -464,9 +464,7 @@ async fn index(req: HttpRequest) -> Result<HttpResponse, Box<dyn Error>> {
response.no_chunking(content_length.to_str().unwrap().parse::<u64>().unwrap()); response.no_chunking(content_length.to_str().unwrap().parse::<u64>().unwrap());
} }
let resp = resp.bytes_stream(); if is_ump && resp.status().is_success() {
if is_ump {
if let Some(mime_type) = mime_type { if let Some(mime_type) = mime_type {
response.content_type(mime_type); response.content_type(mime_type);
} }
@ -480,6 +478,7 @@ async fn index(req: HttpRequest) -> Result<HttpResponse, Box<dyn Error>> {
} }
} }
} }
let resp = resp.bytes_stream();
let resp = resp.map_err(|e| io::Error::new(ErrorKind::Other, e)); let resp = resp.map_err(|e| io::Error::new(ErrorKind::Other, e));
let transformed_stream = UmpTransformStream::new(resp); let transformed_stream = UmpTransformStream::new(resp);
// print errors // print errors
@ -506,5 +505,5 @@ async fn index(req: HttpRequest) -> Result<HttpResponse, Box<dyn Error>> {
} }
// Stream response // Stream response
Ok(response.streaming(resp)) Ok(response.streaming(resp.bytes_stream()))
} }