On Wed, 2015-07-08 at 17:05 +0300, Slava Monich wrote: > Otherwise, service may get stuck in the ASSOCIATION state forever and > update_from_network() won't do anything because is_connecting() keeps > returning true, making recovery impossible.
This is not the place to handle a stuck association. Calling __connman_service_remove_from_network() is always due to a group removal, causes no change to connectivity status except that the gateway is removed. It's the set_disconnected() earlier in src/network.c, network_remove() that is supposed to do the job. Cheers, Patrik > --- > src/service.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/src/service.c b/src/service.c > index 2d8245e..bd150aa 100644 > --- a/src/service.c > +++ b/src/service.c > @@ -6858,6 +6858,12 @@ void __connman_service_remove_from_network(struct > connman_network *network) > __connman_connection_gateway_remove(service, > CONNMAN_IPCONFIG_TYPE_ALL); > > + __connman_service_ipconfig_indicate_state(service, > + CONNMAN_SERVICE_STATE_IDLE, > + CONNMAN_IPCONFIG_TYPE_IPV4); > + __connman_service_ipconfig_indicate_state(service, > + CONNMAN_SERVICE_STATE_IDLE, > + CONNMAN_IPCONFIG_TYPE_IPV6); > connman_service_unref(service); > } > _______________________________________________ connman mailing list connman@connman.net https://lists.connman.net/mailman/listinfo/connman