From 3d4fcdbc964678f7a0dc82ed3820686e668efbd4 Mon Sep 17 00:00:00 2001 From: lubeilin <1791778603@qq.com> Date: Sun, 27 Aug 2023 15:11:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vnt-jni/src/vnt_util.rs | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/vnt-jni/src/vnt_util.rs b/vnt-jni/src/vnt_util.rs index 9bcaf55..1db665d 100644 --- a/vnt-jni/src/vnt_util.rs +++ b/vnt-jni/src/vnt_util.rs @@ -80,7 +80,7 @@ fn new_sync(env: &mut JNIEnv, config: JObject) -> Result { token, device_id, name, server_address, server_address_str, stun_server, vec![], - vec![], password, false, None, false, None, false); + vec![], password, false, None, false, None, false,false); match VntUtilSync::new(config) { Ok(vnt_util) => { Ok(vnt_util) @@ -108,22 +108,37 @@ pub unsafe extern "C" fn Java_top_wherewego_vnt_jni_VntUtil_new0( } return 0; } - #[no_mangle] pub unsafe extern "C" fn Java_top_wherewego_vnt_jni_VntUtil_connect0( mut env: JNIEnv, _class: JClass, raw_vnt_util: jlong, -) -> jobject { +) { let raw_vnt_util = raw_vnt_util as *mut VntUtilSync; match (&mut *raw_vnt_util).connect() { + Ok(_) => {} + Err(e) => { + env.throw_new("java/lang/RuntimeException", format!("vnt connect error {}", e)) + .expect("throw"); + } + } +} + +#[no_mangle] +pub unsafe extern "C" fn Java_top_wherewego_vnt_jni_VntUtil_register0( + mut env: JNIEnv, + _class: JClass, + raw_vnt_util: jlong, +) -> jobject { + let raw_vnt_util = raw_vnt_util as *mut VntUtilSync; + match (&mut *raw_vnt_util).register() { Ok(response) => { match reg_response(&mut env, response) { Ok(res) => { return res; } Err(e) => { - env.throw(format!("vnt connect error {}", e)).expect("throw"); + env.throw(format!("vnt register error {}", e)).expect("throw"); } } } @@ -142,11 +157,11 @@ pub unsafe extern "C" fn Java_top_wherewego_vnt_jni_VntUtil_connect0( .expect("throw"); } ReqEnum::ServerError(str) => { - env.throw_new("java/lang/RuntimeException", format!("vnt connect error {}", str)) + env.throw_new("java/lang/RuntimeException", format!("vnt register error {}", str)) .expect("throw"); } ReqEnum::Other(str) => { - env.throw_new("java/lang/RuntimeException", format!("vnt connect error {}", str)) + env.throw_new("java/lang/RuntimeException", format!("vnt register error {}", str)) .expect("throw"); } ReqEnum::IpAlreadyExists => {