summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-10-28 12:11:16 +0100
committerDavid Lönnhager <david.l@mullvad.net>2020-10-28 13:04:16 +0100
commitee4566172407401e932ee76bd91b69120461585d (patch)
tree87dea155a1b7e7f2b84e429766c41c1170928885
parent2f280fb5eb76d04c86c7172de6bace7a23488218 (diff)
downloadmullvadvpn-ee4566172407401e932ee76bd91b69120461585d.tar.xz
mullvadvpn-ee4566172407401e932ee76bd91b69120461585d.zip
Remove duplicated is_local_address
-rw-r--r--talpid-core/src/firewall/linux.rs15
-rw-r--r--talpid-core/src/firewall/macos.rs15
-rw-r--r--talpid-core/src/firewall/mod.rs9
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.