summaryrefslogtreecommitdiffhomepage
path: root/talpid-core/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-10-14 11:54:39 +0200
committerDavid Lönnhager <david.l@mullvad.net>2020-10-22 09:33:58 +0200
commit14c46291a04797be58a59db556d96cc1330944ea (patch)
tree4c5d3fc36c0f7f09283f948fb451af4e5501f2e3 /talpid-core/src
parent6acc15839065118654334bcec763515288deab50 (diff)
downloadmullvadvpn-14c46291a04797be58a59db556d96cc1330944ea.tar.xz
mullvadvpn-14c46291a04797be58a59db556d96cc1330944ea.zip
Add custom DNS setting
Diffstat (limited to 'talpid-core/src')
-rw-r--r--talpid-core/src/tunnel_state_machine/mod.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/talpid-core/src/tunnel_state_machine/mod.rs b/talpid-core/src/tunnel_state_machine/mod.rs
index 37a27ae58f..1793093580 100644
--- a/talpid-core/src/tunnel_state_machine/mod.rs
+++ b/talpid-core/src/tunnel_state_machine/mod.rs
@@ -27,6 +27,7 @@ use futures::{
use std::{
collections::HashSet,
io,
+ net::IpAddr,
path::{Path, PathBuf},
sync::{mpsc as sync_mpsc, Arc},
};
@@ -74,6 +75,7 @@ pub enum Error {
pub async fn spawn(
allow_lan: bool,
block_when_disconnected: bool,
+ custom_dns: Option<Vec<IpAddr>>,
tunnel_parameters_generator: impl TunnelParametersGenerator,
log_dir: Option<PathBuf>,
resource_dir: PathBuf,
@@ -109,6 +111,7 @@ pub async fn spawn(
allow_lan,
block_when_disconnected,
is_offline,
+ custom_dns,
tunnel_parameters_generator,
tun_provider,
log_dir,
@@ -184,6 +187,7 @@ impl TunnelStateMachine {
allow_lan: bool,
block_when_disconnected: bool,
is_offline: bool,
+ custom_dns: Option<Vec<IpAddr>>,
tunnel_parameters_generator: impl TunnelParametersGenerator,
tun_provider: TunProvider,
log_dir: Option<PathBuf>,
@@ -208,6 +212,7 @@ impl TunnelStateMachine {
allow_lan,
block_when_disconnected,
is_offline,
+ custom_dns,
tunnel_parameters_generator: Box::new(tunnel_parameters_generator),
tun_provider,
log_dir,
@@ -277,6 +282,8 @@ struct SharedTunnelStateValues {
block_when_disconnected: bool,
/// True when the computer is known to be offline.
is_offline: bool,
+ /// Custom DNS servers to use.
+ custom_dns: Option<Vec<IpAddr>>,
/// The generator of new `TunnelParameter`s
tunnel_parameters_generator: Box<dyn TunnelParametersGenerator>,
/// The provider of tunnel devices.