summaryrefslogtreecommitdiff
path: root/libnm/nm-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm/nm-manager.c')
-rw-r--r--libnm/nm-manager.c58
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