dav/sync.c

changeset 522
46f96dcd6eab
parent 521
c5bbae4b3cca
child 523
923a4528a2ae
--- a/dav/sync.c	Wed Mar 13 15:05:40 2019 +0100
+++ b/dav/sync.c	Wed Mar 13 18:43:30 2019 +0100
@@ -1682,12 +1682,18 @@
         res->etag = NULL;
         res->last_modified = s.st_mtime;
         res->size = s.st_size;
+        res->mode = s.st_mode & 07777;
+        res->uid = s.st_uid;
+        res->gid = s.st_gid;
         return res;
     } else {
         *isdir = 1;
         LocalResource *res = calloc(1, sizeof(LocalResource));
         res->path = util_concat_path(path, "/");
         res->last_modified = s.st_mtime;
+        res->mode = s.st_mode & 07777;
+        res->uid = s.st_uid;
+        res->gid = s.st_gid;
         res->isdirectory = 1;
         return res;
     }
@@ -2122,7 +2128,7 @@
 int versioning_begin(SyncDirectory *dir, DavResource *res, int *exists) {
     int ret = 0;
     
-    if(dir->versioning->type == VERSIONING_SIMPLE) {
+    if(dir->versioning->type == VERSIONING_SIMPLE && *exists) {
         DavResource *history_collection = dav_resource_new(
                     res->session,
                     dir->versioning->collection);
@@ -2217,7 +2223,7 @@
         }
         
         dav_resource_free(history_collection);
-    } else {
+    } else if(dir->versioning->type == VERSIONING_DELTAV){
         // DeltaV is so much easier :) 
         if(dav_checkout(res)) {
             ret = VBEGIN_ERROR_CHECKOUT;
@@ -2239,6 +2245,7 @@
     if(dir->versioning->type == VERSIONING_SIMPLE) {
         // TODO
     }
+    return 0;
 }
 
 int sync_put_resource(

mercurial