diff options
author | Dan Williams <dcbw@redhat.com> | 2014-09-24 14:57:14 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2014-12-11 10:04:36 -0600 |
commit | 56893f6b69a6d657de602a1ac6b6be07b3d24570 (patch) | |
tree | 706a320e9e12d879ade11dcd1ceea0a1286dd52e | |
parent | 03012efbab58dff810f82a78ac55402c8a61880d (diff) | |
download | NetworkManager-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.c | 28 |
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 |