summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-09 03:15:14 +0000
committerknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-09 03:15:14 +0000
commit21f7aa68f2d06e6ba1d2fedcfa63495b7c96326f (patch)
tree11dbaa4deadbdb5e5e9781cb35de157fe152c84f
parentb503b7b45bb20760b8474d4be2074239fda46e07 (diff)
r22137@crimson: knu | 2009-02-08 21:40:10 +0900
* add :read_timeout option. [ruby-core:4848] (r9166) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@22148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--lib/open-uri.rb11
2 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 0e2670589b..276344eefd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Feb 8 21:39:06 2009 Akinori MUSHA <knu@iDaemons.org>
+
+ * lib/open-uri.rb: add :read_timeout option.
+ [ruby-core:4848] (r9166)
+
Mon Feb 9 01:21:16 2009 Tanaka Akira <akr@fsij.org>
* ext/socket/socket.c (unix_recv_io): relax msg_controllen error
diff --git a/lib/open-uri.rb b/lib/open-uri.rb
index 54b42f336f..f54f6f2b41 100644
--- a/lib/open-uri.rb
+++ b/lib/open-uri.rb
@@ -94,6 +94,7 @@ module OpenURI
:progress_proc => true,
:content_length_proc => true,
:http_basic_authentication => true,
+ :read_timeout => true,
}
def OpenURI.check_options(options) # :nodoc:
@@ -234,6 +235,9 @@ module OpenURI
store.set_default_paths
http.cert_store = store
end
+ if options.include? :read_timeout
+ http.read_timeout = options[:read_timeout]
+ end
header = {}
options.each {|k, v| header[k] = v if String === k }
@@ -511,6 +515,13 @@ module OpenURI
# pbar.set s if pbar
# }) {|f| ... }
#
+ # [:read_timeout]
+ # Synopsis:
+ # :read_timeout=>nil (no timeout)
+ # :read_timeout=>10 (10 second)
+ #
+ # :read_timeout option specifies a timeout of read for http connections.
+ #
# OpenURI::OpenRead#open returns an IO like object if block is not given.
# Otherwise it yields the IO object and return the value of the block.
# The IO object is extended with OpenURI::Meta.