[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
cache
と
redirect
の憂鬱
- From: TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxxxxxxxxxxxxxxx>
- Date: Wed, 16 Jul 2003 14:04:54 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 05481
実は,つい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/ に誘導され
ますから,同様の問題が発生します.
昨日の
(w3m-copy-buffer): Wrap `w3m-goto-url' with
`w3m-process-with-wait-handler', to avoid unexpected asynchronous
processes.
という修正の裏側には,こういう観察があったわけです.
でもって,この問題をきちんと修正するためには,cache を実際の URL をキー
として保管するように改良する必要があるのですが,実際の URL が確定する
時点と言うものについて,もう少し観察しないといけないようです.
--
土屋 雅稔 ( TSUCHIYA Masatoshi )