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:
committed by
Michael Adam
parent
7f355e05f9
commit
fbd7626656
@ -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);
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user