src/server/daemon/config.h

changeset 19
d680536f8c2f
parent 18
73aacbf6e492
child 21
627b09ee74e4
--- 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);
 

mercurial