diff options
author | Jeremy Allison <jra@samba.org> | 2004-03-12 01:43:23 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2004-03-12 01:43:23 +0000 |
commit | d99a3d2a5ab7e6ac3a971b7b951fe4106a5f548c (patch) | |
tree | d3e2ccbbfabd2fccc3338364922b46174c241e02 | |
parent | d1189b812172a98cda86d0c9615edbae50ec67a6 (diff) | |
download | samba-d99a3d2a5ab7e6ac3a971b7b951fe4106a5f548c.tar.gz samba-d99a3d2a5ab7e6ac3a971b7b951fe4106a5f548c.tar.bz2 samba-d99a3d2a5ab7e6ac3a971b7b951fe4106a5f548c.zip |
Allow msdfs symlink syntax to be more forgiving (it took me ages to remember
what it was :-). Allow msdfs links to now look like UNC paths : eg.
sym_link -> msdfs://server/share/path/in/share
or :
sym_link -> msdfs:\\server\share\path\in\share
Jeremy.
(This used to be commit 3c89393e2907e4a3318fb3e94a911cd35f16b4c2)
-rw-r--r-- | source3/msdfs/msdfs.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/source3/msdfs/msdfs.c b/source3/msdfs/msdfs.c index 5af73356e0..b77e2111bc 100644 --- a/source3/msdfs/msdfs.c +++ b/source3/msdfs/msdfs.c @@ -198,13 +198,21 @@ static BOOL parse_symlink(char* buf,struct referral** preflist, } for(i=0;i<count;i++) { - /* replace / in the alternate path by a \ */ - char* p = strchr_m(alt_path[i],'/'); - if(p) + char *p; + + /* replace all /'s in the alternate path by a \ */ + for(p = alt_path[i]; *p && ((p = strchr_m(p,'/'))!=NULL); p++) { *p = '\\'; + } + + /* Remove leading '\\'s */ + p = alt_path[i]; + while (*p && (*p == '\\')) { + p++; + } pstrcpy(reflist[i].alternate_path, "\\"); - pstrcat(reflist[i].alternate_path, alt_path[i]); + pstrcat(reflist[i].alternate_path, p); reflist[i].proximity = 0; reflist[i].ttl = REFERRAL_TTL; DEBUG(10, ("parse_symlink: Created alt path: %s\n", reflist[i].alternate_path)); |