From: Daniel Wagner <[email protected]>

If a service changes the signal strength while it is in
idle state, we will mostlikely send a ServiceChanged signal
even though nothing has changed. There is code for checking
if something has changed in the order but it works only for
a few cases.
---

Hi,

I guess the proper solution would be to sort into a tempory list
and compare the result.

cheers,
daniel

 src/service.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/service.c b/src/service.c
index e944ff5..85861ee 100644
--- a/src/service.c
+++ b/src/service.c
@@ -6260,10 +6260,13 @@ void __connman_service_update_from_network(struct 
connman_network *network)
                goto roaming;
 
        service->strength = strength;
-       need_sort = TRUE;
-
        strength_changed(service);
 
+       if (is_connecting(service) == TRUE ||
+                       is_connected(service) == TRUE) {
+               need_sort = TRUE;
+       }
+
 roaming:
        roaming = connman_network_get_bool(service->network, "Roaming");
        if (roaming == service->roaming)
-- 
1.7.11.1.165.g299666c

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to