libsmbconf: Convert smbconf_set_includes() to sbcErr.
authorAndreas Schneider <asn@samba.org>
Mon, 11 Apr 2011 13:14:52 +0000 (15:14 +0200)
committerMichael Adam <obnox@samba.org>
Tue, 10 May 2011 17:13:22 +0000 (19:13 +0200)
Signed-off-by: Michael Adam <obnox@samba.org>
lib/smbconf/smbconf.c
lib/smbconf/smbconf.h
lib/smbconf/smbconf_private.h
lib/smbconf/smbconf_txt.c
source3/lib/smbconf/smbconf_reg.c
source3/lib/smbconf/testsuite.c
source3/utils/net_conf.c

index f23a802e7c7eeeb9980f46c23ec60e65abfe6bb1..c3ba106d1c9193452d2432747057cca8a31940cd 100644 (file)
@@ -380,28 +380,27 @@ sbcErr smbconf_get_global_includes(struct smbconf_ctx *ctx,
        return err;
 }
 
-WERROR smbconf_set_includes(struct smbconf_ctx *ctx,
+sbcErr smbconf_set_includes(struct smbconf_ctx *ctx,
                            const char *service,
                            uint32_t num_includes, const char **includes)
 {
        return ctx->ops->set_includes(ctx, service, num_includes, includes);
 }
 
-WERROR smbconf_set_global_includes(struct smbconf_ctx *ctx,
+sbcErr smbconf_set_global_includes(struct smbconf_ctx *ctx,
                                   uint32_t num_includes,
                                   const char **includes)
 {
-       WERROR werr;
        sbcErr err;
 
        err = smbconf_global_check(ctx);
        if (!SBC_ERROR_IS_OK(err)) {
-               return WERR_GENERAL_FAILURE;
+               return err;
        }
-       werr = smbconf_set_includes(ctx, GLOBAL_NAME,
-                                   num_includes, includes);
+       err = smbconf_set_includes(ctx, GLOBAL_NAME,
+                                  num_includes, includes);
 
-       return werr;
+       return err;
 }
 
 
index 672c2564808388b6c084c7b6f6cd2ca8349731c5..8921af410830c24777beff24878b4f1c8d54b9dd 100644 (file)
@@ -118,10 +118,10 @@ sbcErr smbconf_get_includes(struct smbconf_ctx *ctx,
 sbcErr smbconf_get_global_includes(struct smbconf_ctx *ctx,
                                   TALLOC_CTX *mem_ctx,
                                   uint32_t *num_includes, char ***includes);
-WERROR smbconf_set_includes(struct smbconf_ctx *ctx,
+sbcErr smbconf_set_includes(struct smbconf_ctx *ctx,
                            const char *service,
                            uint32_t num_includes, const char **includes);
-WERROR smbconf_set_global_includes(struct smbconf_ctx *ctx,
+sbcErr smbconf_set_global_includes(struct smbconf_ctx *ctx,
                                   uint32_t num_includes,
                                   const char **includes);
 WERROR smbconf_delete_includes(struct smbconf_ctx *ctx, const char *service);
index 8fb9c849219e86d4765cd732d01adc9007287366..1cb8b88d13f5e6c42b8289dcbf85411ec95fc45f 100644 (file)
@@ -63,7 +63,7 @@ struct smbconf_ops {
                               TALLOC_CTX *mem_ctx,
                               const char *service,
                               uint32_t *num_includes, char ***includes);
-       WERROR (*set_includes)(struct smbconf_ctx *ctx,
+       sbcErr (*set_includes)(struct smbconf_ctx *ctx,
                               const char *service,
                               uint32_t num_includes, const char **includes);
        WERROR (*delete_includes)(struct smbconf_ctx *ctx,
index 7983d925e607cb0c444059ea58ee3fd9b39023c2..5502167593f44981999408719cf3f581ea26b081 100644 (file)
@@ -594,12 +594,12 @@ done:
        return err;
 }
 
-static WERROR smbconf_txt_set_includes(struct smbconf_ctx *ctx,
+static sbcErr smbconf_txt_set_includes(struct smbconf_ctx *ctx,
                                       const char *service,
                                       uint32_t num_includes,
                                       const char **includes)
 {
-       return WERR_NOT_SUPPORTED;
+       return SBC_ERR_NOT_SUPPORTED;
 }
 
 static WERROR smbconf_txt_delete_includes(struct smbconf_ctx *ctx,
index deca6ec68accc353af49801f144f3bf97ac716bf..124140b178b5f423b57a815fce3b32a5aaf5c3aa 100644 (file)
@@ -236,31 +236,32 @@ done:
        return err;
 }
 
-static WERROR smbconf_reg_set_multi_sz_value(struct registry_key *key,
+static sbcErr smbconf_reg_set_multi_sz_value(struct registry_key *key,
                                             const char *valname,
                                             const uint32_t num_strings,
                                             const char **strings)
 {
        WERROR werr;
+       sbcErr err = SBC_ERR_OK;
        struct registry_value *value;
        uint32_t count;
        TALLOC_CTX *tmp_ctx = talloc_stackframe();
        const char **array;
 
        if (strings == NULL) {
-               werr = WERR_INVALID_PARAM;
+               err = SBC_ERR_INVALID_PARAM;
                goto done;
        }
 
        array = talloc_zero_array(tmp_ctx, const char *, num_strings + 1);
        if (array == NULL) {
-               werr = WERR_NOMEM;
+               err = SBC_ERR_NOMEM;
                goto done;
        }
 
        value = TALLOC_ZERO_P(tmp_ctx, struct registry_value);
        if (value == NULL) {
-               werr = WERR_NOMEM;
+               err = SBC_ERR_NOMEM;
                goto done;
        }
 
@@ -269,13 +270,13 @@ static WERROR smbconf_reg_set_multi_sz_value(struct registry_key *key,
        for (count = 0; count < num_strings; count++) {
                array[count] = talloc_strdup(value, strings[count]);
                if (array[count] == NULL) {
-                       werr = WERR_NOMEM;
+                       err = SBC_ERR_NOMEM;
                        goto done;
                }
        }
 
        if (!push_reg_multi_sz(value, &value->data, array)) {
-               werr = WERR_NOMEM;
+               err = SBC_ERR_NOMEM;
                goto done;
        }
 
@@ -283,11 +284,12 @@ static WERROR smbconf_reg_set_multi_sz_value(struct registry_key *key,
        if (!W_ERROR_IS_OK(werr)) {
                DEBUG(5, ("Error adding value '%s' to key '%s': %s\n",
                          valname, key->key->name, win_errstr(werr)));
+               err = SBC_ERR_ACCESS_DENIED;
        }
 
 done:
        talloc_free(tmp_ctx);
-       return werr;
+       return err;
 }
 
 /**
@@ -1098,7 +1100,7 @@ done:
        return err;
 }
 
-static WERROR smbconf_reg_set_includes(struct smbconf_ctx *ctx,
+static sbcErr smbconf_reg_set_includes(struct smbconf_ctx *ctx,
                                       const char *service,
                                       uint32_t num_includes,
                                       const char **includes)
@@ -1111,23 +1113,27 @@ static WERROR smbconf_reg_set_includes(struct smbconf_ctx *ctx,
        err = smbconf_reg_open_service_key(tmp_ctx, ctx, service,
                                           REG_KEY_ALL, &key);
        if (!SBC_ERROR_IS_OK(err)) {
-               werr = WERR_NOMEM;
                goto done;
        }
 
        if (num_includes == 0) {
                if (!smbconf_value_exists(key, INCLUDES_VALNAME)) {
+                       err = SBC_ERR_OK;
                        goto done;
                }
                werr = reg_deletevalue(key, INCLUDES_VALNAME);
+               if (!W_ERROR_IS_OK(werr)) {
+                       err = SBC_ERR_ACCESS_DENIED;
+                       goto done;
+               }
        } else {
-               werr = smbconf_reg_set_multi_sz_value(key, INCLUDES_VALNAME,
+               err = smbconf_reg_set_multi_sz_value(key, INCLUDES_VALNAME,
                                                      num_includes, includes);
        }
 
 done:
        talloc_free(tmp_ctx);
-       return werr;
+       return err;
 }
 
 static WERROR smbconf_reg_delete_includes(struct smbconf_ctx *ctx,
index 8a7e2d4c2555c2b913d1575640636a819c7d2fc5..593839d88f6e6720c2581aa4470c34088995b8fc 100644 (file)
@@ -68,7 +68,6 @@ done:
 
 static bool test_set_get_includes(struct smbconf_ctx *ctx)
 {
-       WERROR werr;
        sbcErr err;
        uint32_t count;
        bool ret = false;
@@ -83,10 +82,10 @@ static bool test_set_get_includes(struct smbconf_ctx *ctx)
 
        printf("TEST: set_get_includes\n");
 
-       werr = smbconf_set_global_includes(ctx, set_num_includes, set_includes);
-       if (!W_ERROR_IS_OK(werr)) {
+       err = smbconf_set_global_includes(ctx, set_num_includes, set_includes);
+       if (!SBC_ERROR_IS_OK(err)) {
                printf("FAIL: get_set_includes (setting includes) - %s\n",
-                      win_errstr(werr));
+                      sbcErrorString(err));
                goto done;
        }
 
@@ -139,10 +138,10 @@ static bool test_delete_includes(struct smbconf_ctx *ctx)
 
        printf("TEST: delete_includes\n");
 
-       werr = smbconf_set_global_includes(ctx, set_num_includes, set_includes);
-       if (!W_ERROR_IS_OK(werr)) {
+       err = smbconf_set_global_includes(ctx, set_num_includes, set_includes);
+       if (!SBC_ERROR_IS_OK(err)) {
                printf("FAIL: delete_includes (setting includes) - %s\n",
-                      win_errstr(werr));
+                      sbcErrorString(err));
                goto done;
        }
 
index d3c39fdb74d0514c28e2e5326c3e2a2f11fbd17a..255f14c920032e5779fdae2d65c28da0333b9cae 100644 (file)
@@ -246,9 +246,14 @@ static WERROR import_process_service(struct net_context *c,
                }
        }
 
-       werr = smbconf_set_includes(conf_ctx, service->name, num_includes,
-                                   (const char **)includes);
+       err = smbconf_set_includes(conf_ctx, service->name, num_includes,
+                                  (const char **)includes);
+       if (!SBC_ERROR_IS_OK(err)) {
+               werr = WERR_NOMEM;
+               goto done;
+       }
 
+       werr = WERR_OK;
 done:
        TALLOC_FREE(mem_ctx);
        return werr;
@@ -1055,7 +1060,7 @@ static int net_conf_setincludes(struct net_context *c,
                                struct smbconf_ctx *conf_ctx,
                                int argc, const char **argv)
 {
-       WERROR werr;
+       sbcErr err;
        char *service;
        uint32_t num_includes;
        const char **includes;
@@ -1080,9 +1085,9 @@ static int net_conf_setincludes(struct net_context *c,
                includes = argv + 1;
        }
 
-       werr = smbconf_set_includes(conf_ctx, service, num_includes, includes);
-       if (!W_ERROR_IS_OK(werr)) {
-               d_printf(_("error setting includes: %s\n"), win_errstr(werr));
+       err = smbconf_set_includes(conf_ctx, service, num_includes, includes);
+       if (!SBC_ERROR_IS_OK(err)) {
+               d_printf(_("error setting includes: %s\n"), sbcErrorString(err));
                goto done;
        }