diff -r 73aacbf6e492 -r d680536f8c2f src/server/daemon/config.h --- a/src/server/daemon/config.h Mon Jan 16 14:06:52 2012 +0100 +++ b/src/server/daemon/config.h Sat Jan 21 16:37:35 2012 +0100 @@ -64,36 +64,57 @@ typedef struct _server_conf_handler ServerConfigHandler; typedef void(*cfg_handler_init_f)(ServerConfigHandler*, ServerConfiguration*); +typedef void*(*cfg_element_start_f)( + ServerConfigHandler*, + ServerConfiguration*); typedef int(*cfg_process_directive_f)( ServerConfigHandler*, ServerConfiguration*, - ConfigDirective*); + ConfigDirective*, + void*); /* element object created in element_start */ struct _server_conf_handler { cfg_handler_init_f init; + cfg_element_start_f element_start; cfg_process_directive_f process_directive; + cfg_process_directive_f element_end; }; void load_init_conf(char *file); -void load_server_conf(char *file); +void init_server_config_parser(); -void init_default_server_conf_handlers(); +ServerConfiguration* load_server_conf(char *file); int handle_runtime_directive( ServerConfigHandler *h, ServerConfiguration *conf, - ConfigDirective *dir); + ConfigDirective *dir, + void *data); + +void* handle_listener_start(ServerConfigHandler *h, ServerConfiguration *cfg); int handle_listener_directive( ServerConfigHandler *h, ServerConfiguration *conf, - ConfigDirective *dir); + ConfigDirective *dir, + void *data); +int handle_listener_end( + ServerConfigHandler *h, + ServerConfiguration *conf, + ConfigDirective *dir, + void *data); + +void* handle_vserver_start(ServerConfigHandler *h, ServerConfiguration *cfg); int handle_vserver_directive( ServerConfigHandler *h, ServerConfiguration *conf, - ConfigDirective *dir); - -VirtualServer* conf_get_default_vs(); + ConfigDirective *dir, + void *data); +int handle_vserver_end( + ServerConfigHandler *h, + ServerConfiguration *conf, + ConfigDirective *dir, + void *data); HTTPObjectConfig* load_obj_conf(char *file);