[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]