dav/db.c

changeset 367
4a6a59f89f9f
parent 366
5228b912c925
child 521
c5bbae4b3cca
--- 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);
 }

mercurial