v0.34.0_fina;
This commit is contained in:
1 parent
1ca019d849
commit
c207e8a03f
69 files changed
+1496
-13838
No files matched your search
@@ -3,8 +3,16 @@ include!("request_id.rs");
|
||||
// Retain the exchange through the response, but do not allocate an additional
|
||||
// body adapter for a request whose body has no frames or trailers.
|
||||
fn wrap_observed_request(body: Body, exchange: &Arc<Exchange>, idle: Duration) -> Body {
|
||||
if body.is_end_stream() { body }
|
||||
else { Body::new(MeteredBody::new(body, exchange.clone(), Direction::Request, idle)) }
|
||||
if body.is_end_stream() {
|
||||
body
|
||||
} else {
|
||||
Body::new(MeteredBody::new(
|
||||
body,
|
||||
exchange.clone(),
|
||||
Direction::Request,
|
||||
idle,
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
fn log_prefix(input: &str, max_chars: usize) -> String {
|
||||
@@ -51,13 +59,12 @@ async fn observe(State(state): State<Arc<App>>, mut request: Request, next: Next
|
||||
.unwrap_or_default()
|
||||
.tls;
|
||||
request.extensions_mut().insert(snapshot.clone());
|
||||
let original_headers = if snapshot.envelope.config.compression.enabled()
|
||||
&& request.method() != Method::HEAD
|
||||
{
|
||||
crate::compression::request_headers(request.headers())
|
||||
} else {
|
||||
HeaderMap::new()
|
||||
};
|
||||
let original_headers =
|
||||
if snapshot.envelope.config.compression.enabled() && request.method() != Method::HEAD {
|
||||
crate::compression::request_headers(request.headers())
|
||||
} else {
|
||||
HeaderMap::new()
|
||||
};
|
||||
let method = request.method().clone();
|
||||
let is_head = method == Method::HEAD;
|
||||
let ws_attempt = request
|
||||
@@ -71,9 +78,15 @@ async fn observe(State(state): State<Arc<App>>, mut request: Request, next: Next
|
||||
&& request.method() == Method::CONNECT
|
||||
&& websocket::h3_protocol(&request) == Some("websocket"));
|
||||
match request.version() {
|
||||
Version::HTTP_11 => { state.metrics.http1_requests.fetch_add(1, Ordering::Relaxed); }
|
||||
Version::HTTP_2 => { state.metrics.http2_requests.fetch_add(1, Ordering::Relaxed); }
|
||||
Version::HTTP_3 => { state.metrics.http3_requests.fetch_add(1, Ordering::Relaxed); }
|
||||
Version::HTTP_11 => {
|
||||
state.metrics.http1_requests.fetch_add(1, Ordering::Relaxed);
|
||||
}
|
||||
Version::HTTP_2 => {
|
||||
state.metrics.http2_requests.fetch_add(1, Ordering::Relaxed);
|
||||
}
|
||||
Version::HTTP_3 => {
|
||||
state.metrics.http3_requests.fetch_add(1, Ordering::Relaxed);
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
let id = state.metrics.requests.fetch_add(1, Ordering::Relaxed) + 1;
|
||||
@@ -132,7 +145,9 @@ async fn observe(State(state): State<Arc<App>>, mut request: Request, next: Next
|
||||
frontend.metrics.active.fetch_add(1, Ordering::Relaxed);
|
||||
}
|
||||
let host = log_prefix(
|
||||
request.headers().get(HOST)
|
||||
request
|
||||
.headers()
|
||||
.get(HOST)
|
||||
.and_then(|h| h.to_str().ok())
|
||||
.unwrap_or_else(|| request.uri().authority().map(|v| v.as_str()).unwrap_or("")),
|
||||
253,
|
||||
@@ -315,7 +330,8 @@ async fn observe(State(state): State<Arc<App>>, mut request: Request, next: Next
|
||||
// global encoding (e.g. Accept-Encoding: identity), encode is a no-op:
|
||||
// avoid even constructing/resolving the per-request settings.
|
||||
if method != Method::HEAD
|
||||
&& crate::compression::preferred_encoding(&original_headers, global_compression).is_some()
|
||||
&& crate::compression::preferred_encoding(&original_headers, global_compression)
|
||||
.is_some()
|
||||
{
|
||||
let mut compression = global_compression.clone();
|
||||
if let Some(frontend) = frontend_context.as_ref() {
|
||||
@@ -330,9 +346,9 @@ async fn observe(State(state): State<Arc<App>>, mut request: Request, next: Next
|
||||
.resolve(global_compression, &compression);
|
||||
}
|
||||
}
|
||||
response = crate::compression::encode(
|
||||
response, &original_headers, &method, &compression,
|
||||
).await;
|
||||
response =
|
||||
crate::compression::encode(response, &original_headers, &method, &compression)
|
||||
.await;
|
||||
}
|
||||
if let Some(encoding) = response
|
||||
.extensions()
|
||||
|
||||
Reference in new issue
Block a user