--- a/dav/scfg.c Sat Mar 19 12:34:32 2016 +0100 +++ b/dav/scfg.c Sat Mar 19 18:49:36 2016 +0100 @@ -328,3 +328,38 @@ } return dbname; } + + +void free_sync_config() { + printf("free_sync_config\n"); + UcxMapIterator i = ucx_map_iterator(directories); + SyncDirectory *dir; + UCX_MAP_FOREACH(elm, dir, i) { + free(dir->name); + free(dir->path); + free(dir->repository); + free(dir->database); + + if(dir->collection) { + free(dir->collection); + } + if(dir->trash) { + free(dir->trash); + } + + UCX_FOREACH(elm, dir->include) { + regfree(elm->data); + free(elm->data); + } + ucx_list_free(dir->include); + UCX_FOREACH(elm, dir->exclude) { + regfree(elm->data); + free(elm->data); + } + ucx_list_free(dir->exclude); + + free(dir); + } + + ucx_map_free(directories); +}