dav/scfg.c

changeset 646
37a8bfae995e
parent 644
a38b15061848
child 647
8bf1d9688698
--- a/dav/scfg.c	Fri Sep 20 20:27:05 2019 +0200
+++ b/dav/scfg.c	Sat Sep 28 09:09:14 2019 +0200
@@ -440,12 +440,26 @@
                     return 1;
                 }
             } else if(xstreq(node->name, "metadata")) {
-                char *error = NULL;
-                metadata = parse_finfo_settings(value, &error);
-                if(error) {
-                    print_error(node->line, "unknown metadata: %s\n", error);
-                    free(error);
+                uint32_t md = 0;
+                
+                const char *delims = " ,\t\r\n";
+                char *metadatastr = strdup(value);
+                char *m = strtok(metadatastr, delims);
+                while(m) {
+                    if(!strcmp(m, "mtime")) {
+                        md |= FINFO_MTIME;
+                    } else if(!strcmp(m, "mode")) {
+                        md |= FINFO_MODE;
+                    } else if(!strcmp(m, "owner")) {
+                        md |= FINFO_OWNER;
+                    } else if(!strcmp(m, "xattr")) {
+                        md |= FINFO_XATTR;
+                    }
+                    m = strtok(NULL, delims);
                 }
+                free(metadatastr);
+                
+                metadata = md;
             } else if(xstreq(node->name, "versioning")) {
                 versioning = parse_versioning_config(node);
             } else if(xstreq(node->name, "max-retry")) {

mercurial