diff -r 5228b912c925 -r 4a6a59f89f9f dav/db.c --- a/dav/db.c Fri Feb 02 16:46:04 2018 +0100 +++ b/dav/db.c Fri Feb 02 18:57:21 2018 +0100 @@ -122,6 +122,8 @@ field = 2; } else if(xstreq(name, "size")) { field = 3; + } else if(xstreq(name, "tags-hash")) { + field = 4; } else if(xstreq(name, "skipped")) { res->skipped = TRUE; } else if(xstreq(name, "tags-updated")) { @@ -163,6 +165,10 @@ } break; } + case 4: { + res->tags_hash = strdup((char*)value); + break; + } } } else if(XML_READER_TYPE_END_ELEMENT) { if(xstreq(name, "resource")) { @@ -286,6 +292,18 @@ return -1; } + if(res->tags_hash) { + r = xmlTextWriterWriteElement( + writer, + BAD_CAST "tags-hash", + BAD_CAST res->tags_hash); + if(r < 0) { + fprintf(stderr, "Cannot write tags-hash: %s\n", res->etag); + xmlFreeTextWriter(writer); + return -1; + } + } + if(res->skipped) { r = xmlTextWriterStartElement(writer, BAD_CAST "skipped"); r += xmlTextWriterEndElement(writer); @@ -374,5 +392,11 @@ if(res->etag) { free(res->etag); } + if(res->cached_tags) { + ucx_buffer_free(res->cached_tags); + } + if(res->tags_hash) { + free(res->tags_hash); + } free(res); }