Backport #2187
closedNet::IMAP::ResponseParseError
Description
=begin
とみたです。
RFC 3501 の resp-text-code は次のようになっていて atom だけでも OK なはずなのですが、
resp-text-code = "ALERT" /
"BADCHARSET" [SP "(" astring *(SP astring) ")" ] /
capability-data / "PARSE" /
"PERMANENTFLAGS" SP "("
[flag-perm (SP flag-perm)] ")" /
"READ-ONLY" / "READ-WRITE" / "TRYCREATE" /
"UIDNEXT" SP nz-number / "UIDVALIDITY" SP nz-number /
"UNSEEN" SP nz-number /
atom [SP 1<any TEXT-CHAR except "]">]
net/imapd.rb の ResponseParser#resp_text_code() は atom の後に SP と TEXT が
必須になってしまっていて、"* OK [CLOSED] Previous mailbox closed." のような応答で
エラーになってしまいます。
/usr/local/ruby-1.8.7/lib/ruby/1.8/net/imap.rb:3124:in `parse_error': unexpected token RBRA (expected SPACE) (Net::IMAP::ResponseParseError)
次のパッチで直ると思います。
イマイチ綺麗じゃないですけど…¶
Index: lib/net/imap.rb¶
--- lib/net/imap.rb (revision 25262)
+++ lib/net/imap.rb (working copy)
@@ -2764,7 +2764,10 @@
match(T_SPACE)
result = ResponseCode.new(name, number)
else
-
match(T_SPACE)
-
if match(T_SPACE, T_RBRA).symbol == T_RBRA
-
@lex_state = EXPR_RTEXT
-
return ResponseCode.new(name, nil)
-
end @lex_state = EXPR_CTEXT token = match(T_TEXT) @lex_state = EXPR_BEG
=end
Updated by shugo (Shugo Maeda) over 14 years ago
=begin
前田です。
2009年10月9日23:01 Masahiro Tomita redmine@ruby-lang.org:
RFC 3501 の resp-text-code は次のようになっていて atom だけでも OK なはずなのですが、
(snip)
net/imapd.rb の ResponseParser#resp_text_code() は atom の後に SP と TEXT が
必須になってしまっていて、"* OK [CLOSED] Previous mailbox closed." のような応答で
エラーになってしまいます。
実は1.9では修正ずみだったのですが、添付のパッチでどうでしょうか?
問題ないようであれば、ruby_1_8にはバックポートしておきます。
1.8.7については卜部さんの判断におまかせします。
--
Shugo Maeda
Attachment: imap.rb.diff
=end
Updated by shugo (Shugo Maeda) over 14 years ago
=begin
前田です。
2009年10月14日1:45 とみたまさひろ tommy@tmtm.org:
実は1.9では修正ずみだったのですが、添付のパッチでどうでしょうか?
問題ないようであれば、ruby_1_8にはバックポートしておきます。
1.8.7については卜部さんの判断におまかせします。問題ないことが確認できました。
確認ありがとうございます。commitしておきました。
--
Shugo Maeda
=end
Updated by shyouhei (Shyouhei Urabe) over 14 years ago
- Status changed from Open to Closed
=begin
すでに修正済みと思います。違ったらreopenしてください。
=end