From b5707ff467fed0b52aeaa86e2483f7dc3309d70e Mon Sep 17 00:00:00 2001 From: laforge Date: Sat, 9 Sep 2000 08:36:05 +0000 Subject: config stuff added --- ulogd/conffile.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 ulogd/conffile.h (limited to 'ulogd/conffile.h') diff --git a/ulogd/conffile.h b/ulogd/conffile.h new file mode 100644 index 0000000..90fc501 --- /dev/null +++ b/ulogd/conffile.h @@ -0,0 +1,49 @@ +/* config file parser functions + * (C) 2000 by Harald Welte + * + * $Id$ + * + * This code is distributed under the terms of GNU GPL */ + +#include + +/* errors returned by config functions */ +enum { + ERRNONE = 0, + ERROPEN, /* unable to open config file */ + ERROOM, /* out of memory */ + ERRMULT, /* non-multiple option occured more than once */ + ERRMAND, /* mandatory option not found */ +}; + +/* maximum line lenght of config file entries */ +#define LINE_LEN 255 + +/* maximum lenght of config key name */ +#define CONFIG_KEY_LEN 30 + +#define CONFIG_TYPE_INT 0x0001 +#define CONFIG_TYPE_STRING 0x0002 +#define CONFIG_TYPE_CALLBACK 0x0003 + +#define CONFIG_OPT_MANDATORY 0x0001 +#define CONFIG_OPT_MULTI 0x0002 + +typedef struct config_entry { + struct config_entry *next; + char key[CONFIG_KEY_LEN]; + u_int8_t type; + u_int8_t options; + u_int8_t hit; + union { + struct { + char *string; + int maxlen; + } str; + int value; + int (*parser)(char *argstr); + } u; +} config_entry_t; + +int config_parse_file(const char *fname); +int config_register_key(config_entry_t *ce); -- cgit v1.2.3