summaryrefslogtreecommitdiff
path: root/bgpd
diff options
context:
space:
mode:
authorAlexander Skorichenko <askorichenko@netgate.com>2025-01-23 12:14:41 +0100
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2025-01-24 06:51:35 +0000
commit8cf10731881959f216a5ce219da88e5407df477f (patch)
tree281de6b90f17c2b23f7294fd956a2353c113f74f /bgpd
parent989328c7e47c7bbcf3364d5424ac17f49fd05c57 (diff)
bgpd: Fix bgp peer solo option
Signed-off-by: Alexander Skorichenko <askorichenko@netgate.com> (cherry picked from commit 7bda2b36a9f2ef9abe8619eeb4432c8f3507e3ec)
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/bgp_updgrp.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/bgpd/bgp_updgrp.c b/bgpd/bgp_updgrp.c
index 90c43b938f..1a60554037 100644
--- a/bgpd/bgp_updgrp.c
+++ b/bgpd/bgp_updgrp.c
@@ -2023,13 +2023,16 @@ int update_group_adjust_soloness(struct peer *peer, int set)
struct peer_group *group;
struct listnode *node, *nnode;
- peer_flag_set(peer, PEER_FLAG_LONESOUL);
-
if (!CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP)) {
peer_lonesoul_or_not(peer, set);
if (peer_established(peer->connection))
bgp_announce_route_all(peer);
} else {
+ if (set)
+ peer_flag_set(peer, PEER_FLAG_LONESOUL);
+ else
+ peer_flag_unset(peer, PEER_FLAG_LONESOUL);
+
group = peer->group;
for (ALL_LIST_ELEMENTS(group->peer, node, nnode, peer)) {
peer_lonesoul_or_not(peer, set);