wifi: fix nm_wifi_ap_get_id() to parse the ID as guint64 from the exported path

This commit is contained in:
Thomas Haller 2017-01-04 12:11:09 +01:00
parent 49ec12bab3
commit d9efe73fed
3 changed files with 17 additions and 7 deletions

View file

@ -1000,8 +1000,8 @@ can_auto_connect (NMDevice *device,
static int
ap_id_compare (gconstpointer p_a, gconstpointer p_b, gpointer user_data)
{
guint32 a_id = nm_wifi_ap_get_id (*((NMWifiAP **) p_a));
guint32 b_id = nm_wifi_ap_get_id (*((NMWifiAP **) p_b));
guint64 a_id = nm_wifi_ap_get_id (*((NMWifiAP **) p_a));
guint64 b_id = nm_wifi_ap_get_id (*((NMWifiAP **) p_b));
return a_id < b_id ? -1 : (a_id == b_id ? 0 : 1);
}

View file

@ -96,13 +96,23 @@ nm_wifi_ap_get_supplicant_path (NMWifiAP *ap)
return NM_WIFI_AP_GET_PRIVATE (ap)->supplicant_path;
}
guint32
guint64
nm_wifi_ap_get_id (NMWifiAP *ap)
{
g_return_val_if_fail (NM_IS_WIFI_AP (ap), 0);
g_return_val_if_fail (nm_exported_object_is_exported (NM_EXPORTED_OBJECT (ap)), 0);
const char *path;
guint64 i;
return atoi (strrchr (nm_exported_object_get_path (NM_EXPORTED_OBJECT (ap)), '/') + 1);
g_return_val_if_fail (NM_IS_WIFI_AP (ap), 0);
path = nm_exported_object_get_path (NM_EXPORTED_OBJECT (ap));
g_return_val_if_fail (path, 0);
nm_assert (g_str_has_prefix (path, NM_DBUS_PATH_ACCESS_POINT"/"));
i = _nm_utils_ascii_str_to_int64 (&path[NM_STRLEN (NM_DBUS_PATH_ACCESS_POINT"/")], 10, 1, G_MAXINT64, 0);
nm_assert (i);
return i;
}
const GByteArray * nm_wifi_ap_get_ssid (const NMWifiAP *ap)

View file

@ -66,7 +66,7 @@ gboolean nm_wifi_ap_complete_connection (NMWifiAP *self,
GError **error);
const char * nm_wifi_ap_get_supplicant_path (NMWifiAP *ap);
guint32 nm_wifi_ap_get_id (NMWifiAP *ap);
guint64 nm_wifi_ap_get_id (NMWifiAP *ap);
const GByteArray *nm_wifi_ap_get_ssid (const NMWifiAP *ap);
void nm_wifi_ap_set_ssid (NMWifiAP *ap,
const guint8 *ssid,