device: minor cleanup of nm_device_complete_connection() and add code comment

Regarding the cleanup: remove the success variable and instead error
out early.
This commit is contained in:
Thomas Haller
2018-03-14 08:12:10 +01:00
parent f7b2ebc87a
commit af97b9a41e
2 changed files with 23 additions and 14 deletions

View File

@@ -135,8 +135,6 @@ complete_connection (NMDevice *device,
_("ADSL connection"), _("ADSL connection"),
NULL, NULL,
FALSE); /* No IPv6 yet by default */ FALSE); /* No IPv6 yet by default */
return TRUE; return TRUE;
} }

View File

@@ -4767,6 +4767,16 @@ nm_device_generate_connection (NMDevice *self,
return g_steal_pointer (&connection); return g_steal_pointer (&connection);
} }
/**
* nm_device_complete_connection:
*
* Complete the connection. This is solely used for AddAndActivate where the user
* may pass in an incomplete connection and a device, and the device tries to
* make sense of it and complete it for activation. Otherwise, this is not
* used.
*
* Returns: success or failure.
*/
gboolean gboolean
nm_device_complete_connection (NMDevice *self, nm_device_complete_connection (NMDevice *self,
NMConnection *connection, NMConnection *connection,
@@ -4774,27 +4784,28 @@ nm_device_complete_connection (NMDevice *self,
const GSList *existing_connections, const GSList *existing_connections,
GError **error) GError **error)
{ {
gboolean success = FALSE; NMDeviceClass *klass;
g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (NM_IS_DEVICE (self), FALSE);
g_return_val_if_fail (connection != NULL, FALSE); g_return_val_if_fail (NM_IS_CONNECTION (connection), FALSE);
if (!NM_DEVICE_GET_CLASS (self)->complete_connection) { klass = NM_DEVICE_GET_CLASS (self);
if (!klass->complete_connection) {
g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INVALID_CONNECTION, g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INVALID_CONNECTION,
"Device class %s had no complete_connection method", "Device class %s had no complete_connection method",
G_OBJECT_TYPE_NAME (self)); G_OBJECT_TYPE_NAME (self));
return FALSE; return FALSE;
} }
success = NM_DEVICE_GET_CLASS (self)->complete_connection (self, if (!klass->complete_connection (self,
connection, connection,
specific_object, specific_object,
existing_connections, existing_connections,
error); error))
if (success) return FALSE;
success = nm_connection_verify (connection, error);
return success; return nm_connection_verify (connection, error);
} }
gboolean gboolean