libsmbconf: Convert smbconf_delete_parameter() to sbcErr.
authorAndreas Schneider <asn@samba.org>
Mon, 11 Apr 2011 12:20:32 +0000 (14:20 +0200)
committerMichael Adam <obnox@samba.org>
Tue, 10 May 2011 17:13:21 +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/libnet/libnet_join.c
source3/utils/net_conf.c

index 02c49cc877dbb885fb56b01c5f6b3513cea56fc0..a6bb64fec88062a53d5b1511c8a8f9f16122e22f 100644 (file)
@@ -330,7 +330,7 @@ sbcErr smbconf_get_global_parameter(struct smbconf_ctx *ctx,
 /**
  * delete a parameter from configuration
  */
-WERROR smbconf_delete_parameter(struct smbconf_ctx *ctx,
+sbcErr smbconf_delete_parameter(struct smbconf_ctx *ctx,
                                const char *service, const char *param)
 {
        return ctx->ops->delete_parameter(ctx, service, param);
@@ -341,19 +341,18 @@ WERROR smbconf_delete_parameter(struct smbconf_ctx *ctx,
  *
  * Create [global] if it does not exist.
  */
-WERROR smbconf_delete_global_parameter(struct smbconf_ctx *ctx,
+sbcErr smbconf_delete_global_parameter(struct smbconf_ctx *ctx,
                                       const char *param)
 {
-       WERROR werr;
        sbcErr err;
 
        err = smbconf_global_check(ctx);
        if (!SBC_ERROR_IS_OK(err)) {
-               return WERR_GENERAL_FAILURE;
+               return err;
        }
-       werr = smbconf_delete_parameter(ctx, GLOBAL_NAME, param);
+       err = smbconf_delete_parameter(ctx, GLOBAL_NAME, param);
 
-       return werr;
+       return err;
 }
 
 WERROR smbconf_get_includes(struct smbconf_ctx *ctx,
index 15476f146089cd46688727c3fb9365fc9c388e57..e0a3ed50545ef2b7391766dbcebe426ba07c0e48 100644 (file)
@@ -107,9 +107,9 @@ sbcErr smbconf_get_global_parameter(struct smbconf_ctx *ctx,
                                    TALLOC_CTX *mem_ctx,
                                    const char *param,
                                    char **valstr);
-WERROR smbconf_delete_parameter(struct smbconf_ctx *ctx,
+sbcErr smbconf_delete_parameter(struct smbconf_ctx *ctx,
                                const char *service, const char *param);
-WERROR smbconf_delete_global_parameter(struct smbconf_ctx *ctx,
+sbcErr smbconf_delete_global_parameter(struct smbconf_ctx *ctx,
                                       const char *param);
 WERROR smbconf_get_includes(struct smbconf_ctx *ctx,
                            TALLOC_CTX *mem_ctx,
index 9bfcbe097af0e0f208e27ffc737b7a6bbe273d68..c46d30279b4fa2c417440af872cbab8ce3018133 100644 (file)
@@ -57,7 +57,7 @@ struct smbconf_ops {
                                const char *service,
                                const char *param,
                                char **valstr);
-       WERROR (*delete_parameter)(struct smbconf_ctx *ctx,
+       sbcErr (*delete_parameter)(struct smbconf_ctx *ctx,
                                   const char *service, const char *param);
        WERROR (*get_includes)(struct smbconf_ctx *ctx,
                               TALLOC_CTX *mem_ctx,
index e31009e7b26c4f9958ed4fe83a10546b3e516c50..17dee486d552bbd0b23bb821f6a968e252ed304a 100644 (file)
@@ -526,11 +526,11 @@ static sbcErr smbconf_txt_get_parameter(struct smbconf_ctx *ctx,
 /**
  * delete a parameter from configuration
  */
-static WERROR smbconf_txt_delete_parameter(struct smbconf_ctx *ctx,
+static sbcErr smbconf_txt_delete_parameter(struct smbconf_ctx *ctx,
                                           const char *service,
                                           const char *param)
 {
-       return WERR_NOT_SUPPORTED;
+       return SBC_ERR_NOT_SUPPORTED;
 }
 
 static WERROR smbconf_txt_get_includes(struct smbconf_ctx *ctx,
index 42eb6d18b93d026a2ccf6657de21e30333caf2bf..f78c3555ab5959e9b3dfadca3e557d0281ea459d 100644 (file)
@@ -1036,37 +1036,39 @@ done:
 /**
  * delete a parameter from configuration
  */
-static WERROR smbconf_reg_delete_parameter(struct smbconf_ctx *ctx,
+static sbcErr smbconf_reg_delete_parameter(struct smbconf_ctx *ctx,
                                           const char *service,
                                           const char *param)
 {
        struct registry_key *key = NULL;
-       WERROR werr = WERR_OK;
+       WERROR werr;
        sbcErr err;
        TALLOC_CTX *mem_ctx = talloc_stackframe();
 
        err = smbconf_reg_open_service_key(mem_ctx, ctx, service,
                                           REG_KEY_ALL, &key);
        if (!SBC_ERROR_IS_OK(err)) {
-               werr = WERR_NOMEM;
                goto done;
        }
 
        if (!smbconf_reg_valname_valid(param)) {
-               werr = WERR_INVALID_PARAM;
+               err = SBC_ERR_INVALID_PARAM;
                goto done;
        }
 
        if (!smbconf_value_exists(key, param)) {
-               werr = WERR_INVALID_PARAM;
+               err = SBC_ERR_CAN_NOT_COMPLETE;
                goto done;
        }
 
        werr = reg_deletevalue(key, param);
+       if (!W_ERROR_IS_OK(werr)) {
+               err = SBC_ERR_ACCESS_DENIED;
+       }
 
 done:
        talloc_free(mem_ctx);
-       return werr;
+       return err;
 }
 
 static WERROR smbconf_reg_get_includes(struct smbconf_ctx *ctx,
index ef0d5d0850c2e4fe04daa8b5e1fa9331c7e6dff0..2b06be5dc130693d18a39e48097f754a2b547e33 100644 (file)
@@ -1540,8 +1540,11 @@ static WERROR do_unjoin_modify_vals_config(struct libnet_UnjoinCtx *r)
                        goto done;
                }
 
-               werr = smbconf_delete_global_parameter(ctx, "workgroup");
-               W_ERROR_NOT_OK_GOTO_DONE(werr);
+               err = smbconf_delete_global_parameter(ctx, "workgroup");
+               if (!SBC_ERROR_IS_OK(err)) {
+                       werr = WERR_NO_SUCH_SERVICE;
+                       goto done;
+               }
 
                smbconf_delete_global_parameter(ctx, "realm");
        }
index 187735027b488cf3e7b6a4037811e6e4458e8920..bee8dd2a19863b25f3b74d4126a635cc31269a51 100644 (file)
@@ -960,7 +960,7 @@ static int net_conf_delparm(struct net_context *c, struct smbconf_ctx *conf_ctx,
                            int argc, const char **argv)
 {
        int ret = -1;
-       WERROR werr = WERR_OK;
+       sbcErr err;
        char *service = NULL;
        char *param = NULL;
        TALLOC_CTX *mem_ctx = talloc_stackframe();
@@ -986,21 +986,20 @@ static int net_conf_delparm(struct net_context *c, struct smbconf_ctx *conf_ctx,
                goto done;
        }
 
-       werr = smbconf_delete_parameter(conf_ctx, service, param);
-
-       if (W_ERROR_EQUAL(werr, WERR_NO_SUCH_SERVICE)) {
+       err = smbconf_delete_parameter(conf_ctx, service, param);
+       if (SBC_ERROR_EQUAL(err, SBC_ERR_NO_SUCH_SERVICE)) {
                d_fprintf(stderr,
                          _("Error: given service '%s' does not exist.\n"),
                          service);
                goto done;
-       } else if (W_ERROR_EQUAL(werr, WERR_INVALID_PARAM)) {
+       } else if (SBC_ERROR_EQUAL(err, SBC_ERR_INVALID_PARAM)) {
                d_fprintf(stderr,
                          _("Error: given parameter '%s' is not set.\n"),
                          param);
                goto done;
-       } else if (!W_ERROR_IS_OK(werr)) {
+       } else if (!SBC_ERROR_IS_OK(err)) {
                d_fprintf(stderr, _("Error deleting value '%s': %s.\n"),
-                         param, win_errstr(werr));
+                         param, sbcErrorString(err));
                goto done;
        }