diff options
author | Michael Adam <obnox@samba.org> | 2008-10-24 10:36:29 +0200 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2008-10-27 13:02:41 +0100 |
commit | e4fe3320ec75f0ba542c689b3072fa8a2ed9e232 (patch) | |
tree | e481103311408486ea8de2b9ef6b5f7f718ff5e8 | |
parent | 3a06201086e77b1c6bd8cf9374f02e5f667aa86c (diff) | |
download | samba-e4fe3320ec75f0ba542c689b3072fa8a2ed9e232.tar.gz samba-e4fe3320ec75f0ba542c689b3072fa8a2ed9e232.tar.bz2 samba-e4fe3320ec75f0ba542c689b3072fa8a2ed9e232.zip |
[s3]libsmbconf: add utility function smbconf_is_writeable_bystring()
This checks the writeability of a config source specified by the
config source name.
Michael
-rw-r--r-- | source3/lib/smbconf/smbconf.c | 26 | ||||
-rw-r--r-- | source3/lib/smbconf/smbconf.h | 1 |
2 files changed, 27 insertions, 0 deletions
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 @@ -60,6 +60,32 @@ bool smbconf_is_writeable(struct smbconf_ctx *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. */ void smbconf_shutdown(struct smbconf_ctx *ctx) 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); |