summaryrefslogtreecommitdiff
path: root/bgpd
diff options
context:
space:
mode:
authorhasso <hasso>2005-01-24 09:29:42 +0000
committerhasso <hasso>2005-01-24 09:29:42 +0000
commit6d69429c1bff7291bac52a05234c12434f152a94 (patch)
treee37c98526a257a907e23986e6ada290bc39f09c9 /bgpd
parentc15cb24241277db9fb4102ddc712dc3297f16d1f (diff)
* bgp_route.c: Fix showstopper bug. New route must be selected also
if old one is flaged as BGP_INFO_ATTR_CHANGED.
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/ChangeLog5
-rw-r--r--bgpd/bgp_route.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog
index f66857c0..93dc8c3b 100644
--- a/bgpd/ChangeLog
+++ b/bgpd/ChangeLog
@@ -1,3 +1,8 @@
+2005-01-24 Hasso Tepper <hasso at quagga.net>
+
+ * bgp_route.c: Fix showstopper bug. New route must be selected also
+ if old one is flaged as BGP_INFO_ATTR_CHANGED.
+
2005-01-17 Hasso Tepper <hasso at quagga.net>
* bgp_route.c: Clear peer's routing table regardless whether it's
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index 16fcc89f..849cc44f 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -1097,7 +1097,8 @@ bgp_best_selection (struct bgp *bgp, struct bgp_node *rn, struct bgp_info_pair *
new_select = ri;
}
- if ( (! old_select) || old_select != new_select)
+ if ( (! old_select) || old_select != new_select
+ || CHECK_FLAG (old_select->flags, BGP_INFO_ATTR_CHANGED))
{
if (old_select)
UNSET_FLAG (old_select->flags, BGP_INFO_SELECTED);