Where to patch for toupper/tolower, locale
Ihar Viarheichyk
i.viarheichyk at sam-solutions.net
Mon Nov 19 03:21:02 GMT 2001
On Sat, Nov 17, 2001 at 08:21:45AM +0200, Deniz Akkus Kanca wrote:
> When system locale is not set to Turkish, smb.conf is read in, character set
> field is recognized and the correct charmap file name is derived from
> upper-casing the character set field and concatting in various ways.
Seems this is the best way to solve the problem. Just set locale to C
when starting samba daemons. BTW, samba itself sets LC_ALL to C in
charset_initialize.
>
> When system locale is set to Turkish, character set field is read in and
> upper cased to form the file name. Since the upper casing is different in
> Turkish for i, the charset files looked for are xxx-?SO8859-9 (idot), which
> fails.
>
> Samba installations using Turkish charmaps may or may not have their system
> locale set to Turkish. Currently, if they do not, everything works fine. If
> they do, charset map files can't be located, which shows up in error message
> in log.smbd .
>
> There are various ways of getting around the problem:
> 1. smb.conf can be made to accept upper case charset definitions in
> lib/charcnv.c .
> 2. a setlocale can be done (there is an ifdef'd setlocale statement in
> charset_initialize in lib/charset.c ) so that samba does not use Turkish
> locale.
> 3. The specific function making up the file names can be made to do something
> different if locale is Turkish ( load_unicode_unix_map in lib/util_unistr.c )
> 4. Definition of strupper can be changed.
> And probably a lot more...
make a softlink <turkish_I>SO8859-9 -> ISO8859-9 when installing samba?
This is not a good idea to make workaround in samba code for one
particular language if the problem can be solved in other way.
--
Igor Vergeichik
ICQ 47298730
More information about the samba-technical
mailing list