From 273fd2c16475d3d1275a4fe17443c3ba2b93fbc4 Mon Sep 17 00:00:00 2001 From: Ondrej Filip Date: Mon, 5 Jun 2000 02:23:20 +0000 Subject: Many bugfixes (I don't remember all of them): Added link ID calculation for external routes with same prefix but different mask. Bugfix in NET lsa origination. Bugfix in NET hashing. Bugfix in LSA installing. --- proto/ospf/ospf.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'proto/ospf/ospf.c') diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c index 80a0cca..30be459 100644 --- a/proto/ospf/ospf.c +++ b/proto/ospf/ospf.c @@ -247,12 +247,25 @@ ospf_rt_notify(struct proto *p, net *n, rte *new, rte *old, ea_list *attrs) u32 rtid=po->proto.cf->global->router_id; struct ospf_area *oa; struct top_hash_entry *en; + u32 pr=ipa_to_u32(n->n.prefix); + struct ospf_lsa_ext *ext; + int i; /* Flush old external LSA */ WALK_LIST(oa, po->area_list) { - if(en=ospf_hash_find(oa->gr, ipa_to_u32(n->n.prefix), rtid, LSA_T_EXT)) - net_flush_lsa(en,po,oa); + for(i=0;igr, pr, rtid, LSA_T_EXT)) + { + ext=en->lsa_body; + if(ipa_compare(ext->netmask, ipa_mkmask(n->n.pxlen))==0) + { + net_flush_lsa(en,po,oa); + break; + } + } + } } } } -- cgit v1.2.3