mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-28 11:00:09 +01:00
emit DNS CONFIG_CHANGED signal even dns=none
Instruct the `NMDnsManager` to emit `CONFIG_CHANGED` signal even `dns=none` or failed to modify `/etc/resolv.conf`. The `NMPolicy` will only update hostname when DNS is managed. Signed-off-by: Gris Ge <fge@redhat.com> (cherry picked from commita847ba8075) (cherry picked from commitd10f20fd01) (cherry picked from commite0f3a91a95)
This commit is contained in:
parent
401f153dfb
commit
cd9ebfd2bb
3 changed files with 19 additions and 5 deletions
|
|
@ -1910,7 +1910,7 @@ plugin_skip:;
|
|||
}
|
||||
|
||||
/* signal that DNS resolution configs were changed */
|
||||
if ((do_update || caching || force_emit) && result == SR_SUCCESS)
|
||||
if ((caching || force_emit) && result == SR_SUCCESS)
|
||||
g_signal_emit(self, signals[CONFIG_CHANGED], 0);
|
||||
|
||||
nm_clear_pointer(&priv->config_variant, g_variant_unref);
|
||||
|
|
@ -1926,6 +1926,16 @@ plugin_skip:;
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
nm_dns_manager_is_unmanaged(NMDnsManager *self)
|
||||
{
|
||||
NMDnsManagerPrivate *priv = NM_DNS_MANAGER_GET_PRIVATE(self);
|
||||
|
||||
return NM_IN_SET(priv->rc_manager,
|
||||
NM_DNS_MANAGER_RESOLV_CONF_MAN_UNMANAGED,
|
||||
NM_DNS_MANAGER_RESOLV_CONF_MAN_IMMUTABLE);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
gboolean
|
||||
|
|
|
|||
|
|
@ -148,4 +148,6 @@ char *nmtst_dns_create_resolv_conf(const char *const *searches,
|
|||
const char *const *nameservers,
|
||||
const char *const *options);
|
||||
|
||||
gboolean nm_dns_manager_is_unmanaged(NMDnsManager *self);
|
||||
|
||||
#endif /* __NETWORKMANAGER_DNS_MANAGER_H__ */
|
||||
|
|
|
|||
|
|
@ -2563,11 +2563,13 @@ dns_config_changed(NMDnsManager *dns_manager, gpointer user_data)
|
|||
if (priv->updating_dns)
|
||||
return;
|
||||
|
||||
nm_manager_for_each_device (priv->manager, device, tmp_lst) {
|
||||
nm_device_clear_dns_lookup_data(device, "DNS configuration changed");
|
||||
}
|
||||
if (!nm_dns_manager_is_unmanaged(dns_manager)) {
|
||||
nm_manager_for_each_device (priv->manager, device, tmp_lst) {
|
||||
nm_device_clear_dns_lookup_data(device, "DNS configuration changed");
|
||||
}
|
||||
|
||||
update_system_hostname(self, "DNS configuration changed");
|
||||
update_system_hostname(self, "DNS configuration changed");
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue