Push potential fix for #578
This commit is contained in:
parent
818cd2454d
commit
ebfd7d2153
@ -224,4 +224,28 @@ class HTTP::Client
|
|||||||
|
|
||||||
response
|
response
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# See https://github.com/crystal-lang/crystal/issues/7843
|
||||||
|
private def socket
|
||||||
|
socket = @socket
|
||||||
|
return socket if socket
|
||||||
|
|
||||||
|
hostname = @host.starts_with?('[') && @host.ends_with?(']') ? @host[1..-2] : @host
|
||||||
|
socket = TCPSocket.new hostname, @port, @dns_timeout, @connect_timeout
|
||||||
|
socket.read_timeout = @read_timeout if @read_timeout
|
||||||
|
socket.sync = false
|
||||||
|
|
||||||
|
{% if !flag?(:without_openssl) %}
|
||||||
|
if tls = @tls
|
||||||
|
_socket = socket
|
||||||
|
begin
|
||||||
|
socket = OpenSSL::SSL::Socket::Client.new(socket, context: tls, sync_close: true, hostname: @host)
|
||||||
|
rescue
|
||||||
|
_socket.close
|
||||||
|
end
|
||||||
|
end
|
||||||
|
{% end %}
|
||||||
|
|
||||||
|
@socket = socket
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user