From 059fc1e94abcd658e9340313ffd080c5829ba8ef Mon Sep 17 00:00:00 2001 From: Ondrej Filip Date: Wed, 16 Aug 2000 19:37:04 +0000 Subject: [PATCH] My calculation of external routes violated rfc. :-( --- proto/ospf/rt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/proto/ospf/rt.c b/proto/ospf/rt.c index 2ca1b36e..f7397c16 100644 --- a/proto/ospf/rt.c +++ b/proto/ospf/rt.c @@ -399,7 +399,9 @@ ospf_ext_spfa(struct proto_ospf *po) /* FIXME looking into inter-area */ } nf=fib_get(ef,&ip, mlen); - if((nf->metric>met) || ((nf->metric==met)&&(nf->metric2>met2))) + if(((nf->metric>met)&&(nf->metric2==met2)) || /* both E1 or E2 with same metric */ + ((nf->metric2>met2)&&(nf->metric2!=LSINFINITY)) || /* E2 smaller and 1st is not E1 */ + ((nf->metric2==LSINFINITY)&&(met2!=LSINFINITY))) /* 2nd is E1 and 1st is E2 */ { nf->metric=met; nf->metric2=met2;