From ab16660c0aebd651a10daefd85fca82a0b4dfbb0 Mon Sep 17 00:00:00 2001 From: Jukka Rissanen Date: Wed, 24 Aug 2011 11:36:40 +0300 Subject: [PATCH] service: Allow state downgrade from online to ready --- src/connman.h | 1 + src/service.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/connman.h b/src/connman.h index 17add6d..d74e653 100644 --- a/src/connman.h +++ b/src/connman.h @@ -560,6 +560,7 @@ 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 2819d51..0380dbe 100644 --- a/src/service.c +++ b/src/service.c @@ -5158,6 +5158,25 @@ __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); +} + static int service_load(struct connman_service *service) { const char *ident = service->profile; -- 2.7.4