|
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