Commit 3c696fab authored by Beniamino Galvani's avatar Beniamino Galvani

device: ppp: check that connection has a PPPoE parent

NMDevicePPP only handles connections with the pppoe.parent property
set. match_connection() already checks this when we creating a new
device. We should also perform the same check in
check_connection_compatible().

Fixes: 6c319593 ('core: implement activation of PPP devices')

#203
parent 3698e24e
Pipeline #45804 passed with stage
in 67 minutes and 34 seconds
......@@ -116,6 +116,24 @@ ppp_ip4_config (NMPPPManager *ppp_manager,
}
}
static gboolean
check_connection_compatible (NMDevice *device, NMConnection *connection, GError **error)
{
NMSettingPppoe *s_pppoe;
if (!NM_DEVICE_CLASS (nm_device_ppp_parent_class)->check_connection_compatible (device, connection, error))
return FALSE;
s_pppoe = nm_connection_get_setting_pppoe (connection);
if (s_pppoe)
return FALSE;
if (!nm_setting_pppoe_get_parent (s_pppoe))
return FALSE;
return TRUE;
}
static NMActStageReturn
act_stage2_config (NMDevice *device, NMDeviceStateReason *out_failure_reason)
{
......@@ -276,6 +294,7 @@ nm_device_ppp_class_init (NMDevicePppClass *klass)
device_class->connection_type_supported = NM_SETTING_PPPOE_SETTING_NAME;
device_class->connection_type_check_compatible = NM_SETTING_PPPOE_SETTING_NAME;
device_class->link_types = NM_DEVICE_DEFINE_LINK_TYPES (NM_LINK_TYPE_PPP);
device_class->check_connection_compatible = check_connection_compatible;
device_class->act_stage2_config = act_stage2_config;
device_class->act_stage3_ip_config_start = act_stage3_ip_config_start;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment