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
signature.asc
Description: OpenPGP digital signature
