dav/scfg.c

changeset 642
4e23087d3d90
parent 630
046b869a1c49
child 644
a38b15061848
--- a/dav/scfg.c	Sun Sep 15 16:11:58 2019 +0200
+++ b/dav/scfg.c	Mon Sep 16 19:49:04 2019 +0200
@@ -398,6 +398,7 @@
     time_t lock_timeout = 0;
     uint32_t metadata = 0;
     uint32_t symlink = 0;
+    PushStrategy pushstrat = PUSH_STRATEGY_METADATA;
     
     unsigned short parentlineno = node->line;
     node = node->children;
@@ -457,7 +458,7 @@
                 }
             } else if(xstreq(node->name, "allow-cmd")) {
                 int cmds = 0;
-                const char *delims = " ,\r\n";
+                const char *delims = " ,\t\r\n";
                 char *cmdstr = strdup(value);
                 char *cmd = strtok(cmdstr, delims);
                 while(cmd) {
@@ -491,7 +492,15 @@
                 }
             } else if(xstreq(node->name, "hashing")) {
                 hashing = util_getboolean(value);
-                store_hash = hashing; // TODO: extra config for this?
+                store_hash = hashing;
+            } else if(xstreq(node->name, "push-strategy")) {
+                if(value) {
+                    if(xstreq(value, "metadata")) {
+                        pushstrat = PUSH_STRATEGY_METADATA;
+                    } else if(xstreq(value, "hash")) {
+                        pushstrat = PUSH_STRATEGY_HASH;
+                    }
+                }
             } else if(xstreq(node->name, "symlinks")) {
                 uint32_t symlinkconfig = 0;
                 const char *delims = " ,\r\n";
@@ -557,6 +566,7 @@
     dir->metadata = metadata;
     dir->splitconfig = splitconfig;
     dir->symlink = symlink;
+    dir->push_strategy = pushstrat;
     if((metadata & FINFO_MODE) == FINFO_MODE) {
         dir->db_settings = DB_STORE_MODE;
     }

mercurial