2
0
Fork 0
lighttpd2/src/config_parser.h

49 lines
1.3 KiB
C
Raw Normal View History

#include "condition.h"
2008-07-08 16:51:03 +00:00
struct config_parser_data_t;
typedef struct config_parser_data_t config_parser_data_t;
struct config_parser_filestack_entry_t;
typedef struct config_parser_filestack_entry_t config_parser_filestack_entry_t;
/* loads a file into memory and parses it */
2008-07-18 14:52:19 +00:00
gboolean config_parser_file(server *srv, GList **cpd_stack, const gchar *path);
2008-07-08 16:51:03 +00:00
/* launched a command through the shell and parses the stdout it returns */
2008-07-18 14:52:19 +00:00
gboolean config_parser_shell(server *srv, GList **cpd_stack, const gchar *command);
2008-07-08 16:51:03 +00:00
/* parses a buffer pointed to by the previously allocated config_parser_data struct */
2008-07-18 14:52:19 +00:00
gboolean config_parser_buffer(server *srv, GList **cpd_stack);
2008-07-08 16:51:03 +00:00
2008-07-18 14:52:19 +00:00
config_parser_data_t *config_parser_data_new();
void config_parser_data_free(config_parser_data_t *cpd);
2008-07-17 21:12:52 +00:00
2008-07-08 16:51:03 +00:00
struct config_parser_data_t {
/* information of currently parsed file */
gchar *filename;
gchar *ptr;
gsize len;
gsize line;
int stacksize;
/* ragel vars */
int cs;
int *stack;
int top;
char *p, *pe, *eof;
/* markers to start of current data */
gchar *mark;
gchar *mark_var;
/* current value */
enum { CONFP_BOOL, CONFP_INT, CONFP_STR, CONFP_LIST, CONFP_HASH } val_type;
GString *val_str;
gint val_int;
2008-07-08 16:51:03 +00:00
gboolean val_bool;
/* operator */
2008-07-17 17:38:54 +00:00
comp_operator_t operator;
2008-07-08 16:51:03 +00:00
/* name of current variable */
GString *varname;
};