summaryrefslogtreecommitdiffstats
path: root/proto/rip
diff options
context:
space:
mode:
authorOndrej Filip <feela@network.cz>2004-06-23 23:36:55 +0200
committerOndrej Filip <feela@network.cz>2004-06-23 23:36:55 +0200
commit973cf09c3b311691d063a00f52be7e9b8bdec376 (patch)
treefffb94fcad904a3eea86b9a7935f67b673366628 /proto/rip
parent3fe5f8990764b33cc0245317e90fbbcd0cde84de (diff)
downloadbird-973cf09c3b311691d063a00f52be7e9b8bdec376.tar
bird-973cf09c3b311691d063a00f52be7e9b8bdec376.zip
Hotfix to problem with metric change reported by Luca.
Diffstat (limited to 'proto/rip')
-rw-r--r--proto/rip/rip.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/proto/rip/rip.c b/proto/rip/rip.c
index 71758cc..ad4fd95 100644
--- a/proto/rip/rip.c
+++ b/proto/rip/rip.c
@@ -267,7 +267,10 @@ rip_rte_update_if_better(rtable *tab, net *net, struct proto *p, rte *new)
rte *old;
old = rte_find(net, p);
- if (!old || p->rte_better(new, old))
+ if (!old || p->rte_better(new, old) ||
+ (ipa_equal(old->attrs->from, new->attrs->from) &&
+ (old->u.rip.metric != new->u.rip.metric)) )
+
rte_update(tab, net, p, new);
}