Core service part should be the only one which maintains service's state.
---
 src/connman.h |    1 -
 src/service.c |   44 ++++++++++++++++++++++----------------------
 2 files changed, 22 insertions(+), 23 deletions(-)

diff --git a/src/connman.h b/src/connman.h
index bd815a0..85055b1 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -536,7 +536,6 @@ void __connman_service_notify(struct connman_service 
*service,
 
 int __connman_service_counter_register(const char *counter);
 void __connman_service_counter_unregister(const char *counter);
-void __connman_service_downgrade_state(struct connman_service *service);
 
 struct connman_session;
 struct service_entry;
diff --git a/src/service.c b/src/service.c
index b92227c..3882f70 100644
--- a/src/service.c
+++ b/src/service.c
@@ -3285,6 +3285,25 @@ static gboolean check_suitable_state(enum 
connman_service_state a,
        return a == b;
 }
 
+static void downgrade_state(struct connman_service *service)
+{
+       if (service == NULL)
+               return;
+
+       DBG("service %p state4 %d state6 %d", service, service->state_ipv4,
+                                               service->state_ipv6);
+
+       if (service->state_ipv4 == CONNMAN_SERVICE_STATE_ONLINE)
+               __connman_service_ipconfig_indicate_state(service,
+                                               CONNMAN_SERVICE_STATE_READY,
+                                               CONNMAN_IPCONFIG_TYPE_IPV4);
+
+       if (service->state_ipv6 == CONNMAN_SERVICE_STATE_ONLINE)
+               __connman_service_ipconfig_indicate_state(service,
+                                               CONNMAN_SERVICE_STATE_READY,
+                                               CONNMAN_IPCONFIG_TYPE_IPV6);
+}
+
 static void apply_relevant_default_downgrade(struct connman_service *service)
 {
        struct connman_service *def_service;
@@ -3386,11 +3405,11 @@ static DBusMessage *move_service(DBusConnection *conn,
        if (before == TRUE) {
                apply_relevant_default_downgrade(target);
                g_sequence_move(src, dst);
-               __connman_service_downgrade_state(service);
+               downgrade_state(service);
        } else {
                apply_relevant_default_downgrade(service);
                g_sequence_move(dst, src);
-               __connman_service_downgrade_state(target);
+               downgrade_state(target);
        }
 
        services_changed(FALSE);
@@ -4000,7 +4019,7 @@ static void downgrade_connected_services(void)
                if (up_service->state == CONNMAN_SERVICE_STATE_ONLINE)
                        return;
 
-               __connman_service_downgrade_state(up_service);
+               downgrade_state(up_service);
 
                iter = g_sequence_iter_next(iter);
        }
@@ -5769,25 +5788,6 @@ __connman_service_create_from_provider(struct 
connman_provider *provider)
        return service;
 }
 
-void __connman_service_downgrade_state(struct connman_service *service)
-{
-       if (service == NULL)
-               return;
-
-       DBG("service %p state4 %d state6 %d", service, service->state_ipv4,
-                                               service->state_ipv6);
-
-       if (service->state_ipv4 == CONNMAN_SERVICE_STATE_ONLINE)
-               __connman_service_ipconfig_indicate_state(service,
-                                               CONNMAN_SERVICE_STATE_READY,
-                                               CONNMAN_IPCONFIG_TYPE_IPV4);
-
-       if (service->state_ipv6 == CONNMAN_SERVICE_STATE_ONLINE)
-               __connman_service_ipconfig_indicate_state(service,
-                                               CONNMAN_SERVICE_STATE_READY,
-                                               CONNMAN_IPCONFIG_TYPE_IPV6);
-}
-
 int __connman_service_init(void)
 {
        DBG("");
-- 
1.7.8.rc3

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

Reply via email to