dav/scfg.c

changeset 536
877f7c4a203b
parent 534
9a4857d6444e
child 539
8deb52292c99
--- a/dav/scfg.c	Sat Mar 23 10:04:18 2019 +0100
+++ b/dav/scfg.c	Tue Mar 26 17:30:34 2019 +0100
@@ -300,7 +300,14 @@
     }
     
     SplitConfig *sc = calloc(1, sizeof(SplitConfig));
-    sc->pattern = pattern ? strdup(pattern) : NULL;
+    if(pattern) {
+        regex_t *regex = malloc(sizeof(regex_t));
+        if (regcomp(regex, pattern, REG_EXTENDED|REG_NOSUB)) {
+            fprintf(stderr, "Invalid regular expression (%s)\n", pattern);
+        } else {
+            sc->pattern = regex;
+        }
+    }
     sc->minsize = minsz;
     sc->blocksize = (size_t)sz;
     return sc;    
@@ -522,6 +529,7 @@
     dir->lockpush = lockpush;
     dir->lock_timeout = lock_timeout;
     dir->metadata = metadata;
+    dir->splitconfig = splitconfig;
     if(metadata & FINFO_MODE == FINFO_MODE) {
         dir->db_settings = DB_STORE_MODE;
     }

mercurial