diff --git a/ChangeLog b/ChangeLog index 498a48ec1a..f8aed8ac58 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-07-07 Dan Williams + + Patch from Derek Atkins + * src/nm-dbus-net.c: + - (nm_dbus_get_ap_from_object_path): differentiate similar ESSIDs + 2005-07-07 Dan Williams Patch from Jos Dehaes diff --git a/src/nm-dbus-net.c b/src/nm-dbus-net.c index f3e1dcf6dd..4ff3807eea 100644 --- a/src/nm-dbus-net.c +++ b/src/nm-dbus-net.c @@ -52,14 +52,21 @@ static NMAccessPoint *nm_dbus_get_ap_from_object_path (const char *path, NMDevic while ((ap = nm_ap_list_iter_next (iter))) { + int len; + snprintf (compare_path, 100, "%s/%s/Networks/%s", NM_DBUS_PATH_DEVICES, nm_device_get_iface (dev), nm_ap_get_essid (ap)); escaped_compare_path = nm_dbus_escape_object_path (compare_path); - if (strncmp (path, escaped_compare_path, - strlen (escaped_compare_path)) == 0) + + len = strlen(escaped_compare_path); + if (strncmp (path, escaped_compare_path, len) == 0) { - g_free (escaped_compare_path); - break; + /* Differentiate between 'foo' and 'foo-a' */ + if (path[len] == '\0' || path[len] == '/') + { + g_free (escaped_compare_path); + break; + } } g_free (escaped_compare_path); }