Add BSS flags to scan results to indicate signal quality validity

These flags are used to mark which values (level, noise, qual) are
invalid (not available from the driver) and whether level is using dBm.
D-Bus interface will now only report the values that were available.
This commit is contained in:
Jouni Malinen 2009-02-18 13:40:38 +02:00 committed by Jouni Malinen
parent d173df5232
commit 7c2849d2a0
4 changed files with 30 additions and 6 deletions

View file

@ -436,11 +436,14 @@ DBusMessage * wpas_dbus_bssid_properties(DBusMessage *message,
if (!wpa_dbus_dict_append_uint16(&iter_dict, "capabilities",
res->caps))
goto error;
if (!wpa_dbus_dict_append_int32(&iter_dict, "quality", res->qual))
if (!(res->flags & WPA_SCAN_QUAL_INVALID) &&
!wpa_dbus_dict_append_int32(&iter_dict, "quality", res->qual))
goto error;
if (!wpa_dbus_dict_append_int32(&iter_dict, "noise", res->noise))
if (!(res->flags & WPA_SCAN_NOISE_INVALID) &&
!wpa_dbus_dict_append_int32(&iter_dict, "noise", res->noise))
goto error;
if (!wpa_dbus_dict_append_int32(&iter_dict, "level", res->level))
if (!(res->flags & WPA_SCAN_LEVEL_INVALID) &&
!wpa_dbus_dict_append_int32(&iter_dict, "level", res->level))
goto error;
if (!wpa_dbus_dict_append_int32(&iter_dict, "maxrate",
wpa_scan_get_max_rate(res) * 500000))