core: pass slave connection to master when enslaving

This commit is contained in:
Dan Williams 2012-11-04 17:51:34 -06:00
parent a021e40e33
commit 3e3cffd0bd
3 changed files with 8 additions and 6 deletions

View file

@ -374,7 +374,7 @@ free_slave_info (SlaveInfo *sinfo)
}
static gboolean
enslave_slave (NMDevice *device, NMDevice *slave)
enslave_slave (NMDevice *device, NMDevice *slave, NMConnection *connection)
{
NMDeviceBond *self = NM_DEVICE_BOND (device);
NMDeviceBondPrivate *priv = NM_DEVICE_BOND_GET_PRIVATE (self);

View file

@ -766,6 +766,7 @@ nm_device_get_connection_provider (NMDevice *device)
* nm_device_enslave_slave:
* @dev: the master device
* @slave: the slave device to enslave
* @connection: the slave device's connection
*
* If @dev is capable of enslaving other devices (ie it's a bridge, bond, etc)
* then this function enslaves @slave.
@ -774,14 +775,14 @@ nm_device_get_connection_provider (NMDevice *device)
* other devices.
*/
gboolean
nm_device_enslave_slave (NMDevice *dev, NMDevice *slave)
nm_device_enslave_slave (NMDevice *dev, NMDevice *slave, NMConnection *connection)
{
g_return_val_if_fail (dev != NULL, FALSE);
g_return_val_if_fail (slave != NULL, FALSE);
g_return_val_if_fail (nm_device_get_state (slave) >= NM_DEVICE_STATE_DISCONNECTED, FALSE);
if (NM_DEVICE_GET_CLASS (dev)->enslave_slave)
return NM_DEVICE_GET_CLASS (dev)->enslave_slave (dev, slave);
return NM_DEVICE_GET_CLASS (dev)->enslave_slave (dev, slave, connection);
return FALSE;
}
@ -1111,7 +1112,7 @@ act_stage1_prepare (NMDevice *self, NMDeviceStateReason *reason)
master = NM_DEVICE (nm_act_request_get_device (NM_ACT_REQUEST (master_ac)));
g_assert (master);
if (!nm_device_enslave_slave (master, self))
if (!nm_device_enslave_slave (master, self, nm_act_request_get_connection (req)))
ret = NM_ACT_STAGE_RETURN_FAILURE;
}

View file

@ -180,7 +180,8 @@ typedef struct {
gboolean fail_if_no_hwaddr);
gboolean (* enslave_slave) (NMDevice *self,
NMDevice *slave);
NMDevice *slave,
NMConnection *connection);
gboolean (* release_slave) (NMDevice *self,
NMDevice *slave);
@ -216,7 +217,7 @@ NMDHCP6Config * nm_device_get_dhcp6_config (NMDevice *dev);
NMIP4Config * nm_device_get_ip4_config (NMDevice *dev);
NMIP6Config * nm_device_get_ip6_config (NMDevice *dev);
gboolean nm_device_enslave_slave (NMDevice *dev, NMDevice *slave);
gboolean nm_device_enslave_slave (NMDevice *dev, NMDevice *slave, NMConnection *connection);
gboolean nm_device_release_slave (NMDevice *dev, NMDevice *slave);
NMActRequest * nm_device_get_act_request (NMDevice *dev);