From d9520824426264bbbc444aa9c1d9af3562eb82db Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Wed, 3 Jun 2026 02:49:33 +0800 Subject: [PATCH] fix(kingbase): prefer IPv4 stack for agent --- crates/dbx-core/src/db/agent_driver.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/crates/dbx-core/src/db/agent_driver.rs b/crates/dbx-core/src/db/agent_driver.rs index 1ee10bc8c..88fc29fd2 100644 --- a/crates/dbx-core/src/db/agent_driver.rs +++ b/crates/dbx-core/src/db/agent_driver.rs @@ -712,6 +712,10 @@ fn agent_java_args(jar_path: &str) -> Vec { .map(str::to_string) .collect::>(); + if agent_jar_path_matches_key(jar_path, "kingbase") { + args.push("-Djava.net.preferIPv4Stack=true".to_string()); + } + if !agent_jar_path_matches_key(jar_path, "oracle-10g") { args.push("--add-opens=java.sql/java.sql=ALL-UNNAMED".to_string()); } @@ -868,6 +872,20 @@ mod tests { assert!(args.iter().any(|arg| arg == "-DsocksProxyHost=")); } + #[test] + fn agent_java_args_prefer_ipv4_for_kingbase() { + let args = agent_java_args("/tmp/dbx/drivers/kingbase/agent.jar"); + + assert!(args.iter().any(|arg| arg == "-Djava.net.preferIPv4Stack=true")); + } + + #[test] + fn agent_java_args_do_not_prefer_ipv4_for_other_agents() { + let args = agent_java_args("/tmp/dbx/drivers/highgo/agent.jar"); + + assert!(!args.iter().any(|arg| arg == "-Djava.net.preferIPv4Stack=true")); + } + #[test] fn agent_process_environment_removes_common_proxy_variables() { let proxy_env_vars = agent_proxy_env_vars();