diff options
| author | David Lönnhager <david.l@mullvad.net> | 2020-10-28 12:11:16 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2020-10-28 13:04:16 +0100 |
| commit | ee4566172407401e932ee76bd91b69120461585d (patch) | |
| tree | 87dea155a1b7e7f2b84e429766c41c1170928885 | |
| parent | 2f280fb5eb76d04c86c7172de6bace7a23488218 (diff) | |
| download | mullvadvpn-ee4566172407401e932ee76bd91b69120461585d.tar.xz mullvadvpn-ee4566172407401e932ee76bd91b69120461585d.zip | |
Remove duplicated is_local_address
| -rw-r--r-- | talpid-core/src/firewall/linux.rs | 15 | ||||
| -rw-r--r-- | talpid-core/src/firewall/macos.rs | 15 | ||||
| -rw-r--r-- | talpid-core/src/firewall/mod.rs | 9 |
3 files changed, 11 insertions, 28 deletions
diff --git a/talpid-core/src/firewall/linux.rs b/talpid-core/src/firewall/linux.rs index f7efcb6fba..5ab02db6ef 100644 --- a/talpid-core/src/firewall/linux.rs +++ b/talpid-core/src/firewall/linux.rs @@ -565,7 +565,7 @@ impl<'a> PolicyBatch<'a> { ) -> Result<()> { let (local_resolvers, remote_resolvers): (Vec<IpAddr>, Vec<IpAddr>) = dns_servers.iter().partition(|server| { - is_local_address(server) + super::is_local_address(server) && *server != &tunnel.ipv4_gateway && !tunnel .ipv6_gateway @@ -854,16 +854,3 @@ fn add_verdict(rule: &mut Rule<'_>, verdict: &expr::Verdict) { } rule.add_expr(verdict); } - -fn is_local_address(address: &IpAddr) -> bool { - let address = address.clone(); - for net in (&*super::ALLOWED_LAN_NETS) - .iter() - .chain(&*super::LOOPBACK_NETS) - { - if net.contains(address) { - return true; - } - } - false -} diff --git a/talpid-core/src/firewall/macos.rs b/talpid-core/src/firewall/macos.rs index 7fed307244..dfdc1e31fc 100644 --- a/talpid-core/src/firewall/macos.rs +++ b/talpid-core/src/firewall/macos.rs @@ -155,7 +155,7 @@ impl Firewall { ) -> Result<Vec<pfctl::FilterRule>> { let mut rules = Vec::with_capacity(4); - let is_local = is_local_address(&server) + let is_local = super::is_local_address(&server) && server != tunnel.ipv4_gateway && !tunnel .ipv6_gateway @@ -528,16 +528,3 @@ enum RuleLogging { Drop, All, } - -fn is_local_address(address: &IpAddr) -> bool { - let address = address.clone(); - for net in (&*super::ALLOWED_LAN_NETS) - .iter() - .chain(&*super::LOOPBACK_NETS) - { - if net.contains(address) { - return true; - } - } - false -} diff --git a/talpid-core/src/firewall/mod.rs b/talpid-core/src/firewall/mod.rs index 89d06410d3..b467f37d98 100644 --- a/talpid-core/src/firewall/mod.rs +++ b/talpid-core/src/firewall/mod.rs @@ -82,6 +82,15 @@ const DHCPV6_SERVER_PORT: u16 = 547; const DHCPV6_CLIENT_PORT: u16 = 546; +#[cfg(all(unix, not(target_os = "android")))] +fn is_local_address(address: &IpAddr) -> bool { + let address = address.clone(); + (&*ALLOWED_LAN_NETS) + .iter() + .chain(&*LOOPBACK_NETS) + .any(|net| net.contains(address)) +} + /// A enum that describes network security strategy /// /// # Firewall block/allow specification. |
