aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-02-22 15:36:33 +0100
committerTobias Brunner <tobias@strongswan.org>2012-08-08 15:12:24 +0200
commit06ed785e5ab9dfc0dedf04855c1ea5019c256d8e (patch)
tree934f63fef9d8533d9bf26d9de32dfda62083d3b6
parentb70139fbfd942547a7b591db3e3f2c7f9e6666f2 (diff)
downloadstrongswan-06ed785e5ab9dfc0dedf04855c1ea5019c256d8e.tar.bz2
strongswan-06ed785e5ab9dfc0dedf04855c1ea5019c256d8e.tar.xz
Load libipsec in Android app.
-rw-r--r--src/frontends/android/jni/Android.mk1
-rw-r--r--src/frontends/android/jni/libandroidbridge/Android.mk3
-rw-r--r--src/frontends/android/jni/libandroidbridge/charonservice.c11
-rw-r--r--src/frontends/android/src/org/strongswan/android/CharonVpnService.java1
4 files changed, 15 insertions, 1 deletions
diff --git a/src/frontends/android/jni/Android.mk b/src/frontends/android/jni/Android.mk
index e5659a4df..ad5ddd6d3 100644
--- a/src/frontends/android/jni/Android.mk
+++ b/src/frontends/android/jni/Android.mk
@@ -57,6 +57,7 @@ include $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
vstr \
openssl \
libandroidbridge \
+ strongswan/src/libipsec \
strongswan/src/libcharon \
strongswan/src/libhydra \
strongswan/src/libstrongswan \
diff --git a/src/frontends/android/jni/libandroidbridge/Android.mk b/src/frontends/android/jni/libandroidbridge/Android.mk
index 7f25a540a..3b8b98b86 100644
--- a/src/frontends/android/jni/libandroidbridge/Android.mk
+++ b/src/frontends/android/jni/libandroidbridge/Android.mk
@@ -9,6 +9,7 @@ charonservice.c
LOCAL_C_INCLUDES += \
$(libvstr_PATH) \
+ $(strongswan_PATH)/src/libipsec \
$(strongswan_PATH)/src/libhydra \
$(strongswan_PATH)/src/libcharon \
$(strongswan_PATH)/src/libstrongswan
@@ -26,7 +27,7 @@ LOCAL_PRELINK_MODULE := false
LOCAL_LDLIBS := -llog
-LOCAL_SHARED_LIBRARIES := libstrongswan libhydra libcharon
+LOCAL_SHARED_LIBRARIES := libstrongswan libhydra libipsec libcharon
include $(BUILD_SHARED_LIBRARY)
diff --git a/src/frontends/android/jni/libandroidbridge/charonservice.c b/src/frontends/android/jni/libandroidbridge/charonservice.c
index ecc243481..424d50d24 100644
--- a/src/frontends/android/jni/libandroidbridge/charonservice.c
+++ b/src/frontends/android/jni/libandroidbridge/charonservice.c
@@ -18,6 +18,7 @@
#include <jni.h>
#include <hydra.h>
+#include <ipsec.h>
#include <daemon.h>
#include <library.h>
@@ -88,10 +89,19 @@ JNI_METHOD(CharonVpnService, initializeCharon, void)
return;
}
+ if (!libipsec_init())
+ {
+ libipsec_deinit();
+ libhydra_deinit();
+ library_deinit();
+ return;
+ }
+
if (!libcharon_init("charon") ||
!charon->initialize(charon, PLUGINS))
{
libcharon_deinit();
+ libipsec_deinit();
libhydra_deinit();
library_deinit();
return;
@@ -107,6 +117,7 @@ JNI_METHOD(CharonVpnService, initializeCharon, void)
JNI_METHOD(CharonVpnService, deinitializeCharon, void)
{
libcharon_deinit();
+ libipsec_deinit();
libhydra_deinit();
library_deinit();
}
diff --git a/src/frontends/android/src/org/strongswan/android/CharonVpnService.java b/src/frontends/android/src/org/strongswan/android/CharonVpnService.java
index 596372f9d..52d427c2f 100644
--- a/src/frontends/android/src/org/strongswan/android/CharonVpnService.java
+++ b/src/frontends/android/src/org/strongswan/android/CharonVpnService.java
@@ -45,6 +45,7 @@ public class CharonVpnService extends VpnService {
System.loadLibrary("strongswan");
System.loadLibrary("hydra");
System.loadLibrary("charon");
+ System.loadLibrary("ipsec");
System.loadLibrary("androidbridge");
}
}