summaryrefslogtreecommitdiff
path: root/proto/ospf
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2013-12-10 22:30:46 +0100
committerOndrej Zajicek <santiago@crfreenet.org>2013-12-10 22:30:46 +0100
commit6601a14831cdd32fc671ebc9dc299d2be427e489 (patch)
tree00b89854e36fbecd17443d09587c7cd80352893f /proto/ospf
parent2d0b7e24a52d51904faa8a8e96d68863491c110a (diff)
parent283c7dfada53a6dee6a8a17ecab492ffafd44b66 (diff)
Merge branch 'add-path'
Diffstat (limited to 'proto/ospf')
-rw-r--r--proto/ospf/ospf.c10
-rw-r--r--proto/ospf/rt.c8
2 files changed, 9 insertions, 9 deletions
diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c
index 2fa87201..232f3f6c 100644
--- a/proto/ospf/ospf.c
+++ b/proto/ospf/ospf.c
@@ -300,14 +300,14 @@ ospf_init(struct proto_config *c)
{
struct proto *p = proto_new(c, sizeof(struct proto_ospf));
- p->make_tmp_attrs = ospf_make_tmp_attrs;
- p->store_tmp_attrs = ospf_store_tmp_attrs;
- p->import_control = ospf_import_control;
- p->reload_routes = ospf_reload_routes;
p->accept_ra_types = RA_OPTIMAL;
p->rt_notify = ospf_rt_notify;
p->if_notify = ospf_if_notify;
p->ifa_notify = ospf_ifa_notify;
+ p->import_control = ospf_import_control;
+ p->reload_routes = ospf_reload_routes;
+ p->make_tmp_attrs = ospf_make_tmp_attrs;
+ p->store_tmp_attrs = ospf_store_tmp_attrs;
p->rte_better = ospf_rte_better;
p->rte_same = ospf_rte_same;
@@ -504,7 +504,7 @@ ospf_import_control(struct proto *p, rte ** new, ea_list ** attrs,
struct ospf_area *oa = ospf_main_area((struct proto_ospf *) p);
rte *e = *new;
- if (p == e->attrs->proto)
+ if (e->attrs->src->proto == p)
return -1; /* Reject our own routes */
if (oa_is_stub(oa))
diff --git a/proto/ospf/rt.c b/proto/ospf/rt.c
index f509b896..52110aa1 100644
--- a/proto/ospf/rt.c
+++ b/proto/ospf/rt.c
@@ -1991,10 +1991,10 @@ again1:
if (nf->n.type) /* Add the route */
{
rta a0 = {
- .proto = p,
+ .src = p->main_source,
.source = nf->n.type,
.scope = SCOPE_UNIVERSE,
- .cast = RTC_UNICAST,
+ .cast = RTC_UNICAST
};
if (nf->n.nhs->next)
@@ -2032,7 +2032,7 @@ again1:
DBG("Mod rte type %d - %I/%d via %I on iface %s, met %d\n",
a0.source, nf->fn.prefix, nf->fn.pxlen, a0.gw, a0.iface ? a0.iface->name : "(none)", nf->n.metric1);
- rte_update(p->table, ne, p, p, e);
+ rte_update(p, ne, e);
}
}
else if (nf->old_rta)
@@ -2042,7 +2042,7 @@ again1:
nf->old_rta = NULL;
net *ne = net_get(p->table, nf->fn.prefix, nf->fn.pxlen);
- rte_update(p->table, ne, p, p, NULL);
+ rte_update(p, ne, NULL);
}
/* Remove unused rt entry. Entries with fn.x0 == 1 are persistent. */