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
|
||||
LIBDIRS=sysdep/linux sysdep/unix lib
|
||||
STDDIRS=nest $(addprefix proto/,$(PROTOCOLS))
|
||||
BASEDIRS=nest $(addprefix proto/,$(PROTOCOLS))
|
||||
STDDIRS=$(BASEDIRS) $(OBJDIR)/conf
|
||||
DIRS=$(STDDIRS) $(OBJDIR)/lib
|
||||
PARTOBJS=$(join $(addsuffix /,$(STDDIRS)),$(subst /,_,$(addsuffix .o,$(STDDIRS))))
|
||||
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 <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/signal.h>
|
||||
|
||||
#include "nest/bird.h"
|
||||
|
@ -16,7 +18,7 @@
|
|||
#include "nest/route.h"
|
||||
#include "nest/protocol.h"
|
||||
#include "nest/iface.h"
|
||||
#include "nest/confile.h"
|
||||
#include "conf/conf.h"
|
||||
|
||||
#include "unix.h"
|
||||
#include "krt.h"
|
||||
|
@ -54,11 +56,32 @@ signal_init(void)
|
|||
}
|
||||
|
||||
/*
|
||||
* Config Pool
|
||||
* Reading the Configuration
|
||||
*/
|
||||
|
||||
pool *cfg_pool;
|
||||
mempool *cfg_mem;
|
||||
static int conf_fd;
|
||||
|
||||
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()
|
||||
|
@ -71,9 +94,11 @@ main(void)
|
|||
|
||||
log_init_debug(NULL);
|
||||
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();
|
||||
rt_init();
|
||||
if_init();
|
||||
|
@ -88,7 +113,9 @@ main(void)
|
|||
scan_if_init();
|
||||
auto_router_id();
|
||||
|
||||
#if 0
|
||||
protos_start();
|
||||
#endif
|
||||
|
||||
handle_sigusr(0);
|
||||
|
||||
|
|
Loading…
Reference in a new issue