diff options
author | Ondrej Filip <feela@network.cz> | 2000-09-04 23:21:34 +0200 |
---|---|---|
committer | Ondrej Filip <feela@network.cz> | 2000-09-04 23:21:34 +0200 |
commit | 52fa3e386948b13b928ff9be778a7de62a00ceb3 (patch) | |
tree | b4425e655feead48abe69b2c96dfb975c1af64f5 | |
parent | b02e40111ea8d97bf1c3bfa25970ee0d828cd7bc (diff) | |
download | bird-52fa3e386948b13b928ff9be778a7de62a00ceb3.tar bird-52fa3e386948b13b928ff9be778a7de62a00ceb3.zip |
Fixed many bugs in rt calculation and interface adding. Now it seems to be
OK, I'm going to advertise 1.0.4.
-rw-r--r-- | proto/ospf/iface.c | 2 | ||||
-rw-r--r-- | proto/ospf/lsupd.c | 2 | ||||
-rw-r--r-- | proto/ospf/ospf.c | 2 | ||||
-rw-r--r-- | proto/ospf/rt.c | 2 |
4 files changed, 6 insertions, 2 deletions
diff --git a/proto/ospf/iface.c b/proto/ospf/iface.c index 0c39862..9cd4692 100644 --- a/proto/ospf/iface.c +++ b/proto/ospf/iface.c @@ -173,7 +173,6 @@ ospf_int_sm(struct ospf_iface *ifa, int event) restart_waittim(ifa); } } - addifa_rtlsa(ifa); } schedule_rt_lsa(ifa->oa); break; @@ -403,6 +402,7 @@ ospf_if_notify(struct proto *p, unsigned flags, struct iface *iface) lock->iface = iface; lock->data = ifa; lock->hook = ospf_ifa_add; + addifa_rtlsa(ifa); olock_acquire(lock); } } diff --git a/proto/ospf/lsupd.c b/proto/ospf/lsupd.c index a9bca02..f0e6e5a 100644 --- a/proto/ospf/lsupd.c +++ b/proto/ospf/lsupd.c @@ -22,6 +22,8 @@ flood_lsa(struct ospf_neighbor *n, struct ospf_lsa_header *hn, /* pg 148 */ WALK_LIST(NODE ifa,po->iface_list) { + if(ifa->stub) continue; + if(hh->type==LSA_T_EXT) { if(ifa->type==OSPF_IT_VLINK) continue; diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c index 83bcc56..151187f 100644 --- a/proto/ospf/ospf.c +++ b/proto/ospf/ospf.c @@ -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; +/* Temporarily down write anythink OSPF_TRACE(D_EVENTS, "Got route %I/%d %s", p->name, n->n.prefix, n->n.pxlen, new ? "up" : "down"); +*/ if(new) /* Got some new route */ { diff --git a/proto/ospf/rt.c b/proto/ospf/rt.c index 39e84bd..aeb9a94 100644 --- a/proto/ospf/rt.c +++ b/proto/ospf/rt.c @@ -400,7 +400,7 @@ ospf_ext_spfa(struct proto_ospf *po) /* FIXME looking into inter-area */ if((nn=neigh_find(p,<->fwaddr,0))!=NULL) { - nnh=IPA_NONE; + nnh=lt->fwaddr; nnhi=nn->iface; } else |