[SCM] Samba Shared Repository - branch master updated

Volker Lendecke vlendec at samba.org
Wed Jul 6 01:46:02 MDT 2011


The branch, master has been updated
       via  7d96a45 s3: Remove cli_errstr from cmd_posix_open
       via  c33a5a6 s3: Fix error logic in posix_open
       via  c1fdec7 s3: Remove a few uses of cli_errstr
       via  26782fb s3: make cli_resolve_path return NTSTATUS
      from  c019302 ccan/tally: don't use SIZE_MAX.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 7d96a4594bcbaa75d82779d70e2dec658b9508d6
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Jul 5 19:55:25 2011 +0200

    s3: Remove cli_errstr from cmd_posix_open
    
    Autobuild-User: Volker Lendecke <vlendec at samba.org>
    Autobuild-Date: Wed Jul  6 09:45:11 CEST 2011 on sn-devel-104

commit c33a5a659c82eda365e4dacfe665ce401e92f476
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Jul 5 19:51:09 2011 +0200

    s3: Fix error logic in posix_open

commit c1fdec7efce159bcc9aa146d2ce3485dccc6476a
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Jul 5 19:42:46 2011 +0200

    s3: Remove a few uses of cli_errstr

commit 26782fbbf3a7885746aa17be259607dd2d418347
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Jul 3 20:53:55 2011 +0200

    s3: make cli_resolve_path return NTSTATUS
    
    This looks larger than it is. No parameters needed changing.

-----------------------------------------------------------------------

Summary of changes:
 source3/client/client.c       |  212 ++++++++++++++++++++++++++++-------------
 source3/libsmb/clidfs.c       |   78 ++++++++-------
 source3/libsmb/libsmb_dir.c   |   51 +++++-----
 source3/libsmb/libsmb_file.c  |   54 +++++++----
 source3/libsmb/libsmb_stat.c  |    8 +-
 source3/libsmb/libsmb_xattr.c |   13 ++-
 source3/libsmb/proto.h        |   14 ++--
 source3/utils/net_rpc.c       |    6 +-
 8 files changed, 269 insertions(+), 167 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/client/client.c b/source3/client/client.c
index bc653d5..e2efad8 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -311,8 +311,11 @@ static int do_dskattr(void)
 	TALLOC_CTX *ctx = talloc_tos();
 	NTSTATUS status;
 
-	if ( !cli_resolve_path(ctx, "", auth_info, cli, client_get_cur_dir(), &targetcli, &targetpath)) {
-		d_printf("Error in dskattr: %s\n", cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli,
+				  client_get_cur_dir(), &targetcli,
+				  &targetpath);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("Error in dskattr: %s\n", nt_errstr(status));
 		return 1;
 	}
 
@@ -365,6 +368,7 @@ static int do_cd(const char *new_dir)
 	uint32 attributes;
 	int ret = 1;
 	TALLOC_CTX *ctx = talloc_stackframe();
+	NTSTATUS status;
 
 	newdir = talloc_strdup(ctx, new_dir);
 	if (!newdir) {
@@ -406,8 +410,10 @@ static int do_cd(const char *new_dir)
 	new_cd = clean_name(ctx, new_cd);
 	client_set_cur_dir(new_cd);
 
-	if ( !cli_resolve_path(ctx, "", auth_info, cli, new_cd, &targetcli, &targetpath)) {
-		d_printf("cd %s: %s\n", new_cd, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, new_cd,
+				  &targetcli, &targetpath);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("cd %s: %s\n", new_cd, nt_errstr(status));
 		client_set_cur_dir(saved_dir);
 		goto out;
 	}
@@ -421,7 +427,6 @@ static int do_cd(const char *new_dir)
 	   Except Win9x doesn't support the qpathinfo_basic() call..... */
 
 	if (targetcli->protocol > PROTOCOL_LANMAN2 && !targetcli->win95) {
-		NTSTATUS status;
 
 		status = cli_qpathinfo_basic(targetcli, targetpath, &sbuf,
 					     &attributes);
@@ -437,7 +442,6 @@ static int do_cd(const char *new_dir)
 			goto out;
 		}
 	} else {
-		NTSTATUS status;
 
 		targetpath = talloc_asprintf(ctx,
 				"%s%s",
@@ -858,8 +862,12 @@ NTSTATUS do_list(const char *mask,
 
 			/* check for dfs */
 
-			if ( !cli_resolve_path(ctx, "", auth_info, cli, head, &targetcli, &targetpath ) ) {
-				d_printf("do_list: [%s] %s\n", head, cli_errstr(cli));
+			status = cli_resolve_path(ctx, "", auth_info, cli,
+						  head, &targetcli,
+						  &targetpath);
+			if (!NT_STATUS_IS_OK(status)) {
+				d_printf("do_list: [%s] %s\n", head,
+					 nt_errstr(status));
 				remove_do_list_queue_head();
 				continue;
 			}
@@ -897,8 +905,9 @@ NTSTATUS do_list(const char *mask,
 		}
 	} else {
 		/* check for dfs */
-		if (cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetpath)) {
-
+		status = cli_resolve_path(ctx, "", auth_info, cli, mask,
+					  &targetcli, &targetpath);
+		if (NT_STATUS_IS_OK(status)) {
 			status = cli_list(targetcli, targetpath, attribute,
 					  do_list_helper, targetcli);
 			if (!NT_STATUS_IS_OK(status)) {
@@ -1078,8 +1087,10 @@ static int do_get(const char *rname, const char *lname_in, bool reget)
 		strlower_m(lname);
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, rname, &targetcli, &targetname ) ) {
-		d_printf("Failed to open %s: %s\n", rname, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, rname, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("Failed to open %s: %s\n", rname, nt_errstr(status));
 		return 1;
 	}
 
@@ -1460,8 +1471,10 @@ static bool do_mkdir(const char *name)
 	char *targetname = NULL;
 	NTSTATUS status;
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, name, &targetcli, &targetname)) {
-		d_printf("mkdir %s: %s\n", name, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, name, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("mkdir %s: %s\n", name, nt_errstr(status));
 		return false;
 	}
 
@@ -1516,6 +1529,7 @@ static int cmd_mkdir(void)
 	TALLOC_CTX *ctx = talloc_tos();
 	char *mask = NULL;
 	char *buf = NULL;
+        NTSTATUS status;
 
 	mask = talloc_strdup(ctx, client_get_cur_dir());
 	if (!mask) {
@@ -1546,7 +1560,9 @@ static int cmd_mkdir(void)
 			return 1;
 		}
 
-		if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) {
+		status = cli_resolve_path(ctx, "", auth_info, cli, mask,
+					  &targetcli, &targetname);
+		if (!NT_STATUS_IS_OK(status)) {
 			return 1;
 		}
 
@@ -1829,8 +1845,10 @@ static int do_put(const char *rname, const char *lname, bool reput)
 	struct push_state state;
 	NTSTATUS status;
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, rname, &targetcli, &targetname)) {
-		d_printf("Failed to open %s: %s\n", rname, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, rname,
+				  &targetcli, &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("Failed to open %s: %s\n", rname, nt_errstr(status));
 		return 1;
 	}
 
@@ -2407,8 +2425,10 @@ static int cmd_wdel(void)
 		return 1;
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) {
-		d_printf("cmd_wdel %s: %s\n", mask, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("cmd_wdel %s: %s\n", mask, nt_errstr(status));
 		return 1;
 	}
 
@@ -2431,6 +2451,7 @@ static int cmd_open(void)
 	char *targetname = NULL;
 	struct cli_state *targetcli;
 	uint16_t fnum = (uint16_t)-1;
+        NTSTATUS status;
 
 	if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) {
 		d_printf("open <filename>\n");
@@ -2444,8 +2465,10 @@ static int cmd_open(void)
 		return 1;
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) {
-		d_printf("open %s: %s\n", mask, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("open %s: %s\n", mask, nt_errstr(status));
 		return 1;
 	}
 
@@ -2520,6 +2543,7 @@ static int cmd_posix_open(void)
 	struct cli_state *targetcli;
 	mode_t mode;
 	uint16_t fnum;
+        NTSTATUS status;
 
 	if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) {
 		d_printf("posix_open <filename> 0<mode>\n");
@@ -2539,19 +2563,28 @@ static int cmd_posix_open(void)
 	}
 	mode = (mode_t)strtol(buf, (char **)NULL, 8);
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) {
-		d_printf("posix_open %s: %s\n", mask, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("posix_open %s: %s\n", mask, nt_errstr(status));
 		return 1;
 	}
 
-	if (!NT_STATUS_IS_OK(cli_posix_open(targetcli, targetname, O_CREAT|O_RDWR, mode, &fnum))) {
-		if (!NT_STATUS_IS_OK(cli_posix_open(targetcli, targetname, O_CREAT|O_RDONLY, mode, &fnum))) {
-			d_printf("posix_open file %s: for read/write fnum %d\n", targetname, fnum);
+	status = cli_posix_open(targetcli, targetname, O_CREAT|O_RDWR, mode,
+				&fnum);
+	if (!NT_STATUS_IS_OK(status)) {
+		status = cli_posix_open(targetcli, targetname,
+					O_CREAT|O_RDONLY, mode, &fnum);
+		if (!NT_STATUS_IS_OK(status)) {
+			d_printf("Failed to open file %s. %s\n", targetname,
+				 nt_errstr(status));
 		} else {
-			d_printf("Failed to open file %s. %s\n", targetname, cli_errstr(cli));
+			d_printf("posix_open file %s: for readonly fnum %d\n",
+				 targetname, fnum);
 		}
 	} else {
-		d_printf("posix_open file %s: for read/write fnum %d\n", targetname, fnum);
+		d_printf("posix_open file %s: for read/write fnum %d\n",
+			 targetname, fnum);
 	}
 
 	return 0;
@@ -2565,6 +2598,7 @@ static int cmd_posix_mkdir(void)
 	char *targetname = NULL;
 	struct cli_state *targetcli;
 	mode_t mode;
+        NTSTATUS status;
 
 	if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) {
 		d_printf("posix_mkdir <filename> 0<mode>\n");
@@ -2584,8 +2618,10 @@ static int cmd_posix_mkdir(void)
 	}
 	mode = (mode_t)strtol(buf, (char **)NULL, 8);
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) {
-		d_printf("posix_mkdir %s: %s\n", mask, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("posix_mkdir %s: %s\n", mask, nt_errstr(status));
 		return 1;
 	}
 
@@ -2604,6 +2640,7 @@ static int cmd_posix_unlink(void)
 	char *buf = NULL;
 	char *targetname = NULL;
 	struct cli_state *targetcli;
+        NTSTATUS status;
 
 	if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) {
 		d_printf("posix_unlink <filename>\n");
@@ -2617,8 +2654,10 @@ static int cmd_posix_unlink(void)
 		return 1;
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) {
-		d_printf("posix_unlink %s: %s\n", mask, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("posix_unlink %s: %s\n", mask, nt_errstr(status));
 		return 1;
 	}
 
@@ -2638,6 +2677,7 @@ static int cmd_posix_rmdir(void)
 	char *buf = NULL;
 	char *targetname = NULL;
 	struct cli_state *targetcli;
+        NTSTATUS status;
 
 	if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) {
 		d_printf("posix_rmdir <filename>\n");
@@ -2651,8 +2691,10 @@ static int cmd_posix_rmdir(void)
 		return 1;
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) {
-		d_printf("posix_rmdir %s: %s\n", mask, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("posix_rmdir %s: %s\n", mask, nt_errstr(status));
 		return 1;
 	}
 
@@ -2885,6 +2927,7 @@ static int cmd_rmdir(void)
 	char *buf = NULL;
 	char *targetname = NULL;
 	struct cli_state *targetcli;
+        NTSTATUS status;
 
 	if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) {
 		d_printf("rmdir <dirname>\n");
@@ -2898,8 +2941,10 @@ static int cmd_rmdir(void)
 		return 1;
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli, &targetname)) {
-		d_printf("rmdir %s: %s\n", mask, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, mask, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("rmdir %s: %s\n", mask, nt_errstr(status));
 		return 1;
 	}
 
@@ -2924,6 +2969,7 @@ static int cmd_link(void)
 	char *buf2 = NULL;
 	char *targetname = NULL;
 	struct cli_state *targetcli;
+        NTSTATUS status;
 
 	if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL) ||
 	    !next_token_talloc(ctx, &cmd_ptr,&buf2,NULL)) {
@@ -2945,8 +2991,10 @@ static int cmd_link(void)
 		return 1;
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, oldname, &targetcli, &targetname)) {
-		d_printf("link %s: %s\n", oldname, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, oldname, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("link %s: %s\n", oldname, nt_errstr(status));
 		return 1;
 	}
 
@@ -2974,6 +3022,7 @@ static int cmd_readlink(void)
 	char *targetname = NULL;
 	char linkname[PATH_MAX+1];
 	struct cli_state *targetcli;
+        NTSTATUS status;
 
 	if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) {
 		d_printf("readlink <name>\n");
@@ -2987,8 +3036,10 @@ static int cmd_readlink(void)
 		return 1;
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, name, &targetcli, &targetname)) {
-		d_printf("readlink %s: %s\n", name, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, name, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("readlink %s: %s\n", name, nt_errstr(status));
 		return 1;
 	}
 
@@ -3039,9 +3090,10 @@ static int cmd_symlink(void)
 			return 1;
 		}
 		/* New name must be present in share namespace. */
-		if (!cli_resolve_path(ctx, "", auth_info, cli, newname,
-				      &newcli, &newname)) {
-			d_printf("link %s: %s\n", oldname, cli_errstr(cli));
+		status = cli_resolve_path(ctx, "", auth_info, cli, newname,
+					  &newcli, &newname);
+		if (!NT_STATUS_IS_OK(status)) {
+			d_printf("link %s: %s\n", oldname, nt_errstr(status));
 			return 1;
 		}
 		status = cli_posix_symlink(newcli, oldname, newname);
@@ -3073,6 +3125,7 @@ static int cmd_chmod(void)
 	char *targetname = NULL;
 	struct cli_state *targetcli;
 	mode_t mode;
+        NTSTATUS status;
 
 	if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL) ||
 	    !next_token_talloc(ctx, &cmd_ptr,&buf2,NULL)) {
@@ -3089,8 +3142,10 @@ static int cmd_chmod(void)
 
 	mode = (mode_t)strtol(buf, NULL, 8);
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, &targetname)) {
-		d_printf("chmod %s: %s\n", src, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("chmod %s: %s\n", src, nt_errstr(status));
 		return 1;
 	}
 
@@ -3243,8 +3298,10 @@ static int cmd_getfacl(void)
 		return 1;
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, &targetname)) {
-		d_printf("stat %s: %s\n", src, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("stat %s: %s\n", src, nt_errstr(status));
 		return 1;
 	}
 
@@ -3412,9 +3469,10 @@ static int cmd_geteas(void)
 		return 1;
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli,
-			      &targetname)) {
-		d_printf("stat %s: %s\n", src, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("stat %s: %s\n", src, nt_errstr(status));
 		return 1;
 	}
 
@@ -3468,9 +3526,10 @@ static int cmd_setea(void)
 		return 1;
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli,
-			      &targetname)) {
-		d_printf("stat %s: %s\n", src, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("stat %s: %s\n", src, nt_errstr(status));
 		return 1;
 	}
 
@@ -3499,6 +3558,7 @@ static int cmd_stat(void)
 	SMB_STRUCT_STAT sbuf;
 	struct tm *lt;
 	time_t tmp_time;
+        NTSTATUS status;
 
 	if (!next_token_talloc(ctx, &cmd_ptr,&name,NULL)) {
 		d_printf("stat file\n");
@@ -3512,8 +3572,10 @@ static int cmd_stat(void)
 		return 1;
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, &targetname)) {
-		d_printf("stat %s: %s\n", src, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("stat %s: %s\n", src, nt_errstr(status));
 		return 1;
 	}
 
@@ -3598,6 +3660,7 @@ static int cmd_chown(void)
 	char *buf, *buf2, *buf3;
 	struct cli_state *targetcli;
 	char *targetname = NULL;
+        NTSTATUS status;
 
 	if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL) ||
 	    !next_token_talloc(ctx, &cmd_ptr,&buf2,NULL) ||
@@ -3616,8 +3679,10 @@ static int cmd_chown(void)
 	if (!src) {
 		return 1;
 	}
-	if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, &targetname) ) {
-		d_printf("chown %s: %s\n", src, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli,
+				  &targetname);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("chown %s: %s\n", src, nt_errstr(status));
 		return 1;
 	}
 
@@ -3647,6 +3712,7 @@ static int cmd_rename(void)
 	struct cli_state *targetcli;
 	char *targetsrc;
 	char *targetdest;
+        NTSTATUS status;
 
 	if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL) ||
 	    !next_token_talloc(ctx, &cmd_ptr,&buf2,NULL)) {
@@ -3670,13 +3736,17 @@ static int cmd_rename(void)
 		return 1;
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli, &targetsrc)) {
-		d_printf("rename %s: %s\n", src, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, src, &targetcli,
+				  &targetsrc);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("rename %s: %s\n", src, nt_errstr(status));
 		return 1;
 	}
 
-	if (!cli_resolve_path(ctx, "", auth_info, cli, dest, &targetcli, &targetdest)) {
-		d_printf("rename %s: %s\n", dest, cli_errstr(cli));
+	status = cli_resolve_path(ctx, "", auth_info, cli, dest, &targetcli,
+				  &targetdest);
+	if (!NT_STATUS_IS_OK(status)) {
+		d_printf("rename %s: %s\n", dest, nt_errstr(status));
 		return 1;
 	}
 
@@ -3725,6 +3795,7 @@ static int cmd_hardlink(void)
 	char *buf, *buf2;
 	struct cli_state *targetcli;
 	char *targetname;
+        NTSTATUS status;
 
 	if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL) ||
 	    !next_token_talloc(ctx, &cmd_ptr,&buf2,NULL)) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list