v0.34.0_10

This commit is contained in:
Mateusz Gruszczyński committed 2026-10-18 09:24:03 +02:00
1 parent 8c4cbc583f
commit dd2502dd11
13 files changed
+389 -113

No files matched your search

+16 -10
View File
@@ -39,25 +39,29 @@ async fn connection<I>(
}
let request_stop = stop.clone();
let service_frontend_state = frontend_state.clone();
let formatted_peer = Arc::new(crate::forwarding::PeerFormatting::new(peer, local));
let service = service_fn(move |mut request: Request<Incoming>| {
let router = router.clone();
let mut router = router.clone();
let request_stop = request_stop.clone();
let request_lease = lease.clone();
let upgrade_state = service_frontend_state.clone();
let formatted_peer = formatted_peer.clone();
#[cfg(target_os = "linux")]
let sendfile_slots = sendfile_slots.clone();
async move {
request.extensions_mut().insert(PeerAddr(peer));
request.extensions_mut().insert(LocalAddr(local));
request.extensions_mut().insert(transport);
request.extensions_mut().insert(request_lease.clone());
// Reuse immutable per-socket formatting and insert extensions in
// one pass. Configuration and trust policies are still per-request.
let extensions = request.extensions_mut();
extensions.insert(PeerAddr(peer));
extensions.insert(LocalAddr(local));
extensions.insert(transport);
extensions.insert(formatted_peer);
extensions.insert(request_lease.clone());
#[cfg(target_os = "linux")]
if let Some(slots) = sendfile_slots {
request.extensions_mut().insert(slots);
extensions.insert(slots);
}
request
.extensions_mut()
.insert(ServerShutdown(request_stop.clone()));
extensions.insert(ServerShutdown(request_stop.clone()));
if h2c_attempt(&request) {
if !h2c_upgrade {
@@ -175,7 +179,9 @@ async fn connection<I>(
);
}
router.oneshot(request.map(Body::new)).await
// Axum Router is always ready; avoid the per-request Oneshot
// readiness adapter while retaining the same middleware stack.
router.call(request.map(Body::new)).await
}
});
let mut builder = http1::Builder::new();
+1 -1
View File
@@ -30,7 +30,7 @@ use tokio::{
task::JoinSet,
};
use tokio_util::sync::CancellationToken;
use tower::ServiceExt;
use tower::{Service, ServiceExt};
const HTTP2_PRIOR_KNOWLEDGE_PREFACE: &[u8; 24] = b"PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n";
const H2_FRAME_HEADER_LEN: usize = 9;