[Samba] Strange looking behavior (may be off-topic)

Shirish Kalele kalele at samba.org
Fri Mar 29 09:24:03 GMT 2002


Hi Mike,

Others have reported this problem as well. 

Is he seeing the problem only with Unigraphics or other applications as
well?

I have an idea this might be related to a problem that I fixed
recently. Could you try out the patch below and let me know if this fixes
it?

If it doesn't, we'll need to do some more hunting..

Thanks,
Shirish

--- msdfs.c.orig	Mon Mar 25 18:26:00 2002
+++ msdfs.c	Thu Mar 28 09:16:58 2002
@@ -582,14 +582,21 @@
 	BOOL self_referral = False;
 	pstring buf;
 	int reply_size = 0;
+	char *pathnamep = pathname;
 
 	ZERO_STRUCT(junction);
 
 	/* get the junction entry */
-	if (!pathname)
+	if (!pathnamep)
 		return -1;
 
-	safe_strcpy(buf, pathname, sizeof(buf));
+	/* Trim pathname sent by client so it begins with only one backslash.
+	   Two backslashes confuse some dfs clients
+	 */
+	while (strlen(pathnamep) > 1 && pathnamep[1] == '\\')
+		pathnamep++;
+
+	safe_strcpy(buf, pathnamep, sizeof(buf));
 	if (!get_referred_path(buf, &junction, &consumedcnt,
 			       &self_referral))
 		return -1;
@@ -598,7 +605,7 @@
 	{
 		if( DEBUGLVL( 3 ) ) {
 			int i=0;
-			dbgtext("setup_dfs_referral: Path %s to alternate path(s):",pathname);
+			dbgtext("setup_dfs_referral: Path %s to alternate path(s):",pathnamep);
 			for(i=0;i<junction.referral_count;i++)
 				dbgtext(" %s",junction.referral_list[i].alternate_path);
 			dbgtext(".\n");
@@ -613,14 +620,14 @@
 	switch(max_referral_level) {
 	case 2:
 		{
-		reply_size = setup_ver2_dfs_referral(pathname, ppdata, &junction, 
+		reply_size = setup_ver2_dfs_referral(pathnamep, ppdata, &junction, 
 						     consumedcnt, self_referral);
 		SAFE_FREE(junction.referral_list);
 		break;
 		}
 	case 3:
 		{
-		reply_size = setup_ver3_dfs_referral(pathname, ppdata, &junction, 
+		reply_size = setup_ver3_dfs_referral(pathnamep, ppdata, &junction, 
 						     consumedcnt, self_referral);
 		SAFE_FREE(junction.referral_list);
 		break;


-----Original Message-----
I have some users who are seeing some strange behavior in some drives
mapped through Samba.  I've recently installed version 2.2.2 because I
needed DFS.  The DFS share is pointing to a remote Samba server running
version 2.0.9.  When you browse or map the the share, everything looks
normal.  As an example, if my user maps the DFS share to I and one of the
entries in the DFS share is 

msdfs:system\share

he sees I:\share\dira
            I:\share\dirb
            I:\share\dirc

but in his application, he sees I:\share\dira\dira
                                            I:\share\dirb\dirb
                                            I:\share\dirc\dirc

Has anyone else seen this?  The application in Unigraphics.

Thanks -

Mike







More information about the samba mailing list