diff options
| -rw-r--r-- | azalea-protocol/src/resolve.rs | 13 |
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() }); |
