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:
28
conf/conf.h
28
conf/conf.h
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user