r18865: fixed some of the most obvious NTSTATUS/WERROR mixups in Samba3. It
authorAndrew Tridgell <tridge@samba.org>
Sun, 24 Sep 2006 02:32:34 +0000 (02:32 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:01:06 +0000 (12:01 -0500)
still doesn't compile with immediate structures and the
NTSTATUS/WERROR separation, as there are still several places where
the two error types are mixed up. I haven't fixed those as they
require decisions about the rpcclient code that I really don't want to
get into (the error handling there is a mess)

So samba3 compiles now, but only becaise HAVE_IMMEDIATE_STRUCTURES is
not used (look for HAVE_IMMEDIATE_STRUCTURES_XX_DISABLED)
(This used to be commit 8438a6a7d4506d395c8b4bd0e99f9c100e5e3c4e)

source3/libsmb/clierror.c
source3/libsmb/libsmbclient.c
source3/libsmb/nterr.c
source3/rpcclient/cmd_srvsvc.c
source3/utils/net_rpc.c

index 01c42bd36a6bf4d18e8a8dd338c7f6bd05a1e816..fcedc3bdab163aeb808b824f5c47e304a7745948 100644 (file)
@@ -226,7 +226,7 @@ void cli_dos_error(struct cli_state *cli, uint8 *eclass, uint32 *ecode)
 }
 
 /* Return a UNIX errno from a NT status code */
-struct {
+static const struct {
        NTSTATUS status;
        int error;
 } nt_errno_map[] = {
index 2af72d670f8f745245dec179f2369e4a5c04780d..6be7dbe8d6fec31e2b6a520514f40b5662a5781a 100644 (file)
@@ -2472,7 +2472,7 @@ net_share_enum_rpc(struct cli_state *cli,
                    void *state)
 {
         int i;
-       WERROR result;
+       NTSTATUS result;
        uint32 enum_hnd;
         uint32 info_level = 1;
        uint32 preferred_len = 0xffffffff;
@@ -2509,7 +2509,7 @@ net_share_enum_rpc(struct cli_state *cli,
                                               &enum_hnd);
 
         /* Was it successful? */
-       if (!W_ERROR_IS_OK(result) || numentries == 0) {
+       if (!NT_STATUS_IS_OK(result) || numentries == 0) {
                 /*  Nope.  Go clean up. */
                goto done;
         }
@@ -2531,7 +2531,7 @@ done:
         TALLOC_FREE(mem_ctx);
 
         /* Tell 'em if it worked */
-        return W_ERROR_IS_OK(result) ? 0 : -1;
+        return NT_STATUS_IS_OK(result) ? 0 : -1;
 }
 
 
index e874b80473cd92d7595ef2a66a18f9a6e5111c9b..2e4b1106af41f997d8960b1df8685a564eb449ec 100644 (file)
@@ -28,7 +28,7 @@ typedef const struct
        NTSTATUS nt_errcode;
 } nt_err_code_struct;
 
-static nt_err_code_struct nt_errs[] =
+static const nt_err_code_struct nt_errs[] =
 {
        { "NT_STATUS_OK", NT_STATUS_OK },
        { "NT_STATUS_UNSUCCESSFUL", NT_STATUS_UNSUCCESSFUL },
index d6e01eee85efb679a54701e2ead3d7c27f4d5dfa..208e7a2543db694348679b26bbc1166f2a5b28de 100644 (file)
@@ -172,7 +172,7 @@ static WERROR cmd_srvsvc_srv_query_info(struct rpc_pipe_client *cli,
 {
        uint32 info_level = 101;
        union srvsvc_NetSrvInfo ctr;
-       WERROR result;
+       NTSTATUS result;
 
        if (argc > 2) {
                printf("Usage: %s [infolevel]\n", argv[0]);
index e6ba152ec96e435f714a8d15c6bb805c3b07650f..a09ed3cb3c998e3a1b385aa6f3f9f379426c860c 100644 (file)
@@ -3014,7 +3014,7 @@ static NTSTATUS rpc_share_add_internals(const DOM_SID *domain_sid,
                                        TALLOC_CTX *mem_ctx,int argc,
                                        const char **argv)
 {
-       WERROR result;
+       NTSTATUS result;
        char *sharename;
        char *path;
        uint32 type = STYPE_DISKTREE; /* only allow disk shares to be added */
@@ -3047,7 +3047,7 @@ static NTSTATUS rpc_share_add_internals(const DOM_SID *domain_sid,
 
        result = rpccli_srvsvc_NetShareAdd(pipe_hnd, mem_ctx, NULL, level, 
                                                                           info, &parm_error);
-       return werror_to_ntstatus(result);
+       return result;
 }
 
 static int rpc_share_add(int argc, const char **argv)
@@ -3084,10 +3084,10 @@ static NTSTATUS rpc_share_del_internals(const DOM_SID *domain_sid,
                                        int argc,
                                        const char **argv)
 {
-       WERROR result;
+       NTSTATUS result;
 
        result = rpccli_srvsvc_NetShareDel(pipe_hnd, mem_ctx, NULL, argv[0], 0);
-       return W_ERROR_IS_OK(result) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL;
+       return NT_STATUS_IS_OK(result) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL;
 }
 
 /** 
@@ -3128,7 +3128,7 @@ static void display_share_info_1(struct srvsvc_NetShareInfo1 *info1)
 
 }
 
-static WERROR get_share_info(struct rpc_pipe_client *pipe_hnd,
+static NTSTATUS get_share_info(struct rpc_pipe_client *pipe_hnd,
                                TALLOC_CTX *mem_ctx, 
                                uint32 level,
                                int argc,
@@ -3175,13 +3175,13 @@ static NTSTATUS rpc_share_list_internals(const DOM_SID *domain_sid,
                                        const char **argv)
 {
        union srvsvc_NetShareCtr ctr;
-       WERROR result;
+       NTSTATUS result;
        uint32 i, level = 1;
        uint32 numentries;
 
        result = get_share_info(pipe_hnd, mem_ctx, level, argc, argv, &ctr, 
                                                        &numentries);
-       if (!W_ERROR_IS_OK(result))
+       if (!NT_STATUS_IS_OK(result))
                goto done;
 
        /* Display results */
@@ -3195,7 +3195,7 @@ static NTSTATUS rpc_share_list_internals(const DOM_SID *domain_sid,
        for (i = 0; i < numentries; i++)
                display_share_info_1(&ctr.ctr1->array[i]);
  done:
-       return W_ERROR_IS_OK(result) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL;
+       return NT_STATUS_IS_OK(result) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL;
 }
 
 /*** 
@@ -3268,7 +3268,7 @@ static NTSTATUS rpc_share_migrate_shares_internals(const DOM_SID *domain_sid,
                                                int argc,
                                                const char **argv)
 {
-       WERROR result;
+       NTSTATUS result;
        NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
        union srvsvc_NetShareCtr ctr_src;
        uint32 i;
@@ -3279,7 +3279,7 @@ static NTSTATUS rpc_share_migrate_shares_internals(const DOM_SID *domain_sid,
 
        result = get_share_info(pipe_hnd, mem_ctx, level, argc, argv, &ctr_src, 
                                                        &numentries);
-       if (!W_ERROR_IS_OK(result))
+       if (!NT_STATUS_IS_OK(result))
                goto done;
 
        /* connect destination PI_SRVSVC */
@@ -3312,13 +3312,13 @@ static NTSTATUS rpc_share_migrate_shares_internals(const DOM_SID *domain_sid,
                result = rpccli_srvsvc_NetShareAdd(srvsvc_pipe, mem_ctx, NULL, 
                                                                                   502, info, &parm_error);
        
-                if (W_ERROR_V(result) == W_ERROR_V(WERR_ALREADY_EXISTS)) {
+                if (NT_STATUS_EQUAL(result, NT_STATUS_OBJECT_NAME_COLLISION)) {
                        printf("           [%s] does already exist\n", ctr_src.ctr502->array[i].name);
                        continue;
                }
 
-               if (!W_ERROR_IS_OK(result)) {
-                       printf("cannot add share: %s\n", dos_errstr(result));
+               if (!NT_STATUS_IS_OK(result)) {
+                       printf("cannot add share: %s\n", nt_errstr(result));
                        goto done;
                }
 
@@ -3540,7 +3540,7 @@ static NTSTATUS rpc_share_migrate_files_internals(const DOM_SID *domain_sid,
                                                int argc,
                                                const char **argv)
 {
-       WERROR result;
+       NTSTATUS result;
        NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
        union srvsvc_NetShareCtr ctr_src;
        uint32 i;
@@ -3557,7 +3557,7 @@ static NTSTATUS rpc_share_migrate_files_internals(const DOM_SID *domain_sid,
        result = get_share_info(pipe_hnd, mem_ctx, level, argc, argv, &ctr_src, 
                                                        &numentries);
 
-       if (!W_ERROR_IS_OK(result))
+       if (!NT_STATUS_IS_OK(result))
                goto done;
 
        for (i = 0; i < numentries; i++) {
@@ -3676,7 +3676,7 @@ static NTSTATUS rpc_share_migrate_security_internals(const DOM_SID *domain_sid,
                                                int argc,
                                                const char **argv)
 {
-       WERROR result;
+       NTSTATUS result;
        NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
        union srvsvc_NetShareCtr ctr_src;
        union srvsvc_NetShareInfo info;
@@ -3690,7 +3690,7 @@ static NTSTATUS rpc_share_migrate_security_internals(const DOM_SID *domain_sid,
        result = get_share_info(pipe_hnd, mem_ctx, level, argc, argv, &ctr_src,
                                                        &numentries);
 
-       if (!W_ERROR_IS_OK(result))
+       if (!NT_STATUS_IS_OK(result))
                goto done;
 
        /* connect destination PI_SRVSVC */
@@ -3722,8 +3722,8 @@ static NTSTATUS rpc_share_migrate_security_internals(const DOM_SID *domain_sid,
                                                                                           argv[0], level, info,
                                                                                           &parm_error);
        
-               if (!W_ERROR_IS_OK(result)) {
-                       printf("cannot set share-acl: %s\n", dos_errstr(result));
+               if (!NT_STATUS_IS_OK(result)) {
+                       printf("cannot set share-acl: %s\n", nt_errstr(result));
                        goto done;
                }
 
@@ -4354,13 +4354,13 @@ static void show_userlist(struct rpc_pipe_client *pipe_hnd,
        struct cli_state *cli = pipe_hnd->cli;
        int i;
        union srvsvc_NetShareInfo info;
-       WERROR result;
+       NTSTATUS result;
        uint16 cnum;
 
        result = rpccli_srvsvc_NetShareGetInfo(pipe_hnd, mem_ctx, NULL, netname,
                                               502, &info);
 
-       if (!W_ERROR_IS_OK(result)) {
+       if (!NT_STATUS_IS_OK(result)) {
                DEBUG(1, ("Coult not query secdesc for share %s\n",
                          netname));
                return;
@@ -4651,7 +4651,7 @@ static NTSTATUS rpc_sh_share_add(TALLOC_CTX *mem_ctx,
 {
        union srvsvc_NetShareInfo info;
        struct srvsvc_NetShareInfo2 info2;
-       WERROR result;
+       NTSTATUS result;
        uint32 parm_error;
 
        if ((argc < 2) || (argc > 3)) {
@@ -4668,7 +4668,7 @@ static NTSTATUS rpc_sh_share_add(TALLOC_CTX *mem_ctx,
        result = rpccli_srvsvc_NetShareAdd(
                pipe_hnd, mem_ctx, NULL, 2, info, &parm_error); 
                                             
-       return werror_to_ntstatus(result);
+       return result;
 }
 
 static NTSTATUS rpc_sh_share_delete(TALLOC_CTX *mem_ctx,
@@ -4676,7 +4676,7 @@ static NTSTATUS rpc_sh_share_delete(TALLOC_CTX *mem_ctx,
                                    struct rpc_pipe_client *pipe_hnd,
                                    int argc, const char **argv)
 {
-       WERROR result;
+       NTSTATUS result;
 
        if (argc != 1) {
                d_fprintf(stderr, "usage: %s <share>\n", ctx->whoami);
@@ -4684,7 +4684,7 @@ static NTSTATUS rpc_sh_share_delete(TALLOC_CTX *mem_ctx,
        }
 
        result = rpccli_srvsvc_NetShareDel(pipe_hnd, mem_ctx, NULL, argv[0], 0);
-       return werror_to_ntstatus(result);
+       return result;
 }
 
 static NTSTATUS rpc_sh_share_info(TALLOC_CTX *mem_ctx,
@@ -4693,7 +4693,7 @@ static NTSTATUS rpc_sh_share_info(TALLOC_CTX *mem_ctx,
                                  int argc, const char **argv)
 {
        union srvsvc_NetShareInfo info;
-       WERROR result;
+       NTSTATUS result;
 
        if (argc != 1) {
                d_fprintf(stderr, "usage: %s <share>\n", ctx->whoami);
@@ -4702,7 +4702,7 @@ static NTSTATUS rpc_sh_share_info(TALLOC_CTX *mem_ctx,
 
        result = rpccli_srvsvc_NetShareGetInfo(
                pipe_hnd, mem_ctx, NULL, argv[0], 2, &info);
-       if (!W_ERROR_IS_OK(result)) {
+       if (!NT_STATUS_IS_OK(result)) {
                goto done;
        }
 
@@ -4712,7 +4712,7 @@ static NTSTATUS rpc_sh_share_info(TALLOC_CTX *mem_ctx,
        d_printf("Password: %s\n", info.info2->password);
 
  done:
-       return werror_to_ntstatus(result);
+       return result;
 }
 
 struct rpc_sh_cmd *net_rpc_share_cmds(TALLOC_CTX *mem_ctx,
@@ -4768,9 +4768,9 @@ static NTSTATUS rpc_file_close_internals(const DOM_SID *domain_sid,
                                        int argc,
                                        const char **argv)
 {
-       WERROR result;
+       NTSTATUS result;
        result = rpccli_srvsvc_NetFileClose(pipe_hnd, mem_ctx, NULL, atoi(argv[0]));
-       return W_ERROR_IS_OK(result) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL;
+       return NT_STATUS_IS_OK(result) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL;
 }
 
 /** 
@@ -4832,7 +4832,7 @@ static NTSTATUS rpc_file_list_internals(const DOM_SID *domain_sid,
                                        const char **argv)
 {
        union srvsvc_NetFileCtr ctr;
-       WERROR result;
+       NTSTATUS result;
        uint32 hnd;
        uint32 preferred_len = 0xffffffff, i;
        const char *username=NULL;
@@ -4848,7 +4848,7 @@ static NTSTATUS rpc_file_list_internals(const DOM_SID *domain_sid,
        result = rpccli_srvsvc_NetFileEnum(pipe_hnd,
                                        mem_ctx, NULL, NULL, username, &level, &ctr, preferred_len, &numentries, &hnd);
 
-       if (!W_ERROR_IS_OK(result))
+       if (!NT_STATUS_IS_OK(result))
                goto done;
 
        /* Display results */
@@ -4860,7 +4860,7 @@ static NTSTATUS rpc_file_list_internals(const DOM_SID *domain_sid,
        for (i = 0; i < numentries; i++)
                display_file_info_3(&ctr.ctr3->array[i]);
  done:
-       return W_ERROR_IS_OK(result) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL;
+       return NT_STATUS_IS_OK(result) ? NT_STATUS_OK : NT_STATUS_UNSUCCESSFUL;
 }
 
 /**