From d2746cac68c0718cde4da2ff26caf402656ada65 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Fri, 15 May 2026 01:09:07 +0300 Subject: [PATCH] Speed up Android VPN stall recovery --- clients/android/app/build.gradle | 4 ++-- .../app/src/main/java/su/cin/rapvpn/RapVpnService.java | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/clients/android/app/build.gradle b/clients/android/app/build.gradle index 23d3402..7423100 100644 --- a/clients/android/app/build.gradle +++ b/clients/android/app/build.gradle @@ -30,8 +30,8 @@ android { applicationId "su.cin.rapvpn" minSdk 26 targetSdk 35 - versionCode 184 - versionName "0.2.184" + versionCode 185 + versionName "0.2.185" buildConfigField "String", "DEFAULT_BACKEND_URL", "\"${normalizeGradleString(defaultBackendUrl)}\"" buildConfigField "String", "DEFAULT_CLUSTER_ID", "\"${normalizeGradleString(defaultClusterId)}\"" buildConfigField "String", "DEFAULT_ORGANIZATION_ID", "\"${normalizeGradleString(defaultOrganizationId)}\"" diff --git a/clients/android/app/src/main/java/su/cin/rapvpn/RapVpnService.java b/clients/android/app/src/main/java/su/cin/rapvpn/RapVpnService.java index 67eec8b..4055ec3 100644 --- a/clients/android/app/src/main/java/su/cin/rapvpn/RapVpnService.java +++ b/clients/android/app/src/main/java/su/cin/rapvpn/RapVpnService.java @@ -77,9 +77,9 @@ public class RapVpnService extends VpnService { private static final int RUNTIME_DETAIL_INTERVAL_MS = 250; private static final int RUNTIME_STATUS_INTERVAL_MS = 500; private static final int RUNTIME_WATCHDOG_INTERVAL_MS = 2000; - private static final int RUNTIME_WATCHDOG_STALE_SYNACK_MS = 15000; - private static final int RUNTIME_WATCHDOG_RECOVERY_COOLDOWN_MS = 60000; - private static final int RUNTIME_WATCHDOG_HARD_RESTART_COOLDOWN_MS = 180000; + private static final int RUNTIME_WATCHDOG_STALE_SYNACK_MS = 7000; + private static final int RUNTIME_WATCHDOG_RECOVERY_COOLDOWN_MS = 20000; + private static final int RUNTIME_WATCHDOG_HARD_RESTART_COOLDOWN_MS = 60000; private static final int DIAGNOSTIC_WATCHDOG_INTERVAL_MS = 5000; private static final int DIAGNOSTIC_STALE_RESTART_MS = 30000; private static final int DIAGNOSTIC_RESTART_COOLDOWN_MS = 15000; @@ -1581,6 +1581,9 @@ public class RapVpnService extends VpnService { } private boolean shouldHardRestartRuntime(long now) { + if (!PACKET_WEBSOCKET_DATAPLANE_ENABLED) { + return now - lastRuntimeWatchdogHardRestartAt >= RUNTIME_WATCHDOG_HARD_RESTART_COOLDOWN_MS; + } if (runtimeWatchdogRecoveries.get() < 2) { return false; }