[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: asynchronous process



>> On Thu, 07 Aug 2003 14:49:41 +0900
>> 「土」== tsuchiya@pine.kuee.kyoto-u.ac.jp (TSUCHIYA Masatoshi) said as follows:

土> 既知の不具合として antenna が動かなくなっています.

かなり adhoc なやり方なんですが,一応,experimental-async 枝でも 
antenna が動くようにしました.

それから,[emacs-w3m:05481] で書いた

>> On Wed, 16 Jul 2003 14:04:54 +0900
>> 「土」== tsuchiya@pine.kuee.kyoto-u.ac.jp (TSUCHIYA Masatoshi) said as follows:

土> 実は,つい1週間ほど前に気が付いたのですが,現在の emacs-w3m の 
土> cache 周りには,cache を同定するためのキーの一貫性が取れていないと
土> 言う深刻な問題が隠れています.

土> 現在の cache は,w3m-w3m-retrieve() / w3m-w3m-attributes() が呼び
土> 出されたときに指定されていた URL をキーとして保存されています.そ
土> のため,

土>     http://emacs-w3m.namazu.org

土> というような URL を指定すると,この URL をキーとして cache を保管
土> します.しかし実際には,

土>     http://emacs-w3m.namazu.org/

土> と / を付加された URL にアクセスしていて,w3m-current-url には,こ
土> ちらの値が代入されます.

土> この状態で w3m-copy-buffer() を呼び出すと,実際の URL である
土> http://emacs-w3m.namazu.org/ をキーとして cache を検索しますが,見
土> つからずに非同期プロセスが呼び出されることになります.

土> また,http://emacs-w3m.namazu.org/ml などを指定すると,これはサー
土> バー側の機能で redirect されて http://emacs-w3m.namazu.org/ml/ に
土> 誘導されますから,同様の問題が発生します.

土> でもって,この問題をきちんと修正するためには,cache を実際の URL 
土> をキーとして保管するように改良する必要があるのですが,実際の URL 
土> が確定する時点と言うものについて,もう少し観察しないといけないよう
土> です.

という問題についてですが,とりあえず,cache は実際の URI で管理される
ようにして,

    w3m-w3m-attributes
        => redirection を追跡せずに,単純に指定された URI のへッダを返
           す.したがって,指定された URI をキーとして cache に登録す
           ることができる.

    w3m-w3m-retrieve
        => 自力で redirection を追跡する.追跡によって,URI が変わる度
           に,cache に登録していく.

ようにしてみました.この実装だと,

    (equal (w3m-attributes "http://emacs-w3m.namazu.org/info")
           (w3m-attributes "http://emacs-w3m.namazu.org/info/"))
     => nil

となりますので,若干,直観的ではないかなあという気もするのですが….

ああ,そうか antenna で指定している URI が実際には redirect されて別の
個所に飛ばされるような URI の場合には,問題になりそうですね.そうする
と,w3m-attributes も redirection を追い掛ける必要があるのか,うーん.

とりあえず,今日は時間切れ.

-- 
土屋 雅稔 ( TSUCHIYA Masatoshi )