src/server/config/initconf.c

changeset 79
f48cea237ec3
parent 62
c47e081b6c0f
child 81
d25825f37967
equal deleted inserted replaced
78:3578977d29a3 79:f48cea237ec3
42 conf->parser.parse = initconf_parse; 42 conf->parser.parse = initconf_parse;
43 conf->file = file; 43 conf->file = file;
44 conf->directives = NULL; 44 conf->directives = NULL;
45 45
46 int r = cfg_parse_basic_file((ConfigParser*)conf, in); 46 int r = cfg_parse_basic_file((ConfigParser*)conf, in);
47 cfg_dlist_destr(conf->parser.mp, conf->directives);
47 if(r != 0) { 48 if(r != 0) {
48 // TODO: free 49 // TODO: free
49 return NULL; 50 return NULL;
50 } 51 }
51 52
53 54
54 return conf; 55 return conf;
55 } 56 }
56 57
57 void free_init_config(InitConfig *conf) { 58 void free_init_config(InitConfig *conf) {
58 if(conf->directives != NULL) {
59 ucx_dlist_free(conf->directives);
60 }
61 if(conf->parser.lines != NULL) {
62 ucx_dlist_free(conf->parser.lines);
63 }
64 ucx_mempool_free(conf->parser.mp); 59 ucx_mempool_free(conf->parser.mp);
65 free(conf); 60 free(conf);
66 } 61 }
67 62
68 int initconf_parse(void *p, ConfigLine *begin, ConfigLine *end, sstr_t line) { 63 int initconf_parse(void *p, ConfigLine *begin, ConfigLine *end, sstr_t line) {

mercurial