test(sandbox): 验证原生 TCP 与 UDP 回环隔离

This commit is contained in:
2026-09-08 22:44:33 +08:00
parent 627e4552d5
commit 71585486e2
3 changed files with 153 additions and 8 deletions
@@ -0,0 +1,27 @@
//! Standalone native test probe; never shipped or used to launch extensions.
use std::net::{SocketAddr, TcpStream, UdpSocket};
use std::time::Duration;
fn main() {
let args: Vec<_> = std::env::args().collect();
if args.len() != 3 {
std::process::exit(79);
}
let address: SocketAddr = args[2].parse().unwrap();
let result = match args[1].as_str() {
"tcp" => TcpStream::connect_timeout(&address, Duration::from_secs(2)).map(|_| ()),
"udp" => UdpSocket::bind(if address.is_ipv4() {
"0.0.0.0:0"
} else {
"[::]:0"
})
.and_then(|socket| socket.send_to(b"probe", address))
.map(|_| ()),
_ => std::process::exit(79),
};
std::process::exit(match result {
Ok(()) => 0,
Err(error) if error.raw_os_error() == Some(10013) => 77,
Err(error) if error.kind() == std::io::ErrorKind::TimedOut => 80,
Err(_) => 81,
});
}