|
Certain NM versions will overwrite systemd-resovled config when they're
reapplying existing config, this can be invoked `nmcli general reload
dns-full` or by receiving a new DHCP lease. NM will just wipe the config
for interfaces it doesn't have the config for in systemd-resolved, and
since our daemon prefers systemd-resolved over NM, our config would be
wiped. To fix this, I've changed the systemd-resolved DNS code to listen
to changes to the global DNS config and reapply the tunnel interface DNS
config if it's changed in any way.
To better seperate the conecrns, the systemd-resolved DBus specific code
was moved to the `talpid-dbus` crate, and the DNS code that manages the
state and applies changes remains in `talpid-core`.
One other solution that was considered was to just prefer NM over
systemd-resolved, and we already kind of could do that, but the coming
NM versions (1.28 and up) seem to not be able to manage DNS via it's own
/etc/resolv.conf.
|