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(); |
103 |
93 |
104 int cfg_handle_listener(ServerConfiguration *cfg, ServerConfigObject *obj); |
94 int cfg_handle_listener(ServerConfiguration *cfg, ServerConfigObject *obj); |
105 |
95 |
106 int cfg_handle_vs(ServerConfiguration *cfg, ServerConfigObject *obj); |
96 int cfg_handle_vs(ServerConfiguration *cfg, ServerConfigObject *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, sstr_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 |