mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-04 21:08:04 +02:00
hostname: simplify _set_hostname() code
- drop nm_hostname_manager_read_hostname() from header file. It's only used internally. - inline some code and drop helper functions.
This commit is contained in:
parent
6bc6d45925
commit
429816080e
2 changed files with 46 additions and 80 deletions
|
|
@ -162,21 +162,51 @@ hostname_is_dynamic(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* Returns an allocated string which the caller owns and must eventually free */
|
||||
char *
|
||||
nm_hostname_manager_read_hostname(NMHostnameManager *self)
|
||||
/*****************************************************************************/
|
||||
|
||||
const char *
|
||||
nm_hostname_manager_get_hostname(NMHostnameManager *self)
|
||||
{
|
||||
g_return_val_if_fail(NM_IS_HOSTNAME_MANAGER(self), NULL);
|
||||
return NM_HOSTNAME_MANAGER_GET_PRIVATE(self)->current_hostname;
|
||||
}
|
||||
|
||||
static void
|
||||
_set_hostname(NMHostnameManager *self, const char *hostname)
|
||||
{
|
||||
NMHostnameManagerPrivate *priv = NM_HOSTNAME_MANAGER_GET_PRIVATE(self);
|
||||
char * old_hostname;
|
||||
|
||||
hostname = nm_str_not_empty(hostname);
|
||||
|
||||
if (nm_streq0(hostname, priv->current_hostname))
|
||||
return;
|
||||
|
||||
_LOGI("hostname changed from %s%s%s to %s%s%s",
|
||||
NM_PRINT_FMT_QUOTED(priv->current_hostname, "\"", priv->current_hostname, "\"", "(none)"),
|
||||
NM_PRINT_FMT_QUOTED(hostname, "\"", hostname, "\"", "(none)"));
|
||||
|
||||
old_hostname = priv->current_hostname;
|
||||
priv->current_hostname = g_strdup(hostname);
|
||||
g_free(old_hostname);
|
||||
|
||||
_notify(self, PROP_HOSTNAME);
|
||||
}
|
||||
|
||||
static void
|
||||
_set_hostname_read_file(NMHostnameManager *self)
|
||||
{
|
||||
NMHostnameManagerPrivate *priv = NM_HOSTNAME_MANAGER_GET_PRIVATE(self);
|
||||
char * hostname = NULL;
|
||||
gs_free char * hostname = NULL;
|
||||
|
||||
if (priv->hostnamed_proxy) {
|
||||
hostname = g_strdup(priv->current_hostname);
|
||||
goto out;
|
||||
/* read-hostname returns the current hostname with hostnamed. */
|
||||
return;
|
||||
}
|
||||
|
||||
#if defined(HOSTNAME_PERSIST_SUSE)
|
||||
if (priv->dhcp_monitor_id && hostname_is_dynamic())
|
||||
return NULL;
|
||||
return;
|
||||
#endif
|
||||
|
||||
#if defined(HOSTNAME_PERSIST_GENTOO)
|
||||
|
|
@ -188,67 +218,7 @@ nm_hostname_manager_read_hostname(NMHostnameManager *self)
|
|||
g_strchomp(hostname);
|
||||
#endif
|
||||
|
||||
out:
|
||||
if (hostname && !hostname[0]) {
|
||||
g_free(hostname);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return hostname;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
const char *
|
||||
nm_hostname_manager_get_hostname(NMHostnameManager *self)
|
||||
{
|
||||
g_return_val_if_fail(NM_IS_HOSTNAME_MANAGER(self), NULL);
|
||||
return NM_HOSTNAME_MANAGER_GET_PRIVATE(self)->current_hostname;
|
||||
}
|
||||
|
||||
static void
|
||||
_set_hostname_take(NMHostnameManager *self, char *hostname)
|
||||
{
|
||||
NMHostnameManagerPrivate *priv = NM_HOSTNAME_MANAGER_GET_PRIVATE(self);
|
||||
|
||||
_LOGI("hostname changed from %s%s%s to %s%s%s",
|
||||
NM_PRINT_FMT_QUOTED(priv->current_hostname, "\"", priv->current_hostname, "\"", "(none)"),
|
||||
NM_PRINT_FMT_QUOTED(hostname, "\"", hostname, "\"", "(none)"));
|
||||
|
||||
g_free(priv->current_hostname);
|
||||
priv->current_hostname = hostname;
|
||||
_notify(self, PROP_HOSTNAME);
|
||||
}
|
||||
|
||||
static void
|
||||
_set_hostname(NMHostnameManager *self, const char *hostname)
|
||||
{
|
||||
NMHostnameManagerPrivate *priv = NM_HOSTNAME_MANAGER_GET_PRIVATE(self);
|
||||
|
||||
hostname = nm_str_not_empty(hostname);
|
||||
if (!nm_streq0(hostname, priv->current_hostname))
|
||||
_set_hostname_take(self, g_strdup(hostname));
|
||||
}
|
||||
|
||||
static void
|
||||
_set_hostname_read(NMHostnameManager *self)
|
||||
{
|
||||
NMHostnameManagerPrivate *priv = NM_HOSTNAME_MANAGER_GET_PRIVATE(self);
|
||||
char * hostname;
|
||||
|
||||
if (priv->hostnamed_proxy) {
|
||||
/* read-hostname returns the current hostname with hostnamed. */
|
||||
return;
|
||||
}
|
||||
|
||||
hostname = nm_hostname_manager_read_hostname(self);
|
||||
|
||||
if (nm_streq0(hostname, priv->current_hostname)) {
|
||||
g_free(hostname);
|
||||
return;
|
||||
}
|
||||
|
||||
_set_hostname_take(self, hostname);
|
||||
_set_hostname(self, hostname);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
@ -462,7 +432,7 @@ hostname_file_changed_cb(GFileMonitor * monitor,
|
|||
GFileMonitorEvent event_type,
|
||||
gpointer user_data)
|
||||
{
|
||||
_set_hostname_read(user_data);
|
||||
_set_hostname_read_file(user_data);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
@ -473,15 +443,13 @@ hostnamed_properties_changed(GDBusProxy *proxy,
|
|||
char ** invalidated_properties,
|
||||
gpointer user_data)
|
||||
{
|
||||
NMHostnameManager * self = user_data;
|
||||
NMHostnameManagerPrivate *priv = NM_HOSTNAME_MANAGER_GET_PRIVATE(self);
|
||||
GVariant * v_hostname;
|
||||
NMHostnameManager * self = user_data;
|
||||
NMHostnameManagerPrivate *priv = NM_HOSTNAME_MANAGER_GET_PRIVATE(self);
|
||||
gs_unref_variant GVariant *variant = NULL;
|
||||
|
||||
v_hostname = g_dbus_proxy_get_cached_property(priv->hostnamed_proxy, "StaticHostname");
|
||||
if (v_hostname) {
|
||||
_set_hostname(self, g_variant_get_string(v_hostname, NULL));
|
||||
g_variant_unref(v_hostname);
|
||||
}
|
||||
variant = g_dbus_proxy_get_cached_property(priv->hostnamed_proxy, "StaticHostname");
|
||||
if (variant && g_variant_is_of_type(variant, G_VARIANT_TYPE_STRING))
|
||||
_set_hostname(self, g_variant_get_string(variant, NULL));
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -527,7 +495,7 @@ setup_hostname_file_monitors(NMHostnameManager *self)
|
|||
}
|
||||
#endif
|
||||
|
||||
_set_hostname_read(self);
|
||||
_set_hostname_read_file(self);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
|||
|
|
@ -36,8 +36,6 @@ NMHostnameManager *nm_hostname_manager_get(void);
|
|||
|
||||
const char *nm_hostname_manager_get_hostname(NMHostnameManager *self);
|
||||
|
||||
char *nm_hostname_manager_read_hostname(NMHostnameManager *self);
|
||||
|
||||
gboolean nm_hostname_manager_write_hostname(NMHostnameManager *self, const char *hostname);
|
||||
|
||||
void nm_hostname_manager_set_transient_hostname(NMHostnameManager * self,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue