This commit is contained in:
Mateusz Gruszczyński committed 2026-10-05 19:05:55 +02:00
1 parent ddc5c6593f
commit b9d137eee1
63 files changed
+1232 -445

No files matched your search

+16 -3
View File
@@ -125,6 +125,7 @@ async fn serve_inner(
peer,
local,
Transport { tls: true },
host.clone(),
h2,
extended_connect,
false,
@@ -168,6 +169,7 @@ async fn serve_inner(
peer,
local,
Transport { tls: false },
None,
false,
false,
false,
@@ -197,6 +199,7 @@ async fn serve_inner(
peer,
local,
Transport { tls: true },
None,
h2,
false,
false,
@@ -245,6 +248,7 @@ async fn serve_inner(
peer,
local,
Transport { tls: false },
None,
prior_h2,
extended_connect,
h2c && !prior_h2,
@@ -276,6 +280,7 @@ async fn connection<I>(
peer: SocketAddr,
local: SocketAddr,
transport: Transport,
tls_sni: Option<String>,
h2: bool,
extended_connect: bool,
h2c_upgrade: bool,
@@ -294,6 +299,7 @@ async fn connection<I>(
peer,
local,
transport,
tls_sni.clone(),
extended_connect,
frontend_state.clone(),
lease,
@@ -322,7 +328,8 @@ async fn connection<I>(
if h2c_attempt(&request) {
if !h2c_upgrade {
log_protocol_error(
let (authority, host) = request_log_identity(&request);
log_protocol_error_with_identity(
upgrade_state.as_ref(),
"h2c_upgrade_rejected",
"h2c upgrade is disabled on this listener",
@@ -331,6 +338,8 @@ async fn connection<I>(
"tcp",
"1.1",
400,
authority,
host,
None,
);
return Ok::<_, Infallible>(
@@ -344,7 +353,8 @@ async fn connection<I>(
let injected_headers = match h2_headers_frame(&request) {
Ok(frame) => frame,
Err(message) => {
log_protocol_error(
let (authority, host) = request_log_identity(&request);
log_protocol_error_with_identity(
upgrade_state.as_ref(),
"h2c_upgrade_invalid",
message,
@@ -353,6 +363,8 @@ async fn connection<I>(
"tcp",
"1.1",
400,
authority,
host,
None,
);
return Ok::<_, Infallible>(
@@ -389,6 +401,7 @@ async fn connection<I>(
peer,
local,
Transport { tls: false },
None,
extended_connect,
upgrade_state_for_task.clone(),
upgrade_lease,
@@ -448,7 +461,7 @@ async fn connection<I>(
if let Err(error) = result {
log_protocol_error(
frontend_state.as_ref(), "http1_connection_error", &error, peer, local,
if transport.tls { "tls" } else { "tcp" }, "1.1", 400, None,
if transport.tls { "tls" } else { "tcp" }, "1.1", 400, tls_sni.clone(),
);
tracing::debug!(%error, "HTTP/1 connection closed");
}