mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 20:32:18 +00:00
pimd: Stop join/prunes from crashing
When we receive a join/prune for a upstream that we are unable to create, safely ignore the request until the situation resolves itself. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
8971ccb29d
commit
905d48fa7e
@ -108,6 +108,15 @@ static void recv_join(struct interface *ifp,
|
|||||||
struct pim_upstream *child;
|
struct pim_upstream *child;
|
||||||
struct listnode *up_node;
|
struct listnode *up_node;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If we are unable to create upstream information
|
||||||
|
* Due to any number of reasons it is possible
|
||||||
|
* That we might have not created the ifchannel
|
||||||
|
* and upstream above. So just fall out gracefully
|
||||||
|
*/
|
||||||
|
if (!up)
|
||||||
|
return;
|
||||||
|
|
||||||
for (ALL_LIST_ELEMENTS_RO (qpim_upstream_list, up_node, child))
|
for (ALL_LIST_ELEMENTS_RO (qpim_upstream_list, up_node, child))
|
||||||
{
|
{
|
||||||
if (child->parent == up)
|
if (child->parent == up)
|
||||||
@ -178,6 +187,13 @@ static void recv_prune(struct interface *ifp,
|
|||||||
struct pim_upstream *child;
|
struct pim_upstream *child;
|
||||||
struct listnode *up_node;
|
struct listnode *up_node;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If up is not found then there is nothing
|
||||||
|
* to do here (see recv_join above)
|
||||||
|
*/
|
||||||
|
if (!up)
|
||||||
|
return;
|
||||||
|
|
||||||
for (ALL_LIST_ELEMENTS_RO (qpim_upstream_list, up_node, child))
|
for (ALL_LIST_ELEMENTS_RO (qpim_upstream_list, up_node, child))
|
||||||
{
|
{
|
||||||
if (child->parent == up)
|
if (child->parent == up)
|
||||||
|
Loading…
Reference in New Issue
Block a user