summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-05-19 00:21:07 -0700
committerMarcel Holtmann <marcel@holtmann.org>2009-05-19 00:21:07 -0700
commitd665a37c4837e35741c14879140632d6c61f3d87 (patch)
treebf32839cd163bbf084d2ffccb18a945d77007d22 /plugins
parentfe94cc16ed39937261ccd3b721efd9a423a867ac (diff)
downloadconnman-d665a37c4837e35741c14879140632d6c61f3d87.tar.gz
connman-d665a37c4837e35741c14879140632d6c61f3d87.tar.bz2
connman-d665a37c4837e35741c14879140632d6c61f3d87.zip
Fall back to using level value when quality is not available
Diffstat (limited to 'plugins')
-rw-r--r--plugins/supplicant.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/plugins/supplicant.c b/plugins/supplicant.c
index 47e39e16..6019bec2 100644
--- a/plugins/supplicant.c
+++ b/plugins/supplicant.c
@@ -1002,8 +1002,19 @@ static void extract_capabilites(DBusMessageIter *value,
static unsigned char calculate_strength(struct supplicant_result *result)
{
- if (result->quality < 0)
- return 0;
+ if (result->quality < 0) {
+ unsigned char strength;
+
+ if (result->level > 0)
+ strength = 100 - result->level;
+ else
+ strength = 120 + result->level;
+
+ if (strength > 100)
+ strength = 100;
+
+ return strength;
+ }
return result->quality;
}
@@ -1047,8 +1058,8 @@ static void properties_reply(DBusPendingCall *call, void *user_data)
memset(&result, 0, sizeof(result));
result.frequency = -1;
result.quality = -1;
- result.level = -1;
- result.noise = -1;
+ result.level = 0;
+ result.noise = 0;
dbus_message_iter_init(reply, &array);