ruby-changes:23006
From: shugo <ko1@a...>
Date: Fri, 16 Mar 2012 14:12:51 +0900 (JST)
Subject: [ruby-changes:23006] shugo:r35055 (trunk): * lib/net/imap.rb (initialize): raise Net::IMAP::Error when the
shugo 2012-03-16 14:12:39 +0900 (Fri, 16 Mar 2012) New Revision: 35055 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35055 Log: * lib/net/imap.rb (initialize): raise Net::IMAP::Error when the connection is closed without a greeting response. [ruby-core:40938] [Bug #5616] Modified files: trunk/ChangeLog trunk/lib/net/imap.rb trunk/test/net/imap/test_imap.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 35054) +++ ChangeLog (revision 35055) @@ -1,3 +1,9 @@ +Fri Mar 16 14:10:45 2012 Shugo Maeda <shugo@r...> + + * lib/net/imap.rb (initialize): raise Net::IMAP::Error when the + connection is closed without a greeting response. + [ruby-core:40938] [Bug #5616] + Fri Mar 16 13:50:12 2012 Shugo Maeda <shugo@r...> * lib/net/imap.rb (rfc822_text): ignore [] after RFC822. Index: lib/net/imap.rb =================================================================== --- lib/net/imap.rb (revision 35054) +++ lib/net/imap.rb (revision 35055) @@ -1065,6 +1065,10 @@ @exception = nil @greeting = get_response + if @greeting.nil? + @sock.close + raise Error, "connection closed" + end if @greeting.name == "BYE" @sock.close raise ByeResponseError, @greeting Index: test/net/imap/test_imap.rb =================================================================== --- test/net/imap/test_imap.rb (revision 35054) +++ test/net/imap/test_imap.rb (revision 35055) @@ -418,6 +418,25 @@ end end + def test_connection_closed_without_greeting + server = create_tcp_server + port = server.addr[1] + Thread.start do + begin + sock = server.accept + sock.close + rescue + end + end + begin + assert_raise(Net::IMAP::Error) do + Net::IMAP.new(SERVER_ADDR, :port => port) + end + ensure + server.close + end + end + def test_default_port assert_equal(143, Net::IMAP.default_port) assert_equal(143, Net::IMAP.default_imap_port) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/