[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 メーリングリストの案内