From 78a203e7c156b2231e6fd0270d3ea8d7bfa5d2b7 Mon Sep 17 00:00:00 2001 From: Samuel Ortiz Date: Thu, 24 Feb 2011 16:09:50 +0100 Subject: service: Do not always reset the IPv4 state on error clearing When clearing the service error from the oFono plugin, moving the IPv6 state to IDLE can trigger an automatic connection and thus move the IPv4 to the ASSOCIATING state. --- src/service.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') diff --git a/src/service.c b/src/service.c index 91b7739d..a103549f 100644 --- a/src/service.c +++ b/src/service.c @@ -3604,6 +3604,14 @@ int __connman_service_clear_error(struct connman_service *service) __connman_service_indicate_state(service, CONNMAN_SERVICE_STATE_IDLE, CONNMAN_IPCONFIG_TYPE_IPV6); + /* + * Toggling the IPv6 state to IDLE could trigger the auto connect + * machinery and consequently the IPv4 state. + */ + if (service->state_ipv4 != CONNMAN_SERVICE_STATE_UNKNOWN && + service->state_ipv4 != CONNMAN_SERVICE_STATE_FAILURE) + return 0; + return __connman_service_indicate_state(service, CONNMAN_SERVICE_STATE_IDLE, CONNMAN_IPCONFIG_TYPE_IPV4); -- cgit v1.2.3