From: HAT <ha...@fa...> - 2008-12-18 18:37:11
|
Hi, The following filenames can be copied from Mac OS X to netatalk. aaa#11.txt bbb#12.txt ccc#13.txt But, the following filenames might not be able to be copied. aaaaaaaaaaaaaaaaaaaaaa#11.txt bbbbbbbbbbbbbbbbbbbbbb#12.txt cccccccccccccccccccccc#13.txt This problem happens even if using either Finder or cp command in Terminal.app. Finder's Error Message: > >The Finder cannot complete the operation because some data >in "aaaaaaaaaaaaaaaaaaaaaa#11.txt" could not be read or >written. >(Error code -36) > cp command's Error Message: > ># cp aaaaaaaaaaaaaaaaaaaaaa#11.txt /Volumes/neta-vol/dir/ >cp: /Volumes/neta-vol/dir/aaaaaaaaaaaaaaaaaaaaaa#11.txt: Is a directory > If filename is long and include #hex, Mac OS X request FPGetFileDirParms and FPResolveID command. When there is a directory of the same CNID as #hex on netatalk's volume, netatalk return kFPObjectTypeErr to FPResolveID, and the copy fails. (See osx105-neta21dev.dump) Mac OS X return kFPIDNotFound to FPResolveID, and the copy succeeds. (See osx105-osx104.dump) #0 - #10 are no problem because these CNID is reserved. Netatalk's result code is more right than Mac OS X. However, netatalk should behave as well as Mac OS X. I wrote a one-line patch. (netatalk-2.1dev-resolveid_dir.patch) Still another problem exists. When a file or directory of the same CNID as #hex is in the distination directory, the following message is displayed. > >A newer item named "xxxxxxxxxxxxxxxxxxxxxxxx" already exists in >this location. Do you want to replace it with the older one you >are moving? > [Stop] [Replace] > If "Replace" is clicked, this file or directory is overwrited, though it is another filenmame. This problem occur on both netatalk and Mac OS X. Mac OS X is defective. I think there is no countermeasure. -- HAT |