summaryrefslogtreecommitdiffstats
path: root/proto
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1999-03-26 22:50:43 +0100
committerMartin Mares <mj@ucw.cz>1999-03-26 22:50:43 +0100
commit7dc4827c968053e45bcb7f145e9986eeb20c993b (patch)
tree81363b40e7ed12b7a40d00752680bd694afcdf0d /proto
parent7e5f5ffdda7232048c4baf3fdec358afb494a29d (diff)
downloadbird-7dc4827c968053e45bcb7f145e9986eeb20c993b.tar
bird-7dc4827c968053e45bcb7f145e9986eeb20c993b.zip
Added everything protocols need to know about multiple routing tables,
i.e. struct proto now contains field 'table' pointing to routing table the protocol is attached to. Use this instead of &master_table. Modified all protocols except the kernel syncer to use this field.
Diffstat (limited to 'proto')
-rw-r--r--proto/rip/rip.c2
-rw-r--r--proto/static/static.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/proto/rip/rip.c b/proto/rip/rip.c
index 249026d..060446f 100644
--- a/proto/rip/rip.c
+++ b/proto/rip/rip.c
@@ -226,7 +226,7 @@ advertise_entry( struct proto *p, struct rip_block *b, ip_addr whotoldme )
log( L_ERR "%I asked me to route %I/%I, but that is not valid netmask.", A.from, b->network, b->netmask );
return;
}
- n = net_get( &master_table, 0, b->network, ipa_mklen( b->netmask ));
+ n = net_get( p->table, 0, b->network, ipa_mklen( b->netmask ));
r = rte_get_temp(a);
r->u.rip.metric = ntohl(b->metric) + rif->metric;
if (r->u.rip.metric > P_CF->infinity) r->u.rip.metric = P_CF->infinity;
diff --git a/proto/static/static.c b/proto/static/static.c
index 873abe3..3a485bf 100644
--- a/proto/static/static.c
+++ b/proto/static/static.c
@@ -37,7 +37,7 @@ static_install(struct proto *p, struct static_route *r, struct iface *ifa)
a.iface = ifa;
aa = rta_lookup(&a);
- n = net_get(&master_table, a.tos, r->net, r->masklen);
+ n = net_get(p->table, a.tos, r->net, r->masklen);
e = rte_get_temp(aa);
e->net = n;
e->pflags = 0;
@@ -50,7 +50,7 @@ static_remove(struct proto *p, struct static_route *r)
net *n;
DBG("Removing static route %I/%d\n", r->net, r->masklen);
- n = net_find(&master_table, 0, r->net, r->masklen);
+ n = net_find(p->table, 0, r->net, r->masklen);
if (n)
rte_update(n, p, NULL);
}