s3:smbconf: move smbconf_share_exists checks into backend
authorMichael Adam <obnox@samba.org>
Wed, 4 Mar 2009 21:02:07 +0000 (22:02 +0100)
committerMichael Adam <obnox@samba.org>
Thu, 19 Mar 2009 17:03:54 +0000 (18:03 +0100)
Michael

Signed-off-by: Michael Adam <obnox@samba.org>
source/lib/smbconf/smbconf.c
source/lib/smbconf/smbconf_reg.c

index f57ca9052069e2a206708294bd76b4d1446c05e5..b69c9a2cf11c66e62aa9337c2908e20e4bd1a2f3 100644 (file)
@@ -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);
 }
 
index ed597bea42a51393d71fcd6d2c385313c9f18882..b0cd09f8407a76bbc81f3df24dc55e2b4f24adc8 100644 (file)
@@ -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;
        }