Fixed bug where incorrect timeout was used. I got the mime types backwards haha pretend you didnt see that
This commit is contained in:
parent
25d575bee7
commit
df362d1bc3
59
src/lib.rs
59
src/lib.rs
|
|
@ -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(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue