core: clean up and simplify device capabilities handling

This is really, really old 2007-era code.  Any NMDevice that gets
created is already supported, so there's no reason to have every
device set NM_DEVICE_CAP_NM_SUPPORTED.  For those subclasses that
only set that capability, we can remove the subclass method
entirely.  Next, it turns out that the "type capabilities" code
wasn't used anywhere, so remove that too.  Lastly, "cipsec"
interfaces haven't been used on linux in about 5 years (they
were created by the Cisco binary-only IPSec kernel module for
Cisco VPNs long before vpnc and openswan came around) so we can
remove that code too.
This commit is contained in:
Dan Williams 2013-05-17 10:58:38 -05:00 committed by Dan Winship
parent 38459f5a00
commit be807819b0
15 changed files with 11 additions and 126 deletions

View file

@ -88,9 +88,7 @@ typedef struct {
static guint32 static guint32
get_generic_capabilities (NMDevice *dev) get_generic_capabilities (NMDevice *dev)
{ {
return ( NM_DEVICE_CAP_NM_SUPPORTED return (NM_DEVICE_CAP_CARRIER_DETECT | NM_DEVICE_CAP_NONSTANDARD_CARRIER);
| NM_DEVICE_CAP_CARRIER_DETECT
| NM_DEVICE_CAP_NONSTANDARD_CARRIER);
} }
static gboolean static gboolean

View file

@ -91,7 +91,7 @@ get_hw_address_length (NMDevice *device)
static guint32 static guint32
get_generic_capabilities (NMDevice *dev) get_generic_capabilities (NMDevice *dev)
{ {
return NM_DEVICE_CAP_CARRIER_DETECT | NM_DEVICE_CAP_NM_SUPPORTED; return NM_DEVICE_CAP_CARRIER_DETECT;
} }
static gboolean static gboolean

View file

@ -72,7 +72,7 @@ nm_bridge_error_quark (void)
static guint32 static guint32
get_generic_capabilities (NMDevice *dev) get_generic_capabilities (NMDevice *dev)
{ {
return NM_DEVICE_CAP_CARRIER_DETECT | NM_DEVICE_CAP_NM_SUPPORTED; return NM_DEVICE_CAP_CARRIER_DETECT;
} }
static gboolean static gboolean

View file

@ -369,12 +369,6 @@ complete_connection (NMDevice *device,
return TRUE; return TRUE;
} }
static guint32
get_generic_capabilities (NMDevice *dev)
{
return NM_DEVICE_CAP_NM_SUPPORTED;
}
static const GByteArray * static const GByteArray *
get_connection_hw_address (NMDevice *device, get_connection_hw_address (NMDevice *device,
NMConnection *connection) NMConnection *connection)
@ -1269,7 +1263,6 @@ nm_device_bt_class_init (NMDeviceBtClass *klass)
object_class->finalize = finalize; object_class->finalize = finalize;
device_class->can_auto_connect = can_auto_connect; device_class->can_auto_connect = can_auto_connect;
device_class->get_generic_capabilities = get_generic_capabilities;
device_class->deactivate = deactivate; device_class->deactivate = deactivate;
device_class->act_stage2_config = act_stage2_config; device_class->act_stage2_config = act_stage2_config;
device_class->act_stage3_ip4_config_start = act_stage3_ip4_config_start; device_class->act_stage3_ip4_config_start = act_stage3_ip4_config_start;

View file

@ -454,18 +454,11 @@ static guint32
get_generic_capabilities (NMDevice *dev) get_generic_capabilities (NMDevice *dev)
{ {
NMDeviceEthernet *self = NM_DEVICE_ETHERNET (dev); NMDeviceEthernet *self = NM_DEVICE_ETHERNET (dev);
guint32 caps = NM_DEVICE_CAP_NONE;
/* cipsec devices are also explicitly unsupported at this time */
if (strstr (nm_device_get_iface (dev), "cipsec"))
return NM_DEVICE_CAP_NONE;
if (supports_ethtool_carrier_detect (self) || supports_mii_carrier_detect (self)) if (supports_ethtool_carrier_detect (self) || supports_mii_carrier_detect (self))
caps |= NM_DEVICE_CAP_CARRIER_DETECT; return NM_DEVICE_CAP_CARRIER_DETECT;
caps |= NM_DEVICE_CAP_NM_SUPPORTED; return NM_DEVICE_CAP_NONE;
return caps;
} }
static gboolean static gboolean

View file

@ -58,12 +58,6 @@ nm_device_generic_error_quark (void)
/**************************************************************/ /**************************************************************/
static guint32
get_generic_capabilities (NMDevice *dev)
{
return NM_DEVICE_CAP_NM_SUPPORTED;
}
static gboolean static gboolean
is_available (NMDevice *device) is_available (NMDevice *device)
{ {
@ -196,7 +190,6 @@ nm_device_generic_class_init (NMDeviceGenericClass *klass)
object_class->get_property = get_property; object_class->get_property = get_property;
object_class->set_property = set_property; object_class->set_property = set_property;
parent_class->get_generic_capabilities = get_generic_capabilities;
parent_class->is_available = is_available; parent_class->is_available = is_available;
parent_class->check_connection_compatible = check_connection_compatible; parent_class->check_connection_compatible = check_connection_compatible;

View file

@ -119,7 +119,7 @@ get_hw_address_length (NMDevice *device)
static guint32 static guint32
get_generic_capabilities (NMDevice *dev) get_generic_capabilities (NMDevice *dev)
{ {
return NM_DEVICE_CAP_CARRIER_DETECT | NM_DEVICE_CAP_NM_SUPPORTED; return NM_DEVICE_CAP_CARRIER_DETECT;
} }
static NMActStageReturn static NMActStageReturn

View file

@ -214,12 +214,6 @@ device_state_changed (NMDevice *device,
reason); reason);
} }
static guint32
get_generic_capabilities (NMDevice *device)
{
return NM_DEVICE_CAP_NM_SUPPORTED;
}
static guint static guint
get_hw_address_length (NMDevice *device) get_hw_address_length (NMDevice *device)
{ {
@ -484,7 +478,6 @@ nm_device_modem_class_init (NMDeviceModemClass *mclass)
object_class->get_property = get_property; object_class->get_property = get_property;
object_class->set_property = set_property; object_class->set_property = set_property;
device_class->get_generic_capabilities = get_generic_capabilities;
device_class->get_hw_address_length = get_hw_address_length; device_class->get_hw_address_length = get_hw_address_length;
device_class->check_connection_compatible = check_connection_compatible; device_class->check_connection_compatible = check_connection_compatible;
device_class->complete_connection = complete_connection; device_class->complete_connection = complete_connection;

View file

@ -113,12 +113,6 @@ nm_olpc_mesh_error_quark (void)
return quark; return quark;
} }
static guint32
get_generic_capabilities (NMDevice *dev)
{
return NM_DEVICE_CAP_NM_SUPPORTED;
}
static void static void
nm_device_olpc_mesh_init (NMDeviceOlpcMesh * self) nm_device_olpc_mesh_init (NMDeviceOlpcMesh * self)
{ {
@ -477,8 +471,6 @@ nm_device_olpc_mesh_class_init (NMDeviceOlpcMeshClass *klass)
object_class->set_property = set_property; object_class->set_property = set_property;
object_class->dispose = dispose; object_class->dispose = dispose;
parent_class->get_type_capabilities = NULL;
parent_class->get_generic_capabilities = get_generic_capabilities;
parent_class->is_up = is_up; parent_class->is_up = is_up;
parent_class->bring_up = bring_up; parent_class->bring_up = bring_up;
parent_class->take_down = take_down; parent_class->take_down = take_down;

View file

@ -56,9 +56,6 @@ gboolean nm_device_ip_config_should_fail (NMDevice *self, gboolean ip6);
void nm_device_set_firmware_missing (NMDevice *self, gboolean missing); void nm_device_set_firmware_missing (NMDevice *self, gboolean missing);
guint32 nm_device_get_capabilities (NMDevice *dev);
guint32 nm_device_get_type_capabilities (NMDevice *dev);
void nm_device_activate_schedule_stage1_device_prepare (NMDevice *device); void nm_device_activate_schedule_stage1_device_prepare (NMDevice *device);
void nm_device_activate_schedule_stage2_device_config (NMDevice *device); void nm_device_activate_schedule_stage2_device_config (NMDevice *device);

View file

@ -79,7 +79,7 @@ static guint32
get_generic_capabilities (NMDevice *dev) get_generic_capabilities (NMDevice *dev)
{ {
/* We assume VLAN interfaces always support carrier detect */ /* We assume VLAN interfaces always support carrier detect */
return NM_DEVICE_CAP_CARRIER_DETECT | NM_DEVICE_CAP_NM_SUPPORTED; return NM_DEVICE_CAP_CARRIER_DETECT;
} }
static gboolean static gboolean

View file

@ -274,12 +274,6 @@ ipw_rfkill_state_work (gpointer user_data)
/*****************************************************************/ /*****************************************************************/
static guint32
get_generic_capabilities (NMDevice *dev)
{
return NM_DEVICE_CAP_NM_SUPPORTED;
}
static GObject* static GObject*
constructor (GType type, constructor (GType type,
guint n_construct_params, guint n_construct_params,
@ -3352,14 +3346,6 @@ can_interrupt_activation (NMDevice *dev)
return FALSE; return FALSE;
} }
static guint32
get_type_capabilities (NMDevice *dev)
{
return NM_DEVICE_WIFI_GET_PRIVATE (dev)->capabilities;
}
static const GByteArray * static const GByteArray *
get_connection_hw_address (NMDevice *device, get_connection_hw_address (NMDevice *device,
NMConnection *connection) NMConnection *connection)
@ -3652,8 +3638,6 @@ nm_device_wifi_class_init (NMDeviceWifiClass *klass)
object_class->set_property = set_property; object_class->set_property = set_property;
object_class->dispose = dispose; object_class->dispose = dispose;
parent_class->get_type_capabilities = get_type_capabilities;
parent_class->get_generic_capabilities = get_generic_capabilities;
parent_class->hw_bring_up = hw_bring_up; parent_class->hw_bring_up = hw_bring_up;
parent_class->is_up = is_up; parent_class->is_up = is_up;
parent_class->bring_up = bring_up; parent_class->bring_up = bring_up;

View file

@ -348,7 +348,7 @@ nm_device_init (NMDevice *self)
int i; int i;
priv->type = NM_DEVICE_TYPE_UNKNOWN; priv->type = NM_DEVICE_TYPE_UNKNOWN;
priv->capabilities = NM_DEVICE_CAP_NONE; priv->capabilities = NM_DEVICE_CAP_NM_SUPPORTED;
priv->state = NM_DEVICE_STATE_UNMANAGED; priv->state = NM_DEVICE_STATE_UNMANAGED;
priv->state_reason = NM_DEVICE_STATE_REASON_NONE; priv->state_reason = NM_DEVICE_STATE_REASON_NONE;
priv->dhcp_timeout = 0; priv->dhcp_timeout = 0;
@ -507,11 +507,8 @@ constructor (GType type,
goto error; goto error;
} }
priv->capabilities |= NM_DEVICE_GET_CLASS (dev)->get_generic_capabilities (dev); if (NM_DEVICE_GET_CLASS (dev)->get_generic_capabilities)
if (!device_has_capability (dev, NM_DEVICE_CAP_NM_SUPPORTED)) { priv->capabilities |= NM_DEVICE_GET_CLASS (dev)->get_generic_capabilities (dev);
nm_log_warn (LOGD_DEVICE, "(%s): Device unsupported, ignoring.", priv->iface);
goto error;
}
priv->dhcp_manager = nm_dhcp_manager_get (); priv->dhcp_manager = nm_dhcp_manager_get ();
@ -603,12 +600,6 @@ hw_is_up (NMDevice *device)
return ifindex > 0 ? nm_system_iface_is_up (ifindex) : TRUE; return ifindex > 0 ? nm_system_iface_is_up (ifindex) : TRUE;
} }
static guint32
get_generic_capabilities (NMDevice *dev)
{
return 0;
}
void void
nm_device_set_path (NMDevice *self, const char *path) nm_device_set_path (NMDevice *self, const char *path)
{ {
@ -822,36 +813,6 @@ nm_device_get_priority (NMDevice *dev)
} }
} }
/*
* Accessor for capabilities
*/
guint32
nm_device_get_capabilities (NMDevice *self)
{
g_return_val_if_fail (self != NULL, NM_DEVICE_CAP_NONE);
return NM_DEVICE_GET_PRIVATE (self)->capabilities;
}
/*
* Accessor for type-specific capabilities
*/
guint32
nm_device_get_type_capabilities (NMDevice *self)
{
g_return_val_if_fail (self != NULL, NM_DEVICE_CAP_NONE);
return NM_DEVICE_GET_CLASS (self)->get_type_capabilities (self);
}
static guint32
get_type_capabilities (NMDevice *self)
{
return NM_DEVICE_CAP_NONE;
}
const char * const char *
nm_device_get_type_desc (NMDevice *self) nm_device_get_type_desc (NMDevice *self)
{ {
@ -1555,18 +1516,12 @@ nm_device_get_best_auto_connection (NMDevice *dev,
GSList *connections, GSList *connections,
char **specific_object) char **specific_object)
{ {
guint32 caps;
GSList *iter; GSList *iter;
g_return_val_if_fail (NM_IS_DEVICE (dev), NULL); g_return_val_if_fail (NM_IS_DEVICE (dev), NULL);
g_return_val_if_fail (specific_object != NULL, NULL); g_return_val_if_fail (specific_object != NULL, NULL);
g_return_val_if_fail (*specific_object == NULL, NULL); g_return_val_if_fail (*specific_object == NULL, NULL);
caps = nm_device_get_capabilities (dev);
/* Don't use devices that SUCK */
if (!(caps & NM_DEVICE_CAP_NM_SUPPORTED))
return NULL;
for (iter = connections; iter; iter = iter->next) { for (iter = connections; iter; iter = iter->next) {
NMConnection *connection = NM_CONNECTION (iter->data); NMConnection *connection = NM_CONNECTION (iter->data);
@ -4819,9 +4774,6 @@ set_property (GObject *object, guint prop_id,
g_free (priv->firmware_version); g_free (priv->firmware_version);
priv->firmware_version = g_strdup (g_value_get_string (value)); priv->firmware_version = g_strdup (g_value_get_string (value));
break; break;
case PROP_CAPABILITIES:
priv->capabilities = g_value_get_uint (value);
break;
case PROP_IP4_ADDRESS: case PROP_IP4_ADDRESS:
priv->ip4_address = g_value_get_uint (value); priv->ip4_address = g_value_get_uint (value);
break; break;
@ -5021,8 +4973,6 @@ nm_device_class_init (NMDeviceClass *klass)
object_class->constructor = constructor; object_class->constructor = constructor;
object_class->constructed = constructed; object_class->constructed = constructed;
klass->get_type_capabilities = get_type_capabilities;
klass->get_generic_capabilities = get_generic_capabilities;
klass->is_available = is_available; klass->is_available = is_available;
klass->act_stage1_prepare = act_stage1_prepare; klass->act_stage1_prepare = act_stage1_prepare;
klass->act_stage2_config = act_stage2_config; klass->act_stage2_config = act_stage2_config;
@ -5097,7 +5047,7 @@ nm_device_class_init (NMDeviceClass *klass)
"Capabilities", "Capabilities",
"Capabilities", "Capabilities",
0, G_MAXUINT32, NM_DEVICE_CAP_NONE, 0, G_MAXUINT32, NM_DEVICE_CAP_NONE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); G_PARAM_READABLE));
g_object_class_install_property g_object_class_install_property
(object_class, PROP_CARRIER, (object_class, PROP_CARRIER,

View file

@ -120,7 +120,6 @@ typedef struct {
void (* update_initial_hw_address) (NMDevice *self); void (* update_initial_hw_address) (NMDevice *self);
guint (* get_hw_address_length) (NMDevice *self); guint (* get_hw_address_length) (NMDevice *self);
guint32 (* get_type_capabilities) (NMDevice *self);
guint32 (* get_generic_capabilities) (NMDevice *self); guint32 (* get_generic_capabilities) (NMDevice *self);
gboolean (* is_available) (NMDevice *self); gboolean (* is_available) (NMDevice *self);

View file

@ -557,12 +557,6 @@ can_auto_connect (NMDevice *device,
return FALSE; return FALSE;
} }
static guint32
get_generic_capabilities (NMDevice *dev)
{
return NM_DEVICE_CAP_NM_SUPPORTED;
}
static gboolean static gboolean
is_available (NMDevice *device) is_available (NMDevice *device)
{ {
@ -1421,7 +1415,6 @@ nm_device_wimax_class_init (NMDeviceWimaxClass *klass)
device_class->check_connection_available = check_connection_available; device_class->check_connection_available = check_connection_available;
device_class->complete_connection = complete_connection; device_class->complete_connection = complete_connection;
device_class->can_auto_connect = can_auto_connect; device_class->can_auto_connect = can_auto_connect;
device_class->get_generic_capabilities = get_generic_capabilities;
device_class->is_available = is_available; device_class->is_available = is_available;
device_class->act_stage1_prepare = act_stage1_prepare; device_class->act_stage1_prepare = act_stage1_prepare;
device_class->act_stage2_config = act_stage2_config; device_class->act_stage2_config = act_stage2_config;