src/server/daemon/config.h

branch
webdav
changeset 259
0b8692959d37
parent 258
134279e804b6
child 260
4779a6fb4fbe
equal deleted inserted replaced
252:5653a9626cc0 259:0b8692959d37
33 33
34 #include "../util/object.h" 34 #include "../util/object.h"
35 35
36 #include "../config/objconf.h" 36 #include "../config/objconf.h"
37 #include "../config/initconf.h" 37 #include "../config/initconf.h"
38 #include "../config/serverconf.h"
39 #include "../config/mimeconf.h" 38 #include "../config/mimeconf.h"
40 #include "../config/acl.h" 39 #include "../config/acl.h"
41 #include "../config/keyfile.h" 40 #include "../config/keyfile.h"
41 #include "../config/serverconfig.h"
42 42
43 #include "acldata.h" 43 #include "acldata.h"
44 #include "keyfile_auth.h" 44 #include "keyfile_auth.h"
45 #include "log.h" 45 #include "log.h"
46 46
55 55
56 typedef struct mime_map MimeMap; 56 typedef struct mime_map MimeMap;
57 57
58 typedef struct _server_configuration { 58 typedef struct _server_configuration {
59 pool_handle_t *pool; 59 pool_handle_t *pool;
60 UcxAllocator *a;
61
60 UcxMap *host_vs; // map of all vservers. key is the host name 62 UcxMap *host_vs; // map of all vservers. key is the host name
61 UcxList *listeners; // list of all listeners 63 UcxList *listeners; // list of all listeners
62 UcxList *logfiles; 64 UcxList *logfiles;
63 AccessLog *default_log; 65 AccessLog *default_log;
64 UcxMap *authdbs; 66 UcxMap *authdbs;
67 sstr_t user; 69 sstr_t user;
68 uint32_t ref; // reference counter 70 uint32_t ref; // reference counter
69 } ServerConfiguration; 71 } ServerConfiguration;
70 72
71 73
72 typedef struct ConfigFile ConfigFile;
73
74 typedef int(*cfg_reload_f)(ConfigFile*,ServerConfiguration*);
75
76 struct ConfigFile {
77 sstr_t file;
78 time_t last_modified;
79 cfg_reload_f reload;
80 void *data;
81 };
82
83 struct mime_map { 74 struct mime_map {
84 UcxMap *map; 75 UcxMap *map;
85 uint32_t ref;
86 }; 76 };
87 77
88 int load_init_conf(char *file); 78 int load_init_conf(char *file);
89 79
90 void init_server_config_parser(); 80 void init_server_config_parser();
91 81
92 int cfg_handle_runtime(ServerConfiguration *cfg, ServerConfigObject *obj); 82 int cfg_handle_runtime(ServerConfiguration *cfg, ConfigNode *obj);
93 83
94 int cfg_handle_logfile(ServerConfiguration *cfg, ServerConfigObject *obj); 84 int cfg_handle_logfile(ServerConfiguration *cfg, ConfigNode *obj);
95 85
96 int cfg_handle_threadpool(ServerConfiguration *cfg, ServerConfigObject *obj); 86 int cfg_handle_threadpool(ServerConfiguration *cfg, ConfigNode *obj);
97 87
98 int cfg_handle_eventhandler(ServerConfiguration *cfg, ServerConfigObject *obj); 88 int cfg_handle_eventhandler(ServerConfiguration *cfg, ConfigNode *obj);
99 89
100 int cfg_handle_accesslog(ServerConfiguration *cfg, ServerConfigObject *obj); 90 int cfg_handle_accesslog(ServerConfiguration *cfg, ConfigNode *obj);
101 91
102 int cfg_handle_authdb(ServerConfiguration *cfg, ServerConfigObject *obj); 92 int cfg_handle_authdb(ServerConfiguration *cfg, ConfigNode *obj);
103 93
104 int cfg_handle_listener(ServerConfiguration *cfg, ServerConfigObject *obj); 94 int cfg_handle_listener(ServerConfiguration *cfg, ConfigNode *obj);
105 95
106 int cfg_handle_vs(ServerConfiguration *cfg, ServerConfigObject *obj); 96 int cfg_handle_vs(ServerConfiguration *cfg, ConfigNode *obj);
107 97
108 ServerConfiguration* load_server_conf(ServerConfiguration *old, char *file); 98 ServerConfiguration* load_server_conf(char *file);
109 void cfg_ref(ServerConfiguration *cfg); 99 void cfg_ref(ServerConfiguration *cfg);
110 void cfg_unref(ServerConfiguration *cfg); 100 void cfg_unref(ServerConfiguration *cfg);
111 101
102 HTTPObjectConfig* objconf_load(ServerConfiguration *scfg, sstr_t file);
103 int mime_conf_load(ServerConfiguration *cfg, sstr_t file);
112 104
113 int object_conf_reload(ConfigFile *file, ServerConfiguration *cfg); 105 ACLData* acl_conf_load(ServerConfiguration *cfg, sstr_t file);
114 void object_conf_ref(HTTPObjectConfig *conf);
115 void object_conf_unref(HTTPObjectConfig *conf);
116 HTTPObjectConfig* load_obj_conf(char *file);
117 int mime_conf_reload(ConfigFile *file, ServerConfiguration *cfg);
118 void mime_conf_ref(MimeMap *conf);
119 void mime_conf_unref(MimeMap *conf);
120 int acl_conf_reload(ConfigFile *file, ServerConfiguration *cfg);
121 ACLList* acl_config_convert(ServerConfiguration *cfg, ACLConfig *acl); 106 ACLList* acl_config_convert(ServerConfiguration *cfg, ACLConfig *acl);
122 int keyfile_reload(ConfigFile *file, ServerConfiguration *cfg); 107 AuthDB* keyfile_load(ServerConfiguration *cfg, scstr_t file);
123 108
124 sstr_t cfg_load_file(sstr_t file); 109
125 110
126 #ifdef __cplusplus 111 #ifdef __cplusplus
127 } 112 }
128 #endif 113 #endif
129 114

mercurial