Re-use custom socket class for FASP requests (#37925)

pull/37953/head
David Roetzel 3 weeks ago
parent 3871f3a399
commit 7de301922b

@ -29,7 +29,7 @@ class Fasp::Request
response = HTTP
.headers(headers)
.use(http_signature: { key:, covered_components: COVERED_COMPONENTS })
.send(verb, url, body:)
.send(verb, url, body:, socket_class: ::Request::Socket)
validate!(response)

@ -349,5 +349,5 @@ class Request
end
end
private_constant :ClientLimit, :Socket, :ProxySocket
private_constant :ClientLimit
end

@ -55,6 +55,24 @@ RSpec.describe Fasp::Request do
end
end
end
context 'when the provider host name resolves to a private address' do
around do |example|
WebMock.disable!
example.run
WebMock.enable!
end
it 'raises Mastodon::ValidationError' do
resolver = instance_double(Resolv::DNS)
allow(resolver).to receive(:getaddresses).with('reqprov.example.com').and_return(%w(0.0.0.0 2001:db8::face))
allow(resolver).to receive(:timeouts=).and_return(nil)
allow(Resolv::DNS).to receive(:open).and_yield(resolver)
expect { subject.send(method, '/test_path') }.to raise_error(Mastodon::ValidationError)
end
end
end
describe '#get' do

Loading…
Cancel
Save