mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-06-19 20:38:36 +02:00
core: pass slave connection to master when enslaving
This commit is contained in:
parent
a021e40e33
commit
3e3cffd0bd
3 changed files with 8 additions and 6 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue