mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-07 14:18:12 +02: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 */
|
/* 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);
|
g_signal_emit(self, signals[CONFIG_CHANGED], 0);
|
||||||
|
|
||||||
nm_clear_pointer(&priv->config_variant, g_variant_unref);
|
nm_clear_pointer(&priv->config_variant, g_variant_unref);
|
||||||
|
|
@ -1926,6 +1926,16 @@ plugin_skip:;
|
||||||
return TRUE;
|
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
|
gboolean
|
||||||
|
|
|
||||||
|
|
@ -148,4 +148,6 @@ char *nmtst_dns_create_resolv_conf(const char *const *searches,
|
||||||
const char *const *nameservers,
|
const char *const *nameservers,
|
||||||
const char *const *options);
|
const char *const *options);
|
||||||
|
|
||||||
|
gboolean nm_dns_manager_is_unmanaged(NMDnsManager *self);
|
||||||
|
|
||||||
#endif /* __NETWORKMANAGER_DNS_MANAGER_H__ */
|
#endif /* __NETWORKMANAGER_DNS_MANAGER_H__ */
|
||||||
|
|
|
||||||
|
|
@ -2563,11 +2563,13 @@ dns_config_changed(NMDnsManager *dns_manager, gpointer user_data)
|
||||||
if (priv->updating_dns)
|
if (priv->updating_dns)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
nm_manager_for_each_device (priv->manager, device, tmp_lst) {
|
if (!nm_dns_manager_is_unmanaged(dns_manager)) {
|
||||||
nm_device_clear_dns_lookup_data(device, "DNS configuration changed");
|
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
|
static void
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue