diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2009-05-19 00:21:07 -0700 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2009-05-19 00:21:07 -0700 |
commit | d665a37c4837e35741c14879140632d6c61f3d87 (patch) | |
tree | bf32839cd163bbf084d2ffccb18a945d77007d22 /plugins | |
parent | fe94cc16ed39937261ccd3b721efd9a423a867ac (diff) | |
download | connman-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.c | 19 |
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); |