diff options
| author | David Lönnhager <david.l@mullvad.net> | 2025-05-13 19:00:48 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2025-05-13 19:00:48 +0200 |
| commit | a1d00bc6a1a4a2a1aadd3295e6f9942be0a79f13 (patch) | |
| tree | 65b38ee6660a62765210ae57dad982ebc7cc72c7 | |
| parent | 144e9a2fba374bd028e7c4f50560df8af9805f63 (diff) | |
| download | mullvadvpn-test-dns-stuff.tar.xz mullvadvpn-test-dns-stuff.zip | |
fixup! test: flush nat/redirect rulestest-dns-stuff
| -rw-r--r-- | talpid-core/src/firewall/macos.rs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/talpid-core/src/firewall/macos.rs b/talpid-core/src/firewall/macos.rs index 15d9330c6f..aeae38a073 100644 --- a/talpid-core/src/firewall/macos.rs +++ b/talpid-core/src/firewall/macos.rs @@ -240,13 +240,18 @@ impl Firewall { anchor_change.set_filter_rules(new_filter_rules); if *NAT_WORKAROUND { anchor_change.set_nat_rules(self.get_nat_rules(policy)?); + } else { + // Clear NAT rules that some previous version may have set. + // Removing anchors alone is insufficient here, as it doesn't + // affect active rules. + anchor_change.set_nat_rules(vec![]); } - self.pf.set_rules(ANCHOR_NAME, anchor_change)?; + // Clear redirect rules that some previous version may have set. + // Removing anchors alone is insufficient here, as it doesn't + // affect active rules. + anchor_change.set_redirect_rules(vec![]); - // FIXME: TEST: remove delete rules we don't care about - self.pf.flush_rules(ANCHOR_NAME, pfctl::RulesetKind::Nat)?; - self.pf - .flush_rules(ANCHOR_NAME, pfctl::RulesetKind::Redirect)?; + self.pf.set_rules(ANCHOR_NAME, anchor_change)?; Ok(()) } @@ -949,8 +954,6 @@ impl Firewall { } self.pf .try_add_anchor(ANCHOR_NAME, pfctl::AnchorKind::Filter)?; - self.pf - .try_add_anchor(ANCHOR_NAME, pfctl::AnchorKind::Redirect)?; Ok(()) } |
