open-uri 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/open-uri.rb +7 -1
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ba843c62b6eeedc0ba41feb9a8539cbbaff5f363cd6f960f7c004153e32b2fbf
4
- data.tar.gz: 8de6ddfea24c2b7596ae35a4094b3bbf30cae1ed92d142b1a7b0772c9200b456
3
+ metadata.gz: 78f03a56856bfc2aa1dbdd08478f6bda3ea2c29f83d7cd99ef762f5c0b52e067
4
+ data.tar.gz: cbd9c8771d3eb265509ad998d1331098f1866000e07ab8cfaa3dfaac4f31a360
5
5
  SHA512:
6
- metadata.gz: a48baeacc9043f013c631ba9f07e4ac9eadff5d04a207dbe87d428d2f0393feb605281f91335ae74bedc2351b238f96858b3cad97e311e36a257026993106c8a
7
- data.tar.gz: f8f47f6f52bdf4cc73a2d3cf4c898bebe8ccbe8329f53e68b9532b658fdbbe976a5a4d0a6c0d069722b6f260b707a20b2f6ab49aa200db800a2d7e29b0cd4814
6
+ metadata.gz: 23431550f621fade4ae9fa17ab13212dfc4a4d401d44e0b483e0315f223eb237610fb761acdc36c2eba70259aed5f11fc1fec748cdc75b8390dd2873a00f3ff0
7
+ data.tar.gz: dbb275774fe23edfaf364819ebabe871378831f3fa758a25aa9641040887cd878945b84d2a42b32d0436d0ecfcf35e2358be143028b25cce0bcbb57b5fa73176
data/lib/open-uri.rb CHANGED
@@ -91,7 +91,7 @@ end
91
91
 
92
92
  module OpenURI
93
93
 
94
- VERSION = "0.4.0"
94
+ VERSION = "0.4.1"
95
95
 
96
96
  Options = {
97
97
  :proxy => true,
@@ -108,6 +108,7 @@ module OpenURI
108
108
  :ftp_active_mode => false,
109
109
  :redirect => true,
110
110
  :encoding => nil,
111
+ :max_redirects => 64,
111
112
  }
112
113
 
113
114
  def OpenURI.check_options(options) # :nodoc:
@@ -211,6 +212,7 @@ module OpenURI
211
212
  end
212
213
 
213
214
  uri_set = {}
215
+ max_redirects = options[:max_redirects]
214
216
  buf = nil
215
217
  while true
216
218
  redirect = catch(:open_uri_redirect) {
@@ -238,6 +240,7 @@ module OpenURI
238
240
  uri = redirect
239
241
  raise "HTTP redirection loop: #{uri}" if uri_set.include? uri.to_s
240
242
  uri_set[uri.to_s] = true
243
+ raise TooManyRedirects.new("Too many redirects", buf.io) if max_redirects && uri_set.size > max_redirects
241
244
  else
242
245
  break
243
246
  end
@@ -392,6 +395,9 @@ module OpenURI
392
395
  attr_reader :uri
393
396
  end
394
397
 
398
+ class TooManyRedirects < HTTPError
399
+ end
400
+
395
401
  class Buffer # :nodoc: all
396
402
  def initialize
397
403
  @io = StringIO.new
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: open-uri
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanaka Akira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-07 00:00:00.000000000 Z
11
+ date: 2023-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: uri