[SCM] Samba Shared Repository - branch master updated -
release-4-0-0alpha7-1844-gbd11948
Jeremy Allison
jra at samba.org
Thu May 28 05:02:23 GMT 2009
The branch, master has been updated
via bd1194810787901c5caa08961f97fecbcbd01978 (commit)
from bccc7ee2c6456cdab08884b826ed5ddc2faf2a54 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit bd1194810787901c5caa08961f97fecbcbd01978
Author: Jeremy Allison <jra at samba.org>
Date: Wed May 27 22:02:20 2009 -0700
Add a smbclient "readlink" command and add docs for it.
Jeremy.
-----------------------------------------------------------------------
Summary of changes:
docs-xml/manpages-3/smbclient.1.xml | 8 +++++
source3/client/client.c | 49 +++++++++++++++++++++++++++++++++++
2 files changed, 57 insertions(+), 0 deletions(-)
Changeset truncated at 500 lines:
diff --git a/docs-xml/manpages-3/smbclient.1.xml b/docs-xml/manpages-3/smbclient.1.xml
index 7785d2c..9840414 100644
--- a/docs-xml/manpages-3/smbclient.1.xml
+++ b/docs-xml/manpages-3/smbclient.1.xml
@@ -916,6 +916,14 @@
</varlistentry>
<varlistentry>
+ <term>readlink symlinkname</term>
+ <listitem><para>This command depends on the server supporting the CIFS
+ UNIX extensions and will fail if the server does not. Print
+ the value of the symlink "symlinkname".
+ </para></listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>rd <directory name></term>
<listitem><para>See the rmdir command. </para></listitem>
</varlistentry>
diff --git a/source3/client/client.c b/source3/client/client.c
index d7c554e..2edeb1a 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -2733,6 +2733,54 @@ static int cmd_link(void)
}
/****************************************************************************
+ UNIX readlink.
+****************************************************************************/
+
+static int cmd_readlink(void)
+{
+ TALLOC_CTX *ctx = talloc_tos();
+ char *name= NULL;
+ char *buf = NULL;
+ char *targetname = NULL;
+ char linkname[PATH_MAX+1];
+ struct cli_state *targetcli;
+
+ if (!next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) {
+ d_printf("readlink <name>\n");
+ return 1;
+ }
+ name = talloc_asprintf(ctx,
+ "%s%s",
+ client_get_cur_dir(),
+ buf);
+ if (!name) {
+ return 1;
+ }
+
+ if (!cli_resolve_path(ctx, "", auth_info, cli, name, &targetcli, &targetname)) {
+ d_printf("readlink %s: %s\n", name, cli_errstr(cli));
+ return 1;
+ }
+
+ if (!SERVER_HAS_UNIX_CIFS(targetcli)) {
+ d_printf("Server doesn't support UNIX CIFS calls.\n");
+ return 1;
+ }
+
+ if (!NT_STATUS_IS_OK(cli_posix_readlink(targetcli, name,
+ linkname, PATH_MAX+1))) {
+ d_printf("%s readlink on file %s\n",
+ cli_errstr(targetcli), name);
+ return 1;
+ }
+
+ d_printf("%s -> %s\n", name, linkname);
+
+ return 0;
+}
+
+
+/****************************************************************************
UNIX symlink.
****************************************************************************/
@@ -3953,6 +4001,7 @@ static struct {
{"q",cmd_quit,"logoff the server",{COMPL_NONE,COMPL_NONE}},
{"queue",cmd_queue,"show the print queue",{COMPL_NONE,COMPL_NONE}},
{"quit",cmd_quit,"logoff the server",{COMPL_NONE,COMPL_NONE}},
+ {"readlink",cmd_readlink,"filename Do a UNIX extensions readlink call on a symlink",{COMPL_REMOTE,COMPL_REMOTE}},
{"rd",cmd_rmdir,"<directory> remove a directory",{COMPL_NONE,COMPL_NONE}},
{"recurse",cmd_recurse,"toggle directory recursion for mget and mput",{COMPL_NONE,COMPL_NONE}},
{"reget",cmd_reget,"<remote name> [local name] get a file restarting at end of local file",{COMPL_REMOTE,COMPL_LOCAL}},
--
Samba Shared Repository
More information about the samba-cvs
mailing list