device: return nm_device_master_add_slave() whether a slave was added

This is currently not yet used. It will be later.
This commit is contained in:
Thomas Haller 2017-03-01 17:28:46 +01:00
parent 3ce6cbb4a1
commit d43a54c907

View file

@ -474,7 +474,7 @@ static gboolean nm_device_set_ip6_config (NMDevice *self,
static gboolean ip6_config_merge_and_apply (NMDevice *self, static gboolean ip6_config_merge_and_apply (NMDevice *self,
gboolean commit); gboolean commit);
static void nm_device_master_add_slave (NMDevice *self, NMDevice *slave, gboolean configure); static gboolean nm_device_master_add_slave (NMDevice *self, NMDevice *slave, gboolean configure);
static void nm_device_slave_notify_enslave (NMDevice *self, gboolean success); static void nm_device_slave_notify_enslave (NMDevice *self, gboolean success);
static void nm_device_slave_notify_release (NMDevice *self, NMDeviceStateReason reason); static void nm_device_slave_notify_release (NMDevice *self, NMDeviceStateReason reason);
@ -2991,17 +2991,21 @@ slave_state_changed (NMDevice *slave,
* *
* If @self is capable of enslaving other devices (ie it's a bridge, bond, team, * If @self is capable of enslaving other devices (ie it's a bridge, bond, team,
* etc) then this function adds @slave to the slave list for later enslavement. * etc) then this function adds @slave to the slave list for later enslavement.
*
* Returns: %TRUE if the slave was enslaved. %FALSE means, the slave was already
* enslaved and nothing was done.
*/ */
static void static gboolean
nm_device_master_add_slave (NMDevice *self, NMDevice *slave, gboolean configure) nm_device_master_add_slave (NMDevice *self, NMDevice *slave, gboolean configure)
{ {
NMDevicePrivate *priv; NMDevicePrivate *priv;
NMDevicePrivate *slave_priv; NMDevicePrivate *slave_priv;
SlaveInfo *info; SlaveInfo *info;
gboolean changed = FALSE;
g_return_if_fail (NM_IS_DEVICE (self)); g_return_val_if_fail (NM_IS_DEVICE (self), FALSE);
g_return_if_fail (NM_IS_DEVICE (slave)); g_return_val_if_fail (NM_IS_DEVICE (slave), FALSE);
g_return_if_fail (NM_DEVICE_GET_CLASS (self)->enslave_slave != NULL); g_return_val_if_fail (NM_DEVICE_GET_CLASS (self)->enslave_slave != NULL, FALSE);
priv = NM_DEVICE_GET_PRIVATE (self); priv = NM_DEVICE_GET_PRIVATE (self);
slave_priv = NM_DEVICE_GET_PRIVATE (slave); slave_priv = NM_DEVICE_GET_PRIVATE (slave);
@ -3012,11 +3016,11 @@ nm_device_master_add_slave (NMDevice *self, NMDevice *slave, gboolean configure)
info ? " (already registered)" : ""); info ? " (already registered)" : "");
if (configure) if (configure)
g_return_if_fail (nm_device_get_state (slave) >= NM_DEVICE_STATE_DISCONNECTED); g_return_val_if_fail (nm_device_get_state (slave) >= NM_DEVICE_STATE_DISCONNECTED, FALSE);
if (!info) { if (!info) {
g_return_if_fail (!slave_priv->master); g_return_val_if_fail (!slave_priv->master, FALSE);
g_return_if_fail (!slave_priv->is_enslaved); g_return_val_if_fail (!slave_priv->is_enslaved, FALSE);
info = g_slice_new0 (SlaveInfo); info = g_slice_new0 (SlaveInfo);
info->slave = g_object_ref (slave); info->slave = g_object_ref (slave);
@ -3036,13 +3040,15 @@ nm_device_master_add_slave (NMDevice *self, NMDevice *slave, gboolean configure)
g_warn_if_fail (!NM_FLAGS_HAS (slave_priv->unmanaged_mask, NM_UNMANAGED_IS_SLAVE)); g_warn_if_fail (!NM_FLAGS_HAS (slave_priv->unmanaged_mask, NM_UNMANAGED_IS_SLAVE));
nm_device_set_unmanaged_by_flags (slave, NM_UNMANAGED_IS_SLAVE, FALSE, NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED); nm_device_set_unmanaged_by_flags (slave, NM_UNMANAGED_IS_SLAVE, FALSE, NM_DEVICE_STATE_REASON_CONNECTION_ASSUMED);
changed = TRUE;
} else } else
g_return_if_fail (slave_priv->master == self); g_return_val_if_fail (slave_priv->master == self, FALSE);
nm_device_queue_recheck_assume (self); nm_device_queue_recheck_assume (self);
nm_device_queue_recheck_assume (slave); nm_device_queue_recheck_assume (slave);
}
return changed;
}
/** /**
* nm_device_master_get_slaves: * nm_device_master_get_slaves: