feat(server): add http1_half_close(bool) option

This option determines whether a read EOF should close the connection
automatically. The behavior was to always allow read EOF while waiting
to respond, so this option has a default of `true`.

Setting this option to `false` will allow Service futures to be canceled
as soon as disconnect is noticed.

Closes #1716
This commit is contained in:
Sean McArthur
2018-11-26 16:19:28 -08:00
parent c35bdca8fa
commit 73345be65f
4 changed files with 121 additions and 5 deletions

View File

@@ -247,6 +247,20 @@ impl<I, E> Builder<I, E> {
self
}
/// Set whether HTTP/1 connections should support half-closures.
///
/// Clients can chose to shutdown their write-side while waiting
/// for the server to respond. Setting this to `false` will
/// automatically close any connection immediately if `read`
/// detects an EOF.
///
/// Default is `true`.
pub fn http1_half_close(mut self, val: bool) -> Self {
self.protocol.http1_half_close(val);
self
}
/// Sets whether HTTP/1 is required.
///
/// Default is `false`.