dav/sync.c

changeset 227
bf485439222a
parent 225
a297c2e28fa1
child 228
c0175372c35d
--- a/dav/sync.c	Sun Mar 20 15:28:08 2016 +0100
+++ b/dav/sync.c	Sun Mar 20 16:13:41 2016 +0100
@@ -780,6 +780,7 @@
                         print_resource_error(sn, res->path);
                         ret = -1;
                         sync_error++;
+                        error = 1;
                     }
                 } else {
                     if(cdt && remote_resource_is_changed(sn, dir, db, local_res)) {
@@ -793,7 +794,6 @@
                         sync_error++;
                         print_resource_error(sn, res->path);
                         ret = -1;
-                        sync_error++;
                         error = 1;
                     }
                 }
@@ -1102,7 +1102,7 @@
         (*counter)++;
         
         // check contentlength and get new etag
-        DavResource *up_res = dav_get(res->session, res->path, "D:getetag");
+        DavResource *up_res = dav_get(res->session, res->path, "D:getetag,idav:status");
         
         if(up_res) {
             // the new content length must be equal or greater than the file size
@@ -1129,9 +1129,12 @@
                 } else {
                     local->etag = NULL;
                 }
-                dav_resource_free(up_res);
                 
-                sync_remove_status(res);
+                if(dav_get_property(up_res, "idav:status")) {
+                    sync_remove_status(up_res);
+                }
+                
+                dav_resource_free(up_res);
             }
         }
     } else {

mercurial