From: Tobias Brunner Date: Thu, 9 Aug 2012 14:38:19 +0000 (+0200) Subject: Moved Java to C string conversion function to android_jni header file X-Git-Tag: 5.0.1~210^2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4308ce1cf72c18d069606823427cd93eca386ed5;p=thirdparty%2Fstrongswan.git Moved Java to C string conversion function to android_jni header file --- diff --git a/src/frontends/android/jni/libandroidbridge/android_jni.h b/src/frontends/android/jni/libandroidbridge/android_jni.h index 39ba56fc1b..774d37d7ee 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 2320338994..802e087ec6 100644 --- a/src/frontends/android/jni/libandroidbridge/charonservice.c +++ b/src/frontends/android/jni/libandroidbridge/charonservice.c @@ -438,21 +438,6 @@ JNI_METHOD(CharonVpnService, deinitializeCharon, void) library_deinit(); } -/** - * 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 */ @@ -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); }