blob: ad07793d05ea029d2a8e1fccde29e8b256d42c13 [file] [log] [blame]
/*
* read_config.h: reads configuration files for extensible sections.
*
*/
#ifndef READ_CONFIG_H
#define READ_CONFIG_H
#ifdef __cplusplus
extern "C" {
#endif
#define STRINGMAX 1024
#define NORMAL_CONFIG 0
#define PREMIB_CONFIG 1
#define EITHER_CONFIG 2
/*
* Defines a set of file types and the parse and free functions
* which process the syntax following a given token in a given file.
*/
struct config_files {
char *fileHeader; /* Label for entire file. */
struct config_line *start;
struct config_files *next;
};
struct config_line {
char *config_token; /* Label for each line parser
in the given file. */
void (*parse_line) (char *, char *);
void (*free_func) (void);
struct config_line *next;
char config_time; /* {NORMAL,PREMIB,EITHER}_CONFIG */
char *help;
};
void read_config (const char *, struct config_line *, int);
void read_configs (void);
void read_premib_configs (void);
void read_config_files (int);
void free_config (void);
void config_perror (const char *);
void config_pwarn (const char *);
char *skip_white (char *);
char *skip_not_white (char *);
char *skip_token(char *);
char *copy_word (char *, char *);
void read_config_with_type (const char *, const char *);
struct config_line *register_config_handler (const char *, const char *,
void (*parser)(char *, char *),
void (*releaser) (void),
const char *);
struct config_line *register_premib_handler (const char *, const char *,
void (*parser)(char *, char *),
void (*releaser) (void),
const char *);
void unregister_config_handler (const char *, const char *);
void read_config_print_usage(const char *lead);
char *read_config_save_octet_string(char *saveto, u_char *str, size_t len);
char *read_config_read_octet_string(char *readfrom, u_char **str, size_t *len);
char *read_config_read_objid(char *readfrom, oid **objid, size_t *len);
char *read_config_save_objid(char *saveto, oid *objid, size_t len);
char *read_config_read_data(int type, char *readfrom, void *dataptr, size_t *len);
char *read_config_store_data(int type, char *storeto, void *dataptr, size_t *len);
void read_config_store(const char *type, const char *line);
void snmp_clean_persistent(const char *type);
#ifdef __cplusplus
}
#endif
#endif /* READ_CONFIG_H */