From 98dab62d925fd77e72b4616763785655e75462ab Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Wed, 17 Nov 2010 17:02:21 -0600 Subject: [PATCH] core: simplify device disconnect flow --- src/nm-manager.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/nm-manager.c b/src/nm-manager.c index a32973b4f4..301cd87927 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -1192,34 +1192,32 @@ deactivate_disconnect_check_error (GError *auth_error, static void disconnect_net_auth_done_cb (NMAuthChain *chain, - GError *error, + GError *auth_error, DBusGMethodInvocation *context, gpointer user_data) { NMManager *self = NM_MANAGER (user_data); NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); - GError *ret_error = NULL; + GError *error = NULL; NMAuthCallResult result; NMDevice *device; priv->auth_chains = g_slist_remove (priv->auth_chains, chain); result = GPOINTER_TO_UINT (nm_auth_chain_get_data (chain, NM_AUTH_PERMISSION_NETWORK_CONTROL)); - ret_error = deactivate_disconnect_check_error (error, result, "Disconnect"); - if (ret_error) { - dbus_g_method_return_error (context, ret_error); - g_error_free (ret_error); - goto done; + error = deactivate_disconnect_check_error (auth_error, result, "Disconnect"); + if (!error) { + device = nm_auth_chain_get_data (chain, "device"); + if (!nm_device_interface_disconnect (NM_DEVICE_INTERFACE (device), &error)) + g_assert (error); } - device = nm_auth_chain_get_data (chain, "device"); - if (!nm_device_interface_disconnect (NM_DEVICE_INTERFACE (device), &ret_error)) { - dbus_g_method_return_error (context, ret_error); - g_clear_error (&ret_error); - } else + if (error) + dbus_g_method_return_error (context, error); + else dbus_g_method_return (context); -done: + g_clear_error (&error); nm_auth_chain_unref (chain); }