dav/scfg.c

changeset 646
37a8bfae995e
parent 644
a38b15061848
child 647
8bf1d9688698
equal deleted inserted replaced
645:ad61c1654dce 646:37a8bfae995e
438 splitconfig = parse_splitconfig(node, &err); 438 splitconfig = parse_splitconfig(node, &err);
439 if(err) { 439 if(err) {
440 return 1; 440 return 1;
441 } 441 }
442 } else if(xstreq(node->name, "metadata")) { 442 } else if(xstreq(node->name, "metadata")) {
443 char *error = NULL; 443 uint32_t md = 0;
444 metadata = parse_finfo_settings(value, &error); 444
445 if(error) { 445 const char *delims = " ,\t\r\n";
446 print_error(node->line, "unknown metadata: %s\n", error); 446 char *metadatastr = strdup(value);
447 free(error); 447 char *m = strtok(metadatastr, delims);
448 } 448 while(m) {
449 if(!strcmp(m, "mtime")) {
450 md |= FINFO_MTIME;
451 } else if(!strcmp(m, "mode")) {
452 md |= FINFO_MODE;
453 } else if(!strcmp(m, "owner")) {
454 md |= FINFO_OWNER;
455 } else if(!strcmp(m, "xattr")) {
456 md |= FINFO_XATTR;
457 }
458 m = strtok(NULL, delims);
459 }
460 free(metadatastr);
461
462 metadata = md;
449 } else if(xstreq(node->name, "versioning")) { 463 } else if(xstreq(node->name, "versioning")) {
450 versioning = parse_versioning_config(node); 464 versioning = parse_versioning_config(node);
451 } else if(xstreq(node->name, "max-retry")) { 465 } else if(xstreq(node->name, "max-retry")) {
452 int64_t i; 466 int64_t i;
453 if(util_strtoint(value, &i) && i >= 0) { 467 if(util_strtoint(value, &i) && i >= 0) {

mercurial