Hi Arjuna,

>We are currently investigating an issue with IPv6 getting disabled during a
>sequence when a user switches WIFi networks.

Noticed the same thing yesterday and was about to look into it today. ;)

>The sequence of events from the client perspective is:
>2. The user disconnects from NetworkA and connects to NetworkB

I can reproduce the problem if switch to another wifi while being connected to 
another. However if especially disconnect from the wifi I'm being connected 
currently and then connect to another wifi-network the ipv6 does not get 
disabled.

>As a potential fix/workaround, I've made the following change to enable
>IPv6 if IPv6 is not idle to service_lower_up():

>--- a/connman/src/service.c
>+++ b/connman/src/service.c
>@@ -6038,6 +6038,9 @@ static void service_lower_up(struct connman_ipconfig
>*ipconfig)
>
>       DBG("%s lower up", __connman_ipconfig_get_ifname(ipconfig));
>
>+       if (is_idle_state(service,service->state_ipv6) == FALSE)
>+               __connman_ipconfig_enable_ipv6(service->ipconfig_ipv6);
>+
>        stats_start(service);
>}

>Thoughts? I suspect there is a more elegant way of doing this, and would
>appreciate any feedback.

Looks fine to me but I'm not the one to decide if it's good. ;)

Br,
Pasi
_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to