diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2017-12-20 14:31:43 +0100 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2017-12-20 15:19:24 +0100 |
| commit | 256ad3cf7a591891004383e1ea7f61fbdcd8547e (patch) | |
| tree | 6b3ae7b0a251573a272f54e56274982d71ae6e5a | |
| parent | 0da2c81e0e6708a36bd288ba1cfc4455803bf548 (diff) | |
| download | mullvadvpn-256ad3cf7a591891004383e1ea7f61fbdcd8547e.tar.xz mullvadvpn-256ad3cf7a591891004383e1ea7f61fbdcd8547e.zip | |
Allow LAN multicast
| -rw-r--r-- | talpid-core/src/firewall/macos/mod.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/talpid-core/src/firewall/macos/mod.rs b/talpid-core/src/firewall/macos/mod.rs index f9f45338fa..a763f1c4d8 100644 --- a/talpid-core/src/firewall/macos/mod.rs +++ b/talpid-core/src/firewall/macos/mod.rs @@ -188,17 +188,24 @@ impl PacketFilter { Ipv4Network::new(Ipv4Addr::new(172, 16, 0, 0), 12).unwrap(), Ipv4Network::new(Ipv4Addr::new(192, 168, 0, 0), 16).unwrap(), ]; + let multicast_net = Ipv4Network::new(Ipv4Addr::new(224, 0, 0, 0), 24).unwrap(); let mut rules = vec![]; for net in &private_nets { - let rule = pfctl::FilterRuleBuilder::default() + let mut rule_builder = pfctl::FilterRuleBuilder::default(); + rule_builder .action(pfctl::FilterRuleAction::Pass) .keep_state(pfctl::StatePolicy::Keep) .quick(true) .af(pfctl::AddrFamily::Ipv4) - .from(pfctl::Ip::from(IpNetwork::V4(*net))) + .from(pfctl::Ip::from(IpNetwork::V4(*net))); + let allow_net = rule_builder .to(pfctl::Ip::from(IpNetwork::V4(*net))) .build()?; - rules.push(rule); + let allow_multicast = rule_builder + .to(pfctl::Ip::from(IpNetwork::V4(multicast_net))) + .build()?; + rules.push(allow_net); + rules.push(allow_multicast); } Ok(rules) } |
