Do not use stock RedHat 6.0 kernels with SMBFS!

Andrew Tridgell tridge at samba.org
Thu Jun 10 08:35:21 GMT 1999


What really needs to be done is to rework the smbfs code to use the
new clientgen SMB client library from Samba 2.0. The smbfs code is
based on a very old version of smbclient and has all sorts of problems
as a result. The new clientgen code auto-detects these sorts of server
bugs and does the right thing. That's why the new smbclient works
reliably with both Win95 and WinNT servers (if it doesn't then let me
know, I spent quite a lot of time testing to make sure it does but I
may have missed a case).

After I start work for LinuxCare in September then maybe I could look
at re-doing smbfs in terms of the clientgen code, but I certainly
won't have time to do it until then. Too many exams/assignments to
mark and 4 conferences to write papers for.

Meanwhile, I think a quick fix would be to:

- use info level 260 for all servers that have protocol level >= NT1
  (that includes NT, W95 and Samba). 

- use info level 1 for other servers

- add the code from cliengen.c that checks for a a failed
  TRANS2_FIND_* call and retries after a 200ms sleep (with a max loop
  count). That's needed for W95 servers as they sometimes fail to
  respond to the first request.

The two routines that need changing are both in smbfs/proc.c and are
smb_proc_readdir_long() and smb_decode_long_dirent(). They need to be
hacked to behave move like the cli_list() and
interpret_long_filename() routines from clientgen.c in Samba 2.0.

With those changes we wouldn't need that flag at all.

Cheers, Tridge


More information about the samba-technical mailing list