[mew-dist 24713] IMAP: FETCH with untagged responses not terminated
ash2 at example.com
ash2 at example.com
2004年 3月 10日 (水) 15:02:33 JST
現在 Mew-4.0.63 を使っていまが、以前のversionから IMAPでメールを取
得しようとして終了しないサイトがありました。
(mew-summary-retrieve-message,mew-summary-retrieve)
POPもあるのでごまかしていたのですが、ちょっと見てみました。
RFCも .el も正確には読んでないので勘違いしているかもしれませんし、
あるいはすでに議論済みのお話かもしれませんが、その時は申し訳ありま
せん。
|<GREETING>
|* OK myrealbox.com NetMail IMAP4 Agent server ready <1595d.1078867059 at example.com>
|<=SEND=>
|mcab7249 UID FETCH 2827028 RFC822
|
|<FETCH>
|* 2 FETCH (UID 2827028 RFC822 {744}
|Content-Transfer-Encoding: 7bit
|
|TEST
|)
|mcab7249 OK UID FETCH completed
|* 2 FETCH (FLAGS (\Seen))
|
|
|<IMAP SENTINEL>
|killed by the user
読み取ったバッファ中の最終行が "TAG OK ..." ではなく "* 2 FETCH"
の untagged responses(タグなし応答) のため、現在の mew-imap-filter
の処理の流れでは、サーバからの completion result response(完了応答?)
を見つけられず、データ待ちの状態になっているようです。
サーバ側がこの2つの応答の順番を間違えているのかとも思いましたが、
RFC2060,3501 の 2.2.2 を斜め読みした限りでは、タグなし応答は、命令
の結果としてだけではなく、サーバが一方的に送りつけてよいようなので、
規約上問題はないような気がします。これは勘違いでしょうか?
もし規約上問題なければ、バッファ終端から前方にタグを探す、という処
理は、無理でないにしても少し苦しくなるように思えます。
単純に考えると、望ましくは素直に、前方から順に行ごとの処理を行うの
がよさそうに思えるのですが、下記などを見ると、効率だけでなく、
literal のカウント数の問題なども出てきそうです。
[mew-dist 21326] Re: IMAP: bottom of Message
http://www.mew.org/ml/mew-dist-2.0/msg03096.html
CRLF をどの時点で変換しているのか追っていないのですが、やはり、
literal 中の行数を数えるなど、この方向での修正は困難でしょうか?
よろしくご教示をお願いいたします。
---
Takamasa Hasei
Mew-dist メーリングリストの案内