summaryrefslogtreecommitdiff
path: root/include/net-snmp/library/read_config.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net-snmp/library/read_config.h')
-rw-r--r--include/net-snmp/library/read_config.h156
1 files changed, 156 insertions, 0 deletions
diff --git a/include/net-snmp/library/read_config.h b/include/net-snmp/library/read_config.h
new file mode 100644
index 0000000..5b1f7d0
--- /dev/null
+++ b/include/net-snmp/library/read_config.h
@@ -0,0 +1,156 @@
+/*
+ * 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
+
+#include <net-snmp/config_api.h>
+
+ /*
+ * 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) (const char *, char *);
+ void (*free_func) (void);
+ struct config_line *next;
+ char config_time; /* {NORMAL,PREMIB,EITHER}_CONFIG */
+ char *help;
+ };
+
+ struct read_config_memory {
+ char *line;
+ struct read_config_memory *next;
+ };
+
+
+ NETSNMP_IMPORT
+ int netsnmp_config(char *); /* parse a simple line: token=values */
+ NETSNMP_IMPORT
+ void netsnmp_config_remember(char *); /* process later, during snmp_init() */
+ void netsnmp_config_process_memories(void); /* run all memories through parser */
+ int read_config(const char *, struct config_line *, int);
+ int read_config_files(int);
+ NETSNMP_IMPORT
+ void free_config(void);
+#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2&& __GNUC_MINOR__ < 8)
+ NETSNMP_IMPORT
+ void netsnmp_config_error(const char *, ...);
+ void netsnmp_config_warn(const char *, ...);
+#else
+ NETSNMP_IMPORT
+ void netsnmp_config_error(const char *, ...)
+ __attribute__((__format__(__printf__, 1, 2)));
+ void netsnmp_config_warn(const char *, ...)
+ __attribute__((__format__(__printf__, 1, 2)));
+#endif
+
+ NETSNMP_IMPORT
+ char *skip_white(char *);
+ const char *skip_white_const(const char *);
+ NETSNMP_IMPORT
+ char *skip_not_white(char *);
+ const char *skip_not_white_const(const char *);
+ NETSNMP_IMPORT
+ char *skip_token(char *);
+ NETSNMP_IMPORT
+ const char *skip_token_const(const char *);
+ NETSNMP_IMPORT
+ char *copy_nword(char *, char *, int);
+ NETSNMP_IMPORT
+ const char *copy_nword_const(const char *, char *, int);
+ NETSNMP_IMPORT
+ char *copy_word(char *, char *); /* do not use */
+ NETSNMP_IMPORT
+ int read_config_with_type(const char *, const char *);
+ NETSNMP_IMPORT
+ char *read_config_save_octet_string(char *saveto,
+ u_char * str,
+ size_t len);
+ NETSNMP_IMPORT
+ char *read_config_read_octet_string(const char *readfrom,
+ u_char ** str,
+ size_t * len);
+ const char *read_config_read_octet_string_const(const char *readfrom,
+ u_char ** str,
+ size_t * len);
+ NETSNMP_IMPORT
+ char *read_config_read_objid(char *readfrom, oid ** objid,
+ size_t * len);
+ const char *read_config_read_objid_const(const char *readfrom,
+ oid ** objid,
+ size_t * len);
+ NETSNMP_IMPORT
+ char *read_config_save_objid(char *saveto, oid * objid,
+ size_t len);
+ NETSNMP_IMPORT
+ char *read_config_read_data(int type, char *readfrom,
+ void *dataptr, size_t * len);
+ NETSNMP_IMPORT
+ char *read_config_read_memory(int type, char *readfrom,
+ char *dataptr, size_t * len);
+ NETSNMP_IMPORT
+ char *read_config_store_data(int type, char *storeto,
+ void *dataptr, size_t * len);
+ char *read_config_store_data_prefix(char prefix, int type,
+ char *storeto,
+ void *dataptr, size_t len);
+ int read_config_files_of_type(int when, struct config_files *ctmp);
+ NETSNMP_IMPORT
+ void read_config_store(const char *type, const char *line);
+ NETSNMP_IMPORT
+ void read_app_config_store(const char *line);
+ NETSNMP_IMPORT
+ void snmp_save_persistent(const char *type);
+ NETSNMP_IMPORT
+ void snmp_clean_persistent(const char *type);
+ struct config_line *read_config_get_handlers(const char *type);
+
+ /*
+ * external memory list handlers
+ */
+ void snmp_config_remember_in_list(char *line,
+ struct read_config_memory
+ **mem);
+ void snmp_config_process_memory_list(struct
+ read_config_memory
+ **mem, int, int);
+ void snmp_config_remember_free_list(struct
+ read_config_memory
+ **mem);
+
+ void set_configuration_directory(const char *dir);
+ NETSNMP_IMPORT
+ const char *get_configuration_directory(void);
+ void set_persistent_directory(const char *dir);
+ const char *get_persistent_directory(void);
+ void set_temp_file_pattern(const char *pattern);
+ NETSNMP_IMPORT
+ const char *get_temp_file_pattern(void);
+ NETSNMP_IMPORT
+ void handle_long_opt(const char *myoptarg);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* READ_CONFIG_H */