diff options
| author | Emīls <emils@mullvad.net> | 2020-11-06 17:43:23 +0000 |
|---|---|---|
| committer | Emīls <emils@mullvad.net> | 2020-11-13 15:07:37 +0000 |
| commit | cb2b89121dec0980fc1bc09c258fa46aa7e4fbaf (patch) | |
| tree | a965d87c74b42f94a70545e252ff463ff48e4e59 | |
| parent | 91d7ebf53c5c5f583b6f17812bb61e0e2bf8ad8c (diff) | |
| download | mullvadvpn-cb2b89121dec0980fc1bc09c258fa46aa7e4fbaf.tar.xz mullvadvpn-cb2b89121dec0980fc1bc09c258fa46aa7e4fbaf.zip | |
Allow obtaining a DBus connection from DNS monitor
| -rw-r--r-- | talpid-core/src/dns/linux/mod.rs | 8 | ||||
| -rw-r--r-- | talpid-core/src/dns/linux/network_manager.rs | 2 | ||||
| -rw-r--r-- | talpid-core/src/dns/linux/systemd_resolved.rs | 2 | ||||
| -rw-r--r-- | talpid-core/src/dns/mod.rs | 8 |
4 files changed, 18 insertions, 2 deletions
diff --git a/talpid-core/src/dns/linux/mod.rs b/talpid-core/src/dns/linux/mod.rs index 9eef807b71..132627da06 100644 --- a/talpid-core/src/dns/linux/mod.rs +++ b/talpid-core/src/dns/linux/mod.rs @@ -64,6 +64,14 @@ impl super::DnsMonitorT for DnsMonitor { } Ok(()) } + + fn dbus_connection(&self) -> Option<&dbus::ffidisp::Connection> { + match &self.inner { + Some(DnsMonitorHolder::NetworkManager(nm)) => Some(&nm.dbus_connection), + Some(DnsMonitorHolder::SystemdResolved(sdr)) => Some(&sdr.dbus_connection), + _ => None, + } + } } pub enum DnsMonitorHolder { diff --git a/talpid-core/src/dns/linux/network_manager.rs b/talpid-core/src/dns/linux/network_manager.rs index 9bfac830eb..1e170bed11 100644 --- a/talpid-core/src/dns/linux/network_manager.rs +++ b/talpid-core/src/dns/linux/network_manager.rs @@ -77,7 +77,7 @@ lazy_static! { } pub struct NetworkManager { - dbus_connection: Connection, + pub dbus_connection: Connection, device: Option<String>, settings_backup: Option<HashMap<String, HashMap<String, Variant<Box<dyn RefArg>>>>>, } diff --git a/talpid-core/src/dns/linux/systemd_resolved.rs b/talpid-core/src/dns/linux/systemd_resolved.rs index 037c0830dc..981d4fb2ee 100644 --- a/talpid-core/src/dns/linux/systemd_resolved.rs +++ b/talpid-core/src/dns/linux/systemd_resolved.rs @@ -79,7 +79,7 @@ lazy_static! { } pub struct SystemdResolved { - dbus_connection: Connection, + pub dbus_connection: Connection, interface_link: Option<(String, dbus::Path<'static>)>, } diff --git a/talpid-core/src/dns/mod.rs b/talpid-core/src/dns/mod.rs index 987f3f1092..3426622ce1 100644 --- a/talpid-core/src/dns/mod.rs +++ b/talpid-core/src/dns/mod.rs @@ -53,6 +53,11 @@ impl DnsMonitor { log::info!("Resetting DNS"); self.inner.reset() } + + #[cfg(target_os="linux")] + fn dbus_connection(&self) -> Option<&dbus::ffidisp::Connection> { + self.inner.dbus_connection() + } } trait DnsMonitorT: Sized { @@ -63,4 +68,7 @@ trait DnsMonitorT: Sized { fn set(&mut self, interface: &str, servers: &[IpAddr]) -> Result<(), Self::Error>; fn reset(&mut self) -> Result<(), Self::Error>; + + #[cfg(target_os="linux")] + fn dbus_connection(&self) -> Option<&dbus::ffidisp::Connection>; } |
