dav/db.c

changeset 535
d814ee31c04f
parent 525
26a1d5b9d9d2
child 536
877f7c4a203b
--- a/dav/db.c	Fri Mar 22 13:07:31 2019 +0100
+++ b/dav/db.c	Sat Mar 23 10:04:18 2019 +0100
@@ -135,6 +135,8 @@
                 field = 8;
             } else if(xstreq(name, "remote-tags-hash")) {
                 field = 9;
+            } else if(xstreq(name, "blocksize")) {
+                field = 10;
             } else if(xstreq(name, "skipped")) {
                 res->skipped = TRUE;
             } else if(xstreq(name, "tags-updated")) {
@@ -211,6 +213,18 @@
                     res->remote_tags_hash = strdup((char*)value);
                     break;
                 }
+                case 10: {
+                    int64_t blsz = 0;
+                    if(util_strtoint((char*)value, &blsz)) {
+                        if(blsz < -1) {
+                            blsz = -1;
+                        }
+                        if(blsz > 0 && blsz < 16) {
+                            blsz = 0;
+                        }
+                        res->blocksize = blsz;
+                    }
+                }
             }
         } else if(XML_READER_TYPE_END_ELEMENT) {
             if(xstreq(name, "resource")) {
@@ -323,6 +337,19 @@
             return -1;
         }
         
+        if(res->blocksize != 0) {
+            r = xmlTextWriterWriteFormatElement(
+                writer,
+                BAD_CAST "mode",
+                "%" PRId64,
+                res->blocksize);
+            if(r < 0) {
+                fprintf(stderr, "Cannot write blocksize\n");
+                xmlFreeTextWriter(writer);
+                return -1;
+            }
+        }
+        
         if(settings & DB_STORE_MODE == DB_STORE_MODE) {
             r = xmlTextWriterWriteFormatElement(
                 writer,

mercurial