summaryrefslogtreecommitdiffstats
path: root/conf/conf.h
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1999-02-05 22:37:34 +0100
committerMartin Mares <mj@ucw.cz>1999-02-05 22:37:34 +0100
commit31b3e1bbf5bc823ec5cf6d88931132f00e6c52b9 (patch)
treeb3c3da837ca2079a222dfc99ab479bd040ba21ad /conf/conf.h
parentc4c63eecc37a744c53c23da89b1ba09b9640cb6e (diff)
downloadbird-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.h28
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 */