src/server/config/initconf.c

changeset 579
e10457d74fe1
parent 459
f21b4ff81c01
equal deleted inserted replaced
578:eb48f716b31c 579:e10457d74fe1
31 #include <string.h> 31 #include <string.h>
32 32
33 #include "initconf.h" 33 #include "initconf.h"
34 34
35 InitConfig *initconfig_load(const char *file) { 35 InitConfig *initconfig_load(const char *file) {
36 CxMempool *mp = cxBasicMempoolCreate(512); 36 CxMempool *mp = cxMempoolCreateSimple(512);
37 if(!mp) { 37 if(!mp) {
38 return NULL; 38 return NULL;
39 } 39 }
40 40
41 // setup parser 41 // setup parser
46 parser.validateDirective = initconfig_validate_directive; 46 parser.validateDirective = initconfig_validate_directive;
47 parser.allow_hierarchy = 0; 47 parser.allow_hierarchy = 0;
48 48
49 ConfigNode *init_config = serverconfig_load_file(&parser, file); 49 ConfigNode *init_config = serverconfig_load_file(&parser, file);
50 if(!init_config) { 50 if(!init_config) {
51 cxMempoolDestroy(mp); 51 cxMempoolFree(mp);
52 return NULL; 52 return NULL;
53 } 53 }
54 54
55 InitConfig *conf = cxMalloc(mp->allocator, sizeof(InitConfig)); 55 InitConfig *conf = cxMalloc(mp->allocator, sizeof(InitConfig));
56 if(!conf) { 56 if(!conf) {
57 cxMempoolDestroy(mp); 57 cxMempoolFree(mp);
58 return NULL; 58 return NULL;
59 } 59 }
60 60
61 conf->mp = mp; 61 conf->mp = mp;
62 conf->root = init_config; 62 conf->root = init_config;
87 87
88 return 0; 88 return 0;
89 } 89 }
90 90
91 void initconfig_free(InitConfig *conf) { 91 void initconfig_free(InitConfig *conf) {
92 cxMempoolDestroy(conf->mp); 92 cxMempoolFree(conf->mp);
93 } 93 }

mercurial