From d8c1632631344770991f8b48b5efc1812893e6e3 Mon Sep 17 00:00:00 2001 From: Mikhail Date: Fri, 15 May 2026 12:43:26 +0300 Subject: [PATCH] Reconnect Android VPN WebSocket after send rejection --- clients/android/app/build.gradle | 4 ++-- .../main/java/su/cin/rapvpn/VpnPacketWebSocketRelay.java | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/clients/android/app/build.gradle b/clients/android/app/build.gradle index 5137312..3f2e070 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 192 - versionName "0.2.192" + versionCode 193 + versionName "0.2.193" 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/VpnPacketWebSocketRelay.java b/clients/android/app/src/main/java/su/cin/rapvpn/VpnPacketWebSocketRelay.java index e8aca4d..799a1c5 100644 --- a/clients/android/app/src/main/java/su/cin/rapvpn/VpnPacketWebSocketRelay.java +++ b/clients/android/app/src/main/java/su/cin/rapvpn/VpnPacketWebSocketRelay.java @@ -139,6 +139,12 @@ final class VpnPacketWebSocketRelay { boolean queued = socket.send(ByteString.of(payload)); if (!queued) { lastError = "websocket send queue rejected batch"; + synchronized (lock) { + if (socket == webSocket) { + reconnectAfterMs = 0; + closeLocked(); + } + } } return queued; }