|
1 | | -use super::{AddOrigin, Reconnect, SharedExec, UserAgent}; |
2 | | -use crate::{ |
3 | | - body::Body, |
4 | | - transport::{channel::BoxFuture, service::GrpcTimeout, Endpoint}, |
5 | | -}; |
6 | | -use http::{Request, Response, Uri}; |
7 | | -use hyper::rt; |
8 | | -use hyper::{client::conn::http2::Builder, rt::Executor}; |
9 | | -use hyper_util::rt::TokioTimer; |
10 | 1 | use std::{ |
11 | 2 | fmt, |
12 | 3 | task::{Context, Poll}, |
13 | 4 | }; |
14 | | -use tower::load::Load; |
| 5 | + |
| 6 | +use http::{Request, Response, Uri}; |
| 7 | +use hyper::{client::conn::http2::Builder, rt, rt::Executor}; |
| 8 | +use hyper_util::rt::TokioTimer; |
15 | 9 | use tower::{ |
16 | 10 | layer::Layer, |
17 | 11 | limit::{concurrency::ConcurrencyLimitLayer, rate::RateLimitLayer}, |
| 12 | + load::Load, |
18 | 13 | util::BoxService, |
19 | 14 | ServiceBuilder, ServiceExt, |
20 | 15 | }; |
21 | 16 | use tower_service::Service; |
22 | 17 |
|
| 18 | +use super::{AddOrigin, Reconnect, SharedExec, UserAgent}; |
| 19 | +use crate::{ |
| 20 | + body::Body, |
| 21 | + transport::{channel::BoxFuture, service::GrpcTimeout, Endpoint}, |
| 22 | +}; |
| 23 | + |
23 | 24 | pub(crate) struct Connection { |
24 | 25 | inner: BoxService<Request<Body>, Response<Body>, crate::BoxError>, |
25 | 26 | } |
@@ -55,13 +56,16 @@ impl Connection { |
55 | 56 | settings.max_header_list_size(val); |
56 | 57 | } |
57 | 58 |
|
58 | | - let stack = ServiceBuilder::new() |
59 | | - .layer_fn(|s| { |
60 | | - let origin = endpoint.origin.as_ref().unwrap_or(endpoint.uri()).clone(); |
| 59 | + let stack = ServiceBuilder::new().layer_fn(|s| { |
| 60 | + let origin = endpoint.origin.as_ref().unwrap_or(endpoint.uri()).clone(); |
| 61 | + |
| 62 | + AddOrigin::new(s, origin) |
| 63 | + }); |
| 64 | + |
| 65 | + #[cfg(feature = "user-agent")] |
| 66 | + let stack = stack.layer_fn(|s| UserAgent::new(s, endpoint.user_agent.clone())); |
61 | 67 |
|
62 | | - AddOrigin::new(s, origin) |
63 | | - }) |
64 | | - .layer_fn(|s| UserAgent::new(s, endpoint.user_agent.clone())) |
| 68 | + let stack = stack |
65 | 69 | .layer_fn(|s| GrpcTimeout::new(s, endpoint.timeout)) |
66 | 70 | .option_layer(endpoint.concurrency_limit.map(ConcurrencyLimitLayer::new)) |
67 | 71 | .option_layer(endpoint.rate_limit.map(|(l, d)| RateLimitLayer::new(l, d))) |
|
0 commit comments