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