v0.34.0_7

This commit is contained in:
Mateusz Gruszczyński committed 2026-10-18 07:48:59 +02:00
1 parent 47ce1f18c2
commit b6a3e12225
21 files changed
+471 -84

No files matched your search

+26 -2
View File
@@ -214,6 +214,22 @@ impl Compiled {
tls: bool,
authority: &HeaderValue,
uri: &Uri,
) -> Result<Context> {
self.context_with_original_url(incoming, peer, local, tls, authority, uri, true)
}
/// The absolute original URL is only consumed by the optional Tinyauth
/// verifier. Ordinary proxy requests need the exact forwarding metadata,
/// but do not need to allocate this extra diagnostic URL.
pub fn context_with_original_url(
&self,
incoming: &HeaderMap,
peer: SocketAddr,
local: SocketAddr,
tls: bool,
authority: &HeaderValue,
uri: &Uri,
include_original_url: bool,
) -> Result<Context> {
let peer_ip = canonical(peer.ip());
let trusted_peer = self.trusted(peer_ip);
@@ -222,7 +238,11 @@ impl Compiled {
let authority_text = authority.to_str()?;
crate::config::request_host(authority_text)?;
let target = uri.path_and_query().map(|v| v.as_str()).unwrap_or("/");
let original_url = format!("{scheme}://{authority_text}{target}");
let original_url = if include_original_url {
format!("{scheme}://{authority_text}{target}")
} else {
String::new()
};
let peer_text = peer_ip.to_string();
let peer_header = HeaderValue::from_str(&peer_text)?;
let peer_node = if peer_ip.is_ipv4() { None } else { Some(node(peer_ip)) };
@@ -269,7 +289,11 @@ impl Compiled {
// Validate before inserting authority into Forwarded's quoted host field.
crate::config::request_host(authority_text)?;
let original_target = uri.path_and_query().map(|v| v.as_str()).unwrap_or("/");
let original_url = format!("{scheme}://{authority_text}{original_target}");
let original_url = if include_original_url {
format!("{scheme}://{authority_text}{original_target}")
} else {
String::new()
};
let mut forwarded: Vec<_> = ips.iter().map(|ip| format!("for={}", node(*ip))).collect();
let last = forwarded.last_mut().expect("actual peer is always present");
last.push_str(&format!(