Push potential fix for #578

pull/633/head
Omar Roth 2019-06-26 14:44:06 -05:00
rodzic 818cd2454d
commit ebfd7d2153
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B8254FB7EC3D37F2
1 zmienionych plików z 24 dodań i 0 usunięć

Wyświetl plik

@ -224,4 +224,28 @@ class HTTP::Client
response
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