diff options
author | Thomas Haller <thaller@redhat.com> | 2017-06-15 19:15:09 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-06-19 17:20:34 +0200 |
commit | c5370ea71a6c0686d5bffb7039d9053335384f20 (patch) | |
tree | d0e09fcbdaf64bd00ae97c56fff99e1b4eb99a82 | |
parent | 529d620a59f42e3f06bd4e7de5c817f175803c0d (diff) | |
download | NetworkManager-c5370ea71a6c0686d5bffb7039d9053335384f20.tar.gz |
libnm: refactor error handling in got_object_manager()
-rw-r--r-- | libnm/nm-client.c | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/libnm/nm-client.c b/libnm/nm-client.c index 774f5f6ba0..0c519b70ca 100644 --- a/libnm/nm-client.c +++ b/libnm/nm-client.c @@ -2427,11 +2427,8 @@ got_object_manager (gpointer user_data) init_data->idle_init_id = 0; if (g_cancellable_set_error_if_cancelled (init_data->cancellable, - &error)) { - g_simple_async_result_take_error (init_data->result, error); - init_async_complete (init_data); - return G_SOURCE_REMOVE; - } + &error)) + goto out_take_error; object_manager = g_dbus_object_manager_client_new_for_bus_sync (_nm_dbus_bus_type (), G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START, @@ -2440,11 +2437,8 @@ got_object_manager (gpointer user_data) proxy_type, NULL, NULL, init_data->cancellable, &error); - if (object_manager == NULL) { - g_simple_async_result_take_error (init_data->result, error); - init_async_complete (init_data); - return G_SOURCE_REMOVE; - } + if (!object_manager) + goto out_take_error; client = init_data->client; priv = NM_CLIENT_GET_PRIVATE (client); @@ -2453,11 +2447,8 @@ got_object_manager (gpointer user_data) name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (priv->object_manager)); if (name_owner) { g_free (name_owner); - if (!objects_created (client, priv->object_manager, &error)) { - g_simple_async_result_take_error (init_data->result, error); - init_async_complete (init_data); - return G_SOURCE_REMOVE; - } + if (!objects_created (client, priv->object_manager, &error)) + goto out_take_error; objects = g_dbus_object_manager_get_objects (priv->object_manager); for (iter = objects; iter; iter = iter->next) { @@ -2480,6 +2471,11 @@ got_object_manager (gpointer user_data) g_signal_connect (priv->object_manager, "notify::name-owner", G_CALLBACK (name_owner_changed), client); return G_SOURCE_REMOVE; + +out_take_error: + g_simple_async_result_take_error (init_data->result, error); + init_async_complete (init_data); + return G_SOURCE_REMOVE; } static void |