From: Steve French Date: Thu, 26 Apr 2007 17:23:33 +0000 (+0000) Subject: r22526: Support deep tree mounts after share (instead of having to specify X-Git-Tag: samba-misc-tags/initial-v3-0-unstable~605 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0548dea6c7222dc22144a86fffd32675cd14b677;p=thirdparty%2Fsamba.git r22526: Support deep tree mounts after share (instead of having to specify prepath) --- 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)) {