summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-12-03 22:15:41 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-12-04 13:18:17 +0000
commitfba28942ab14aa5ed927adce0e33e6b6087a1e95 (patch)
tree4d7b572d4901a80795e4f63f80898922b3276c07
parentf12176528d3bd18fe6418ccb56758db1788f031b (diff)
downloadmullvadvpn-fba28942ab14aa5ed927adce0e33e6b6087a1e95.tar.xz
mullvadvpn-fba28942ab14aa5ed927adce0e33e6b6087a1e95.zip
Refactor `prepare_tun_config` to borrow the config
-rw-r--r--talpid-core/src/tunnel/tun_provider/android/mod.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/talpid-core/src/tunnel/tun_provider/android/mod.rs b/talpid-core/src/tunnel/tun_provider/android/mod.rs
index c744ca96fa..7aa54d8d03 100644
--- a/talpid-core/src/tunnel/tun_provider/android/mod.rs
+++ b/talpid-core/src/tunnel/tun_provider/android/mod.rs
@@ -170,10 +170,11 @@ impl AndroidTunProvider {
}
}
- fn get_tun_fd(&mut self, config: TunConfig) -> Result<RawFd, Error> {
+ fn get_tun_fd(&mut self, mut config: TunConfig) -> Result<RawFd, Error> {
+ self.prepare_tun_config(&mut config);
+
let env = self.env()?;
- let actual_config = self.prepare_tun_config(config);
- let java_config = actual_config.into_java(&env);
+ let java_config = config.into_java(&env);
let result = self.call_method(
"getTun",
@@ -191,8 +192,11 @@ impl AndroidTunProvider {
}
fn recreate_tun_if_open(&mut self) -> Result<(), Error> {
+ let mut actual_config = self.last_tun_config.clone();
+
+ self.prepare_tun_config(&mut actual_config);
+
let env = self.env()?;
- let actual_config = self.prepare_tun_config(self.last_tun_config.clone());
let java_config = actual_config.into_java(&env);
let result = self.call_method(
@@ -208,7 +212,7 @@ impl AndroidTunProvider {
}
}
- fn prepare_tun_config(&self, config: TunConfig) -> TunConfig {
+ fn prepare_tun_config(&self, config: &mut TunConfig) {
if self.allow_lan {
let (required_ipv4_routes, required_ipv6_routes) = config
.required_routes
@@ -245,9 +249,7 @@ impl AndroidTunProvider {
})
.collect();
- TunConfig { routes, ..config }
- } else {
- config
+ config.routes = routes;
}
}