src/server/daemon/config.h

branch
config
changeset 255
b5d15a4a19f5
parent 106
b122f34ddc80
child 256
19259b6c5cf7
equal deleted inserted replaced
254:4784c14aa639 255:b5d15a4a19f5
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

mercurial