svn commit: samba r6242 - in branches/SAMBA_3_0/source: include smbd

jerry at samba.org jerry at samba.org
Thu Apr 7 22:37:03 GMT 2005


Author: jerry
Date: 2005-04-07 22:37:03 +0000 (Thu, 07 Apr 2005)
New Revision: 6242

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6242

Log:
after talking to jeremy, we can actually consolidate
the 2 BOOL flags in dfs_redirect() down to one since
they both are used in essentially the same context 
(from what we can tell).

Tested Win98SE, WinXP sp 1 & 2, Win2k3 sp1, and WIn2k Sp4.
All dfs operations still seem to work.


Modified:
   branches/SAMBA_3_0/source/include/msdfs.h
   branches/SAMBA_3_0/source/smbd/msdfs.c
   branches/SAMBA_3_0/source/smbd/trans2.c


Changeset:
Modified: branches/SAMBA_3_0/source/include/msdfs.h
===================================================================
--- branches/SAMBA_3_0/source/include/msdfs.h	2005-04-07 22:01:33 UTC (rev 6241)
+++ branches/SAMBA_3_0/source/include/msdfs.h	2005-04-07 22:37:03 UTC (rev 6242)
@@ -68,21 +68,14 @@
 #define RESOLVE_DFSPATH(name, conn, inbuf, outbuf)           	\
 { if ((SVAL(inbuf,smb_flg2) & FLAGS2_DFS_PATHNAMES) &&       	\
       lp_host_msdfs() && lp_msdfs_root(SNUM(conn)) &&		\
-      dfs_redirect(name, conn, False, False))			\
+      dfs_redirect(name, conn, False))				\
              return ERROR_BOTH(NT_STATUS_PATH_NOT_COVERED,	\
 			       ERRSRV, ERRbadpath);; }		
 
-#define RESOLVE_FINDFIRST_DFSPATH(name, conn, inbuf, outbuf)    \
-{ if ((SVAL(inbuf,smb_flg2) & FLAGS2_DFS_PATHNAMES) &&       	\
-      lp_host_msdfs() && lp_msdfs_root(SNUM(conn)) &&		\
-      dfs_redirect(name, conn, True, True))			\
-             return ERROR_BOTH(NT_STATUS_PATH_NOT_COVERED,	\
-			       ERRSRV, ERRbadpath);; }		
-
 #define RESOLVE_DFSPATH_WCARD(name, conn, inbuf, outbuf)        \
 { if ((SVAL(inbuf,smb_flg2) & FLAGS2_DFS_PATHNAMES) &&       	\
       lp_host_msdfs() && lp_msdfs_root(SNUM(conn)) &&		\
-      dfs_redirect(name,conn, False, True))			\
+      dfs_redirect(name,conn, True))				\
              return ERROR_BOTH(NT_STATUS_PATH_NOT_COVERED,	\
 			       ERRSRV, ERRbadpath);; }		
 

Modified: branches/SAMBA_3_0/source/smbd/msdfs.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/msdfs.c	2005-04-07 22:01:33 UTC (rev 6241)
+++ branches/SAMBA_3_0/source/smbd/msdfs.c	2005-04-07 22:37:03 UTC (rev 6242)
@@ -282,8 +282,7 @@
 *****************************************************************/
 
 static BOOL resolve_dfs_path(pstring dfspath, struct dfs_path* dp, 
-		      connection_struct* conn,
-		      BOOL findfirst_flag, BOOL allow_wcards,
+		      connection_struct* conn, BOOL search_flag, 
 		      struct referral** reflistpp, int* refcntp,
 		      BOOL* self_referralp, int* consumedcntp)
 {
@@ -315,7 +314,7 @@
 
 	/* check if need to redirect */
 	if (is_msdfs_link(conn, localpath, reflistpp, refcntp, NULL)) {
-		if (findfirst_flag) {
+		if ( search_flag ) {
 			DEBUG(6,("resolve_dfs_path (FindFirst) No redirection "
 				 "for dfs link %s.\n", dfspath));
 			return False;
@@ -369,17 +368,20 @@
 /*****************************************************************
   Decides if a dfs pathname should be redirected or not.
   If not, the pathname is converted to a tcon-relative local unix path
+
+  search_wcard_flag: this flag performs 2 functions bother related
+  to searches.  See resolve_dfs_path() and parse_processed_dfs_path()
+  for details.
 *****************************************************************/
 
-BOOL dfs_redirect( pstring pathname, connection_struct* conn, 
-                   BOOL findfirst_flag, BOOL allow_wcards )
+BOOL dfs_redirect( pstring pathname, connection_struct* conn, BOOL search_wcard_flag )
 {
 	struct dfs_path dp;
 	
 	if (!conn || !pathname)
 		return False;
 
-	parse_processed_dfs_path(pathname, &dp, allow_wcards);
+	parse_processed_dfs_path(pathname, &dp, search_wcard_flag);
 
 	/* if dfs pathname for a non-dfs share, convert to tcon-relative
 	   path and return false */
@@ -391,7 +393,7 @@
 	if (!strequal(dp.servicename, lp_servicename(SNUM(conn)) )) 
 		return False;
 
-	if (resolve_dfs_path(pathname, &dp, conn, findfirst_flag, allow_wcards,
+	if (resolve_dfs_path(pathname, &dp, conn, search_wcard_flag,
 			     NULL, NULL, NULL, NULL)) {
 		DEBUG(3,("dfs_redirect: Redirecting %s\n", pathname));
 		return True;
@@ -529,7 +531,7 @@
 		return False;
 
 	/* If not remote & not a self referral, return False */
-	if (!resolve_dfs_path(pathname, &dp, conn, False, False,
+	if (!resolve_dfs_path(pathname, &dp, conn, False, 
 			      &jucn->referral_list, &jucn->referral_count,
 			      self_referralp, consumedcntp)) {
 		if (!*self_referralp) {

Modified: branches/SAMBA_3_0/source/smbd/trans2.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/trans2.c	2005-04-07 22:01:33 UTC (rev 6241)
+++ branches/SAMBA_3_0/source/smbd/trans2.c	2005-04-07 22:37:03 UTC (rev 6242)
@@ -1626,7 +1626,7 @@
 		return ERROR_NT(ntstatus);
 	}
 
-	RESOLVE_FINDFIRST_DFSPATH(directory, conn, inbuf, outbuf);
+	RESOLVE_DFSPATH_WCARD(directory, conn, inbuf, outbuf);
 
 	unix_convert(directory,conn,0,&bad_path,&sbuf);
 	if (bad_path) {



More information about the samba-cvs mailing list