1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-03 04:22:09 +03:00

[s3]libsmbconf: add method is_writeable() and wrapper smbconf_is_writeable()

This allows for per-config-source checking of write support.

Michael
This commit is contained in:
Michael Adam
2008-10-23 11:16:50 +02:00
parent 9c09d545bf
commit 3a06201086
5 changed files with 29 additions and 0 deletions

View File

@ -51,6 +51,14 @@ bool smbconf_backend_requires_messaging(struct smbconf_ctx *ctx)
return ctx->ops->requires_messaging(ctx);
}
/**
* Tell whether the source is writeable.
*/
bool smbconf_is_writeable(struct smbconf_ctx *ctx)
{
return ctx->ops->is_writeable(ctx);
}
/**
* Close the configuration.
*/

View File

@ -57,6 +57,7 @@ WERROR smbconf_init_txt(TALLOC_CTX *mem_ctx,
* the smbconf API functions
*/
bool smbconf_backend_requires_messaging(struct smbconf_ctx *ctx);
bool smbconf_is_writeable(struct smbconf_ctx *ctx);
void smbconf_shutdown(struct smbconf_ctx *ctx);
bool smbconf_changed(struct smbconf_ctx *ctx, struct smbconf_csn *csn,
const char *service, const char *param);

View File

@ -24,6 +24,7 @@ struct smbconf_ops {
WERROR (*init)(struct smbconf_ctx *ctx, const char *path);
int (*shutdown)(struct smbconf_ctx *ctx);
bool (*requires_messaging)(struct smbconf_ctx *ctx);
bool (*is_writeable)(struct smbconf_ctx *ctx);
WERROR (*open_conf)(struct smbconf_ctx *ctx);
int (*close_conf)(struct smbconf_ctx *ctx);
void (*get_csn)(struct smbconf_ctx *ctx, struct smbconf_csn *csn,

View File

@ -652,6 +652,17 @@ static bool smbconf_reg_requires_messaging(struct smbconf_ctx *ctx)
return false;
}
static bool smbconf_reg_is_writeable(struct smbconf_ctx *ctx)
{
/*
* The backend has write support.
*
* TODO: add access checks whether the concrete
* config source is really writeable by the calling user.
*/
return true;
}
static WERROR smbconf_reg_open(struct smbconf_ctx *ctx)
{
WERROR werr;
@ -1130,6 +1141,7 @@ struct smbconf_ops smbconf_ops_reg = {
.init = smbconf_reg_init,
.shutdown = smbconf_reg_shutdown,
.requires_messaging = smbconf_reg_requires_messaging,
.is_writeable = smbconf_reg_is_writeable,
.open_conf = smbconf_reg_open,
.close_conf = smbconf_reg_close,
.get_csn = smbconf_reg_get_csn,

View File

@ -248,6 +248,12 @@ static bool smbconf_txt_requires_messaging(struct smbconf_ctx *ctx)
return false;
}
static bool smbconf_txt_is_writeable(struct smbconf_ctx *ctx)
{
/* no write support in this backend yet... */
return false;
}
static WERROR smbconf_txt_open(struct smbconf_ctx *ctx)
{
return smbconf_txt_load_file(ctx);
@ -610,6 +616,7 @@ static struct smbconf_ops smbconf_ops_txt = {
.init = smbconf_txt_init,
.shutdown = smbconf_txt_shutdown,
.requires_messaging = smbconf_txt_requires_messaging,
.is_writeable = smbconf_txt_is_writeable,
.open_conf = smbconf_txt_open,
.close_conf = smbconf_txt_close,
.get_csn = smbconf_txt_get_csn,