diff -r ad61c1654dce -r 37a8bfae995e dav/scfg.c --- 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")) {