request for help/feature WRT double case insensitivity

Joe Soroka Joe.Soroka at Inphinity.com
Thu Aug 24 18:28:11 GMT 2000


Hello there.  Before I start let me say that I've spent quite a bit of time
trying to solve this problem myself, and that this is the first ever
feature request I have made of someone else's software.  It boils down to
this:

I am running Mandrake 7.1, with a FAT32 drive mounted as /mnt/windows like
this:
/dev/hdd1 /mnt/windows vfat user,exec,umask=0 0 0

I have a samba share set up like this:
preserve case = yes
short preserve case = yes
default case = lower
; case sensitive = no (no is default i think)

[qmand]
comment = thesis (all 30 gigs)
path = /mnt/windows/
valid users = someone
public = no
writable = yes

...

Now, the problem is that case-preservation is destroyed ... If I create a
file called "WhateverMixedCase.tXt" on my local win98 mapping of that samba
share, I get the file "WHATEVERMIXEDCASE.TXT"  It not only shows up on the
win98 machine as all caps, but the actual file created on the disk is also
created allcaps.

That's basically it.

To try and figure out what could be causing the problem, I tried a test.
On one computer I had a samba share set up on a ReiserFS drive, and on
another computer, the win32 FAT32 drive.  I set log level to 10, created a
new dummy file on each, and recorded the logs.  Everything is identical, up
to this point:

bad fat32:
[2000/08/24 09:42:04, 10] smbd/filename.c:stat_cache_lookup(282)
  stat_cache_lookup: cache hit for name DOOBER/SIMPLEMIXEDCASE.TXT. DOOBER
-> DOOBER
[2000/08/24 09:42:04, 10] smbd/filename.c:stat_cache_add(223)
  stat_cache_add: Added entry DOOBER/SIMPLEMIXEDCASE.TXT ->
DOOBER/SIMPLEMIXEDCASE.TXT
[2000/08/24 09:42:04, 5] smbd/filename.c:unix_convert(450)
  conversion finished DOOBER/SIMPLEMIXEDCASE.TXT -> DOOBER/SIMPLEMIXEDCASE.TXT

good reiserfs:
[2000/08/24 09:46:41, 10] smbd/filename.c:stat_cache_lookup(282)
  stat_cache_lookup: cache hit for name DOOBER/SIMPLYMIXEDCASE.TXT. DOOBER
-> doober
[2000/08/24 09:46:41, 5] smbd/filename.c:unix_convert(457)
  unix_convert begin: name = doober/SIMPLYMIXEDCASE.TXT, dirpath = doober,
start = SIMPLYMIXEDCASE.TXT
[2000/08/24 09:46:41, 8] lib/util.c:is_in_path(2505)
  is_in_path: .
[2000/08/24 09:46:41, 8] lib/util.c:is_in_path(2510)
  is_in_path: no name list.
[2000/08/24 09:46:41, 8] lib/util.c:is_in_path(2505)
  is_in_path: ..
[2000/08/24 09:46:41, 8] lib/util.c:is_in_path(2510)
  is_in_path: no name list.
[2000/08/24 09:46:41, 8] lib/util.c:is_in_path(2505)
  is_in_path: SimplyMixedCase.txt
[2000/08/24 09:46:41, 8] lib/util.c:is_in_path(2510)
  is_in_path: no name list.
[2000/08/24 09:46:41, 5] smbd/mangle.c:name_map_mangle(989)
  name_map_mangle( SimplyMixedCase.txt, need83 = FALSE, cache83 = TRUE, 0 )
[2000/08/24 09:46:41, 5] smbd/mangle.c:name_map_mangle(1023)
  name_map_mangle() ==> [SimplyMixedCase.txt]

It seems like the only difference is what is returned from the
stat_cache... So I tried just returning False from stat_cache_lookup in
filename.c but...
with the Mandrake specific source rpms and the latest.tgz from samba.org, I
don't get a usable smbd binary.  when I compile, neither would even
startup. they die on "reload_services" in main(). (Even with no changes to
the source - something wrong with my ./configure'ation I suppose)

It seems like there should be a really simple fix to this
double-case-insensitivity problem - samba says "I don't care what the case
is, let's try upper case." and fat32 driver says "I don't care either, all
upper case sounds fine to me!" while I'm saying "Mixed case please."

anyways, just a little something to add to the list.
thanks,
Joe Soroka






More information about the samba-technical mailing list