summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md4
-rw-r--r--talpid-core/src/dns/linux/static_resolv_conf.rs4
2 files changed, 8 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2efd06916b..5967fab80f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -27,6 +27,10 @@ Line wrap the file at 100 chars. Th
- Add translations for Finnish and Danish.
### Changed
+#### Linux
+- DNS management with static `/etc/resolv.conf` will now work even when no
+ `/etc/resolv.conf` exists.
+
#### Android
- Wait for traffic to be routed through the tunnel device before advertising blocked state.
diff --git a/talpid-core/src/dns/linux/static_resolv_conf.rs b/talpid-core/src/dns/linux/static_resolv_conf.rs
index 70ff38ddce..1a867a079d 100644
--- a/talpid-core/src/dns/linux/static_resolv_conf.rs
+++ b/talpid-core/src/dns/linux/static_resolv_conf.rs
@@ -172,6 +172,10 @@ impl DnsWatcher {
}
fn read_config() -> Result<Config> {
+ if !std::path::Path::new(RESOLV_CONF_PATH).exists() {
+ return Ok(Config::new());
+ }
+
let contents = fs::read_to_string(RESOLV_CONF_PATH)
.map_err(|e| Error::ReadResolvConf(RESOLV_CONF_PATH, e))?;
let config = Config::parse(&contents).map_err(|e| Error::ParseError(RESOLV_CONF_PATH, e))?;