]> git.ozlabs.org Git - petitboot/blobdiff - discover/parser-conf.h
discover/discover-server: Restrict clients based on uid
[petitboot] / discover / parser-conf.h
index 09015d1734e8df4fedc629a6bf0cbc16f8855557..3704bcb4117af9dab8426bc2faf48468137fdcc5 100644 (file)
@@ -29,26 +29,40 @@ struct conf_global_option {
 struct conf_context {
        void *parser_info;
        struct discover_context *dc;
-       char *buf;
        struct conf_global_option *global_options;
-       const char *const *conf_files;
 
+       char *(*get_pair)(struct conf_context *conf, char *str, char **name_out,
+               char **value_out, char terminator);
        void (*process_pair)(struct conf_context *conf, const char *name,
                char *value);
        void (*finish)(struct conf_context *conf);
 };
 
-int conf_parse(struct conf_context *conf);
-char *conf_get_param_pair(char *str, char **name_out, char **value_out,
-               char terminator);
+void conf_parse_buf(struct conf_context *conf, char *buf, int len);
+char *conf_get_pair(struct conf_context *conf, char *str, char **name_out,
+       char **value_out, char delimiter, char terminator);
+void conf_init_global_options(struct conf_context *conf);
 const char *conf_get_global_option(struct conf_context *conf,
        const char *name);
 int conf_set_global_option(struct conf_context *conf, const char *name,
        const char *value);
 
+static inline char *conf_get_pair_equal(struct conf_context *conf, char *str,
+       char **name_out, char **value_out, char terminator)
+{
+       return conf_get_pair(conf, str, name_out, value_out, '=', terminator);
+}
+
+static inline char *conf_get_pair_space(struct conf_context *conf, char *str,
+       char **name_out, char **value_out, char terminator)
+{
+       return conf_get_pair(conf, str, name_out, value_out, ' ', terminator);
+}
+
 /* utility routines */
 
 int conf_param_in_list(const char *const *list, const char *param);
 char *conf_strip_str(char *s);
+char *conf_replace_char(char *s, char from, char to);
 
 #endif