Project

General

Profile

Actions

Backport #2187

closed

Net::IMAP::ResponseParseError

Added by tommy (Masahiro Tomita) over 14 years ago. Updated almost 13 years ago.

Status:
Closed
Assignee:
-
[ruby-dev:39452]

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

Actions #1

Updated by shugo (Shugo Maeda) over 14 years ago

=begin
前田です。

2009年10月9日23:01 Masahiro Tomita :

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

Actions #2

Updated by shugo (Shugo Maeda) over 14 years ago

=begin
前田です。

2009年10月14日1:45 とみたまさひろ :

実は1.9では修正ずみだったのですが、添付のパッチでどうでしょうか?
問題ないようであれば、ruby_1_8にはバックポートしておきます。
1.8.7については卜部さんの判断におまかせします。

問題ないことが確認できました。

確認ありがとうございます。commitしておきました。

--
Shugo Maeda

=end

Actions #3

Updated by shyouhei (Shyouhei Urabe) over 14 years ago

  • Status changed from Open to Closed

=begin
すでに修正済みと思います。違ったらreopenしてください。
=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0