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