s3: Make cli_set_ea_path return NTSTATUS
authorVolker Lendecke <vl@samba.org>
Thu, 11 Nov 2010 14:51:46 +0000 (15:51 +0100)
committerVolker Lendecke <vlendec@samba.org>
Thu, 11 Nov 2010 16:16:24 +0000 (16:16 +0000)
source3/client/client.c
source3/include/proto.h
source3/libsmb/clifile.c
source3/torture/torture.c

index 51292680ba879d57d50f04bd9cfba9155586f62a..062809d1b685c5f44f95801af1566578f48e8457 100644 (file)
@@ -3346,6 +3346,7 @@ static int cmd_setea(void)
        char *eavalue = NULL;
        char *targetname = NULL;
        struct cli_state *targetcli;
+       NTSTATUS status;
 
        if (!next_token_talloc(ctx, &cmd_ptr, &name, NULL)
            || !next_token_talloc(ctx, &cmd_ptr, &eaname, NULL)) {
@@ -3369,9 +3370,10 @@ static int cmd_setea(void)
                return 1;
        }
 
-       if (!cli_set_ea_path(targetcli, targetname, eaname, eavalue,
-                            strlen(eavalue))) {
-               d_printf("set_ea %s: %s\n", src, cli_errstr(cli));
+       status =  cli_set_ea_path(targetcli, targetname, eaname, eavalue,
+                                 strlen(eavalue));
+       if (!NT_STATUS_IS_OK(status)) {
+               d_printf("set_ea %s: %s\n", src, nt_errstr(status));
                return 1;
        }
 
index 10468be312caab4b2d3ab8e5484e7a0cb03bf2a3..69b59a1088f7b66a67359797d69dd5431c83e0c5 100644 (file)
@@ -2077,7 +2077,9 @@ NTSTATUS cli_ctemp(struct cli_state *cli,
                        uint16_t *pfnum,
                        char **out_path);
 NTSTATUS cli_raw_ioctl(struct cli_state *cli, uint16_t fnum, uint32_t code, DATA_BLOB *blob);
-bool cli_set_ea_path(struct cli_state *cli, const char *path, const char *ea_name, const char *ea_val, size_t ea_len);
+NTSTATUS cli_set_ea_path(struct cli_state *cli, const char *path,
+                        const char *ea_name, const char *ea_val,
+                        size_t ea_len);
 bool cli_set_ea_fnum(struct cli_state *cli, uint16_t fnum, const char *ea_name, const char *ea_val, size_t ea_len);
 struct tevent_req *cli_get_ea_list_path_send(TALLOC_CTX *mem_ctx,
                                             struct tevent_context *ev,
index f8a6220173e29aafd9edefb06e33b38f98a2eb59..23f9567f858ab6c20a155775485625d9c318f87b 100644 (file)
@@ -4120,7 +4120,9 @@ static NTSTATUS cli_set_ea(struct cli_state *cli, uint16_t setup_val,
  Set an extended attribute on a pathname.
 *********************************************************/
 
-bool cli_set_ea_path(struct cli_state *cli, const char *path, const char *ea_name, const char *ea_val, size_t ea_len)
+NTSTATUS cli_set_ea_path(struct cli_state *cli, const char *path,
+                        const char *ea_name, const char *ea_val,
+                        size_t ea_len)
 {
        unsigned int param_len = 0;
        uint8_t *param;
@@ -4130,7 +4132,7 @@ bool cli_set_ea_path(struct cli_state *cli, const char *path, const char *ea_nam
 
        param = SMB_MALLOC_ARRAY(uint8_t, 6+srclen+2);
        if (!param) {
-               return false;
+               return NT_STATUS_NO_MEMORY;
        }
        memset(param, '\0', 6);
        SSVAL(param,0,SMB_INFO_SET_EA);
@@ -4142,7 +4144,7 @@ bool cli_set_ea_path(struct cli_state *cli, const char *path, const char *ea_nam
        status = cli_set_ea(cli, TRANSACT2_SETPATHINFO, param, param_len,
                            ea_name, ea_val, ea_len);
        SAFE_FREE(param);
-       return NT_STATUS_IS_OK(status);
+       return status;
 }
 
 /*********************************************************
index f69d734b7bf85df9b33a80ef1c0666364cc26af6..635eb5d867c947fff46344becb8f95030fefd20f 100644 (file)
@@ -5222,8 +5222,10 @@ static bool run_eatest(int dummy)
 
                slprintf(ea_name, sizeof(ea_name), "EA_%d", i+10);
                memset(ea_val, (char)i+1, i+1);
-               if (!cli_set_ea_path(cli, fname, ea_name, ea_val, i+1)) {
-                       printf("ea_set of name %s failed - %s\n", ea_name, cli_errstr(cli));
+               status = cli_set_ea_path(cli, fname, ea_name, ea_val, i+1);
+               if (!NT_STATUS_IS_OK(status)) {
+                       printf("ea_set of name %s failed - %s\n", ea_name,
+                              nt_errstr(status));
                        talloc_destroy(mem_ctx);
                        return False;
                }
@@ -5257,8 +5259,10 @@ static bool run_eatest(int dummy)
        for (i = 0; i < 20; i++) {
                fstring ea_name;
                slprintf(ea_name, sizeof(ea_name), "ea_%d", i);
-               if (!cli_set_ea_path(cli, fname, ea_name, "", 0)) {
-                       printf("ea_set of name %s failed - %s\n", ea_name, cli_errstr(cli));
+               status = cli_set_ea_path(cli, fname, ea_name, "", 0);
+               if (!NT_STATUS_IS_OK(status)) {
+                       printf("ea_set of name %s failed - %s\n", ea_name,
+                              nt_errstr(status));
                        talloc_destroy(mem_ctx);
                        return False;
                }
@@ -5284,8 +5288,10 @@ static bool run_eatest(int dummy)
        }
 
        /* Try and delete a non existant EA. */
-       if (!cli_set_ea_path(cli, fname, "foo", "", 0)) {
-               printf("deleting non-existant EA 'foo' should succeed. %s\n", cli_errstr(cli));
+       status = cli_set_ea_path(cli, fname, "foo", "", 0);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("deleting non-existant EA 'foo' should succeed. %s\n",
+                      nt_errstr(status));
                correct = False;
        }