summaryrefslogtreecommitdiffstats
path: root/source/client/mount.cifs.c
diff options
context:
space:
mode:
authorSteve French <sfrench@samba.org>2007-04-26 17:23:33 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:19:42 -0500
commit0548dea6c7222dc22144a86fffd32675cd14b677 (patch)
treef3b644a94c6852ae16663d0a663ccc11cf773092 /source/client/mount.cifs.c
parente55c52f6547157f2684d6eb7ba14de7a0234324d (diff)
downloadsamba-0548dea6c7222dc22144a86fffd32675cd14b677.tar.gz
samba-0548dea6c7222dc22144a86fffd32675cd14b677.tar.xz
samba-0548dea6c7222dc22144a86fffd32675cd14b677.zip
r22526: Support deep tree mounts after share (instead of having to specify
prepath)
Diffstat (limited to 'source/client/mount.cifs.c')
-rwxr-xr-xsource/client/mount.cifs.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/source/client/mount.cifs.c b/source/client/mount.cifs.c
index 7e4c27c820b..49150e1ffba 100755
--- a/source/client/mount.cifs.c
+++ b/source/client/mount.cifs.c
@@ -78,6 +78,7 @@ static int free_share_name = 0;
static char * user_name = NULL;
static char * mountpassword = NULL;
char * domain_name = NULL;
+char * prefixpath = NULL;
/* BB finish BB
@@ -804,6 +805,11 @@ continue_unc_parsing:
host_entry = gethostbyname(unc_name);
}
*(share - 1) = '/'; /* put the slash back */
+ if ((prefixpath = strchr(share, '/'))) {
+ *prefixpath = 0; /* permanently terminate the string */
+ if (!strlen(++prefixpath))
+ prefixpath = NULL; /* this needs to be done explicitly */
+ }
if(got_ip) {
if(verboseflag)
printf("ip address specified explicitly\n");
@@ -1196,6 +1202,10 @@ mount_retry:
strcat(options,",");
strcat(options,orgoptions);
}
+ if(prefixpath) {
+ strncat(options,",prefixpath=",12);
+ strcat(options,prefixpath); /* no need to cat the / */
+ }
if(verboseflag)
printf("\nmount.cifs kernel mount options %s \n",options);
if(mount(share_name, mountpoint, "cifs", flags, options)) {