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
11
}
12
12
13
13
redirects = 0
14
14
+
visited_urls = []
14
15
max_redirects = options[:max_redirects] || 5
15
16
16
17
loop do
18
18
+
visited_urls << url
19
19
+
17
20
response = Net::HTTP.start(url.host, url.port, request_options) do |http|
18
21
request = Net::HTTP::Get.new(url)
19
22
http.request(request)
···
21
24
22
25
if response.is_a?(Net::HTTPRedirection) && redirects < max_redirects && (location = response['Location'])
23
26
url = URI(location.include?('://') ? location : (url.origin + location))
24
24
-
redirects += 1
27
27
+
28
28
+
if visited_urls.include?(url)
29
29
+
return response
30
30
+
else
31
31
+
redirects += 1
32
32
+
end
25
33
else
26
34
return response
27
35
end