---
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
[email protected]
http://lists.connman.net/listinfo/connman