summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-21 10:38:31 +0000
committershugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-21 10:38:31 +0000
commit30cc5ce4bdd3fce63b49e41fd4dfd7a391d52407 (patch)
tree64a3af85340273d7cd3dcff296699900b9818f49
parent4c839a2cece0a7937b64646fabbe4fe4c19f33c3 (diff)
Add new options open_timeout and read_timeout to Net::FTP.new.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--lib/net/ftp.rb8
-rw-r--r--test/net/ftp/test_ftp.rb10
2 files changed, 16 insertions, 2 deletions
diff --git a/lib/net/ftp.rb b/lib/net/ftp.rb
index 278dd51024..7a07d27437 100644
--- a/lib/net/ftp.rb
+++ b/lib/net/ftp.rb
@@ -190,6 +190,10 @@ module Net
# account:: Account information for ACCT.
# passive:: When +true+, the connection is in passive mode. Default:
# +true+.
+ # open_timeout:: Number of seconds to wait for the connection to open.
+ # See Net::FTP#open_timeout for details. Default: +nil+.
+ # read_timeout:: Number of seconds to wait for one block to be read.
+ # See Net::FTP#read_timeout for details. Default: +60+.
# debug_mode:: When +true+, all traffic to and from the server is
# written to +$stdout+. Default: +false+.
#
@@ -242,8 +246,8 @@ module Net
@resume = false
@bare_sock = @sock = NullSocket.new
@logged_in = false
- @open_timeout = nil
- @read_timeout = 60
+ @open_timeout = options[:open_timeout]
+ @read_timeout = options[:read_timeout] || 60
if host
if options[:port]
connect(host, options[:port] || FTP_PORT)
diff --git a/test/net/ftp/test_ftp.rb b/test/net/ftp/test_ftp.rb
index 708def13bb..4e43cda24a 100644
--- a/test/net/ftp/test_ftp.rb
+++ b/test/net/ftp/test_ftp.rb
@@ -278,6 +278,16 @@ class FTPTest < Test::Unit::TestCase
end
end
+ def test_s_new_timeout_options
+ ftp = Net::FTP.new
+ assert_equal(nil, ftp.open_timeout)
+ assert_equal(60, ftp.read_timeout)
+
+ ftp = Net::FTP.new(nil, open_timeout: 123, read_timeout: 234)
+ assert_equal(123, ftp.open_timeout)
+ assert_equal(234, ftp.read_timeout)
+ end
+
# TODO: How can we test open_timeout? sleep before accept cannot delay
# connections.
def _test_open_timeout_exceeded