Skip to content

Commit

Permalink
feat(server): support auto_date_header and `max_local_error_reset_s…
Browse files Browse the repository at this point in the history
…treams`.
  • Loading branch information
finnbear committed Jan 1, 2025
1 parent 5f055e3 commit 7bf6303
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions src/server/conn/auto/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -629,6 +629,16 @@ impl<E> Http1Builder<'_, E> {
Http2Builder { inner: self.inner }
}

/// Set whether the `date` header should be included in HTTP responses.
///
/// Note that including the `date` header is recommended by RFC 7231.
///
/// Default is true.
pub fn auto_date_header(&mut self, enabled: bool) -> &mut Self {
self.inner.http1.auto_date_header(enabled);
self
}

/// Set whether HTTP/1 connections should support half-closures.
///
/// Clients can chose to shutdown their write-side while waiting
Expand Down Expand Up @@ -837,6 +847,19 @@ impl<E> Http2Builder<'_, E> {
self
}

/// Configures the maximum number of local reset streams allowed before a GOAWAY will be sent.
///
/// If not set, hyper will use a default, currently of 1024.
///
/// If `None` is supplied, hyper will not apply any limit.
/// This is not advised, as it can potentially expose servers to DOS vulnerabilities.
///
/// See <https://rustsec.org/advisories/RUSTSEC-2024-0003.html> for more information.
pub fn max_local_error_reset_streams(mut self, max: impl Into<Option<usize>>) -> Self {
self.inner.http2.max_local_error_reset_streams(max);
self
}

/// Sets the [`SETTINGS_INITIAL_WINDOW_SIZE`][spec] option for HTTP2
/// stream-level flow control.
///
Expand Down Expand Up @@ -956,6 +979,16 @@ impl<E> Http2Builder<'_, E> {
self
}

/// Set whether the `date` header should be included in HTTP responses.
///
/// Note that including the `date` header is recommended by RFC 7231.
///
/// Default is true.
pub fn auto_date_header(&mut self, enabled: bool) -> &mut Self {
self.inner.http2.auto_date_header(enabled);
self
}

/// Bind a connection together with a [`Service`].
pub async fn serve_connection<I, S, B>(&self, io: I, service: S) -> Result<()>
where
Expand Down

0 comments on commit 7bf6303

Please sign in to comment.