From 3feffc9f48c3b6b9ac595ef7dbe12881b0f37bb3 Mon Sep 17 00:00:00 2001 From: Jamil Date: Wed, 12 Feb 2025 12:51:05 -0800 Subject: [PATCH] fix(android): Call disconnect in onDisconnect (#8110) We need to call `disconnect()` in `onDisconnect` to free the memory associated with the connlib session. Related: https://github.com/firezone/firezone/pull/8104 --- .../main/java/dev/firezone/android/tunnel/TunnelService.kt | 5 +++++ website/src/components/Changelog/Android.tsx | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/kotlin/android/app/src/main/java/dev/firezone/android/tunnel/TunnelService.kt b/kotlin/android/app/src/main/java/dev/firezone/android/tunnel/TunnelService.kt index 6c7e156f1..0b87dc4a3 100644 --- a/kotlin/android/app/src/main/java/dev/firezone/android/tunnel/TunnelService.kt +++ b/kotlin/android/app/src/main/java/dev/firezone/android/tunnel/TunnelService.kt @@ -143,6 +143,11 @@ class TunnelService : VpnService() { repo.clearToken() repo.clearActorName() + // Free the connlib session + connlibSessionPtr?.let { + ConnlibSession.disconnect(it) + } + shutdown() if (startedByUser) { updateStatusNotification(TunnelStatusNotification.SignedOut) diff --git a/website/src/components/Changelog/Android.tsx b/website/src/components/Changelog/Android.tsx index b15c32f60..22bc3bd20 100644 --- a/website/src/components/Changelog/Android.tsx +++ b/website/src/components/Changelog/Android.tsx @@ -19,7 +19,12 @@ export default function Android() { return ( {/* When you cut a release, remove any solved issues from the "known issues" lists over in `client-apps`. This must not be done when the issue's PR merges. */} - + + + Fixes a minor memory leak that could occur after being disconnected + unexpectedly. + + Substantially reduces memory usage when sending large amounts of data.