On 09/07/15 11:14, Patrik Flykt wrote:
> 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.
It only does the job for the networks that have been connected:
if (network->connected)
set_disconnected(network);
This patch prevents services that are BEING connected from getting stuck
in the that state forever.
-Slava
> 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
>
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman