summaryrefslogtreecommitdiff
path: root/libnm/nm-client.c
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-06-15 19:15:09 +0200
committerThomas Haller <thaller@redhat.com>2017-06-19 17:20:34 +0200
commitc5370ea71a6c0686d5bffb7039d9053335384f20 (patch)
treed0e09fcbdaf64bd00ae97c56fff99e1b4eb99a82 /libnm/nm-client.c
parent529d620a59f42e3f06bd4e7de5c817f175803c0d (diff)
downloadNetworkManager-c5370ea71a6c0686d5bffb7039d9053335384f20.tar.gz
libnm: refactor error handling in got_object_manager()
Diffstat (limited to 'libnm/nm-client.c')
-rw-r--r--libnm/nm-client.c26
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