From 2b3463c55c8b448dfbce77123263520d117a3dc0 Mon Sep 17 00:00:00 2001 From: ssrlive <30760636+ssrlive@users.noreply.github.com> Date: Sat, 18 Nov 2023 01:24:41 +0800 Subject: [PATCH] android issues --- .cargo/config.toml | 2 +- src/android.rs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 332ab99..cbfec78 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -2,4 +2,4 @@ protocol = "sparse" [build] -#target = ["x86_64-unknown-linux-gnu"] +# target = ["x86_64-unknown-linux-gnu", "aarch64-linux-android"] diff --git a/src/android.rs b/src/android.rs index b1b6ca2..41388c4 100644 --- a/src/android.rs +++ b/src/android.rs @@ -20,6 +20,7 @@ pub unsafe extern "C" fn Java_com_github_shadowsocks_bg_Tun2proxy_run( tun_fd: jint, tun_mtu: jint, verbose: jboolean, + dns_over_tcp: jboolean, ) -> jint { let log_level = if verbose != 0 { "trace" } else { "info" }; let filter_str = &format!("off,tun2proxy={log_level}"); @@ -39,7 +40,9 @@ pub unsafe extern "C" fn Java_com_github_shadowsocks_bg_Tun2proxy_run( let proxy_type = proxy.proxy_type; log::info!("Proxy {proxy_type} server: {addr}"); - let options = Options::new().with_virtual_dns().with_mtu(tun_mtu as usize); + let dns_addr = "8.8.8.8".parse::().unwrap(); + let options = Options::new().with_dns_addr(Some(dns_addr)).with_mtu(tun_mtu as usize); + let options = if dns_over_tcp != 0 { options.with_dns_over_tcp() } else { options }; let interface = NetworkInterface::Fd(tun_fd); let tun2proxy = tun_to_proxy(&interface, &proxy, options)?;