From: Aki Tuomi Date: Tue, 2 May 2017 11:01:16 +0000 (+0300) Subject: lib-fs: Add init function that can use fs string directly X-Git-Tag: 2.3.0.rc1~1291 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c69b62e5d86e153dfbbfcb99d115f34a25902908;p=thirdparty%2Fdovecot%2Fcore.git lib-fs: Add init function that can use fs string directly This avoids doing splitting the fs driver and args everywhere and ensures that separators are consistent. --- diff --git a/src/lib-fs/fs-api.c b/src/lib-fs/fs-api.c index 04dc225b7a..bd30e600e2 100644 --- a/src/lib-fs/fs-api.c +++ b/src/lib-fs/fs-api.c @@ -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); diff --git a/src/lib-fs/fs-api.h b/src/lib-fs/fs-api.h index 1752bd8b44..eaadcc8a8a 100644 --- a/src/lib-fs/fs-api.h +++ b/src/lib-fs/fs-api.h @@ -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);