summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2009-03-04 22:02:07 +0100
committerKarolin Seeger <kseeger@samba.org>2009-03-27 14:15:38 +0100
commit43ccd3180aca89ca0f0efefdcdb26f2f436a79c1 (patch)
tree96010aff3cbd74b1a4ffee96345439649da25a18
parent14ba88e8a90778709958a79d7efe79ee377cb240 (diff)
downloadsamba-43ccd3180aca89ca0f0efefdcdb26f2f436a79c1.tar.gz
samba-43ccd3180aca89ca0f0efefdcdb26f2f436a79c1.tar.xz
samba-43ccd3180aca89ca0f0efefdcdb26f2f436a79c1.zip
s3:smbconf: move smbconf_share_exists checks into backend
Michael Signed-off-by: Michael Adam <obnox@samba.org> (cherry picked from commit 11ed4d41906084a604797e761ffd27caf5c67ac3)
-rw-r--r--source/lib/smbconf/smbconf.c24
-rw-r--r--source/lib/smbconf/smbconf_reg.c13
2 files changed, 9 insertions, 28 deletions
diff --git a/source/lib/smbconf/smbconf.c b/source/lib/smbconf/smbconf.c
index f57ca905206..b69c9a2cf11 100644
--- a/source/lib/smbconf/smbconf.c
+++ b/source/lib/smbconf/smbconf.c
@@ -226,10 +226,6 @@ WERROR smbconf_set_parameter(struct smbconf_ctx *ctx,
const char *param,
const char *valstr)
{
- if (!smbconf_share_exists(ctx, service)) {
- return WERR_NO_SUCH_SERVICE;
- }
-
return ctx->ops->set_parameter(ctx, service, param, valstr);
}
@@ -265,10 +261,6 @@ WERROR smbconf_get_parameter(struct smbconf_ctx *ctx,
return WERR_INVALID_PARAM;
}
- if (!smbconf_share_exists(ctx, service)) {
- return WERR_NO_SUCH_SERVICE;
- }
-
return ctx->ops->get_parameter(ctx, mem_ctx, service, param, valstr);
}
@@ -299,10 +291,6 @@ WERROR smbconf_get_global_parameter(struct smbconf_ctx *ctx,
WERROR smbconf_delete_parameter(struct smbconf_ctx *ctx,
const char *service, const char *param)
{
- if (!smbconf_share_exists(ctx, service)) {
- return WERR_NO_SUCH_SERVICE;
- }
-
return ctx->ops->delete_parameter(ctx, service, param);
}
@@ -329,10 +317,6 @@ WERROR smbconf_get_includes(struct smbconf_ctx *ctx,
const char *service,
uint32_t *num_includes, char ***includes)
{
- if (!smbconf_share_exists(ctx, service)) {
- return WERR_NO_SUCH_SERVICE;
- }
-
return ctx->ops->get_includes(ctx, mem_ctx, service, num_includes,
includes);
}
@@ -356,10 +340,6 @@ WERROR smbconf_set_includes(struct smbconf_ctx *ctx,
const char *service,
uint32_t num_includes, const char **includes)
{
- if (!smbconf_share_exists(ctx, service)) {
- return WERR_NO_SUCH_SERVICE;
- }
-
return ctx->ops->set_includes(ctx, service, num_includes, includes);
}
@@ -381,10 +361,6 @@ WERROR smbconf_set_global_includes(struct smbconf_ctx *ctx,
WERROR smbconf_delete_includes(struct smbconf_ctx *ctx, const char *service)
{
- if (!smbconf_share_exists(ctx, service)) {
- return WERR_NO_SUCH_SERVICE;
- }
-
return ctx->ops->delete_includes(ctx, service);
}
diff --git a/source/lib/smbconf/smbconf_reg.c b/source/lib/smbconf/smbconf_reg.c
index ed597bea42a..b0cd09f8407 100644
--- a/source/lib/smbconf/smbconf_reg.c
+++ b/source/lib/smbconf/smbconf_reg.c
@@ -80,12 +80,20 @@ static WERROR smbconf_reg_open_service_key(TALLOC_CTX *mem_ctx,
uint32 desired_access,
struct registry_key **key)
{
+ WERROR werr;
+
if (servicename == NULL) {
*key = rpd(ctx)->base_key;
return WERR_OK;
}
- return reg_openkey(mem_ctx, rpd(ctx)->base_key, servicename,
+ werr = reg_openkey(mem_ctx, rpd(ctx)->base_key, servicename,
desired_access, key);
+
+ if (W_ERROR_EQUAL(werr, WERR_BADFILE)) {
+ werr = WERR_NO_SUCH_SERVICE;
+ }
+
+ return werr;
}
/**
@@ -828,9 +836,6 @@ static WERROR smbconf_reg_get_share(struct smbconf_ctx *ctx,
werr = smbconf_reg_open_service_key(tmp_ctx, ctx, servicename,
REG_KEY_READ, &key);
if (!W_ERROR_IS_OK(werr)) {
- if (W_ERROR_EQUAL(werr, WERR_BADFILE)) {
- werr = WERR_NO_SUCH_SERVICE;
- }
goto done;
}