summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-11-17 14:42:14 +0100
committerDavid Lönnhager <david.l@mullvad.net>2020-11-19 13:10:18 +0100
commit5f2a48a1c14d54b252046dfd6b6038e84b3621c0 (patch)
tree1b37b00d5d2ec8f43d69d1102062a6ba316d1d7e
parent154936f65591ef6bbfc6b44a24177ab815beb80d (diff)
downloadmullvadvpn-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.rs14
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(())
}