summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNishant Chaprana <n.chaprana@samsung.com>2019-10-11 12:00:56 +0530
committerNishant Chaprana <n.chaprana@samsung.com>2019-10-11 12:00:56 +0530
commit85aa71a6d25c806e2ef43cbb3caddb1fcfb67f77 (patch)
tree76ac65584cf85c99ee1a24e1dc5c57296ec5e976
parent55711cd139bfe3ecfba94288d49b311994585130 (diff)
downloadconnman-85aa71a6d25c806e2ef43cbb3caddb1fcfb67f77.tar.gz
connman-85aa71a6d25c806e2ef43cbb3caddb1fcfb67f77.tar.bz2
connman-85aa71a6d25c806e2ef43cbb3caddb1fcfb67f77.zip
Extract strength as int32 in SignalPoll method_call's replysubmit/tizen/20191011.090452
WPA Supplicant sends "rssi" as int32 in SignalPoll's method_call reply. So strength should be int32 instead of unsigned char variable. ======================== method call time=1570774928.393859 sender=:1.24 -> destination=fi.w1.wpa_supplicant1 serial=364 path=/fi/w1/wpa_supplicant1/Interfaces/0; interface=fi.w1.wpa_supplicant1.Interface; member=SignalPoll method return time=1570774928.395629 sender=:1.47 -> destination=:1.24 serial=327 reply_serial=364 variant array [ dict entry( string "rssi" variant int32 -60 ) dict entry( string "linkspeed" variant int32 24 ) dict entry( string "noise" variant int32 9999 ) dict entry( string "frequency" variant uint32 2452 ) ] ======================== Change-Id: I23d873bf0c5560cbfaee9ef9bd78fe134f4dba93 Signed-off-by: Nishant Chaprana <n.chaprana@samsung.com>
-rw-r--r--gsupplicant/gsupplicant.h2
-rw-r--r--gsupplicant/supplicant.c6
-rw-r--r--plugins/wifi.c4
3 files changed, 5 insertions, 7 deletions
diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h
index 220e4074..c91ee9e2 100644
--- a/gsupplicant/gsupplicant.h
+++ b/gsupplicant/gsupplicant.h
@@ -296,7 +296,7 @@ typedef void (*GSupplicantInterfaceCallback) (int result,
#if defined TIZEN_EXT
typedef void (*GSupplicantMaxSpeedCallback) (int result, int maxspeed,
- uint8_t strength, void *user_data);
+ int strength, void *user_data);
#endif
void g_supplicant_interface_cancel(GSupplicantInterface *interface);
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index aa7bf16c..159c7105 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -5594,7 +5594,7 @@ static void interface_signalpoll_result(const char *error,
struct interface_signalpoll_data *data = user_data;
int err = 0;
dbus_int32_t maxspeed = 0;
- unsigned char strength = 0;
+ dbus_int32_t strength = 0;
DBusMessageIter sub_iter, dict;
if (error) {
@@ -5622,9 +5622,7 @@ static void interface_signalpoll_result(const char *error,
dbus_message_iter_get_basic(&value, &maxspeed);
SUPPLICANT_DBG("linkspeed = %d", maxspeed);
break;
- }
- case DBUS_TYPE_BYTE:
- if (g_strcmp0(key, "rssi") == 0) {
+ } else if (g_strcmp0(key, "rssi") == 0) {
dbus_message_iter_get_basic(&value, &strength);
SUPPLICANT_DBG("Strength = %d", strength);
break;
diff --git a/plugins/wifi.c b/plugins/wifi.c
index 322cfa0a..e1f23aeb 100644
--- a/plugins/wifi.c
+++ b/plugins/wifi.c
@@ -3793,7 +3793,7 @@ static void set_connection_mode(struct connman_network *network,
connman_network_set_connection_mode(network, conn_mode);
}
-static void signalpoll_callback(int result, int maxspeed, uint8_t strength,
+static void signalpoll_callback(int result, int maxspeed, int strength,
void *user_data)
{
struct connman_network *network = user_data;
@@ -3809,7 +3809,7 @@ static void signalpoll_callback(int result, int maxspeed, uint8_t strength,
DBG("maxspeed = %d, strength = %d", maxspeed, strength);
if (network) {
- connman_network_set_strength(network, strength);
+ connman_network_set_strength(network, (uint8_t)strength);
connman_network_set_maxspeed(network, maxspeed);
set_connection_mode(network, maxspeed);
}