summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--talpid-core/src/dns/linux/systemd_resolved.rs28
1 files changed, 19 insertions, 9 deletions
diff --git a/talpid-core/src/dns/linux/systemd_resolved.rs b/talpid-core/src/dns/linux/systemd_resolved.rs
index ee0ad7e793..1c0d2ae0fb 100644
--- a/talpid-core/src/dns/linux/systemd_resolved.rs
+++ b/talpid-core/src/dns/linux/systemd_resolved.rs
@@ -51,7 +51,9 @@ pub enum Error {
lazy_static! {
static ref RESOLVED_STUB_PATHS: Vec<&'static Path> = vec![
Path::new("/run/systemd/resolve/stub-resolv.conf"),
+ Path::new("/run/systemd/resolve/resolv.conf"),
Path::new("/var/run/systemd/resolve/stub-resolv.conf"),
+ Path::new("/var/run/systemd/resolve/resolv.conf"),
];
}
@@ -77,17 +79,25 @@ pub struct SystemdResolved {
impl SystemdResolved {
pub fn new() -> Result<Self> {
- let dbus_connection =
- dbus::Connection::get_private(BusType::System).map_err(Error::ConnectDBus)?;
- let systemd_resolved = SystemdResolved {
- dbus_connection,
- interface_link: None,
- };
+ let result = (|| {
+ let dbus_connection =
+ dbus::Connection::get_private(BusType::System).map_err(Error::ConnectDBus)?;
+ let systemd_resolved = SystemdResolved {
+ dbus_connection,
+ interface_link: None,
+ };
- systemd_resolved.ensure_resolved_exists()?;
- Self::ensure_resolv_conf_is_resolved_symlink()?;
+ systemd_resolved.ensure_resolved_exists()?;
+ Self::ensure_resolv_conf_is_resolved_symlink()?;
+ Ok(systemd_resolved)
+ })();
- Ok(systemd_resolved)
+ if let Err(err) = &result {
+ log::error!("systemd-resolved is not being used because: {}", err);
+ }
+
+
+ result
}
fn ensure_resolved_exists(&self) -> Result<()> {