From 0e4294415e78c626a85605d9f9a763737c0b1412 Mon Sep 17 00:00:00 2001 From: lbl8603 <49143209+lbl8603@users.noreply.github.com> Date: Fri, 10 May 2024 23:19:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97=E8=BE=93?= =?UTF-8?q?=E5=87=BA=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.lock | 29 +++++++++++ vnt-jni/Cargo.toml | 3 ++ .../java/top/wherewego/vnt/jni/Config.java | 48 ++++++++++++++----- vnt-jni/src/lib.rs | 1 + vnt-jni/src/vnt.rs | 2 +- vnt-jni/src/vnt_logger.rs | 12 +++++ vnt/src/ip_proxy/icmp_proxy.rs | 12 +++-- 7 files changed, 90 insertions(+), 17 deletions(-) create mode 100644 vnt-jni/src/vnt_logger.rs diff --git a/Cargo.lock b/Cargo.lock index 8a797cb..b785879 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -67,6 +67,24 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" +[[package]] +name = "android_log-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ecc8056bf6ab9892dcd53216c83d1597487d7dacac16c8df6b877d127df9937" + +[[package]] +name = "android_logger" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c494134f746c14dc653a35a4ea5aca24ac368529da5370ecf41fe0341c35772f" +dependencies = [ + "android_log-sys", + "env_logger", + "log", + "once_cell", +] + [[package]] name = "android_system_properties" version = "0.1.5" @@ -382,6 +400,16 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" +[[package]] +name = "env_logger" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +dependencies = [ + "log", + "regex", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -1618,6 +1646,7 @@ dependencies = [ name = "vnt-jni" version = "1.2.9" dependencies = [ + "android_logger", "common", "jni", "log", diff --git a/vnt-jni/Cargo.toml b/vnt-jni/Cargo.toml index 00610d8..339c3f5 100644 --- a/vnt-jni/Cargo.toml +++ b/vnt-jni/Cargo.toml @@ -14,5 +14,8 @@ jni = { version = "0.21.1", default-features = false } log = "0.4.20" spki = { version = "0.7.2", features = ["fingerprint", "alloc","base64","pem"]} +[target.'cfg(target_os = "android")'.dependencies] +android_logger = "0.13" + [lib] crate-type = ["staticlib", "cdylib"] \ No newline at end of file diff --git a/vnt-jni/java/top/wherewego/vnt/jni/Config.java b/vnt-jni/java/top/wherewego/vnt/jni/Config.java index 342127d..2bfe7ee 100644 --- a/vnt-jni/java/top/wherewego/vnt/jni/Config.java +++ b/vnt-jni/java/top/wherewego/vnt/jni/Config.java @@ -1,13 +1,16 @@ package top.wherewego.vnt.jni; +import java.io.Serializable; +import java.util.Arrays; + /** * 启动配置 * * @author https://github.com/lbl8603/vnt */ -public class Config { +public class Config implements Serializable { /** - * 是否是tap模式,仅支持windows和linux + * 是否是tap模式,仅支持windows */ private boolean tap; /** @@ -38,10 +41,6 @@ public class Config { * 是否开启服务端加密 */ private boolean serverEncrypt; - /** - * 仅使用中继转发 - */ - private boolean relay; /** * 设备id,请使用唯一值 */ @@ -174,13 +173,6 @@ public class Config { this.serverEncrypt = serverEncrypt; } - public boolean isRelay() { - return relay; - } - - public void setRelay(boolean relay) { - this.relay = relay; - } public String getDeviceId() { return deviceId; @@ -308,4 +300,34 @@ public class Config { public void setPacketDelay(Integer packetDelay) { this.packetDelay = packetDelay; } + + @Override + public String toString() { + return "Config{" + + "tap=" + tap + + ", token='" + token + '\'' + + ", name='" + name + '\'' + + ", password='" + password + '\'' + + ", cipherModel='" + cipherModel + '\'' + + ", punchModel='" + punchModel + '\'' + + ", mtu=" + mtu + + ", serverEncrypt=" + serverEncrypt + + ", deviceId='" + deviceId + '\'' + + ", server='" + server + '\'' + + ", dns=" + Arrays.toString(dns) + + ", portMapping=" + Arrays.toString(portMapping) + + ", stunServer=" + Arrays.toString(stunServer) + + ", tcp=" + tcp + + ", ip='" + ip + '\'' + + ", finger=" + finger + + ", firstLatency=" + firstLatency + + ", inIps=" + Arrays.toString(inIps) + + ", outIps=" + Arrays.toString(outIps) + + ", ports=" + Arrays.toString(ports) + + ", deviceName='" + deviceName + '\'' + + ", useChannel='" + useChannel + '\'' + + ", packetLossRate=" + packetLossRate + + ", packetDelay=" + packetDelay + + '}'; + } } diff --git a/vnt-jni/src/lib.rs b/vnt-jni/src/lib.rs index 898137c..7ec5f13 100644 --- a/vnt-jni/src/lib.rs +++ b/vnt-jni/src/lib.rs @@ -2,3 +2,4 @@ pub mod callback; pub mod config; pub mod utils; pub mod vnt; +pub(crate) mod vnt_logger; diff --git a/vnt-jni/src/vnt.rs b/vnt-jni/src/vnt.rs index 03fe4c5..6156b08 100644 --- a/vnt-jni/src/vnt.rs +++ b/vnt-jni/src/vnt.rs @@ -11,7 +11,6 @@ use vnt::core::Vnt; use vnt::handle::PeerDeviceInfo; use crate::callback::CallBack; - #[no_mangle] pub unsafe extern "C" fn Java_top_wherewego_vnt_jni_Vnt_new0( mut env: JNIEnv<'static>, @@ -19,6 +18,7 @@ pub unsafe extern "C" fn Java_top_wherewego_vnt_jni_Vnt_new0( config: JObject, call_back: JObject<'static>, ) -> jlong { + crate::vnt_logger::init_log(); let jvm = if let Ok(jvm) = env.get_java_vm() { jvm } else { diff --git a/vnt-jni/src/vnt_logger.rs b/vnt-jni/src/vnt_logger.rs new file mode 100644 index 0000000..56b64eb --- /dev/null +++ b/vnt-jni/src/vnt_logger.rs @@ -0,0 +1,12 @@ +#[cfg(target_os = "android")] +pub fn init_log() { + use android_logger::Config; + use log::LevelFilter; + android_logger::init_once( + Config::default() + .with_max_level(LevelFilter::Info) // limit log level + .with_tag("vnt_jni"), // logs will show under mytag tag + ); +} +#[cfg(not(target_os = "android"))] +pub fn init_log() {} diff --git a/vnt/src/ip_proxy/icmp_proxy.rs b/vnt/src/ip_proxy/icmp_proxy.rs index 7c4f68f..fc8f26a 100644 --- a/vnt/src/ip_proxy/icmp_proxy.rs +++ b/vnt/src/ip_proxy/icmp_proxy.rs @@ -166,11 +166,17 @@ fn recv_handle( } } } - _ => {} + h => { + log::warn!("不支持的icmp代理 {:?},{:?}", peer_ip, h) + } }, - Err(_) => {} + Err(e) => { + log::warn!("icmp {:?}", e) + } }, - Err(_) => {} + Err(e) => { + log::warn!("icmp {:?}", e) + } } }