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 |
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 |