tangled
alpha
login
or
join now
mackuba.eu
/
didkit
1
fork
atom
A library for handling DID identifiers used in Bluesky AT Protocol
1
fork
atom
overview
issues
pulls
pipelines
detect redirect loops
mackuba.eu
7 months ago
95a78143
87db8127
+9
-1
1 changed file
expand all
collapse all
unified
split
lib
didkit
requests.rb
+9
-1
lib/didkit/requests.rb
···
11
}
12
13
redirects = 0
0
14
max_redirects = options[:max_redirects] || 5
15
16
loop do
0
0
17
response = Net::HTTP.start(url.host, url.port, request_options) do |http|
18
request = Net::HTTP::Get.new(url)
19
http.request(request)
···
21
22
if response.is_a?(Net::HTTPRedirection) && redirects < max_redirects && (location = response['Location'])
23
url = URI(location.include?('://') ? location : (url.origin + location))
24
-
redirects += 1
0
0
0
0
0
25
else
26
return response
27
end
···
11
}
12
13
redirects = 0
14
+
visited_urls = []
15
max_redirects = options[:max_redirects] || 5
16
17
loop do
18
+
visited_urls << url
19
+
20
response = Net::HTTP.start(url.host, url.port, request_options) do |http|
21
request = Net::HTTP::Get.new(url)
22
http.request(request)
···
24
25
if response.is_a?(Net::HTTPRedirection) && redirects < max_redirects && (location = response['Location'])
26
url = URI(location.include?('://') ? location : (url.origin + location))
27
+
28
+
if visited_urls.include?(url)
29
+
return response
30
+
else
31
+
redirects += 1
32
+
end
33
else
34
return response
35
end