linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #01990
[Bug 311818] Re: case-sensitivity in Unix systems
Hi to all.
In EiskaltDC++ project we are using case-sensitive share now.
See patch to the current linuxdcpp trunk branch.
> 1) adc (explicitly) and nmdc (implicitly) are case insensitive so we
can't allow files with different case in the share
I am not see hard correlation between the protocols and data content in
the file list.
> 2) the file system is case insensitive, so we can't try to write files
that differ only in case. it is however case preserving so most of the
time (when the filename comes from the filesystem itself), it shouldn't
need to be lowercased...if however the filename can come from other
sources (someone elses file list, user typing etc), something has to be
done...
At first, look here:
http://en.wikipedia.org/wiki/Comparison_of_file_systems#cite_note-note-36-70
http://en.wikipedia.org/wiki/Comparison_of_file_systems#Features
http://en.wikipedia.org/wiki/NTFS
As you can see this is only MS Windows trouble...
At second, DC client is should not think for the user what to do when a
similar file already exists in the destination directory.
> the ADC spec forbids this: "each file or directory name must be unique
in a case-insensitive context"
The file name does not matter, important is only TTH, which is really
unique identifier. TTH is not depend on the file name. And this is its
great advantage over torrents.
> If you would share file's with the same case insensitive name, someone
(on windows) downloading both files, would get an error.
This is not DC-client problem on my opinion.
For example, file sharing using samba-server and various ftp-servers is
provide access to all files, regardless of the symbols register in file
names. And this is user problem, if he can not copy a few of them
simultaneously...
So you are using unjustified artificial restriction, which only
discourage users to engage in file-sharing...
** Patch added: "linuxdcpp case-sensitive patch"
https://bugs.launchpad.net/linuxdcpp/+bug/311818/+attachment/1639346/+files/caseshare.diff
--
case-sensitivity in Unix systems
https://bugs.launchpad.net/bugs/311818
You received this bug notification because you are a member of LinuxDC++
Team, which is subscribed to LinuxDC++.
Status in DC++: In Progress
Status in Linux DC++: Confirmed
Bug description:
Unix systems have case-sensitive file-systems. The core however converts all file and directory-names to lower case. Which gives problems if files are shared with the same text and different cases.
example:
In the share there's a file fubar.txt and a file Fubar.txt. Then these two files will be hashed every time dc is started.
I don't know why all filenames are converted to lower case for Windows, but for other OS's it's not wanted. So I've added a possible fix which checks for OS.