Update RSSI/Strength of connected service using SignalPoll event
[platform/upstream/connman.git] / gsupplicant / supplicant.c
index 66644c8..d27fe0d 100644 (file)
@@ -5506,6 +5506,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;
        DBusMessageIter sub_iter, dict;
 
        if (error) {
@@ -5534,13 +5535,19 @@ static void interface_signalpoll_result(const char *error,
                                SUPPLICANT_DBG("linkspeed = %d", maxspeed);
                                break;
                        }
+               case DBUS_TYPE_BYTE:
+                       if (g_strcmp0(key, "rssi") == 0) {
+                               dbus_message_iter_get_basic(&value, &strength);
+                               SUPPLICANT_DBG("Strength = %d", strength);
+                               break;
+                       }
                }
                dbus_message_iter_next(&dict);
        }
 
 out:
        if(data->callback)
-               data->callback(err, maxspeed, data->user_data);
+               data->callback(err, maxspeed, strength, data->user_data);
 
        g_free(data->path);
        dbus_free(data);