From 9eb03a5a0a95020e1a374167ce4425b1010ea9c7 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 11 Apr 2011 11:39:03 +0200 Subject: [PATCH] libsmbconf: Convert smbconf_delete_share() to sbcErr. Signed-off-by: Michael Adam --- lib/smbconf/smbconf.c | 4 ++-- lib/smbconf/smbconf.h | 2 +- lib/smbconf/smbconf_private.h | 2 +- lib/smbconf/smbconf_txt.c | 4 ++-- source3/lib/smbconf/smbconf_reg.c | 21 ++++++++++++++------- source3/utils/net_conf.c | 13 +++++++------ 6 files changed, 27 insertions(+), 19 deletions(-) diff --git a/lib/smbconf/smbconf.c b/lib/smbconf/smbconf.c index e374956ca32..c02899c0d5b 100644 --- a/lib/smbconf/smbconf.c +++ b/lib/smbconf/smbconf.c @@ -248,10 +248,10 @@ sbcErr smbconf_get_share(struct smbconf_ctx *ctx, /** * delete a service from configuration */ -WERROR smbconf_delete_share(struct smbconf_ctx *ctx, const char *servicename) +sbcErr smbconf_delete_share(struct smbconf_ctx *ctx, const char *servicename) { if (!smbconf_share_exists(ctx, servicename)) { - return WERR_NO_SUCH_SERVICE; + return SBC_ERR_NO_SUCH_SERVICE; } return ctx->ops->delete_share(ctx, servicename); diff --git a/lib/smbconf/smbconf.h b/lib/smbconf/smbconf.h index 93f916f0e4a..af021f95d76 100644 --- a/lib/smbconf/smbconf.h +++ b/lib/smbconf/smbconf.h @@ -89,7 +89,7 @@ sbcErr smbconf_get_share(struct smbconf_ctx *ctx, TALLOC_CTX *mem_ctx, const char *servicename, struct smbconf_service **service); -WERROR smbconf_delete_share(struct smbconf_ctx *ctx, +sbcErr smbconf_delete_share(struct smbconf_ctx *ctx, const char *servicename); WERROR smbconf_set_parameter(struct smbconf_ctx *ctx, const char *service, diff --git a/lib/smbconf/smbconf_private.h b/lib/smbconf/smbconf_private.h index d1af40bf7c5..0fa47e87a76 100644 --- a/lib/smbconf/smbconf_private.h +++ b/lib/smbconf/smbconf_private.h @@ -46,7 +46,7 @@ struct smbconf_ops { TALLOC_CTX *mem_ctx, const char *servicename, struct smbconf_service **service); - WERROR (*delete_share)(struct smbconf_ctx *ctx, + sbcErr (*delete_share)(struct smbconf_ctx *ctx, const char *servicename); WERROR (*set_parameter)(struct smbconf_ctx *ctx, const char *service, diff --git a/lib/smbconf/smbconf_txt.c b/lib/smbconf/smbconf_txt.c index e44abb154db..1017b5a1c84 100644 --- a/lib/smbconf/smbconf_txt.c +++ b/lib/smbconf/smbconf_txt.c @@ -462,10 +462,10 @@ done: /** * delete a service from configuration */ -static WERROR smbconf_txt_delete_share(struct smbconf_ctx *ctx, +static sbcErr smbconf_txt_delete_share(struct smbconf_ctx *ctx, const char *servicename) { - return WERR_NOT_SUPPORTED; + return SBC_ERR_NOT_SUPPORTED; } /** diff --git a/source3/lib/smbconf/smbconf_reg.c b/source3/lib/smbconf/smbconf_reg.c index 2425180bd50..e27a871a136 100644 --- a/source3/lib/smbconf/smbconf_reg.c +++ b/source3/lib/smbconf/smbconf_reg.c @@ -538,9 +538,10 @@ static bool smbconf_reg_key_has_values(struct registry_key *key) /** * delete all values from a key */ -static WERROR smbconf_reg_delete_values(struct registry_key *key) +static sbcErr smbconf_reg_delete_values(struct registry_key *key) { WERROR werr; + sbcErr err; char *valname; struct registry_value *valvalue; uint32_t count; @@ -553,6 +554,7 @@ static WERROR smbconf_reg_delete_values(struct registry_key *key) { werr = reg_deletevalue(key, valname); if (!W_ERROR_IS_OK(werr)) { + err = SBC_ERR_ACCESS_DENIED; goto done; } } @@ -561,14 +563,15 @@ static WERROR smbconf_reg_delete_values(struct registry_key *key) "Error enumerating values of %s: %s\n", key->key->name, win_errstr(werr))); + err = SBC_ERR_ACCESS_DENIED; goto done; } - werr = WERR_OK; + err = SBC_ERR_OK; done: talloc_free(mem_ctx); - return werr; + return err; } /********************************************************************** @@ -934,20 +937,24 @@ done: /** * delete a service from configuration */ -static WERROR smbconf_reg_delete_share(struct smbconf_ctx *ctx, +static sbcErr smbconf_reg_delete_share(struct smbconf_ctx *ctx, const char *servicename) { - WERROR werr = WERR_OK; + WERROR werr; + sbcErr err = SBC_ERR_OK; TALLOC_CTX *mem_ctx = talloc_stackframe(); if (servicename != NULL) { werr = reg_deletekey_recursive(rpd(ctx)->base_key, servicename); + if (!W_ERROR_IS_OK(werr)) { + err = SBC_ERR_ACCESS_DENIED; + } } else { - werr = smbconf_reg_delete_values(rpd(ctx)->base_key); + err = smbconf_reg_delete_values(rpd(ctx)->base_key); } talloc_free(mem_ctx); - return werr; + return err; } /** diff --git a/source3/utils/net_conf.c b/source3/utils/net_conf.c index d4f91c691a5..7e166e8e37a 100644 --- a/source3/utils/net_conf.c +++ b/source3/utils/net_conf.c @@ -201,8 +201,9 @@ static WERROR import_process_service(struct net_context *c, } if (smbconf_share_exists(conf_ctx, service->name)) { - werr = smbconf_delete_share(conf_ctx, service->name); - if (!W_ERROR_IS_OK(werr)) { + err = smbconf_delete_share(conf_ctx, service->name); + if (!SBC_ERROR_IS_OK(err)) { + werr = WERR_GENERAL_FAILURE; goto done; } } @@ -792,7 +793,7 @@ static int net_conf_delshare(struct net_context *c, { int ret = -1; const char *sharename = NULL; - WERROR werr = WERR_OK; + sbcErr err; TALLOC_CTX *mem_ctx = talloc_stackframe(); if (argc != 1 || c->display_usage) { @@ -805,10 +806,10 @@ static int net_conf_delshare(struct net_context *c, goto done; } - werr = smbconf_delete_share(conf_ctx, sharename); - if (!W_ERROR_IS_OK(werr)) { + err = smbconf_delete_share(conf_ctx, sharename); + if (!SBC_ERROR_IS_OK(err)) { d_fprintf(stderr, _("Error deleting share %s: %s\n"), - sharename, win_errstr(werr)); + sharename, sbcErrorString(err)); goto done; } -- 2.11.4.GIT