Bug #5620
closed(Net::IMAP::ResponseParseError) unexpected token LBRA (expected SPACE)
Description
We have a found an issue with one of the IMAP servers ( IMAP4rev1) we connect to:
(Net::IMAP::ResponseParseError) unexpected token LBRA (expected SPACE)
.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/net/imap.rb:3235:in parse_error' .rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/net/imap.rb:3087:in
match'
.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/net/imap.rb:2226:in `rfc822_text'
What is happening is that this mail server is sending down:
RFC822[] {7000} when we FETCH RFC822, instead of the expected RFC822 {7000} -- notice the []
What I propose is that when we have a loop looking for the space and skip LBRA or T_RBRA.
In imap.rb
def rfc822_text
token = match(T_ATOM)
name = token.value.upcase
while true
token = lookahead
case token.symbol
when T_LBRA, T_RBRA
shift_token
when T_SPACE
shift_token
break
else
parse_error("unexpected token %s", token.symbol)
end
end
return name, nstring
end