diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-11-23 10:31:59 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-11-23 10:31:59 -0300 |
| commit | 998c5bca3317cad11b6cc33bfec8019bd749ab04 (patch) | |
| tree | 394f5c8d55585c5aa8a6263ca8db5a2809e09940 | |
| parent | 1e514b22e961f8f29941fdd8188e0874cc9b8e11 (diff) | |
| parent | e6864e708a8701309b218ae76d67a8a8bad7a8c5 (diff) | |
| download | mullvadvpn-998c5bca3317cad11b6cc33bfec8019bd749ab04.tar.xz mullvadvpn-998c5bca3317cad11b6cc33bfec8019bd749ab04.zip | |
Merge branch 'fix-incorrect-blocked-message-without-vpn-permission'
| -rw-r--r-- | CHANGELOG.md | 1 | ||||
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt | 4 | ||||
| -rw-r--r-- | talpid-core/src/tunnel/tun_provider/android/mod.rs | 8 |
3 files changed, 9 insertions, 4 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 149addb96e..6a60774a3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -73,6 +73,7 @@ Line wrap the file at 100 chars. Th - Fix apps not being excluded from the tunnel sometimes if auto-connect was enabled. - Fix crash that happened sometimes when closing the app or when requesting from the notification or the quick-settings tile for the app to connect or disconnect. +- Fix app showing that it was blocking connections when it wasn't when VPN permission was denied. #### Windows - Fix log output encoding for Windows modules. diff --git a/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt b/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt index 93c7f32c36..a0dfd029f2 100644 --- a/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt +++ b/android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt @@ -55,11 +55,13 @@ open class TalpidVpnService : VpnService() { } } - fun createTunIfClosed() { + fun createTunIfClosed(): Boolean { synchronized(this) { if (activeTunDevice == null) { activeTunDevice = createTun(currentTunConfig) } + + return activeTunDevice?.let { tunFd -> tunFd > 0 } ?: false } } diff --git a/talpid-core/src/tunnel/tun_provider/android/mod.rs b/talpid-core/src/tunnel/tun_provider/android/mod.rs index e4e8f4fbac..c744ca96fa 100644 --- a/talpid-core/src/tunnel/tun_provider/android/mod.rs +++ b/talpid-core/src/tunnel/tun_provider/android/mod.rs @@ -7,6 +7,7 @@ use jnix::{ jni::{ objects::{GlobalRef, JValue}, signature::{JavaType, Primitive}, + sys::JNI_FALSE, JavaVM, }, IntoJava, JnixEnv, @@ -133,13 +134,14 @@ impl AndroidTunProvider { pub fn create_tun_if_closed(&mut self) -> Result<(), Error> { let result = self.call_method( "createTunIfClosed", - "()V", - JavaType::Primitive(Primitive::Void), + "()Z", + JavaType::Primitive(Primitive::Boolean), &[], )?; match result { - JValue::Void => Ok(()), + JValue::Bool(JNI_FALSE) => Err(Error::TunnelDeviceError), + JValue::Bool(_) => Ok(()), value => Err(Error::InvalidMethodResult( "createTunIfClosed", format!("{:?}", value), |
