summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-29 10:21:36 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-29 11:46:18 +0000
commite6422531efade7a1d923d25fadf36fd0a43f9c31 (patch)
treec3db3c3d41b235bde006a5ba69bbe2bcd5821714
parentf2788817e0729c49da3a9192815b88b2a69affac (diff)
downloadmullvadvpn-e6422531efade7a1d923d25fadf36fd0a43f9c31.tar.xz
mullvadvpn-e6422531efade7a1d923d25fadf36fd0a43f9c31.zip
Include DNS server addresses in `TunConfig`
-rw-r--r--talpid-core/src/tunnel/tun_provider/mod.rs3
-rw-r--r--talpid-core/src/tunnel/wireguard/wireguard_go.rs6
2 files changed, 8 insertions, 1 deletions
diff --git a/talpid-core/src/tunnel/tun_provider/mod.rs b/talpid-core/src/tunnel/tun_provider/mod.rs
index 4bd887f269..b11f3d6430 100644
--- a/talpid-core/src/tunnel/tun_provider/mod.rs
+++ b/talpid-core/src/tunnel/tun_provider/mod.rs
@@ -51,4 +51,7 @@ pub trait TunProvider: Send + 'static {
pub struct TunConfig {
/// IP addresses for the tunnel interface.
pub addresses: Vec<IpAddr>,
+
+ /// IP addresses for the DNS servers to use.
+ pub dns_servers: Vec<IpAddr>,
}
diff --git a/talpid-core/src/tunnel/wireguard/wireguard_go.rs b/talpid-core/src/tunnel/wireguard/wireguard_go.rs
index a53b0afa44..c5598e0a80 100644
--- a/talpid-core/src/tunnel/wireguard/wireguard_go.rs
+++ b/talpid-core/src/tunnel/wireguard/wireguard_go.rs
@@ -1,6 +1,6 @@
use super::{Config, Error, Result, Tunnel};
use crate::tunnel::tun_provider::{Tun, TunConfig, TunProvider};
-use std::{ffi::CString, fs, os::unix::io::AsRawFd, path::Path};
+use std::{ffi::CString, fs, net::IpAddr, os::unix::io::AsRawFd, path::Path};
pub struct WgGoTunnel {
interface_name: String,
@@ -52,8 +52,12 @@ impl WgGoTunnel {
}
fn create_tunnel_config(config: &Config) -> TunConfig {
+ let mut dns_servers = vec![IpAddr::V4(config.ipv4_gateway)];
+ dns_servers.extend(config.ipv6_gateway.clone().map(IpAddr::V6));
+
TunConfig {
addresses: config.tunnel.addresses.clone(),
+ dns_servers,
}
}