summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2014-09-24 14:57:14 -0500
committerDan Williams <dcbw@redhat.com>2014-12-11 10:04:36 -0600
commit56893f6b69a6d657de602a1ac6b6be07b3d24570 (patch)
tree706a320e9e12d879ade11dcd1ceea0a1286dd52e
parent03012efbab58dff810f82a78ac55402c8a61880d (diff)
downloadNetworkManager-56893f6b69a6d657de602a1ac6b6be07b3d24570.tar.gz
core: check duplicate devices by interface name not UDI
We can't have devices with duplicate interface names so we might as well use that for dupe checking instead of the (mostly useless) UDI.
-rw-r--r--src/nm-manager.c28
1 files changed, 13 insertions, 15 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c
index 969c9c9362..ea6bbf4b96 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -460,20 +460,6 @@ active_connection_get_by_path (NMManager *manager, const char *path)
/************************************************************************/
static NMDevice *
-nm_manager_get_device_by_udi (NMManager *manager, const char *udi)
-{
- GSList *iter;
-
- g_return_val_if_fail (udi != NULL, NULL);
-
- for (iter = NM_MANAGER_GET_PRIVATE (manager)->devices; iter; iter = iter->next) {
- if (!g_strcmp0 (nm_device_get_udi (NM_DEVICE (iter->data)), udi))
- return NM_DEVICE (iter->data);
- }
- return NULL;
-}
-
-static NMDevice *
nm_manager_get_device_by_path (NMManager *manager, const char *path)
{
GSList *iter;
@@ -534,6 +520,18 @@ find_device_by_ip_iface (NMManager *self, const gchar *iface)
return NULL;
}
+static NMDevice *
+find_device_by_iface (NMManager *self, const gchar *iface)
+{
+ GSList *iter;
+
+ for (iter = NM_MANAGER_GET_PRIVATE (self)->devices; iter; iter = g_slist_next (iter)) {
+ if (g_strcmp0 (nm_device_get_iface (NM_DEVICE (iter->data)), iface) == 0)
+ return NM_DEVICE (iter->data);
+ }
+ return NULL;
+}
+
static gboolean
manager_sleeping (NMManager *self)
{
@@ -1673,7 +1671,7 @@ add_device (NMManager *self, NMDevice *device, gboolean try_assume)
gboolean connection_assumed = FALSE;
/* No duplicates */
- if (nm_manager_get_device_by_udi (self, nm_device_get_udi (device)))
+ if (find_device_by_iface (self, nm_device_get_iface (device)))
return;
/* Remove existing devices owned by the new device; eg remove ethernet