Fixed many bugs in rt calculation and interface adding. Now it seems to be

OK, I'm going to advertise 1.0.4.
This commit is contained in:
Ondrej Filip 2000-09-04 21:21:34 +00:00
parent b02e40111e
commit 52fa3e3869
4 changed files with 6 additions and 2 deletions

View file

@ -173,7 +173,6 @@ ospf_int_sm(struct ospf_iface *ifa, int event)
restart_waittim(ifa); restart_waittim(ifa);
} }
} }
addifa_rtlsa(ifa);
} }
schedule_rt_lsa(ifa->oa); schedule_rt_lsa(ifa->oa);
break; break;
@ -403,6 +402,7 @@ ospf_if_notify(struct proto *p, unsigned flags, struct iface *iface)
lock->iface = iface; lock->iface = iface;
lock->data = ifa; lock->data = ifa;
lock->hook = ospf_ifa_add; lock->hook = ospf_ifa_add;
addifa_rtlsa(ifa);
olock_acquire(lock); olock_acquire(lock);
} }
} }

View file

@ -22,6 +22,8 @@ flood_lsa(struct ospf_neighbor *n, struct ospf_lsa_header *hn,
/* pg 148 */ /* pg 148 */
WALK_LIST(NODE ifa,po->iface_list) WALK_LIST(NODE ifa,po->iface_list)
{ {
if(ifa->stub) continue;
if(hh->type==LSA_T_EXT) if(hh->type==LSA_T_EXT)
{ {
if(ifa->type==OSPF_IT_VLINK) continue; if(ifa->type==OSPF_IT_VLINK) continue;

View file

@ -355,8 +355,10 @@ ospf_rt_notify(struct proto *p, net *n, rte *new, rte *old, ea_list *attrs)
{ {
struct proto_ospf *po=(struct proto_ospf *)p; struct proto_ospf *po=(struct proto_ospf *)p;
/* Temporarily down write anythink
OSPF_TRACE(D_EVENTS, "Got route %I/%d %s", p->name, n->n.prefix, OSPF_TRACE(D_EVENTS, "Got route %I/%d %s", p->name, n->n.prefix,
n->n.pxlen, new ? "up" : "down"); n->n.pxlen, new ? "up" : "down");
*/
if(new) /* Got some new route */ if(new) /* Got some new route */
{ {

View file

@ -400,7 +400,7 @@ ospf_ext_spfa(struct proto_ospf *po) /* FIXME looking into inter-area */
if((nn=neigh_find(p,&lt->fwaddr,0))!=NULL) if((nn=neigh_find(p,&lt->fwaddr,0))!=NULL)
{ {
nnh=IPA_NONE; nnh=lt->fwaddr;
nnhi=nn->iface; nnhi=nn->iface;
} }
else else