From 4308ce1cf72c18d069606823427cd93eca386ed5 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 9 Aug 2012 16:38:19 +0200 Subject: [PATCH] Moved Java to C string conversion function to android_jni header file --- .../android/jni/libandroidbridge/android_jni.h | 19 ++++++++++++++++++ .../android/jni/libandroidbridge/charonservice.c | 23 ++++------------------ 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/src/frontends/android/jni/libandroidbridge/android_jni.h b/src/frontends/android/jni/libandroidbridge/android_jni.h index 39ba56f..774d37d 100644 --- a/src/frontends/android/jni/libandroidbridge/android_jni.h +++ b/src/frontends/android/jni/libandroidbridge/android_jni.h @@ -81,4 +81,23 @@ static inline bool androidjni_exception_occurred(JNIEnv *env) return FALSE; } +/** + * Convert a Java string to a C string. Memory is allocated. + * + * @param env JNIEnv + * @param jstr Java string + * @return native C string (allocated) + */ +static inline char *androidjni_convert_jstring(JNIEnv *env, jstring jstr) +{ + char *str; + jsize len; + + len = (*env)->GetStringUTFLength(env, jstr); + str = malloc(len + 1); + (*env)->GetStringUTFRegion(env, jstr, 0, len, str); + str[len] = '\0'; + return str; +} + #endif /** ANDROID_JNI_H_ @}*/ diff --git a/src/frontends/android/jni/libandroidbridge/charonservice.c b/src/frontends/android/jni/libandroidbridge/charonservice.c index 2320338..802e087 100644 --- a/src/frontends/android/jni/libandroidbridge/charonservice.c +++ b/src/frontends/android/jni/libandroidbridge/charonservice.c @@ -439,21 +439,6 @@ JNI_METHOD(CharonVpnService, deinitializeCharon, void) } /** - * Convert a Java string to a C string. Memory is allocated. - */ -static inline char *convert_jstring(JNIEnv *env, jstring jstr) -{ - char *str; - jsize len; - - len = (*env)->GetStringUTFLength(env, jstr); - str = malloc(len + 1); - (*env)->GetStringUTFRegion(env, jstr, 0, len, str); - str[len] = '\0'; - return str; -} - -/** * Initiate SA */ JNI_METHOD(CharonVpnService, initiate, void, @@ -462,10 +447,10 @@ JNI_METHOD(CharonVpnService, initiate, void, { char *local_address, *gateway, *username, *password; - local_address = convert_jstring(env, jlocal_address); - gateway = convert_jstring(env, jgateway); - username = convert_jstring(env, jusername); - password = convert_jstring(env, jpassword); + local_address = androidjni_convert_jstring(env, jlocal_address); + gateway = androidjni_convert_jstring(env, jgateway); + username = androidjni_convert_jstring(env, jusername); + password = androidjni_convert_jstring(env, jpassword); initiate(local_address, gateway, username, password); } -- 2.7.4