src/server/daemon/config.c

changeset 41
bb7a1f5a8b48
parent 39
de4bc3cd2d36
child 44
3da1f7b6847f
equal deleted inserted replaced
40:56cda23f48d4 41:bb7a1f5a8b48
36 #include <sys/file.h> 36 #include <sys/file.h>
37 #include <sys/stat.h> 37 #include <sys/stat.h>
38 #include <sys/mman.h> 38 #include <sys/mman.h>
39 39
40 #include "../ucx/string.h" 40 #include "../ucx/string.h"
41 #include "../ucx/atomic.h"
42 41
43 #include "httplistener.h" 42 #include "httplistener.h"
44 #include "config.h" 43 #include "config.h"
45 #include "func.h" 44 #include "func.h"
46 #include "log.h" 45 #include "log.h"
50 #include "configmanager.h" 49 #include "configmanager.h"
51 50
52 #include "vserver.h" 51 #include "vserver.h"
53 #include "../util/pblock.h" 52 #include "../util/pblock.h"
54 #include "../util/util.h" 53 #include "../util/util.h"
54 #include "../util/atomic.h"
55 55
56 pool_handle_t *cfg_pool; 56 pool_handle_t *cfg_pool;
57 57
58 // TODO: Funktion für ConfigDirective -> directive 58 // TODO: Funktion für ConfigDirective -> directive
59 // TODO: Funktion für UcxList parameter list -> pblock 59 // TODO: Funktion für UcxList parameter list -> pblock
222 222
223 return serverconfig; 223 return serverconfig;
224 } 224 }
225 225
226 void cfg_ref(ServerConfiguration *cfg) { 226 void cfg_ref(ServerConfiguration *cfg) {
227 ucx_atomic_inc_32(&cfg->ref); 227 ws_atomic_inc32(&cfg->ref);
228 } 228 }
229 229
230 void cfg_unref(ServerConfiguration *cfg) { 230 void cfg_unref(ServerConfiguration *cfg) {
231 uint32_t ref = ucx_atomic_dec_32_nv(&cfg->ref); 231 uint32_t ref = ws_atomic_dec32(&cfg->ref);
232 if(ref == 0) { 232 if(ref == 0) {
233 // TODO: free configuration 233 // TODO: free configuration
234 } 234 }
235 } 235 }
236 236
250 // mime file 250 // mime file
251 sstr_t mf = cfg_directivelist_get_str(obj->directives, sstr("MimeFile")); 251 sstr_t mf = cfg_directivelist_get_str(obj->directives, sstr("MimeFile"));
252 252
253 sstr_t base = sstr("config/"); 253 sstr_t base = sstr("config/");
254 sstr_t file; 254 sstr_t file;
255 file.length = base.length + mf.length + 1; 255 file.length = base.length + mf.length;
256 file.ptr = alloca(file.length); 256 file.ptr = alloca(file.length + 1);
257 file.ptr[file.length] = 0; 257 file.ptr[file.length] = 0;
258 file = sstrncat(2, file, base, mf); 258 file = sstrncat(2, file, base, mf);
259 259
260 ConfigFile *f = cfgmgr_get_file(file); 260 ConfigFile *f = cfgmgr_get_file(file);
261 if(f == NULL) { 261 if(f == NULL) {

mercurial