summaryrefslogtreecommitdiffstats
path: root/proto/ospf/rt.c
diff options
context:
space:
mode:
Diffstat (limited to 'proto/ospf/rt.c')
-rw-r--r--proto/ospf/rt.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/proto/ospf/rt.c b/proto/ospf/rt.c
index a7b541d..39e84bd 100644
--- a/proto/ospf/rt.c
+++ b/proto/ospf/rt.c
@@ -96,7 +96,7 @@ ospf_rt_spfa(struct ospf_area *oa)
{
case LSA_T_RT:
rt=(struct ospf_lsa_rt *)act->lsa_body;
- if((rt->VEB)&(1>>LSA_RT_V)) oa->trcap=1;
+ if(rt->veb.bit.v) oa->trcap=1;
rr=(struct ospf_lsa_rt_link *)(rt+1);
DBG(" Number of links: %u\n",rt->links);
for(i=0;i<rt->links;i++)
@@ -269,6 +269,7 @@ ospf_ext_spfa(struct proto_ospf *po) /* FIXME looking into inter-area */
struct proto *p=&po->proto;
struct ospf_lsa_ext *le;
struct ospf_lsa_ext_tos *lt;
+ struct ospf_lsa_rt *rt;
int mlen;
ip_addr ip,nnh;
struct iface *nnhi=NULL;
@@ -347,7 +348,8 @@ ospf_ext_spfa(struct proto_ospf *po) /* FIXME looking into inter-area */
}
}
}
- if((absr==NULL)||(absr->dist==LSINFINITY))
+ rt=(struct ospf_lsa_rt *)absr->lsa_body;
+ if((absr==NULL)||(absr->dist==LSINFINITY)||(rt->veb.bit.e==0))
{
DBG("ASBR is null or its dist=INF\n");
continue;