diff options
Diffstat (limited to 'libnm/nm-manager.c')
-rw-r--r-- | libnm/nm-manager.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/libnm/nm-manager.c b/libnm/nm-manager.c index de1fa04e40..b4111cd040 100644 --- a/libnm/nm-manager.c +++ b/libnm/nm-manager.c @@ -1684,6 +1684,64 @@ nm_manager_checkpoint_adjust_rollback_timeout_finish (NMManager *manager, return !g_simple_async_result_propagate_error (simple, error); } +static void +reload_cb (GObject *object, + GAsyncResult *result, + gpointer user_data) +{ + gs_unref_object GSimpleAsyncResult *simple = user_data; + GError *error = NULL; + + if (nmdbus_manager_call_reload_finish (NMDBUS_MANAGER (object), + 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); +} + +void +nm_manager_reload (NMManager *manager, + NMManagerReloadFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GSimpleAsyncResult *simple; + + g_return_if_fail (NM_IS_MANAGER (manager)); + + simple = g_simple_async_result_new (G_OBJECT (manager), callback, user_data, + nm_manager_reload); + if (cancellable) + g_simple_async_result_set_check_cancellable (simple, cancellable); + + nmdbus_manager_call_reload (NM_MANAGER_GET_PRIVATE (manager)->proxy, + flags, + cancellable, + reload_cb, + simple); + +} + +gboolean +nm_manager_reload_finish (NMManager *manager, + GAsyncResult *result, + GError **error) +{ + GSimpleAsyncResult *simple; + + g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (manager), + nm_manager_reload), + FALSE); + + simple = G_SIMPLE_ASYNC_RESULT (result); + return !g_simple_async_result_propagate_error (simple, error); +} + /*****************************************************************************/ static void |