diff --git a/libnm/nm-client.c b/libnm/nm-client.c index c7fa8ce808..2dd8b3aadd 100644 --- a/libnm/nm-client.c +++ b/libnm/nm-client.c @@ -896,23 +896,6 @@ nm_client_save_hostname (NMClient *client, error); } -static void -save_hostname_cb (GObject *object, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nm_remote_settings_save_hostname_finish (NM_REMOTE_SETTINGS (object), result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else - g_simple_async_result_take_error (simple, error); - - g_simple_async_result_complete (simple); - g_object_unref (simple); -} - /** * nm_client_save_hostname_async: * @client: the %NMClient @@ -932,23 +915,22 @@ nm_client_save_hostname_async (NMClient *client, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *simple; - GError *error = NULL; - g_return_if_fail (NM_IS_CLIENT (client)); + g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable)); - if (!_nm_client_check_nm_running (client, &error)) { - g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error); - return; - } - - simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data, - nm_client_save_hostname_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - nm_remote_settings_save_hostname_async (NM_CLIENT_GET_PRIVATE (client)->settings, - hostname, - cancellable, save_hostname_cb, simple); + _nm_object_dbus_call (client, + nm_client_save_hostname_async, + cancellable, + callback, + user_data, + NM_DBUS_PATH_SETTINGS, + NM_DBUS_INTERFACE_SETTINGS, + "SaveHostname", + g_variant_new ("(s)", hostname ?: ""), + G_VARIANT_TYPE ("()"), + G_DBUS_CALL_FLAGS_NONE, + NM_DBUS_DEFAULT_TIMEOUT_MSEC, + nm_dbus_connection_call_finish_void_strip_dbus_error_cb); } /** @@ -966,20 +948,14 @@ nm_client_save_hostname_finish (NMClient *client, GAsyncResult *result, GError **error) { - GSimpleAsyncResult *simple; - g_return_val_if_fail (NM_IS_CLIENT (client), FALSE); - g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE); + g_return_val_if_fail (nm_g_task_is_valid (result, client, nm_client_save_hostname_async), FALSE); - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); + return g_task_propagate_boolean (G_TASK (result), error); } /*****************************************************************************/ -/* Devices */ +/* Devices */ /*****************************************************************************/ /** diff --git a/libnm/nm-remote-settings.c b/libnm/nm-remote-settings.c index 573c895611..d07a1a551a 100644 --- a/libnm/nm-remote-settings.c +++ b/libnm/nm-remote-settings.c @@ -394,64 +394,6 @@ nm_remote_settings_add_connection2 (NMRemoteSettings *self, } } -static void -save_hostname_cb (GObject *proxy, - GAsyncResult *result, - gpointer user_data) -{ - GSimpleAsyncResult *simple = user_data; - GError *error = NULL; - - if (nmdbus_settings_call_save_hostname_finish (NMDBUS_SETTINGS (proxy), result, &error)) - g_simple_async_result_set_op_res_gboolean (simple, TRUE); - else { - g_dbus_error_strip_remote_error (error); - g_simple_async_result_take_error (simple, error); - } - g_simple_async_result_complete (simple); - g_object_unref (simple); -} - -void -nm_remote_settings_save_hostname_async (NMRemoteSettings *settings, - const char *hostname, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - NMRemoteSettingsPrivate *priv; - GSimpleAsyncResult *simple; - - g_return_if_fail (NM_IS_REMOTE_SETTINGS (settings)); - - priv = NM_REMOTE_SETTINGS_GET_PRIVATE (settings); - - simple = g_simple_async_result_new (G_OBJECT (settings), callback, user_data, - nm_remote_settings_save_hostname_async); - if (cancellable) - g_simple_async_result_set_check_cancellable (simple, cancellable); - - nmdbus_settings_call_save_hostname (priv->proxy, - hostname ?: "", - cancellable, save_hostname_cb, simple); -} - -gboolean -nm_remote_settings_save_hostname_finish (NMRemoteSettings *settings, - GAsyncResult *result, - GError **error) -{ - GSimpleAsyncResult *simple; - - g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (settings), nm_remote_settings_save_hostname_async), FALSE); - - simple = G_SIMPLE_ASYNC_RESULT (result); - if (g_simple_async_result_propagate_error (simple, error)) - return FALSE; - else - return g_simple_async_result_get_op_res_gboolean (simple); -} - /*****************************************************************************/ static void diff --git a/libnm/nm-remote-settings.h b/libnm/nm-remote-settings.h index 2ac2e64e6e..5dc5d01bb8 100644 --- a/libnm/nm-remote-settings.h +++ b/libnm/nm-remote-settings.h @@ -75,13 +75,4 @@ void nm_remote_settings_add_connection2 (NMRemoteSettings *self, NMRemoteSettingAddConnection2Callback callback, gpointer user_data); -void nm_remote_settings_save_hostname_async (NMRemoteSettings *settings, - const char *hostname, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -gboolean nm_remote_settings_save_hostname_finish (NMRemoteSettings *settings, - GAsyncResult *result, - GError **error); - #endif /* __NM_REMOTE_SETTINGS_H__ */