android: Use configured NAT-T keepalive interval

This commit is contained in:
Tobias Brunner 2017-06-28 18:34:40 +02:00
parent a28302317f
commit db599d6b28
2 changed files with 6 additions and 3 deletions

View File

@ -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());

View File

@ -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,