The output of readlink() is not translated to Unicode (or to client encoding,
I'm not sure how and where this happens). For Cyrillic I have in config file:
unix charset = KOI8-R
dos charset = 866
display charset = KOI8-R
Now all filenames with Cyrillic letters are shown correctly on both Unix and
Windows clients (even for symlinks), but the links themselves are broken (the
symlink pointer is not encoded correctly).
Please use cp866 instead of plain "866"
Is this fixed when using CP866 as the charset name?
(In reply to comment #2)
> Is this fixed when using CP866 as the charset name?
First of all, "CP866" doesn't work, only "cp866" does.
Second, this doesn't help. Here's a ls -la listing (I'm using codepage 1251 to
display cyrillic letters, I'm not sure how Bugzilla will react):
drwxrwxrwx 1 root root 0 Дек 5 14:54 ____разгрести/
lrw-rw-rw- 1 root root 13 Янв 13 22:37 тест -> ____а §ЈаҐбвЁ
The second directory is a link to the first one. As you can see, both
directories are in the correct encoding (cp1251), while the contents of the link
are left untranslated (cp866). As a result, the link is broken.
what client do you use to reproduce this bug? smbmount/smbfs I guess, right? Any
other one? If you use cifs, everything works fine. smbclient works fine, too. I
think this is just another smbfs bug - won't ever be fixed most likely.
(In reply to comment #4)
> what client do you use to reproduce this bug? smbmount/smbfs I guess, right?
Ah exactly, that was it. Using cifsmount to mount the share fixes the bug (for
some reason samba-client package from fedora core 2 doesn't include it). So it
looks like it's a bug in kernel smbfs module.
By looking at drivers/fs/smbfs/proc.c, function smb_proc_read_link I clearly see
now that it just does strcpy() on the received link contents, rather than
calling server->ops->conver(). Maybe I'll try if that works but it definitely
looks like a smbfs module bug.
I believe this bug can be closed, then.