summaryrefslogtreecommitdiffstats
path: root/nest
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1999-08-03 21:33:22 +0200
committerMartin Mares <mj@ucw.cz>1999-08-03 21:33:22 +0200
commit7de45ba4a01bfdc986a4b597c04ad39d9b97a58a (patch)
tree1dd27f09572f546021591febcb1085b690a5be92 /nest
parent9d8856897f92ad74be140adafaac41f9df6edf31 (diff)
downloadbird-7de45ba4a01bfdc986a4b597c04ad39d9b97a58a.tar
bird-7de45ba4a01bfdc986a4b597c04ad39d9b97a58a.zip
Kernel route syncer supports multiple tables.
The changes are just too extensive for lazy me to list them there, but see the comment at the top of sysdep/unix/krt.c. The code got a bit more ifdeffy than I'd like, though. Also fixed a bunch of FIXME's and added a couple of others. :)
Diffstat (limited to 'nest')
-rw-r--r--nest/route.h1
-rw-r--r--nest/rt-table.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/nest/route.h b/nest/route.h
index 1ce00f1..577142a 100644
--- a/nest/route.h
+++ b/nest/route.h
@@ -109,6 +109,7 @@ struct rtable_config {
node n;
char *name;
struct rtable *table;
+ struct proto_config *krt_attached; /* Kernel syncer attached to this table */
};
typedef struct rtable {
diff --git a/nest/rt-table.c b/nest/rt-table.c
index 7aff8b3..f8c4e77 100644
--- a/nest/rt-table.c
+++ b/nest/rt-table.c
@@ -104,6 +104,7 @@ do_rte_announce(struct announce_hook *a, net *net, rte *new, rte *old, ea_list *
struct proto *p = a->proto;
rte *new0 = new;
rte *old0 = old;
+
if (new)
{
int ok = p->import_control ? p->import_control(p, &new, &tmpa, rte_update_pool) : 0;