summaryrefslogtreecommitdiffstats
path: root/proto/ospf
diff options
context:
space:
mode:
authorOndrej Filip <feela@network.cz>2000-09-04 23:21:34 +0200
committerOndrej Filip <feela@network.cz>2000-09-04 23:21:34 +0200
commit52fa3e386948b13b928ff9be778a7de62a00ceb3 (patch)
treeb4425e655feead48abe69b2c96dfb975c1af64f5 /proto/ospf
parentb02e40111ea8d97bf1c3bfa25970ee0d828cd7bc (diff)
downloadbird-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.
Diffstat (limited to 'proto/ospf')
-rw-r--r--proto/ospf/iface.c2
-rw-r--r--proto/ospf/lsupd.c2
-rw-r--r--proto/ospf/ospf.c2
-rw-r--r--proto/ospf/rt.c2
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,&lt->fwaddr,0))!=NULL)
{
- nnh=IPA_NONE;
+ nnh=lt->fwaddr;
nnhi=nn->iface;
}
else