summaryrefslogtreecommitdiff
path: root/conf
diff options
context:
space:
mode:
Diffstat (limited to 'conf')
-rw-r--r--conf/conf.c3
-rw-r--r--conf/confbase.Y4
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;
}
;