diff options
| author | David Lönnhager <david.l@mullvad.net> | 2020-11-17 14:42:14 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2020-11-19 13:10:18 +0100 |
| commit | 5f2a48a1c14d54b252046dfd6b6038e84b3621c0 (patch) | |
| tree | 1b37b00d5d2ec8f43d69d1102062a6ba316d1d7e | |
| parent | 154936f65591ef6bbfc6b44a24177ab815beb80d (diff) | |
| download | mullvadvpn-5f2a48a1c14d54b252046dfd6b6038e84b3621c0.tar.xz mullvadvpn-5f2a48a1c14d54b252046dfd6b6038e84b3621c0.zip | |
Route custom DNS traffic through the physical interface with mullvad-exclude
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/connected_state.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/talpid-core/src/tunnel_state_machine/connected_state.rs b/talpid-core/src/tunnel_state_machine/connected_state.rs index 9e2d00f34d..f0bd874530 100644 --- a/talpid-core/src/tunnel_state_machine/connected_state.rs +++ b/talpid-core/src/tunnel_state_machine/connected_state.rs @@ -125,10 +125,16 @@ impl ConnectedState { .map_err(BoxedError::new)?; #[cfg(target_os = "linux")] - shared_values - .route_manager - .route_exclusions_dns(&self.metadata.interface, &dns_ips) - .map_err(BoxedError::new)?; + { + let mut dns_routes = vec![IpAddr::V4(self.metadata.ipv4_gateway)]; + if let Some(gateway) = self.metadata.ipv6_gateway { + dns_routes.push(IpAddr::V6(gateway)); + } + shared_values + .route_manager + .route_exclusions_dns(&self.metadata.interface, &dns_routes) + .map_err(BoxedError::new)?; + } Ok(()) } |
