diff options
author | Michael Adam <obnox@samba.org> | 2009-02-24 10:52:30 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2009-02-26 11:05:23 +0100 |
commit | bd121b532cf5a6728b7605072f725cc9c6d47f48 (patch) | |
tree | a50f7d1d4fe399dc46417526f62e4f68ac1781d1 /lib/smbconf | |
parent | 9f97674ef759c65b874028b7af01fcc65f8dac23 (diff) | |
download | samba-bd121b532cf5a6728b7605072f725cc9c6d47f48.tar.gz samba-bd121b532cf5a6728b7605072f725cc9c6d47f48.tar.bz2 samba-bd121b532cf5a6728b7605072f725cc9c6d47f48.zip |
s3:libsmbconf: add transactions to the libsmbconf api
This is useful for wrapping higher level aggregate operations
in transactions. The text backend implementations just return
WERR_OK, the registry backend implementatoins use the
regdb_transaction_start|commit|cancel routines just added.
Michael
Diffstat (limited to 'lib/smbconf')
-rw-r--r-- | lib/smbconf/smbconf.c | 15 | ||||
-rw-r--r-- | lib/smbconf/smbconf.h | 4 | ||||
-rw-r--r-- | lib/smbconf/smbconf_private.h | 3 | ||||
-rw-r--r-- | lib/smbconf/smbconf_txt.c | 17 |
4 files changed, 39 insertions, 0 deletions
diff --git a/lib/smbconf/smbconf.c b/lib/smbconf/smbconf.c index 595fd23421..f25ccae0d4 100644 --- a/lib/smbconf/smbconf.c +++ b/lib/smbconf/smbconf.c @@ -399,3 +399,18 @@ WERROR smbconf_delete_global_includes(struct smbconf_ctx *ctx) return werr; } + +WERROR smbconf_transaction_start(struct smbconf_ctx *ctx) +{ + return ctx->ops->transaction_start(ctx); +} + +WERROR smbconf_transaction_commit(struct smbconf_ctx *ctx) +{ + return ctx->ops->transaction_commit(ctx); +} + +WERROR smbconf_transaction_cancel(struct smbconf_ctx *ctx) +{ + return ctx->ops->transaction_cancel(ctx); +} diff --git a/lib/smbconf/smbconf.h b/lib/smbconf/smbconf.h index 106fae6431..517302ac88 100644 --- a/lib/smbconf/smbconf.h +++ b/lib/smbconf/smbconf.h @@ -94,4 +94,8 @@ WERROR smbconf_set_global_includes(struct smbconf_ctx *ctx, WERROR smbconf_delete_includes(struct smbconf_ctx *ctx, const char *service); WERROR smbconf_delete_global_includes(struct smbconf_ctx *ctx); +WERROR smbconf_transaction_start(struct smbconf_ctx *ctx); +WERROR smbconf_transaction_commit(struct smbconf_ctx *ctx); +WERROR smbconf_transaction_cancel(struct smbconf_ctx *ctx); + #endif /* _LIBSMBCONF_H_ */ diff --git a/lib/smbconf/smbconf_private.h b/lib/smbconf/smbconf_private.h index c9e44181c6..e6998ad639 100644 --- a/lib/smbconf/smbconf_private.h +++ b/lib/smbconf/smbconf_private.h @@ -68,6 +68,9 @@ struct smbconf_ops { uint32_t num_includes, const char **includes); WERROR (*delete_includes)(struct smbconf_ctx *ctx, const char *service); + WERROR (*transaction_start)(struct smbconf_ctx *ctx); + WERROR (*transaction_commit)(struct smbconf_ctx *ctx); + WERROR (*transaction_cancel)(struct smbconf_ctx *ctx); }; struct smbconf_ctx { diff --git a/lib/smbconf/smbconf_txt.c b/lib/smbconf/smbconf_txt.c index 1df4a9fdb7..501382cc5f 100644 --- a/lib/smbconf/smbconf_txt.c +++ b/lib/smbconf/smbconf_txt.c @@ -612,6 +612,20 @@ static WERROR smbconf_txt_delete_includes(struct smbconf_ctx *ctx, return WERR_NOT_SUPPORTED; } +static WERROR smbconf_txt_transaction_start(struct smbconf_ctx *ctx) +{ + return WERR_OK; +} + +static WERROR smbconf_txt_transaction_commit(struct smbconf_ctx *ctx) +{ + return WERR_OK; +} + +static WERROR smbconf_txt_transaction_cancel(struct smbconf_ctx *ctx) +{ + return WERR_OK; +} static struct smbconf_ops smbconf_ops_txt = { .init = smbconf_txt_init, @@ -633,6 +647,9 @@ static struct smbconf_ops smbconf_ops_txt = { .get_includes = smbconf_txt_get_includes, .set_includes = smbconf_txt_set_includes, .delete_includes = smbconf_txt_delete_includes, + .transaction_start = smbconf_txt_transaction_start, + .transaction_commit = smbconf_txt_transaction_commit, + .transaction_cancel = smbconf_txt_transaction_cancel, }; |