96 char *value = util_xml_get_text(node); |
96 char *value = util_xml_get_text(node); |
97 cbool->value = util_getboolean(value); |
97 cbool->value = util_getboolean(value); |
98 } |
98 } |
99 |
99 |
100 |
100 |
|
101 DavConfig* dav_config_new(void) { |
|
102 CxMempool *cfg_mp = cxMempoolCreate(128, NULL); |
|
103 DavConfig *config = cxMalloc(cfg_mp->allocator, sizeof(DavConfig)); |
|
104 memset(config, 0, sizeof(DavConfig)); |
|
105 config->mp = cfg_mp; |
|
106 |
|
107 xmlDoc *doc = xmlNewDoc(BAD_CAST "1.0"); |
|
108 xmlNode *root = xmlNewNode(NULL, BAD_CAST "configuration"); |
|
109 xmlDocSetRootElement(doc, root); |
|
110 config->doc = doc; |
|
111 |
|
112 return config; |
|
113 } |
|
114 |
101 DavConfig* dav_config_load(cxmutstr xmlfilecontent, int *error) { |
115 DavConfig* dav_config_load(cxmutstr xmlfilecontent, int *error) { |
102 xmlDoc *doc = xmlReadMemory(xmlfilecontent.ptr, xmlfilecontent.length, NULL, NULL, 0); |
116 xmlDoc *doc = xmlReadMemory(xmlfilecontent.ptr, xmlfilecontent.length, NULL, NULL, 0); |
103 if(!doc) { |
117 if(!doc) { |
104 if(error) { |
118 if(error) { |
105 *error = DAV_CONFIG_ERROR_XML; |
119 *error = DAV_CONFIG_ERROR_XML; |
106 } |
120 } |
107 return NULL; |
121 return NULL; |
108 } |
122 } |
109 |
123 |
110 CxMempool *cfg_mp = cxMempoolCreate(128, NULL); |
124 DavConfig *config = dav_config_new(); |
|
125 CxMempool *cfg_mp = config->mp; |
111 cxMempoolRegister(cfg_mp, doc, (cx_destructor_func)xmlFreeDoc); |
126 cxMempoolRegister(cfg_mp, doc, (cx_destructor_func)xmlFreeDoc); |
112 DavConfig *config = cxMalloc(cfg_mp->allocator, sizeof(DavConfig)); |
|
113 memset(config, 0, sizeof(DavConfig)); |
|
114 config->mp = cfg_mp; |
|
115 config->doc = doc; |
|
116 |
127 |
117 DavCfgRepository *repos_begin = NULL; |
128 DavCfgRepository *repos_begin = NULL; |
118 DavCfgRepository *repos_end = NULL; |
129 DavCfgRepository *repos_end = NULL; |
119 DavCfgKey *keys_begin = NULL; |
130 DavCfgKey *keys_begin = NULL; |
120 DavCfgKey *keys_end = NULL; |
131 DavCfgKey *keys_end = NULL; |