From 497d98ad7bfc75e8ab8ebfa885374d2b085ba635 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Tue, 30 Nov 2021 11:25:19 +0100 Subject: [PATCH 1/2] use anyhow-result for get_resolver --- src/provider.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/provider.rs b/src/provider.rs index 22def35956..7ca337b88b 100644 --- a/src/provider.rs +++ b/src/provider.rs @@ -5,8 +5,9 @@ mod data; use crate::config::Config; use crate::context::Context; use crate::provider::data::{PROVIDER_DATA, PROVIDER_IDS, PROVIDER_UPDATED}; +use anyhow::Result; use async_std_resolver::{ - config, resolver, resolver_from_system_conf, AsyncStdResolver, ResolveError, + config, resolver, resolver_from_system_conf, AsyncStdResolver, }; use chrono::{NaiveDateTime, NaiveTime}; @@ -89,7 +90,7 @@ pub struct Provider { /// We first try resolver_from_system_conf() which reads the system's resolver from `/etc/resolv.conf`. /// This does not work at least on some Androids, therefore we use use ResolverConfig::default() /// which default eg. to google's 8.8.8.8 or 8.8.4.4 as a fallback. -async fn get_resolver() -> Result { +async fn get_resolver() -> Result { if let Ok(resolver) = resolver_from_system_conf().await { return Ok(resolver); } @@ -98,6 +99,7 @@ async fn get_resolver() -> Result { config::ResolverOpts::default(), ) .await + .map_err(|err| err.into()) } /// Returns provider for the given domain. @@ -195,7 +197,6 @@ mod tests { use super::*; use crate::dc_tools::time; use crate::test_utils::TestContext; - use anyhow::Result; use chrono::NaiveDate; #[test] From 727099111734cbd72b8d824944650f69a489ef00 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Tue, 30 Nov 2021 11:37:45 +0100 Subject: [PATCH 2/2] prefer '?' over map_err() --- src/provider.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/provider.rs b/src/provider.rs index 7ca337b88b..13dafd1bd0 100644 --- a/src/provider.rs +++ b/src/provider.rs @@ -6,9 +6,7 @@ use crate::config::Config; use crate::context::Context; use crate::provider::data::{PROVIDER_DATA, PROVIDER_IDS, PROVIDER_UPDATED}; use anyhow::Result; -use async_std_resolver::{ - config, resolver, resolver_from_system_conf, AsyncStdResolver, -}; +use async_std_resolver::{config, resolver, resolver_from_system_conf, AsyncStdResolver}; use chrono::{NaiveDateTime, NaiveTime}; #[derive(Debug, Display, Copy, Clone, PartialEq, FromPrimitive, ToPrimitive)] @@ -94,12 +92,12 @@ async fn get_resolver() -> Result { if let Ok(resolver) = resolver_from_system_conf().await { return Ok(resolver); } - resolver( + let resolver = resolver( config::ResolverConfig::default(), config::ResolverOpts::default(), ) - .await - .map_err(|err| err.into()) + .await?; + Ok(resolver) } /// Returns provider for the given domain.