1
0
mirror of https://gitlab.labs.nic.cz/labs/bird.git synced 2024-05-11 16:54:54 +00:00

Implemented new configuration/reconfiguration interface and defined protocol

state machines. Full explanation will follow soon.
This commit is contained in:
Martin Mares
1999-02-05 21:37:34 +00:00
parent c4c63eecc3
commit 31b3e1bbf5
16 changed files with 354 additions and 170 deletions

View File

@@ -1,7 +1,7 @@
/*
* BIRD Internet Routing Daemon -- Configuration File Handling
*
* (c) 1998 Martin Mares <mj@ucw.cz>
* (c) 1998--1999 Martin Mares <mj@ucw.cz>
*
* Can be freely distributed and used under the terms of the GNU GPL.
*/
@@ -11,6 +11,28 @@
#include "lib/resource.h"
/* Configuration structure */
struct config {
pool *pool; /* Pool the configuration is stored in */
linpool *mem; /* Linear pool containing configuration data */
list protos; /* Configured protocol instances (struct proto_config) */
u32 router_id; /* Our Router ID */
u16 this_as; /* Our Autonomous System Number */
char *err_msg; /* Parser error message */
int err_lino; /* Line containing error */
char *file_name; /* Name of configuration file */
};
extern struct config *config, *new_config;
/* Please don't use these variables in protocols. Use proto_config->global instead. */
struct config *config_alloc(byte *name);
int config_parse(struct config *);
void config_free(struct config *);
void config_commit(struct config *);
void cf_error(char *msg, ...) NORET;
/* Pools */
extern pool *cfg_pool;
@@ -41,11 +63,11 @@ struct symbol {
#define SYM_FUNCTION 5
#define SYM_FILTER 6
extern int conf_lino;
void cf_lex_init_tables(void);
int cf_lex(void);
void cf_lex_init(int flag);
void cf_error(char *msg, ...) NORET;
void cf_allocate(void);
struct symbol *cf_default_name(char *prefix);
/* Parser */