summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2003-05-28 01:06:53 +0000
committerTim Potter <tpot@samba.org>2003-05-28 01:06:53 +0000
commit3c830cad6f5ab9fe27418afff06ac3358fe9c100 (patch)
treebd254935726d3871e7df942260827534d6e921d7 /source3
parent03f046dd9920b3f3c00e97afc06d1857297583ee (diff)
downloadsamba-3c830cad6f5ab9fe27418afff06ac3358fe9c100.tar.gz
samba-3c830cad6f5ab9fe27418afff06ac3358fe9c100.tar.bz2
samba-3c830cad6f5ab9fe27418afff06ac3358fe9c100.zip
Syncup with HEAD:
>revision 1.3 >date: 2003/05/20 04:28:29; author: sfrench; state: Exp; lines: +10 -5 >Fix Linux cifs vfs mount helper parsing of slashes (This used to be commit b2b4a7e4998cc41842e8b564a4ccb77737aeed04)
Diffstat (limited to 'source3')
-rwxr-xr-xsource3/client/mount.cifs.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/source3/client/mount.cifs.c b/source3/client/mount.cifs.c
index 7167859d7b..6edb06aedf 100755
--- a/source3/client/mount.cifs.c
+++ b/source3/client/mount.cifs.c
@@ -223,14 +223,15 @@ char * parse_server(char * unc_name)
return 0;
} else {
unc_name[0] = '\\';
- unc_name[1] = '\\';
+ unc_name[0] = '/';
+ unc_name[1] = '/';
unc_name += 2;
if ((share = strchr(unc_name, '/')) ||
(share = strchr(unc_name,'\\'))) {
*share = 0; /* temporarily terminate the string */
share += 1;
host_entry = gethostbyname(unc_name);
- *(share - 1) = '\\'; /* put the slash back */
+ *(share - 1) = '/'; /* put the slash back */
/* rc = getipnodebyname(unc_name, AF_INET, AT_ADDRCONFIG ,&rc);*/
if(host_entry == NULL) {
printf("mount error: could not find target server. TCP name %s not found ", unc_name);
@@ -300,6 +301,7 @@ int main(int argc, char ** argv)
char * uuid = NULL;
char * mountpoint;
char * options;
+ char * temp;
int rc,i;
int rsize = 0;
int wsize = 0;
@@ -500,9 +502,13 @@ int main(int argc, char ** argv)
optlen += strlen(mountpassword) + 6;
options = malloc(optlen + 10);
- options[0] = 0;
+ options[0] = 0;
strncat(options,"unc=",4);
strcat(options,share_name);
+ /* scan backwards and reverse direction of slash */
+ temp = strrchr(options, '/');
+ if(temp > options + 6)
+ *temp = '\\';
if(ipaddr) {
strncat(options,",ip=",4);
strcat(options,ipaddr);
@@ -533,7 +539,7 @@ int main(int argc, char ** argv)
printf("mount error: cifs filesystem not supported by the system\n");
break;
default:
- printf("mount error %d = %s",errno,strerror(errno));
+ printf("mount error %d = %s\n",errno,strerror(errno));
}
printf("Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)\n");
return -1;