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

ruby-changes:22794

From: drbrain <ko1@a...>
Date: Tue, 28 Feb 2012 14:16:13 +0900 (JST)
Subject: [ruby-changes:22794] drbrain:r34843 (trunk): * lib/net/protocol.rb: Add OpenTimeout subclass of Timeout::Error

drbrain	2012-02-28 14:15:54 +0900 (Tue, 28 Feb 2012)

  New Revision: 34843

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34843

  Log:
    * lib/net/protocol.rb: Add OpenTimeout subclass of Timeout::Error
    * lib/net/pop.rb:  Modernize Timeout usage.  Patch by Eric Wong.
      Use Net::OpenTimeout instead of Timeout::Error.  [Bug #5765]
    * lib/net/http.rb:  ditto
    * lib/net/smtp.rb:  ditto
    * lib/net/telnet.rb:  ditto

  Modified files:
    trunk/ChangeLog
    trunk/lib/net/http.rb
    trunk/lib/net/pop.rb
    trunk/lib/net/protocol.rb
    trunk/lib/net/smtp.rb
    trunk/lib/net/telnet.rb
    trunk/test/net/http/test_https.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 34842)
+++ ChangeLog	(revision 34843)
@@ -1,3 +1,21 @@
+Tue Feb 28 14:15:29 2012  Eric Hodel  <drbrain@s...>
+
+	* lib/net/protocol.rb: Add OpenTimeout subclass of Timeout::Error
+	* lib/net/pop.rb:  Modernize Timeout usage.  Patch by Eric Wong.
+	  Use Net::OpenTimeout instead of Timeout::Error.  [Bug #5765]
+	* lib/net/http.rb:  ditto
+	* lib/net/smtp.rb:  ditto
+	* lib/net/telnet.rb:  ditto
+
+Tue Feb 28 14:06:36 2012  Eric Hodel  <drbrain@s...>
+
+	* lib/net/protocol.rb: Add OpenTimeout subclass of Timeout::Error
+	* lib/net/pop.rb:  Modernize Timeout usage.  Patch by Eric Wong.
+	  Use Net::OpenTimeout instead of Timeout::Error.  [Bug #5765]
+	* lib/net/http.rb:  ditto
+	* lib/net/smtp.rb:  ditto
+	* lib/net/telnet.rb:  ditto
+
 Tue Feb 28 13:51:12 2012  Eric Hodel  <drbrain@s...>
 
 	* lib/net/http.rb:  Retry HTTP requests for additional network errors.
Index: lib/net/pop.rb
===================================================================
--- lib/net/pop.rb	(revision 34842)
+++ lib/net/pop.rb	(revision 34843)
@@ -542,7 +542,9 @@
 
     # internal method for Net::POP3.start
     def do_start(account, password) # :nodoc:
-      s = timeout(@open_timeout) { TCPSocket.open(@address, port) }
+      s = Timeout.timeout(@open_timeout, Net::OpenTimeout) do
+        TCPSocket.open(@address, port)
+      end
       if use_ssl?
         raise 'openssl library not installed' unless defined?(OpenSSL)
         context = OpenSSL::SSL::SSLContext.new
Index: lib/net/http.rb
===================================================================
--- lib/net/http.rb	(revision 34842)
+++ lib/net/http.rb	(revision 34843)
@@ -360,9 +360,6 @@
   #
   class HTTP < Protocol
 
-    class OpenTimeout < Timeout::Error
-    end
-
     # :stopdoc:
     Revision = %q$Revision$.split[1]
     HTTPVersion = '1.1'
@@ -791,7 +788,7 @@
 
     def connect
       D "opening connection to #{conn_address()}..."
-      s = timeout(@open_timeout, OpenTimeout) {
+      s = Timeout.timeout(@open_timeout, Net::OpenTimeout) {
         TCPSocket.open(conn_address(), conn_port())
       }
       D "opened"
@@ -829,7 +826,7 @@
           end
           # Server Name Indication (SNI) RFC 3546
           s.hostname = @address if s.respond_to? :hostname=
-          timeout(@open_timeout, OpenTimeout) { s.connect }
+          Timeout.timeout(@open_timeout, Net::OpenTimeout) { s.connect }
           if @ssl_context.verify_mode != OpenSSL::SSL::VERIFY_NONE
             s.post_connection_check(@address)
           end
@@ -1363,7 +1360,7 @@
       rescue IOError, EOFError,
              Errno::ECONNRESET, Errno::ECONNABORTED, Errno::EPIPE,
              OpenSSL::SSL::SSLError, Timeout::Error => exception
-        raise if OpenTimeout === exception
+        raise if Net::OpenTimeout === exception
 
         if count == 0 && IDEMPOTENT_METHODS_.include?(req.method)
           count += 1
Index: lib/net/protocol.rb
===================================================================
--- lib/net/protocol.rb	(revision 34842)
+++ lib/net/protocol.rb	(revision 34843)
@@ -44,6 +44,7 @@
   class ProtoCommandError      < ProtocolError; end
   class ProtoRetriableError    < ProtocolError; end
   ProtocRetryError = ProtoRetriableError
+  class OpenTimeout            < Timeout::Error; end
 
 
   class BufferedIO   #:nodoc: internal use only
Index: lib/net/smtp.rb
===================================================================
--- lib/net/smtp.rb	(revision 34842)
+++ lib/net/smtp.rb	(revision 34843)
@@ -546,7 +546,9 @@
         check_auth_method(authtype || DEFAULT_AUTH_TYPE)
         check_auth_args user, secret
       end
-      s = timeout(@open_timeout) { tcp_socket(@address, @port) }
+      s = Timeout.timeout(@open_timeout, Net::OpenTimeout) do
+        tcp_socket(@address, @port)
+      end
       logging "Connection opened: #{@address}:#{@port}"
       @socket = new_internet_message_io(tls? ? tlsconnect(s) : s)
       check_response critical { recv_response() }
Index: lib/net/telnet.rb
===================================================================
--- lib/net/telnet.rb	(revision 34842)
+++ lib/net/telnet.rb	(revision 34843)
@@ -9,8 +9,7 @@
 # For documentation, see Net::Telnet.
 #
 
-require "socket"
-require "timeout"
+require "net/protocol"
 require "English"
 
 module Net
@@ -347,12 +346,12 @@
           if @options["Timeout"] == false
             @sock = TCPSocket.open(@options["Host"], @options["Port"])
           else
-            timeout(@options["Timeout"]) do
+            Timeout.timeout(@options["Timeout"], Net::OpenTimeout) do
               @sock = TCPSocket.open(@options["Host"], @options["Port"])
             end
           end
-        rescue TimeoutError
-          raise TimeoutError, "timed out while opening a connection to the host"
+        rescue Net::OpenTimeout
+          raise Net::OpenTimeout, "timed out while opening a connection to the host"
         rescue
           @log.write($ERROR_INFO.to_s + "\n") if @options.has_key?("Output_log")
           @dumplog.log_dump('#', $ERROR_INFO.to_s + "\n") if @options.has_key?("Dump_log")
@@ -508,7 +507,7 @@
     #          into a regular expression.  Used only if Match and
     #          Prompt are not specified.
     # Timeout:: the number of seconds to wait for data from the host
-    #           before raising a TimeoutError.  If set to false,
+    #           before raising a Timeout::Error.  If set to false,
     #           no timeout will occur.  If not specified, the
     #           Timeout option value specified when this instance
     #           was created will be used, or, failing that, the
Index: test/net/http/test_https.rb
===================================================================
--- test/net/http/test_https.rb	(revision 34842)
+++ test/net/http/test_https.rb	(revision 34843)
@@ -119,7 +119,7 @@
       conn.open_timeout = 0.01
 
       th = Thread.new do
-        assert_raise(Net::HTTP::OpenTimeout) {
+        assert_raise(Net::OpenTimeout) {
           conn.get('/')
         }
       end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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