From: David Lamparter Date: Sun, 24 Oct 2021 11:46:06 +0000 (+0200) Subject: pimd: fix event order for forward_stop() X-Git-Tag: base_8.2~182^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=5e0105ff80eb5e7b60cd1cdbe16aabb9f8b20463;p=mirror%2Ffrr.git pimd: fix event order for forward_stop() `pim_ifchannel_ifjoin_switch()` changes flags that `pim_forward_stop()` looks at. This leads to data flow continuing until we have some reason to sync state again. Signed-off-by: David Lamparter --- diff --git a/pimd/pim_ifchannel.c b/pimd/pim_ifchannel.c index 677833c9b8..3163f7f548 100644 --- a/pimd/pim_ifchannel.c +++ b/pimd/pim_ifchannel.c @@ -653,8 +653,8 @@ struct pim_ifchannel *pim_ifchannel_add(struct interface *ifp, static void ifjoin_to_noinfo(struct pim_ifchannel *ch) { - pim_forward_stop(ch); pim_ifchannel_ifjoin_switch(__func__, ch, PIM_IFJOIN_NOINFO); + pim_forward_stop(ch); if (ch->upstream) PIM_UPSTREAM_FLAG_UNSET_SRC_PIM(ch->upstream->flags);