mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-16 02:30:52 +00:00
bgpd: Convert peer_af_flag_check() to bool
Since we increased peer->af_flags from uint32_t to uint64_t,
peer_af_flag_check() was historically returning integer, and not bool
as should be.
The bug was that if we have af_flags higher than uint32_t it will never
returned a right value.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
(cherry picked from commit 2c722516c3
)
This commit is contained in:
parent
9a72aeeb04
commit
8587e5434e
@ -16912,7 +16912,7 @@ static bool peergroup_af_flag_check(struct peer *peer, afi_t afi, safi_t safi,
|
|||||||
if (CHECK_FLAG(peer->af_flags_invert[afi][safi], flag))
|
if (CHECK_FLAG(peer->af_flags_invert[afi][safi], flag))
|
||||||
return !peer_af_flag_check(peer, afi, safi, flag);
|
return !peer_af_flag_check(peer, afi, safi, flag);
|
||||||
else
|
else
|
||||||
return !!peer_af_flag_check(peer, afi, safi, flag);
|
return peer_af_flag_check(peer, afi, safi, flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
return !!CHECK_FLAG(peer->af_flags_override[afi][safi], flag);
|
return !!CHECK_FLAG(peer->af_flags_override[afi][safi], flag);
|
||||||
|
@ -980,9 +980,10 @@ void peer_flag_inherit(struct peer *peer, uint64_t flag)
|
|||||||
COND_FLAG(peer->flags, flag, group_val);
|
COND_FLAG(peer->flags, flag, group_val);
|
||||||
}
|
}
|
||||||
|
|
||||||
int peer_af_flag_check(struct peer *peer, afi_t afi, safi_t safi, uint32_t flag)
|
bool peer_af_flag_check(struct peer *peer, afi_t afi, safi_t safi,
|
||||||
|
uint64_t flag)
|
||||||
{
|
{
|
||||||
return CHECK_FLAG(peer->af_flags[afi][safi], flag);
|
return !!CHECK_FLAG(peer->af_flags[afi][safi], flag);
|
||||||
}
|
}
|
||||||
|
|
||||||
void peer_af_flag_inherit(struct peer *peer, afi_t afi, safi_t safi,
|
void peer_af_flag_inherit(struct peer *peer, afi_t afi, safi_t safi,
|
||||||
|
@ -2227,7 +2227,8 @@ extern int peer_af_flag_set(struct peer *peer, afi_t afi, safi_t safi,
|
|||||||
uint64_t flag);
|
uint64_t flag);
|
||||||
extern int peer_af_flag_unset(struct peer *peer, afi_t afi, safi_t safi,
|
extern int peer_af_flag_unset(struct peer *peer, afi_t afi, safi_t safi,
|
||||||
uint64_t flag);
|
uint64_t flag);
|
||||||
extern int peer_af_flag_check(struct peer *, afi_t, safi_t, uint32_t);
|
extern bool peer_af_flag_check(struct peer *peer, afi_t afi, safi_t safi,
|
||||||
|
uint64_t flag);
|
||||||
extern void peer_af_flag_inherit(struct peer *peer, afi_t afi, safi_t safi,
|
extern void peer_af_flag_inherit(struct peer *peer, afi_t afi, safi_t safi,
|
||||||
uint64_t flag);
|
uint64_t flag);
|
||||||
extern void peer_change_action(struct peer *peer, afi_t afi, safi_t safi,
|
extern void peer_change_action(struct peer *peer, afi_t afi, safi_t safi,
|
||||||
|
Loading…
Reference in New Issue
Block a user