[Samba] Re: File browser doesn't remember last directory over Dfs

Simon Walton simonw at matteworld.com
Fri Apr 8 17:03:39 GMT 2005


   I applied the patch below to 3.0.13 and it seems to have fixed this
problem.

Simon Walton

------------------------------
*** source/include/msdfs.h.orig Fri Mar 11 05:47:05 2005
--- source/include/msdfs.h      Thu Apr  7 17:02:39 2005
***************
*** 72,77 ****
--- 72,85 ----
               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))                             \
+              return ERROR_BOTH(NT_STATUS_PATH_NOT_COVERED,      \
+                                ERRSRV, ERRbadpath);; }
+ 
+ 
  #define init_dfsroot(conn, inbuf, outbuf)                     \
  { if (lp_msdfs_root(SNUM(conn)) && lp_host_msdfs()) {         \
          DEBUG(2,("Serving %s as a Dfs root\n",                        \
*** source/smbd/trans2.c.orig   Fri Mar 18 06:56:41 2005
--- source/smbd/trans2.c        Thu Apr  7 17:02:39 2005
***************
*** 1378,1384 ****
                return ERROR_NT(ntstatus);
        }
  
!       RESOLVE_DFSPATH(directory, conn, inbuf, outbuf);
  
        unix_convert(directory,conn,0,&bad_path,&sbuf);
        if (bad_path) {
--- 1378,1384 ----
                return ERROR_NT(ntstatus);
        }
  
!       RESOLVE_FINDFIRST_DFSPATH(directory, conn, inbuf, outbuf);
  
        unix_convert(directory,conn,0,&bad_path,&sbuf);
        if (bad_path) {




Simon Walton wrote:
> Hi,
> 
>   I have encountered some strange behaviour after upgrading to
> 3.0.12 on FreeBSD 4.10 file servers.
>   Normally when users on windows apps use the file browser to select
> a file it remembers the selected directory between invocations, so
> that, for example, they can easily read in multiple files from
> the same directory, or if they click on Save As... it takes
> them to the directory where they last saved.
> 
>   However if the path follows a Dfs link on the samba server this
> does not happen, and the file browser always opens up in some
> default location (under Docs and Settings locally). This was
> observed on Win 2k SP4 and Win XP SP2. Downgrading to 3.0.7
> (on the server with the Dfs tree) fixed the problem. Upgrading
> to 3.0.13 did not fix it.
> 
>   I turned up logging on the server with the problem and it looks
> like when you bring up the file browser it tries to stat the location
> but fails like so:
> 
> [2005/04/05 14:29:30, 3] smbd/trans2.c:call_trans2findfirst(1351)
>  call_trans2findfirst: dirtype = 22, maxentries = 1366, 
> close_after_first=1, close_if_end = 2 requires_resume_key = 4 level = 
> 0x104, max_data_bytes = 16384
> [2005/04/05 14:29:30, 3] smbd/msdfs.c:dfs_redirect(391)
>  dfs_redirect: Redirecting m-6/v/MWD/vid_rez_Archives
> [2005/04/05 14:29:30, 3] smbd/error.c:error_packet(105)
>  error string = No such file or directory
> [2005/04/05 14:29:30, 3] smbd/error.c:error_packet(129)
>  error packet at smbd/trans2.c(1381) cmd=50 (SMBtrans2) 
> NT_STATUS_PATH_NOT_COVERED
> 
> In this example /v/MWD/vid_rez_Archives is a Dfs link.
> 
>   I saw in the archives mention of a problem executing files over Dfs 
> links;
> I don't know if this is related.
> 
> Simon Walton
> 



More information about the samba mailing list