[netatalk-ja:0289] Re: OS9からコピーした項目が消える
HAT
hat @ fa2.so-net.ne.jp
2013年 8月 28日 (水) 01:44:07 JST
HATです。
>> 1. cnid_dbdがMAC_JAPANESEの文字列を受け取るのでCNIDの問題が発生している。
>> 2. afpdがcnid_dbdに渡す文字列がMAC_JAPANESEなのが問題である。
>> 3. etc/afpd/file.cのgetmetadata()に渡されているpath->u_nameが
>> MAC_JAPANESEになっているのが変だと思う。
>> 4. getmetadata()に変な値を渡しているのは誰だ?
>> 5. たぶんetc/afpd/fork.cのgetforkparams()だ。
>> 6. getforkparams()は構造体oforkを受け取っているが、これの
>> ofork->of_ad->ad_nameがMAC_JAPANESEになっているのではないか?
>> 7. ここのMLの3〜4月の話題で、ad_nameはUTF8-MACということになっていた筈。
>
> どうやら、Finderがファイルのリソースフォークを取得しようとしたとき、
> cnid_dbdに問い合わせが発生し、文字コードの問題が発生しているように
> 思えます。
>
> で、何故Finderがリソースフォークを取得しようとするのか?
> FinderがFinderInfoを読み込むと、カスタムアイコンビットが立っている。
> カスタムアイコンはリソースフォークに入っているので、リソースフォークを
> 取得しようとするのではないでしょうか。
>
> この問題は、カスタムアイコンが付いたファイルの場合のみ発生するのでは?
> 「情報をみる」で表示されるアイコンをcommand+xで削除すれば、この現象は
> 発生しないのでは?
> 確認して頂けないでしょうか。
誰も確認してくれないようなので、私が確認しました。
カスタムアイコンが付いていないファイルの場合はFinderで見えます。
しかしこれは二次的な問題であって、本来の問題は文字コード変換エラーに
あります。
afpd内の変数にad_nameに格納する文字コードが曖昧なのが問題です。
ad_nameはどのように扱うべきなのか、本家で確認してからでないと、
修正はできません。
--
HAT
netatalk-ja メーリングリストの案内