-/* $OpenBSD: rde_update.c,v 1.133 2022/02/24 14:54:03 claudio Exp $ */
+/* $OpenBSD: rde_update.c,v 1.134 2022/03/01 09:53:42 claudio Exp $ */
/*
* Copyright (c) 2004 Claudio Jeker <claudio@openbsd.org>
* prefix_adjout_destroy() can't handle that.
*/
RB_REMOVE(prefix_tree, &peer->updates[aid], p);
- p->flags &= ~PREFIX_FLAG_MASK;
+ p->flags &= ~PREFIX_FLAG_UPDATE;
prefix_adjout_destroy(p);
return 1;
}
np->eor)
done = 1;
- /* prefix sent, remove from list and clear flag */
- RB_REMOVE(prefix_tree, prefix_head, p);
- p->flags &= ~PREFIX_FLAG_MASK;
if (withdraw) {
/* prefix no longer needed, remove it */
peer->prefix_sent_withdraw++;
} else {
/* prefix still in Adj-RIB-Out, keep it */
+ RB_REMOVE(prefix_tree, prefix_head, p);
+ p->flags &= ~PREFIX_FLAG_UPDATE;
peer->up_nlricnt--;
peer->prefix_sent_update++;
}