From: Tobias Brunner Date: Tue, 19 Jun 2018 09:15:16 +0000 (+0200) Subject: android: Log retries to the same log file X-Git-Tag: 5.7.0dr5~20^2~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb3772ec951e9439293a9c04b4afb86478288346;p=thirdparty%2Fstrongswan.git android: Log retries to the same log file It's cleared when a new connection is started or there is a manual retry. --- 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 7910f7d521..8d9284fcc5 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 @@ -79,6 +79,7 @@ public class CharonVpnService extends VpnService implements Runnable, VpnStateSe public static final String DISCONNECT_ACTION = "org.strongswan.android.CharonVpnService.DISCONNECT"; private static final String NOTIFICATION_CHANNEL = "org.strongswan.android.CharonVpnService.VPN_STATE_NOTIFICATION"; public static final String LOG_FILE = "charon.log"; + public static final String KEY_IS_RETRY = "retry"; public static final int VPN_STATE_NOTIFICATION_ID = 1; private String mLogFile; @@ -137,6 +138,7 @@ public class CharonVpnService extends VpnService implements Runnable, VpnStateSe if (intent != null) { VpnProfile profile = null; + boolean retry = false; if (VPN_SERVICE_ACTION.equals(intent.getAction())) { /* triggered when Always-on VPN is activated */ @@ -159,12 +161,18 @@ public class CharonVpnService extends VpnService implements Runnable, VpnStateSe String password = bundle.getString(VpnProfileDataSource.KEY_PASSWORD); profile.setPassword(password); + retry = bundle.getBoolean(CharonVpnService.KEY_IS_RETRY, false); + SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this); pref.edit().putString(Constants.PREF_MRU_VPN_PROFILE, profile.getUUID().toString()) .apply(); } } } + if (profile != null && !retry) + { /* delete the log file if this is not an automatic retry */ + deleteFile(LOG_FILE); + } setNextProfile(profile); } return START_NOT_STICKY; diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/VpnStateService.java b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/VpnStateService.java index 63b54cd2b9..9982d56a42 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/logic/VpnStateService.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/logic/VpnStateService.java @@ -295,6 +295,10 @@ public class VpnStateService extends Service /* reset if this is a manual retry or a new connection */ mTimeoutProvider.reset(); } + else + { /* mark this as an automatic retry */ + profileInfo.putBoolean(CharonVpnService.KEY_IS_RETRY, true); + } intent.putExtras(profileInfo); context.startService(intent); } 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 06c5cada47..cb9dfa8075 100644 --- a/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c +++ b/src/frontends/android/app/src/main/jni/libandroidbridge/charonservice.c @@ -469,7 +469,7 @@ static void set_options(char *logfile) lib->settings->set_str(lib->settings, "charon.filelog.%s.time_format", "%b %e %T", logfile); lib->settings->set_bool(lib->settings, - "charon.filelog.%s.append", FALSE, logfile); + "charon.filelog.%s.append", TRUE, logfile); lib->settings->set_bool(lib->settings, "charon.filelog.%s.flush_line", TRUE, logfile); lib->settings->set_int(lib->settings,