v0.5.0: IPv6 off by default, mark as experimental
IPv6 listener now requires explicit --listen6 flag (disabled by default). TCP over IPv6 works fully. UDP over IPv6 has macOS kernel limitations (ENOBUFS on send_to). On Linux, IPv6 UDP works fine. Usage: btest -s # IPv4 only (default) btest -s --listen6 # IPv4 + IPv6 on :: btest -s --listen6 ::1 # IPv4 + IPv6 on specific address Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -54,9 +54,9 @@ struct Cli {
|
||||
#[arg(long = "listen", default_value = "0.0.0.0")]
|
||||
listen_addr: String,
|
||||
|
||||
/// Listen address for IPv6 (default: ::, use "none" to disable)
|
||||
#[arg(long = "listen6", default_value = "::")]
|
||||
listen6_addr: String,
|
||||
/// Enable IPv6 listener (experimental — TCP works, UDP has issues on macOS)
|
||||
#[arg(long = "listen6", default_missing_value = "::", num_args = 0..=1)]
|
||||
listen6_addr: Option<String>,
|
||||
|
||||
/// Authentication username
|
||||
#[arg(short = 'a', long = "authuser")]
|
||||
@@ -110,7 +110,7 @@ async fn main() -> anyhow::Result<()> {
|
||||
if cli.server {
|
||||
// Server mode
|
||||
let v4 = if cli.listen_addr.eq_ignore_ascii_case("none") { None } else { Some(cli.listen_addr) };
|
||||
let v6 = if cli.listen6_addr.eq_ignore_ascii_case("none") { None } else { Some(cli.listen6_addr) };
|
||||
let v6 = cli.listen6_addr; // None unless --listen6 is passed
|
||||
tracing::info!("Starting btest server on port {}", cli.port);
|
||||
server::run_server(cli.port, cli.auth_user, cli.auth_pass, cli.ecsrp5, v4, v6).await?;
|
||||
} else if let Some(host) = cli.client {
|
||||
|
||||
Reference in New Issue
Block a user