From d2064be787a231b23dd8dfeef20f9d324502c00a Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 8 Mar 2017 14:11:22 +0100 Subject: [PATCH] core/dispatcher: add and use nm_dispatcher_call_hostname() --- src/nm-dispatcher.c | 21 +++++++++++++++++++++ src/nm-dispatcher.h | 4 ++++ src/nm-policy.c | 2 +- src/settings/nm-settings.c | 2 +- 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/nm-dispatcher.c b/src/nm-dispatcher.c index 49a672228c..1bea957fde 100644 --- a/src/nm-dispatcher.c +++ b/src/nm-dispatcher.c @@ -693,6 +693,27 @@ done: return success; } +/** + * nm_dispatcher_call_hostname: + * @callback: a caller-supplied callback to execute when done + * @user_data: caller-supplied pointer passed to @callback + * @out_call_id: on success, a call identifier which can be passed to + * nm_dispatcher_call_cancel() + * + * This method always invokes the dispatcher action asynchronously. + * + * Returns: %TRUE if the action was dispatched, %FALSE on failure + */ +gboolean +nm_dispatcher_call_hostname (NMDispatcherFunc callback, + gpointer user_data, + guint *out_call_id) +{ + return _dispatcher_call (NM_DISPATCHER_ACTION_HOSTNAME, FALSE, NULL, NULL, NULL, + NM_CONNECTIVITY_UNKNOWN, NULL, NULL, NULL, NULL, + callback, user_data, out_call_id); +} + /** * nm_dispatcher_call: * @action: the %NMDispatcherAction diff --git a/src/nm-dispatcher.h b/src/nm-dispatcher.h index 6b73244c3b..111085124e 100644 --- a/src/nm-dispatcher.h +++ b/src/nm-dispatcher.h @@ -41,6 +41,10 @@ typedef enum { typedef void (*NMDispatcherFunc) (guint call_id, gpointer user_data); +gboolean nm_dispatcher_call_hostname (NMDispatcherFunc callback, + gpointer user_data, + guint *out_call_id); + gboolean nm_dispatcher_call (NMDispatcherAction action, NMSettingsConnection *settings_connection, NMConnection *applied_connection, diff --git a/src/nm-policy.c b/src/nm-policy.c index 0592bdee83..2cba2852a3 100644 --- a/src/nm-policy.c +++ b/src/nm-policy.c @@ -428,7 +428,7 @@ settings_set_hostname_cb (const char *hostname, } if (!ret) - nm_dispatcher_call (NM_DISPATCHER_ACTION_HOSTNAME, NULL, NULL, NULL, NULL, NULL, NULL); + nm_dispatcher_call_hostname (NULL, NULL, NULL); } static void diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c index 41ed226c8f..f738b4377a 100644 --- a/src/settings/nm-settings.c +++ b/src/settings/nm-settings.c @@ -2143,7 +2143,7 @@ hostnamed_properties_changed (GDBusProxy *proxy, g_free (priv->hostname.value); priv->hostname.value = g_strdup (hostname); _notify (self, PROP_HOSTNAME); - nm_dispatcher_call (NM_DISPATCHER_ACTION_HOSTNAME, NULL, NULL, NULL, NULL, NULL, NULL); + nm_dispatcher_call_hostname (NULL, NULL, NULL); } g_variant_unref (v_hostname);