Compile and use the new configuration code by default.
This commit is contained in:
parent
f142750d34
commit
70591fa064
3 changed files with 59 additions and 7 deletions
3
Makefile
3
Makefile
|
@ -11,7 +11,8 @@ CFLAGS=$(OPT) $(DEBUG) -Wall -W -Wstrict-prototypes -Wno-unused -Wno-parentheses
|
||||||
|
|
||||||
PROTOCOLS=rip
|
PROTOCOLS=rip
|
||||||
LIBDIRS=sysdep/linux sysdep/unix lib
|
LIBDIRS=sysdep/linux sysdep/unix lib
|
||||||
STDDIRS=nest $(addprefix proto/,$(PROTOCOLS))
|
BASEDIRS=nest $(addprefix proto/,$(PROTOCOLS))
|
||||||
|
STDDIRS=$(BASEDIRS) $(OBJDIR)/conf
|
||||||
DIRS=$(STDDIRS) $(OBJDIR)/lib
|
DIRS=$(STDDIRS) $(OBJDIR)/lib
|
||||||
PARTOBJS=$(join $(addsuffix /,$(STDDIRS)),$(subst /,_,$(addsuffix .o,$(STDDIRS))))
|
PARTOBJS=$(join $(addsuffix /,$(STDDIRS)),$(subst /,_,$(addsuffix .o,$(STDDIRS))))
|
||||||
LIBS=$(OBJDIR)/lib/birdlib.a
|
LIBS=$(OBJDIR)/lib/birdlib.a
|
||||||
|
|
24
conf/Makefile
Normal file
24
conf/Makefile
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
CONFS=$(TOPDIR)/conf/confbase.Y @CONFS@$(addprefix $(TOPDIR)/,$(addsuffix /config.Y,$(BASEDIRS)))
|
||||||
|
OBJS=cf-parse.tab.o cf-lex.o
|
||||||
|
CONF=$(TOPDIR)/conf
|
||||||
|
|
||||||
|
ifdef DEBUG
|
||||||
|
BISON_DEBUG=-t
|
||||||
|
#FLEX_DEBUG=-d
|
||||||
|
endif
|
||||||
|
|
||||||
|
include $(TOPDIR)/Rules
|
||||||
|
|
||||||
|
cf-parse.tab.c cf-parse-tab.h: cf-parse.y
|
||||||
|
bison -bcf-parse -dv -pcf_ $(BISON_DEBUG) cf-parse.y
|
||||||
|
|
||||||
|
cf-parse.y: $(CONFS) $(CONF)/gen_parser.m4
|
||||||
|
m4 -P $(CONF)/gen_parser.m4 $(CONFS) >cf-parse.y
|
||||||
|
|
||||||
|
keywords.h: $(CONFS) $(CONF)/gen_keywords.m4
|
||||||
|
m4 -P $(CONF)/gen_keywords.m4 $(CONFS) >keywords.h
|
||||||
|
|
||||||
|
cf-lex.c: cf-lex.l
|
||||||
|
flex $(FLEX_DEBUG) -sB8 -ocf-lex.c -Pcf_ cf-lex.l
|
||||||
|
|
||||||
|
dep: keywords.h
|
|
@ -7,6 +7,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <unistd.h>
|
||||||
#include <sys/signal.h>
|
#include <sys/signal.h>
|
||||||
|
|
||||||
#include "nest/bird.h"
|
#include "nest/bird.h"
|
||||||
|
@ -16,7 +18,7 @@
|
||||||
#include "nest/route.h"
|
#include "nest/route.h"
|
||||||
#include "nest/protocol.h"
|
#include "nest/protocol.h"
|
||||||
#include "nest/iface.h"
|
#include "nest/iface.h"
|
||||||
#include "nest/confile.h"
|
#include "conf/conf.h"
|
||||||
|
|
||||||
#include "unix.h"
|
#include "unix.h"
|
||||||
#include "krt.h"
|
#include "krt.h"
|
||||||
|
@ -54,11 +56,32 @@ signal_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Config Pool
|
* Reading the Configuration
|
||||||
*/
|
*/
|
||||||
|
|
||||||
pool *cfg_pool;
|
static int conf_fd;
|
||||||
mempool *cfg_mem;
|
|
||||||
|
static int
|
||||||
|
cf_read(byte *dest, unsigned int len)
|
||||||
|
{
|
||||||
|
int l = read(conf_fd, dest, len);
|
||||||
|
if (l < 0)
|
||||||
|
cf_error("Read error");
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
read_config(void)
|
||||||
|
{
|
||||||
|
cf_lex_init_tables();
|
||||||
|
cf_allocate();
|
||||||
|
conf_fd = open(PATH_CONFIG, O_RDONLY);
|
||||||
|
if (conf_fd < 0)
|
||||||
|
die("Unable to open configuration file " PATH_CONFIG ": %m");
|
||||||
|
cf_read_hook = cf_read;
|
||||||
|
cf_lex_init(1);
|
||||||
|
cf_parse();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Hic Est main()
|
* Hic Est main()
|
||||||
|
@ -71,9 +94,11 @@ main(void)
|
||||||
|
|
||||||
log_init_debug(NULL);
|
log_init_debug(NULL);
|
||||||
resource_init();
|
resource_init();
|
||||||
cfg_pool = rp_new(&root_pool, "Config");
|
|
||||||
cfg_mem = mp_new(cfg_pool, 1024);
|
|
||||||
|
|
||||||
|
debug("Reading configuration file.\n");
|
||||||
|
read_config();
|
||||||
|
|
||||||
|
debug("Initializing.\n");
|
||||||
io_init();
|
io_init();
|
||||||
rt_init();
|
rt_init();
|
||||||
if_init();
|
if_init();
|
||||||
|
@ -88,7 +113,9 @@ main(void)
|
||||||
scan_if_init();
|
scan_if_init();
|
||||||
auto_router_id();
|
auto_router_id();
|
||||||
|
|
||||||
|
#if 0
|
||||||
protos_start();
|
protos_start();
|
||||||
|
#endif
|
||||||
|
|
||||||
handle_sigusr(0);
|
handle_sigusr(0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue