1 #ifndef _CONFIG_PARSER_H_
2 #define _CONFIG_PARSER_H_
3 
4 #include "array.h"
5 #include "buffer.h"
6 #include "server.h"
7 
8 typedef struct {
9 	server *srv;
10 	int     ok;
11 	array  *all_configs;
12 	array  *configs_stack; /* to parse nested block */
13 	data_config *current; /* current started with { */
14 	buffer *basedir;
15 } config_t;
16 
17 void *configparserAlloc(void *(*mallocProc)(size_t));
18 void configparserFree(void *p, void (*freeProc)(void*));
19 void configparser(void *yyp, int yymajor, buffer *yyminor, config_t *ctx);
20 int config_parse_file(server *srv, config_t *context, const char *fn);
21 int config_parse_cmd(server *srv, config_t *context, const char *cmd);
22 data_unset *configparser_merge_data(data_unset *op1, const data_unset *op2);
23 
24 void config_cond_cache_reset(server *srv, connection *con);
25 void config_cond_cache_reset_item(server *srv, connection *con, comp_key_t item);
26 
27 #define config_cond_cache_reset_all_items(srv, con) \
28 	config_cond_cache_reset_item(srv, con, COMP_LAST_ELEMENT);
29 
30 #endif
31