summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-12-18 17:12:45 +0100
committerThomas Haller <thaller@redhat.com>2020-01-28 10:54:14 +0100
commit587c35b1f4cb4e8bf57c15db749bdac51c8505bc (patch)
tree37436881d34d8279a3de2de1467f4133d5a8b791
parent718e524a7f8018336536531b8bc949d9aba68b1a (diff)
downloadNetworkManager-587c35b1f4cb4e8bf57c15db749bdac51c8505bc.tar.gz
libnm: factor out nml_init_data_return() for reuse
-rw-r--r--libnm/nm-client.c47
-rw-r--r--libnm/nm-libnm-utils.h3
2 files changed, 30 insertions, 20 deletions
diff --git a/libnm/nm-client.c b/libnm/nm-client.c
index b89f0e1900..70fff47b92 100644
--- a/libnm/nm-client.c
+++ b/libnm/nm-client.c
@@ -440,6 +440,30 @@ nml_init_data_new_async (GCancellable *cancellable,
return init_data;
}
+void
+nml_init_data_return (NMLInitData *init_data,
+ GError *error_take)
+{
+ nm_assert (init_data);
+
+ nm_clear_pointer (&init_data->cancel_on_idle_source, nm_g_source_destroy_and_unref);
+ nm_clear_g_signal_handler (init_data->cancellable, &init_data->cancelled_id);
+
+ if (init_data->is_sync) {
+ if (error_take)
+ g_propagate_error (init_data->data.sync.error_location, error_take);
+ g_main_loop_quit (init_data->data.sync.main_loop);
+ } else {
+ if (error_take)
+ g_task_return_error (init_data->data.async.task, error_take);
+ else
+ g_task_return_boolean (init_data->data.async.task, TRUE);
+ g_object_unref (init_data->data.async.task);
+ }
+ nm_g_object_unref (init_data->cancellable);
+ nm_g_slice_free (init_data);
+}
+
/*****************************************************************************/
GError *
@@ -6952,30 +6976,13 @@ _init_start_complete (NMClient *self,
GError *error_take)
{
NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self);
- NMLInitData *init_data;
-
- init_data = g_steal_pointer (&priv->init_data);
NML_NMCLIENT_LOG_D (self, "%s init complete with %s%s%s",
- init_data->is_sync ? "sync" : "async",
+ priv->init_data->is_sync ? "sync" : "async",
NM_PRINT_FMT_QUOTED (error_take, "error: ", error_take->message, "", "success"));
- nm_clear_pointer (&init_data->cancel_on_idle_source, nm_g_source_destroy_and_unref);
- nm_clear_g_signal_handler (init_data->cancellable, &init_data->cancelled_id);
-
- if (init_data->is_sync) {
- if (error_take)
- g_propagate_error (init_data->data.sync.error_location, error_take);
- g_main_loop_quit (init_data->data.sync.main_loop);
- } else {
- if (error_take)
- g_task_return_error (init_data->data.async.task, error_take);
- else
- g_task_return_boolean (init_data->data.async.task, TRUE);
- g_object_unref (init_data->data.async.task);
- }
- nm_g_object_unref (init_data->cancellable);
- nm_g_slice_free (init_data);
+ nml_init_data_return (g_steal_pointer (&priv->init_data),
+ error_take);
}
static void
diff --git a/libnm/nm-libnm-utils.h b/libnm/nm-libnm-utils.h
index 2228612a9a..c28e8a622b 100644
--- a/libnm/nm-libnm-utils.h
+++ b/libnm/nm-libnm-utils.h
@@ -206,6 +206,9 @@ NMLInitData *nml_init_data_new_sync (GCancellable *cancellable,
NMLInitData *nml_init_data_new_async (GCancellable *cancellable,
GTask *task_take);
+void nml_init_data_return (NMLInitData *init_data,
+ GError *error_take);
+
/*****************************************************************************/
typedef struct _NMLDBusObject NMLDBusObject;