aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java1
-rw-r--r--src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c8
2 files changed, 6 insertions, 3 deletions
diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java
index 965edfb97..d8b4b4e44 100644
--- a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java
+++ b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java
@@ -250,6 +250,7 @@ public class CharonVpnService extends VpnService implements Runnable, VpnStateSe
SettingsWriter writer = new SettingsWriter();
writer.setValue("global.language", Locale.getDefault().getLanguage());
writer.setValue("global.mtu", mCurrentProfile.getMTU());
+ writer.setValue("global.nat_keepalive", mCurrentProfile.getNATKeepAlive());
writer.setValue("connection.type", mCurrentProfile.getVpnType().getIdentifier());
writer.setValue("connection.server", mCurrentProfile.getGateway());
writer.setValue("connection.port", mCurrentProfile.getPort());
diff --git a/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c b/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c
index 1e72cf5e0..f74936edb 100644
--- a/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c
+++ b/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c
@@ -420,6 +420,11 @@ static void initiate(settings_t *settings)
"charon.fragment_size",
settings->get_int(settings, "global.mtu",
ANDROID_DEFAULT_MTU));
+ /* use configured interval, or an increased default to save battery power */
+ lib->settings->set_int(lib->settings,
+ "charon.keep_alive",
+ settings->get_int(settings, "global.nat_keepalive",
+ ANDROID_KEEPALIVE_INTERVAL));
this->creds->clear(this->creds);
DESTROY_IF(this->service);
@@ -476,9 +481,6 @@ static void set_options(char *logfile)
"charon.retransmit_timeout", ANDROID_RETRANSMIT_TIMEOUT);
lib->settings->set_double(lib->settings,
"charon.retransmit_base", ANDROID_RETRANSMIT_BASE);
- /* increase NAT-T keepalive interval a bit to save battery power */
- lib->settings->set_time(lib->settings,
- "charon.keep_alive", ANDROID_KEEPALIVE_INTERVAL);
lib->settings->set_bool(lib->settings,
"charon.initiator_only", TRUE);
lib->settings->set_bool(lib->settings,