1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-26 01:49:31 +03:00

libsmbconf: Convert smbconf_delete_share() to sbcErr.

Signed-off-by: Michael Adam <obnox@samba.org>
This commit is contained in:
Andreas Schneider
2011-04-11 11:39:03 +02:00
committed by Michael Adam
parent 7f355e05f9
commit fbd7626656
6 changed files with 27 additions and 19 deletions

View File

@ -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);

View File

@ -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,

View File

@ -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,

View File

@ -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;
}
/**

View File

@ -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;
}
/**

View File

@ -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;
}