Add native dynamic port forwarding
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled

This commit is contained in:
DuProcess
2026-06-13 15:48:49 -04:00
parent 64b00783fd
commit 3642de71e4
4 changed files with 322 additions and 33 deletions
+11 -5
View File
@@ -1308,11 +1308,17 @@ fn stream_open_allowed(
open: &StreamOpen,
) -> Result<()> {
anyhow::ensure!(config.allow_tcp_forwarding, "TCP forwarding disabled");
let allowed = client.allowed_forwardings.iter().any(|forward| {
forward.kind == ForwardingKind::Local
&& forward.target_host.as_deref() == Some(open.target_host.as_str())
&& forward.target_port == Some(open.target_port)
});
let allowed = client
.allowed_forwardings
.iter()
.any(|forward| match forward.kind {
ForwardingKind::Local => {
forward.target_host.as_deref() == Some(open.target_host.as_str())
&& forward.target_port == Some(open.target_port)
}
ForwardingKind::Dynamic => true,
ForwardingKind::Remote => false,
});
anyhow::ensure!(
allowed,
"stream target {}:{} was not requested during auth",