diff options
Diffstat (limited to 'conf')
-rw-r--r-- | conf/conf.c | 3 | ||||
-rw-r--r-- | conf/confbase.Y | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/conf/conf.c b/conf/conf.c index 61fe9f88..0ce593c7 100644 --- a/conf/conf.c +++ b/conf/conf.c @@ -10,6 +10,7 @@ #include <stdarg.h> #include "nest/bird.h" +#include "nest/route.h" #include "nest/protocol.h" #include "nest/iface.h" #include "lib/resource.h" @@ -49,6 +50,7 @@ config_parse(struct config *c) cf_lex_init(1); cf_lex_init_tables(); protos_preconfig(c); + rt_preconfig(c); cf_parse(); filters_postconfig(); /* FIXME: Do we really need this? */ protos_postconfig(c); @@ -65,6 +67,7 @@ void config_commit(struct config *c) { config = c; + rt_commit(c); protos_commit(c); } diff --git a/conf/confbase.Y b/conf/confbase.Y index 522a1803..2343536a 100644 --- a/conf/confbase.Y +++ b/conf/confbase.Y @@ -25,6 +25,7 @@ CF_DECLS ip_addr a; struct symbol *s; char *t; + struct rtable_config *r; struct f_inst *x; struct filter *f; struct f_tree *e; @@ -78,8 +79,7 @@ expr: CF_ADDTO(conf, definition) definition: DEFINE SYM '=' expr ';' { - if ($2->class != SYM_VOID) cf_error("Symbol already defined"); - $2->class = SYM_NUMBER; + cf_define_symbol($2, SYM_NUMBER, NULL); $2->aux = $4; } ; |