[Bug #2187] Net::IMAP::ResponseParseError

Bug #2187: Net::IMAP::ResponseParseError
http://redmine.ruby-lang.org/issues/show/2187

e$B5/I<<Te(B: Masahiro T.
e$B%9%F!<%?%9e(B: Open, e$BM%@hEYe(B: Normal
ruby -v: ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]

e$B$H$_$?$G$9!#e(B

RFC 3501 e$B$Ne(B resp-text-code e$B$O<!$N$h$&$K$J$C$F$$$Fe(B atom
e$B$@$1$G$be(B OK e$B$J$O$:$J$N$G$9$,!"e(B

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 e$B$Ne(B ResponseParser#resp_text_code() e$B$Oe(B atom
e$B$N8e$Ke(B SP e$B$He(B TEXT e$B$,e(B
e$BI,?$K$J$C$F$7$^$C$F$$$F!“e(B”* OK [CLOSED] Previous mailbox closed."
e$B$N$h$&$J1~Ez$Ge(B
e$B%(%i!<$K$J$C$F$7$^$$$^$9!#e(B

/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)

e$B<!$N%Q%C%A$GD>$k$H;W$$$^$9!#e(B

e$B%$%^%$%Ae:No$8$c$J$$$G$9$1$I!De(B

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
    

前田です。

2009å¹´10月9æ—¥23:01 Masahiro T. [email protected]:

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については卜部さんの判断におまかせします。

e$B$H$_$?$G$9!#e(B

On Mon, 12 Oct 2009 23:15:01 +0900
Shugo M. [email protected] wrote:

2009e$BG/e(B10e$B7ne(B9e$BF|e(B23:01 Masahiro T. [email protected]:

RFC 3501 e$B$Ne(B resp-text-code e$B$O<!$N$h$&$K$J$C$F$$$Fe(B atom e$B$@$1$G$be(B OK e$B$J$O$:$J$N$G$9$,!“e(B
(snip)
net/imapd.rb e$B$Ne(B ResponseParser#resp_text_code() e$B$Oe(B atom e$B$N8e$Ke(B SP e$B$He(B TEXT e$B$,e(B
e$BI,?$K$J$C$F$7$^$C$F$$$F!“e(B”* OK [CLOSED] Previous mailbox closed.” e$B$N$h$&$J1~Ez$Ge(B
e$B%(%i!<$K$J$C$F$7$^$$$^$9!#e(B

e$B<B$Oe(B1.9e$B$G$O=$@5$:$_$@$C$?$N$G$9$,!“E:IU$N%Q%C%A$G$I$&$G$7$g$&$+e(B?
e$BLdBj$J$$$h$&$G$”$l$P!"e(Bruby_1_8e$B$K$O%P%C%/%]!<%H$7$F$$-$^$9!#e(B
1.8.7e$B$K$D$$$F$OKNIt$5$s$NH=CG$K$
$^$+$;$7$^$9!#e(B

e$BLdBj$J$$$3$H$,3NG’$G$-$^$7$?!#e(B

e$BA0ED$G$9!#e(B

2009e$BG/e(B10e$B7ne(B14e$BF|e(B1:45 e$B$H$_$?$^$5$R$me(B
[email protected]:

e$B<B$Oe(B1.9e$B$G$O=$@5$:$_$@$C$?$N$G$9$,!“E:IU$N%Q%C%A$G$I$&$G$7$g$&$+e(B?
e$BLdBj$J$$$h$&$G$”$l$P!"e(Bruby_1_8e$B$K$O%P%C%/%]!<%H$7$F$$-$^$9!#e(B
1.8.7e$B$K$D$$$F$OKNIt$5$s$NH=CG$K$
$^$+$;$7$^$9!#e(B

e$BLdBj$J$$$3$H$,3NG’$G$-$^$7$?!#e(B

e$B3NG’$"$j$,$H$&$4$6$$$^$9!#e(Bcommite$B$7$F$*$-$^$7$?!#e(B

e$B%A%1%C%He(B #2187 e$B$,99?7$5$l$^$7$?!#e(B (by Shyouhei U.)

e$B%9%F!<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B

e$B$9$G$K=$@5:Q$_$H;W$$$^$9!#0c$C$?$ie(Breopene$B$7$F$/$@$5$$!#e(B

http://redmine.ruby-lang.org/issues/show/2187