From 3e2f29eefd6c50c4474b297912e8e08d1537b20b Mon Sep 17 00:00:00 2001 From: Steve French Date: Thu, 26 Apr 2007 17:23:33 +0000 Subject: r22526: Support deep tree mounts after share (instead of having to specify prepath) (This used to be commit 0548dea6c7222dc22144a86fffd32675cd14b677) --- source3/client/mount.cifs.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'source3/client/mount.cifs.c') diff --git a/source3/client/mount.cifs.c b/source3/client/mount.cifs.c index 7e4c27c820..49150e1ffb 100755 --- a/source3/client/mount.cifs.c +++ b/source3/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)) { -- cgit