diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/frontends/android/app/src/main/java/org/strongswan/android/logic/CharonVpnService.java | 1 | ||||
-rw-r--r-- | src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c | 8 |
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, |