diff options
author | Martin Mares <mj@ucw.cz> | 1999-02-05 22:37:34 +0100 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1999-02-05 22:37:34 +0100 |
commit | 31b3e1bbf5bc823ec5cf6d88931132f00e6c52b9 (patch) | |
tree | b3c3da837ca2079a222dfc99ab479bd040ba21ad /conf/conf.h | |
parent | c4c63eecc37a744c53c23da89b1ba09b9640cb6e (diff) | |
download | bird-31b3e1bbf5bc823ec5cf6d88931132f00e6c52b9.tar bird-31b3e1bbf5bc823ec5cf6d88931132f00e6c52b9.zip |
Implemented new configuration/reconfiguration interface and defined protocol
state machines. Full explanation will follow soon.
Diffstat (limited to 'conf/conf.h')
-rw-r--r-- | conf/conf.h | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/conf/conf.h b/conf/conf.h index 19ed34e..54f5d5e 100644 --- a/conf/conf.h +++ b/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 */ |