Fixed bug where incorrect timeout was used. I got the mime types backwards haha pretend you didnt see that

This commit is contained in:
Emi Tatsuo 2020-11-19 01:43:57 -05:00
parent 25d575bee7
commit df362d1bc3
Signed by: Emi
GPG key ID: 68FAB2E2E6DFC98B

View file

@ -128,48 +128,49 @@ impl Server {
// body, and flush all as one timeout) // body, and flush all as one timeout)
// //
// The split between the two cases happens at this very first if block. // The split between the two cases happens at this very first if block.
// Everything in this deep chain of if's and if-let's is for the special case. If // Everything in this if is for the special case. If any one of the ifs fails,
// any one of the ifs fails, the code after the big if block is run, and that's // the code after the big if block is run, and that's the normal case.
// the normal case.
// //
// Hope this helps! Emi <3 // Hope this helps! Emi <3
if header.status == Status::SUCCESS && maybe_body.is_some() { if header.status == Status::SUCCESS &&
// aaaa let me have if-let chaining ;_; maybe_body.is_some() &&
if let "text/plain"|"text/gemini" = header.meta.as_str() { header.meta.as_str() != "text/plain" &&
if let Some(cplx_timeout) = self.complex_timeout { header.meta.as_str() != "text/gemini"
{
if let Some(cplx_timeout) = self.complex_timeout {
////////////// Use the special case timeout override ///////////////////////////// ////////////// Use the special case timeout override /////////////////////////////
// Send the header & flush // Send the header & flush
let fut_send_header = async { let fut_send_header = async {
send_response_header(response.header(), stream).await send_response_header(response.header(), stream).await
.context("Failed to write response header")?; .context("Failed to write response header")?;
stream.flush() stream.flush()
.await
.context("Failed to flush response header")
};
timeout(self.timeout, fut_send_header)
.await .await
.context("Timed out while sending response header")??; .context("Failed to flush response header")
};
timeout(self.timeout, fut_send_header)
.await
.context("Timed out while sending response header")??;
// Send the body & flush // Send the body & flush
let fut_send_body = async { let fut_send_body = async {
send_response_body(maybe_body.unwrap(), stream).await send_response_body(maybe_body.unwrap(), stream).await
.context("Failed to write response body")?; .context("Failed to write response body")?;
stream.flush() stream.flush()
.await
.context("Failed to flush response body")
};
timeout(cplx_timeout, fut_send_body)
.await .await
.context("Timed out while sending response body")??; .context("Failed to flush response body")
};
timeout(cplx_timeout, fut_send_body)
.await
.context("Timed out while sending response body")??;
return Ok(())
} return Ok(())
} }
} }