mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 23:58:44 +00:00
Merge pull request #5899 from Spantik/clear_bgp_bug
BGPD: Cores when cleared with doppelganger.
This commit is contained in:
commit
22d4e6c0ac
@ -753,7 +753,7 @@ static void bgp_clear_vty_error(struct vty *vty, struct peer *peer, afi_t afi,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int bgp_peer_clear(struct peer *peer, afi_t afi, safi_t safi,
|
static int bgp_peer_clear(struct peer *peer, afi_t afi, safi_t safi,
|
||||||
struct listnode *nnode, enum bgp_clear_type stype)
|
struct listnode **nnode, enum bgp_clear_type stype)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
@ -767,7 +767,7 @@ static int bgp_peer_clear(struct peer *peer, afi_t afi, safi_t safi,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (stype == BGP_CLEAR_SOFT_NONE)
|
if (stype == BGP_CLEAR_SOFT_NONE)
|
||||||
ret = peer_clear(peer, &nnode);
|
ret = peer_clear(peer, nnode);
|
||||||
else
|
else
|
||||||
ret = peer_clear_soft(peer, tmp_afi, tmp_safi,
|
ret = peer_clear_soft(peer, tmp_afi, tmp_safi,
|
||||||
stype);
|
stype);
|
||||||
@ -782,7 +782,7 @@ static int bgp_peer_clear(struct peer *peer, afi_t afi, safi_t safi,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (stype == BGP_CLEAR_SOFT_NONE)
|
if (stype == BGP_CLEAR_SOFT_NONE)
|
||||||
ret = peer_clear(peer, &nnode);
|
ret = peer_clear(peer, nnode);
|
||||||
else
|
else
|
||||||
ret = peer_clear_soft(peer, afi,
|
ret = peer_clear_soft(peer, afi,
|
||||||
tmp_safi, stype);
|
tmp_safi, stype);
|
||||||
@ -793,7 +793,7 @@ static int bgp_peer_clear(struct peer *peer, afi_t afi, safi_t safi,
|
|||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (stype == BGP_CLEAR_SOFT_NONE)
|
if (stype == BGP_CLEAR_SOFT_NONE)
|
||||||
ret = peer_clear(peer, &nnode);
|
ret = peer_clear(peer, nnode);
|
||||||
else
|
else
|
||||||
ret = peer_clear_soft(peer, afi, safi, stype);
|
ret = peer_clear_soft(peer, afi, safi, stype);
|
||||||
}
|
}
|
||||||
@ -826,7 +826,7 @@ static int bgp_clear(struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi,
|
|||||||
if (CHECK_FLAG(peer->flags, PEER_FLAG_GRACEFUL_RESTART))
|
if (CHECK_FLAG(peer->flags, PEER_FLAG_GRACEFUL_RESTART))
|
||||||
gr_router_detected = true;
|
gr_router_detected = true;
|
||||||
|
|
||||||
ret = bgp_peer_clear(peer, afi, safi, nnode,
|
ret = bgp_peer_clear(peer, afi, safi, &nnode,
|
||||||
stype);
|
stype);
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
@ -901,7 +901,7 @@ static int bgp_clear(struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi,
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (ALL_LIST_ELEMENTS(group->peer, node, nnode, peer)) {
|
for (ALL_LIST_ELEMENTS(group->peer, node, nnode, peer)) {
|
||||||
ret = bgp_peer_clear(peer, afi, safi, nnode, stype);
|
ret = bgp_peer_clear(peer, afi, safi, &nnode, stype);
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
bgp_clear_vty_error(vty, peer, afi, safi, ret);
|
bgp_clear_vty_error(vty, peer, afi, safi, ret);
|
||||||
@ -928,7 +928,7 @@ static int bgp_clear(struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi,
|
|||||||
if (CHECK_FLAG(peer->flags, PEER_FLAG_GRACEFUL_RESTART))
|
if (CHECK_FLAG(peer->flags, PEER_FLAG_GRACEFUL_RESTART))
|
||||||
gr_router_detected = true;
|
gr_router_detected = true;
|
||||||
|
|
||||||
ret = bgp_peer_clear(peer, afi, safi, nnode, stype);
|
ret = bgp_peer_clear(peer, afi, safi, &nnode, stype);
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
bgp_clear_vty_error(vty, peer, afi, safi, ret);
|
bgp_clear_vty_error(vty, peer, afi, safi, ret);
|
||||||
@ -965,7 +965,7 @@ static int bgp_clear(struct vty *vty, struct bgp *bgp, afi_t afi, safi_t safi,
|
|||||||
if (CHECK_FLAG(peer->flags, PEER_FLAG_GRACEFUL_RESTART))
|
if (CHECK_FLAG(peer->flags, PEER_FLAG_GRACEFUL_RESTART))
|
||||||
gr_router_detected = true;
|
gr_router_detected = true;
|
||||||
|
|
||||||
ret = bgp_peer_clear(peer, afi, safi, nnode, stype);
|
ret = bgp_peer_clear(peer, afi, safi, &nnode, stype);
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
bgp_clear_vty_error(vty, peer, afi, safi, ret);
|
bgp_clear_vty_error(vty, peer, afi, safi, ret);
|
||||||
|
Loading…
Reference in New Issue
Block a user