diff --git a/sentry-ruby/lib/sentry/transport/spotlight_transport.rb b/sentry-ruby/lib/sentry/transport/spotlight_transport.rb index 804f1d23e..3c824ca70 100644 --- a/sentry-ruby/lib/sentry/transport/spotlight_transport.rb +++ b/sentry-ruby/lib/sentry/transport/spotlight_transport.rb @@ -39,11 +39,11 @@ def on_error @failed += 1 end - # Similar to HTTPTransport connection, but does not support Proxy and SSL + # Similar to HTTPTransport connection, but does not support Proxy def conn sidecar = URI(@sidecar_url) connection = ::Net::HTTP.new(sidecar.hostname, sidecar.port, nil) - connection.use_ssl = false + connection.use_ssl = sidecar.scheme == "https" connection end end diff --git a/sentry-ruby/spec/sentry/transport/spotlight_transport_spec.rb b/sentry-ruby/spec/sentry/transport/spotlight_transport_spec.rb index d6ae7bf95..8349f03d9 100644 --- a/sentry-ruby/spec/sentry/transport/spotlight_transport_spec.rb +++ b/sentry-ruby/spec/sentry/transport/spotlight_transport_spec.rb @@ -53,6 +53,24 @@ expect(subject.conn.port).to eq(80) expect(subject.conn.use_ssl?).to eq(false) end + + it 'returns an SSL connection with the default HTTPS port' do + configuration.spotlight = 'https://foobar@test.com' + connection = described_class.new(configuration).conn + + expect(connection.address).to eq('test.com') + expect(connection.port).to eq(443) + expect(connection.use_ssl?).to eq(true) + end + + it 'preserves an explicitly specified HTTPS port' do + configuration.spotlight = 'https://foobar@test.com:8443' + connection = described_class.new(configuration).conn + + expect(connection.address).to eq('test.com') + expect(connection.port).to eq(8443) + expect(connection.use_ssl?).to eq(true) + end end describe '#send_data' do