summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-11-23 10:31:59 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-11-23 10:31:59 -0300
commit998c5bca3317cad11b6cc33bfec8019bd749ab04 (patch)
tree394f5c8d55585c5aa8a6263ca8db5a2809e09940
parent1e514b22e961f8f29941fdd8188e0874cc9b8e11 (diff)
parente6864e708a8701309b218ae76d67a8a8bad7a8c5 (diff)
downloadmullvadvpn-998c5bca3317cad11b6cc33bfec8019bd749ab04.tar.xz
mullvadvpn-998c5bca3317cad11b6cc33bfec8019bd749ab04.zip
Merge branch 'fix-incorrect-blocked-message-without-vpn-permission'
-rw-r--r--CHANGELOG.md1
-rw-r--r--android/src/main/kotlin/net/mullvad/talpid/TalpidVpnService.kt4
-rw-r--r--talpid-core/src/tunnel/tun_provider/android/mod.rs8
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),