From e4fe3320ec75f0ba542c689b3072fa8a2ed9e232 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Fri, 24 Oct 2008 10:36:29 +0200 Subject: [s3]libsmbconf: add utility function smbconf_is_writeable_bystring() This checks the writeability of a config source specified by the config source name. Michael --- source3/lib/smbconf/smbconf.c | 26 ++++++++++++++++++++++++++ source3/lib/smbconf/smbconf.h | 1 + 2 files changed, 27 insertions(+) (limited to 'source3/lib/smbconf') diff --git a/source3/lib/smbconf/smbconf.c b/source3/lib/smbconf/smbconf.c index e5a865a62b..86c1692574 100644 --- a/source3/lib/smbconf/smbconf.c +++ b/source3/lib/smbconf/smbconf.c @@ -59,6 +59,32 @@ bool smbconf_is_writeable(struct smbconf_ctx *ctx) return ctx->ops->is_writeable(ctx); } +/** + * utitlity function: + * check whether a config source is writeable, + * given only the name of the config source. + */ +bool smbconf_is_writeable_bystring(const char *configsource) +{ + struct smbconf_ctx *conf_ctx; + WERROR err; + bool ret; + TALLOC_CTX *mem_ctx = talloc_stackframe; + + err = smbconf_init_reg(mem_ctx, &conf_ctx, configsource); + if (!W_ERROR_IS_OK(err)) { + ret = false; + goto done; + } + + ret = smbconf_is_writeable(conf_ctx); + +done: + smbconf_shutdown(conf_ctx); + TALLOC_FREE(mem_ctx); + return ret; +} + /** * Close the configuration. */ diff --git a/source3/lib/smbconf/smbconf.h b/source3/lib/smbconf/smbconf.h index 9ff9a83fad..f65842ee34 100644 --- a/source3/lib/smbconf/smbconf.h +++ b/source3/lib/smbconf/smbconf.h @@ -58,6 +58,7 @@ WERROR smbconf_init_txt(TALLOC_CTX *mem_ctx, */ bool smbconf_backend_requires_messaging(struct smbconf_ctx *ctx); bool smbconf_is_writeable(struct smbconf_ctx *ctx); +bool smbconf_is_writeable_bystring(const char *configsource); void smbconf_shutdown(struct smbconf_ctx *ctx); bool smbconf_changed(struct smbconf_ctx *ctx, struct smbconf_csn *csn, const char *service, const char *param); -- cgit