diff options
author | Tobias Brunner <tobias@strongswan.org> | 2013-05-15 15:52:16 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2013-07-08 18:49:28 +0200 |
commit | dc52cfab73298272a68eaef3f85b571536ad8a06 (patch) | |
tree | 44856903125ce16e1fb43f3cd7a963ff845a9d6f /src/frontends/android/jni/libandroidbridge/charonservice.c | |
parent | d087f080f0f0eae9b965c61c6732d053fca55f72 (diff) | |
download | strongswan-dc52cfab73298272a68eaef3f85b571536ad8a06.tar.bz2 strongswan-dc52cfab73298272a68eaef3f85b571536ad8a06.tar.xz |
android: Add state of IMC to VpnStateService and update it via JNI
Diffstat (limited to 'src/frontends/android/jni/libandroidbridge/charonservice.c')
-rw-r--r-- | src/frontends/android/jni/libandroidbridge/charonservice.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/frontends/android/jni/libandroidbridge/charonservice.c b/src/frontends/android/jni/libandroidbridge/charonservice.c index 1c62e282c..115b53232 100644 --- a/src/frontends/android/jni/libandroidbridge/charonservice.c +++ b/src/frontends/android/jni/libandroidbridge/charonservice.c @@ -162,6 +162,30 @@ failed: return success; } +METHOD(charonservice_t, update_imc_state, bool, + private_charonservice_t *this, android_imc_state_t state) +{ + JNIEnv *env; + jmethodID method_id; + bool success = FALSE; + + androidjni_attach_thread(&env); + + method_id = (*env)->GetMethodID(env, android_charonvpnservice_class, + "updateImcState", "(I)V"); + if (!method_id) + { + goto failed; + } + (*env)->CallVoidMethod(env, this->vpn_service, method_id, (jint)state); + success = !androidjni_exception_occurred(env); + +failed: + androidjni_exception_occurred(env); + androidjni_detach_thread(); + return success; +} + /** * Bypass a single socket */ @@ -466,6 +490,7 @@ static void charonservice_init(JNIEnv *env, jobject service, jobject builder) INIT(this, .public = { .update_status = _update_status, + .update_imc_state = _update_imc_state, .bypass_socket = _bypass_socket, .get_trusted_certificates = _get_trusted_certificates, .get_user_certificate = _get_user_certificate, |