Note: All files in this directory are DOS formatted (CRLF line terminator). !!! VIRUS WARNING !!! I do not know if VALIDCHR.COM is virus free !!! I think that my system is virus free here because I do not run any games or other copied software. I only run Shareware/Freeware etc. from CD-ROMs or from registered disks, however I do not use viral scanners because I have not registered any (I consider `having no sex' is better than `testing for AIDS on a regular basis', if you know what I mean). This is VALIDCHR, a little DOS program I wrote to create an apropriate `valid chars =' config parameter. It is freeware and is thought to be distributed freely with Samba. WARNING: Your SMB driver may use another character map as the one VALIDCHR sees. The only way you can tell this is that some file names fail. Under Win95 everything is fine, though. Usage: c: mkdir junk_dir cd junk_dir a:validchr > a:output.log cd .. rmdir junk_dir Siedeffects: Files named *.TST may be deleted. Verification: For diagnostic purpose you can run VALIDCHR on a Samba mounted drive. Then you can use unix diff to compare the output of the network and the hard drive. These two outputs usually differ! However there should be few differences. I get following on Win95 (c: visa e:) 104c104 < 152: length 0 --- > 152: 95 (diff line for `valid chars =' deleted because it's uninteresting) You can see, `y diaresis' can be mapped on the network drive while it cannot be mapped on the hard drive. Everything else is identical. However this gives a hint that one can improve the mapping. Bugs: Yes, probably some. VALIDCHR must be run on the system which character mapping should be probed. It must be run on the hard drive for this. VALIDCHR ALTERS THE CURRENT DIRECTORY AND REMOVES SOME FILES, SO ALWAYS RUN IT IN A junk DIRECTORY !!! You should redirect the output of VALIDCHR. At the end of the output is a line like valid chars = x:y y:x x:x ... a:b c ... which is suitable for your smb.conf file. (you should remove the DOS CR character, because DOS uses CRLF while Unix uses LF only.) Note that some mappings at the beginning of the `valid chars =' line like A:B B:A B:B might look a little bit strange to you, however sometimes character A has to be mapped to character B independently of a default mapping to uppercase or lowercase while character B must not be touched. I found this out the hard way ... Consider it a crude workaround, because Samba lacks the possibility to map characters in one direction only! VALIDCHR usually issues one warning for character 32. You may ignore these and any other warnings. VALIDCHR does not test for character NUL (this is the directory end marker). validchr.c is the source code to validchr.com You may do anything with the source code (copy, change, sell, burn) validchr.com is a Borland C compiled binary. Beware, it may contain a virus (if my system contains one). nwdos70.out is the output of an VALIDCHR-run under Novell DOS 7.0 while no codepage (no display.sys) was active. msdos70.out is the output of an VALIDCHR-run under MS-DOS 7.0 (Win95 DOS) while codepage 850 was active. I have no other MS-DOS systems at home currently. (I have access to MS-DOS 3.0, 3.2, 3.3, 5.0 and 6.22, however I have no time to run VALIDCHR there) Some words to the output (for people not fammiliar with programming language C): probed_char: [text] mapped_char probed_char is the character probed to be written to disk text may be empty or contain: open File could not be opened. close File could not be closed (should not happen) length File name was shortened (usually occurs on SPC) unlink File cannot be unlinked (usually when open fails) mapped_char is the character which is used by MS-DOS in the directory This is usually the uppercase character. The mapped character is 0 if something failed (you may say that the character is not supported) The last line in the output is documented in the smb.conf manual page ;) tino@augsburg.net