diff -r aa49966e4e85 -r 5dc7fe41e8f8 dav/sync.c --- a/dav/sync.c Sun Jun 16 13:14:24 2019 +0200 +++ b/dav/sync.c Sat Jun 22 16:36:52 2019 +0200 @@ -77,12 +77,12 @@ static DavPropName defprops[] = { { "DAV:", "getetag" }, { DAV_NS, "status" }, - { DAV_NS, "finfo" }, - { DAV_NS, "tags" }, - { DAV_NS, "xattributes" }, { DAV_NS, "content-hash" }, { DAV_NS, "split" }, - { DAV_NS, "link" } + { DAV_PROPS_NS, "finfo" }, + { DAV_PROPS_NS, "tags" }, + { DAV_PROPS_NS, "xattributes" }, + { DAV_PROPS_NS, "link" } }; static size_t numdefprops = 8 ; @@ -345,7 +345,7 @@ return 1; } - DavXmlNode *tagsprop = dav_get_property_ns(res, DAV_NS, "tags"); + DavXmlNode *tagsprop = dav_get_property_ns(res, DAV_PROPS_NS, "tags"); UcxList *res_tags = parse_dav_xml_taglist(tagsprop); int ret = matches_tagfilter(res_tags, tagfilter); @@ -552,7 +552,7 @@ } int ret = 0; - DavResource *ls = dav_query(sn, "select D:getetag,idav:status,idav:tags,idav:finfo,idav:xattributes,idav:split,idav:link,`idav:content-hash` from / with depth = infinity"); + DavResource *ls = dav_query(sn, "select D:getetag,idav:status,idav:split,`idav:content-hash`,idavprops:tags,idavprops:finfo,idavprops:xattributes,idavprops:link from / with depth = infinity"); if(!ls) { print_resource_error(sn, "/"); if(locked) { @@ -743,7 +743,7 @@ prev = elm->prev; next = elm->next; - if(dav_get_property_ns(res, DAV_NS, "link")) { + if(dav_get_property_ns(res, DAV_PROPS_NS, "link")) { continue; } @@ -958,7 +958,7 @@ char *local_path = create_local_path(dir, res->path); char *link = SYNC_SYMLINK(dir) ? - dav_get_string_property_ns(res, DAV_NS, "link") : NULL; + dav_get_string_property_ns(res, DAV_PROPS_NS, "link") : NULL; SYS_STAT s; DavBool exists = 1; @@ -1019,7 +1019,7 @@ while(ret == REMOTE_NO_CHANGE && local) { // check if tags have changed if(dir->tagconfig) { - DavXmlNode *tagsprop = dav_get_property_ns(res, DAV_NS, "tags"); + DavXmlNode *tagsprop = dav_get_property_ns(res, DAV_PROPS_NS, "tags"); UcxList *remote_tags = NULL; if(tagsprop) { remote_tags = parse_dav_xml_taglist(tagsprop); @@ -1040,7 +1040,7 @@ // check if extended attributes have changed if((dir->metadata & FINFO_XATTR) == FINFO_XATTR) { - DavXmlNode *xattr = dav_get_property_ns(res, DAV_NS, "xattributes"); + DavXmlNode *xattr = dav_get_property_ns(res, DAV_PROPS_NS, "xattributes"); char *xattr_hash = get_xattr_hash(xattr); if(nullstrcmp(xattr_hash, local->xattr_hash)) { ret = REMOTE_CHANGE_METADATA; @@ -1049,7 +1049,7 @@ } // check if finfo has changed - DavXmlNode *finfo = dav_get_property_ns(res, DAV_NS, "finfo"); + DavXmlNode *finfo = dav_get_property_ns(res, DAV_PROPS_NS, "finfo"); if((dir->metadata & FINFO_MODE) == FINFO_MODE) { FileInfo f; finfo_get_values(finfo, &f); @@ -1291,7 +1291,7 @@ char *local_path = create_local_path(dir, path); char *link = SYNC_SYMLINK(dir) ? - dav_get_string_property_ns(res, DAV_NS, "link") : NULL; + dav_get_string_property_ns(res, DAV_PROPS_NS, "link") : NULL; char *etag = dav_get_string_property(res, "D:getetag"); SYS_STAT s; @@ -2311,7 +2311,7 @@ UCX_FOREACH(elm, resources) { LocalResource *resource = elm->data; - DavResource *res = dav_get(sn, resource->path, "D:getetag,idav:status,idav:version-collection,idav:finfo,idav:xattributes"); + DavResource *res = dav_get(sn, resource->path, "D:getetag,idav:status,idav:version-collection,idav:split,`idav:content-hash`,idavprops:tags,idavprops:finfo,idavprops:xattributes,idavprops:link"); if(!res) { printf("skip: %s\n", resource->path); continue; @@ -2673,11 +2673,11 @@ { DavPropName properties[] = { {"DAV:", "getetag"}, - {DAV_NS, "tags"}, {DAV_NS, "version-collection"}, {DAV_NS, "content-hash"}, {DAV_NS, "split" }, - {DAV_NS, "link" } + {DAV_PROPS_NS, "tags"}, + {DAV_PROPS_NS, "link" } }; int err = dav_load_prop(remote, properties, 6); @@ -2808,7 +2808,7 @@ // TODO: remove code dup (main.c: find_version) DavResource* versioning_deltav_find(DavResource *res, const char *version) { - DavResource *list = dav_versiontree(res, "D:getetag,idav:status,idav:finfo,idav:xattributes,idav:tags"); + DavResource *list = dav_versiontree(res, "D:getetag,idav:status,idav:split,idavprops:link,idavprops:finfo,idavprops:xattributes,idavprops:tags"); DavResource *ret = NULL; while(list) { DavResource *next = list->next; @@ -2877,7 +2877,7 @@ int sync_store_metadata(SyncDirectory *dir, const char *path, LocalResource *local, DavResource *res) { int ret = 0; - DavXmlNode *fileinfo = dav_get_property_ns(res, DAV_NS, "finfo"); + DavXmlNode *fileinfo = dav_get_property_ns(res, DAV_PROPS_NS, "finfo"); if(fileinfo) { FileInfo f; finfo_get_values(fileinfo, &f); @@ -2900,7 +2900,7 @@ } } - DavXmlNode *xattr_prop = dav_get_property_ns(res, DAV_NS, "xattributes"); + DavXmlNode *xattr_prop = dav_get_property_ns(res, DAV_PROPS_NS, "xattributes"); if(xattr_prop) { XAttributes *xattr = xml_get_attributes(xattr_prop); if(xattr) { @@ -2941,7 +2941,7 @@ UcxList *tags = NULL; if(dir->tagconfig) { - DavXmlNode *tagsprop = dav_get_property_ns(res, DAV_NS, "tags"); + DavXmlNode *tagsprop = dav_get_property_ns(res, DAV_PROPS_NS, "tags"); if(tagsprop) { tags = parse_dav_xml_taglist(tagsprop); @@ -3572,7 +3572,7 @@ DavBool islink = local->link_target ? 1 : 0; if(!local->link_target && local->link_updated) { - dav_remove_property_ns(res, DAV_NS, "link"); + dav_remove_property_ns(res, DAV_PROPS_NS, "link"); } size_t split_blocksize = resource_get_blocksize(dir, local, res, s.st_size); @@ -3590,7 +3590,7 @@ uint64_t blockcount = 0; if(islink) { - dav_set_string_property_ns(res, DAV_NS, "link", local->link_target); + dav_set_string_property_ns(res, DAV_PROPS_NS, "link", local->link_target); } else if(issplit) { // set split property char blocksize_str[32]; @@ -3894,7 +3894,7 @@ DavBool store_tags = TRUE; // get remote tags UcxList *remote_tags = NULL; - DavXmlNode *tagsprop = dav_get_property_ns(res, DAV_NS, "tags"); + DavXmlNode *tagsprop = dav_get_property_ns(res, DAV_PROPS_NS, "tags"); if(tagsprop) { remote_tags = parse_dav_xml_taglist(tagsprop); } @@ -3927,9 +3927,9 @@ if(store_tags) { if(tags) { DavXmlNode *tagprop = create_xml_taglist(tags); - dav_set_property_ns(res, DAV_NS, "tags", tagprop); + dav_set_property_ns(res, DAV_PROPS_NS, "tags", tagprop); } else { - dav_remove_property_ns(res, DAV_NS, "tags"); + dav_remove_property_ns(res, DAV_PROPS_NS, "tags"); } } @@ -3956,7 +3956,7 @@ resource_set_xattr(res, local->xattr); hashes.xattr = strdup(local->xattr->hash); } else { - dav_remove_property(res, "idav:xattributes"); + dav_remove_property(res, "idavprops:xattributes"); } } return hashes;