aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-08-28 15:32:14 +0200
committerTobias Brunner <tobias@strongswan.org>2012-08-31 18:24:46 +0200
commit5eb7ad3a38a59e22a2c5f344992eb1ade524083b (patch)
treeae45d805f8b4b4e97811d477839c3c8eaf67b11a
parent655362464e4fd0da6adca2abe044b59f15c592a6 (diff)
downloadstrongswan-5eb7ad3a38a59e22a2c5f344992eb1ade524083b.tar.bz2
strongswan-5eb7ad3a38a59e22a2c5f344992eb1ade524083b.tar.xz
android: Pass the type of VPN to the native parts
-rw-r--r--src/frontends/android/jni/libandroidbridge/charonservice.c11
-rw-r--r--src/frontends/android/src/org/strongswan/android/logic/CharonVpnService.java5
2 files changed, 10 insertions, 6 deletions
diff --git a/src/frontends/android/jni/libandroidbridge/charonservice.c b/src/frontends/android/jni/libandroidbridge/charonservice.c
index fab99ac10..57d118faf 100644
--- a/src/frontends/android/jni/libandroidbridge/charonservice.c
+++ b/src/frontends/android/jni/libandroidbridge/charonservice.c
@@ -260,7 +260,8 @@ METHOD(charonservice_t, get_vpnservice_builder, vpnservice_builder_t*,
* @param username username (gets owned)
* @param password password (gets owned)
*/
-static void initiate(char *local, char *gateway, char *username, char *password)
+static void initiate(char *type, char *local, char *gateway,
+ char *username, char *password)
{
private_charonservice_t *this = (private_charonservice_t*)charonservice;
@@ -271,6 +272,7 @@ static void initiate(char *local, char *gateway, char *username, char *password)
DESTROY_IF(this->service);
this->service = android_service_create(local, gateway, username);
+ free(type);
}
/**
@@ -477,15 +479,16 @@ JNI_METHOD(CharonVpnService, deinitializeCharon, void)
* Initiate SA
*/
JNI_METHOD(CharonVpnService, initiate, void,
- jstring jlocal_address, jstring jgateway, jstring jusername,
+ jstring jtype, jstring jlocal_address, jstring jgateway, jstring jusername,
jstring jpassword)
{
- char *local_address, *gateway, *username, *password;
+ char *type, *local_address, *gateway, *username, *password;
+ type = androidjni_convert_jstring(env, jtype);
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);
+ initiate(type, local_address, gateway, username, password);
}
diff --git a/src/frontends/android/src/org/strongswan/android/logic/CharonVpnService.java b/src/frontends/android/src/org/strongswan/android/logic/CharonVpnService.java
index c9c1ad02a..71fc04611 100644
--- a/src/frontends/android/src/org/strongswan/android/logic/CharonVpnService.java
+++ b/src/frontends/android/src/org/strongswan/android/logic/CharonVpnService.java
@@ -214,7 +214,8 @@ public class CharonVpnService extends VpnService implements Runnable
Log.i(TAG, "charon started");
String local_address = getLocalIPv4Address();
- initiate(local_address != null ? local_address : "0.0.0.0",
+ initiate(mCurrentProfile.getVpnType().getIdentifier(),
+ local_address != null ? local_address : "0.0.0.0",
mCurrentProfile.getGateway(), mCurrentProfile.getUsername(),
mCurrentProfile.getPassword());
}
@@ -436,7 +437,7 @@ public class CharonVpnService extends VpnService implements Runnable
/**
* Initiate VPN, provided by libandroidbridge.so
*/
- public native void initiate(String local_address, String gateway,
+ public native void initiate(String type, String local_address, String gateway,
String username, String password);
/**