diff options
| author | David Lönnhager <david.l@mullvad.net> | 2021-05-14 14:22:59 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2021-05-14 14:22:59 +0200 |
| commit | 052d6cfe31191da136fdbab748284cabe5923491 (patch) | |
| tree | 3f9140d6642a03119c7c230855705d00b7e3303a /mullvad-daemon/src/management_interface.rs | |
| parent | 7c85e015e986d9165953fc3f34e38274b755626a (diff) | |
| parent | 7898eb15f005a63e75a949d3d957377377ddc6bb (diff) | |
| download | mullvadvpn-052d6cfe31191da136fdbab748284cabe5923491.tar.xz mullvadvpn-052d6cfe31191da136fdbab748284cabe5923491.zip | |
Merge branch 'adblocking-dns'
Diffstat (limited to 'mullvad-daemon/src/management_interface.rs')
| -rw-r--r-- | mullvad-daemon/src/management_interface.rs | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/mullvad-daemon/src/management_interface.rs b/mullvad-daemon/src/management_interface.rs index a9b07a1214..2e1d8cbc82 100644 --- a/mullvad-daemon/src/management_interface.rs +++ b/mullvad-daemon/src/management_interface.rs @@ -361,31 +361,13 @@ impl ManagementService for ManagementServiceImpl { #[cfg(not(target_os = "android"))] async fn set_dns_options(&self, request: Request<types::DnsOptions>) -> ServiceResult<()> { - let options = request.into_inner(); - log::debug!( - "set_dns_options({}, {:?})", - options.custom, - options.addresses - ); - - let mut servers_ip = vec![]; - for server in options.addresses.into_iter() { - if let Ok(addr) = server.parse() { - servers_ip.push(addr); - } else { - let err_msg = format!("failed to parse IP address: {}", server); - return Err(Status::invalid_argument(err_msg)); - } - } + let options = DnsOptions::try_from(request.into_inner()).map_err(|error| match error { + types::FromProtobufTypeError::InvalidArgument(error) => Status::invalid_argument(error), + })?; + log::debug!("set_dns_options({:?})", options); let (tx, rx) = oneshot::channel(); - self.send_command_to_daemon(DaemonCommand::SetDnsOptions( - tx, - DnsOptions { - custom: options.custom, - addresses: servers_ip, - }, - ))?; + self.send_command_to_daemon(DaemonCommand::SetDnsOptions(tx, options))?; self.wait_for_result(rx) .await? .map(Response::new) |
