feat(http2): Make HTTP/2 support an optional feature
cc #2251 BREAKING CHANGE: This puts all HTTP/2 methods and support behind an `http2` cargo feature, which will not be enabled by default. To use HTTP/2, add `features = ["http2"]` to the hyper dependency in your `Cargo.toml`.
This commit is contained in:
		| @@ -3,6 +3,7 @@ use std::fmt::{self, Write}; | ||||
| use std::str; | ||||
| use std::time::{Duration, SystemTime}; | ||||
|  | ||||
| #[cfg(feature = "http2")] | ||||
| use http::header::HeaderValue; | ||||
| use httpdate::HttpDate; | ||||
|  | ||||
| @@ -21,6 +22,7 @@ pub fn update() { | ||||
|     }) | ||||
| } | ||||
|  | ||||
| #[cfg(feature = "http2")] | ||||
| pub(crate) fn update_and_header_value() -> HeaderValue { | ||||
|     CACHED.with(|cache| { | ||||
|         let mut cache = cache.borrow_mut(); | ||||
|   | ||||
| @@ -10,7 +10,7 @@ use tokio::io::{AsyncRead, AsyncWrite}; | ||||
|  | ||||
| use super::{decode_content_length, ping, PipeToSendStream, SendBuf}; | ||||
| use crate::body::HttpBody; | ||||
| use crate::common::exec::H2Exec; | ||||
| use crate::common::exec::ConnStreamExec; | ||||
| use crate::common::{task, Future, Pin, Poll}; | ||||
| use crate::headers; | ||||
| use crate::proto::Dispatched; | ||||
| @@ -95,7 +95,7 @@ where | ||||
|     S: HttpService<Body, ResBody = B>, | ||||
|     S::Error: Into<Box<dyn StdError + Send + Sync>>, | ||||
|     B: HttpBody + 'static, | ||||
|     E: H2Exec<S::Future, B>, | ||||
|     E: ConnStreamExec<S::Future, B>, | ||||
| { | ||||
|     pub(crate) fn new(io: T, service: S, config: &Config, exec: E) -> Server<T, S, B, E> { | ||||
|         let mut builder = h2::server::Builder::default(); | ||||
| @@ -162,7 +162,7 @@ where | ||||
|     S: HttpService<Body, ResBody = B>, | ||||
|     S::Error: Into<Box<dyn StdError + Send + Sync>>, | ||||
|     B: HttpBody + 'static, | ||||
|     E: H2Exec<S::Future, B>, | ||||
|     E: ConnStreamExec<S::Future, B>, | ||||
| { | ||||
|     type Output = crate::Result<Dispatched>; | ||||
|  | ||||
| @@ -216,7 +216,7 @@ where | ||||
|     where | ||||
|         S: HttpService<Body, ResBody = B>, | ||||
|         S::Error: Into<Box<dyn StdError + Send + Sync>>, | ||||
|         E: H2Exec<S::Future, B>, | ||||
|         E: ConnStreamExec<S::Future, B>, | ||||
|     { | ||||
|         if self.closing.is_none() { | ||||
|             loop { | ||||
|   | ||||
| @@ -5,7 +5,9 @@ pub(crate) use self::body_length::DecodedLength; | ||||
| pub(crate) use self::h1::{dispatch, Conn, ServerTransaction}; | ||||
|  | ||||
| pub(crate) mod h1; | ||||
| pub(crate) mod h2; | ||||
| cfg_http2! { | ||||
|     pub(crate) mod h2; | ||||
| } | ||||
|  | ||||
| /// An Incoming Message head. Includes request/status line, and headers. | ||||
| #[derive(Clone, Debug, Default, PartialEq)] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user