aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--azalea-protocol/src/resolve.rs13
1 files changed, 11 insertions, 2 deletions
diff --git a/azalea-protocol/src/resolve.rs b/azalea-protocol/src/resolve.rs
index 92939c8c..cd76ea43 100644
--- a/azalea-protocol/src/resolve.rs
+++ b/azalea-protocol/src/resolve.rs
@@ -6,7 +6,10 @@ use std::{
};
pub use hickory_resolver::ResolveError;
-use hickory_resolver::{Name, TokioResolver, name_server::TokioConnectionProvider};
+use hickory_resolver::{
+ Name, TokioResolver, config::ResolverConfig, name_server::TokioConnectionProvider,
+};
+use tracing::warn;
use crate::address::ServerAddr;
@@ -16,7 +19,13 @@ pub type ResolverError = ResolveError;
static RESOLVER: LazyLock<TokioResolver> = LazyLock::new(|| {
TokioResolver::builder(TokioConnectionProvider::default())
- .unwrap()
+ .unwrap_or_else(|_| {
+ warn!("System DNS resolver unavailable; falling back to Google DNS.");
+ TokioResolver::builder_with_config(
+ ResolverConfig::google(),
+ TokioConnectionProvider::default(),
+ )
+ })
.build()
});