ovs: fail port enslavement when the bridge AC is not found
The previous code tried to get the bridge active connection and it
used the port active connection instead in case of failure. This
doesn't seem right, as in nm-ovsdb.c the bridge AC is used to get the
bridge settings (including the uuid, interface name, and cloned mac).
In case of failure getting the bridge AC we should just fail.
Fixes: 830a5a14cb
('device: add support for OpenVSwitch devices')
This commit is contained in:
@@ -86,6 +86,7 @@ add_iface_cb (GError *error, gpointer user_data)
|
||||
static gboolean
|
||||
enslave_slave (NMDevice *device, NMDevice *slave, NMConnection *connection, gboolean configure)
|
||||
{
|
||||
NMDeviceOvsPort *self = NM_DEVICE_OVS_PORT (device);
|
||||
NMActiveConnection *ac_port = NULL;
|
||||
NMActiveConnection *ac_bridge = NULL;
|
||||
NMDevice *bridge_device;
|
||||
@@ -95,8 +96,11 @@ enslave_slave (NMDevice *device, NMDevice *slave, NMConnection *connection, gboo
|
||||
|
||||
ac_port = NM_ACTIVE_CONNECTION (nm_device_get_act_request (device));
|
||||
ac_bridge = nm_active_connection_get_master (ac_port);
|
||||
if (!ac_bridge)
|
||||
ac_bridge = ac_port;
|
||||
if (!ac_bridge) {
|
||||
_LOGW (LOGD_DEVICE, "can't enslave %s: bridge active-connection not found",
|
||||
nm_device_get_iface (slave));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bridge_device = nm_active_connection_get_device (ac_bridge);
|
||||
|
||||
|
Reference in New Issue
Block a user