--- src/connman.h | 1 + src/service.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/src/connman.h b/src/connman.h index 6e68c99..3d9f459 100644 --- a/src/connman.h +++ b/src/connman.h @@ -559,6 +559,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 5f7242d..e92412e 100644 --- a/src/service.c +++ b/src/service.c @@ -5145,6 +5145,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; -- 1.7.1 _______________________________________________ connman mailing list connman@connman.net http://lists.connman.net/listinfo/connman