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

Reply via email to