On 21/08/15 17:15, Simon Wunderlich wrote:
> In the case when a temporary entry is added first and a proper tt entry
> is added after that, the temporary tt entry is kept in the orig list.
> However the temporary flag is removed at this point, and therefore the
> purge function can not find this temporary entry anymore.
> 
> Therefore, remove the previous temp entry before adding the new proper
> one.
> 

[..]

>               /* if the client was temporary added before receiving the first
> -              * OGM announcing it, we have to clear the TEMP flag
> +              * OGM announcing it, we have to clear the TEMP flag. Also,
> +              * remove the previous temporary orig node and re-add it
> +              * if required. If the orig entry changed, the new one which
> +              * is a non-temporary entry is preferred.
>                */
> -             common->flags &= ~BATADV_TT_CLIENT_TEMP;
> +             if (common->flags & BATADV_TT_CLIENT_TEMP) {
> +                     batadv_tt_global_del_orig_list(tt_global_entry);
> +                     common->flags &= ~BATADV_TT_CLIENT_TEMP;
> +             }

mh...interesting..and nice catch. Have you tested this with a client
roaming from A to B during the "speedy join" period?


Cheers,


-- 
Antonio Quartulli

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to