]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-fs: Add init function that can use fs string directly
authorAki Tuomi <aki.tuomi@dovecot.fi>
Tue, 2 May 2017 11:01:16 +0000 (14:01 +0300)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Mon, 10 Jul 2017 09:10:19 +0000 (12:10 +0300)
This avoids doing splitting the fs driver and args
everywhere and ensures that separators are consistent.

src/lib-fs/fs-api.c
src/lib-fs/fs-api.h

index 04dc225b7a2abe3eb96377f0212c469d9a706f76..bd30e600e2ce069f758f8eb71c2b84f871268ec5 100644 (file)
@@ -160,6 +160,17 @@ int fs_init(const char *driver, const char *args,
        return 0;
 }
 
+int fs_init_from_string(const char *str, const struct fs_settings *set,
+                       struct fs **fs_r, const char **error_r)
+{
+       const char *args = strpbrk(str, " :");
+       if (args == NULL)
+               args = "";
+       else
+               str = t_strdup_until(str, args++);
+       return fs_init(str, args, set, fs_r, error_r);
+}
+
 void fs_deinit(struct fs **fs)
 {
        fs_unref(fs);
index 1752bd8b44c8c1f86b49819f7465e5cbc1e33c58..eaadcc8a8a92179ac6a6e0b6795ce74bb4f3dc64 100644 (file)
@@ -202,6 +202,10 @@ typedef void fs_file_async_callback_t(void *context);
 int fs_init(const char *driver, const char *args,
            const struct fs_settings *set,
            struct fs **fs_r, const char **error_r);
+/* helper for fs_init, accepts a filesystem string
+   that can come directly from config */
+int fs_init_from_string(const char *str, const struct fs_settings *set,
+                       struct fs **fs_r, const char **error_r);
 /* same as fs_unref() */
 void fs_deinit(struct fs **fs);