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