diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-29 10:21:36 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-29 11:46:18 +0000 |
| commit | e6422531efade7a1d923d25fadf36fd0a43f9c31 (patch) | |
| tree | c3db3c3d41b235bde006a5ba69bbe2bcd5821714 | |
| parent | f2788817e0729c49da3a9192815b88b2a69affac (diff) | |
| download | mullvadvpn-e6422531efade7a1d923d25fadf36fd0a43f9c31.tar.xz mullvadvpn-e6422531efade7a1d923d25fadf36fd0a43f9c31.zip | |
Include DNS server addresses in `TunConfig`
| -rw-r--r-- | talpid-core/src/tunnel/tun_provider/mod.rs | 3 | ||||
| -rw-r--r-- | talpid-core/src/tunnel/wireguard/wireguard_go.rs | 6 |
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, } } |
