lib/http/client.rb in http-0.7.2 vs lib/http/client.rb in http-0.7.3
- old
+ new
@@ -50,11 +50,11 @@
uri = req.uri
# TODO: keep-alive support
@socket = options[:socket_class].open(req.socket_host, req.socket_port)
- @socket = start_tls(@socket, options) if uri.is_a?(URI::HTTPS) && !req.using_proxy?
+ @socket = start_tls(@socket, uri.host, options) if uri.is_a?(URI::HTTPS) && !req.using_proxy?
req.stream @socket
read_headers!
@@ -88,15 +88,20 @@
end
private
# Initialize TLS connection
- def start_tls(socket, options)
+ def start_tls(socket, host, options)
# TODO: abstract away SSLContexts so we can use other TLS libraries
context = options[:ssl_context] || OpenSSL::SSL::SSLContext.new
socket = options[:ssl_socket_class].new(socket, context)
socket.connect
+
+ if context.verify_mode == OpenSSL::SSL::VERIFY_PEER
+ socket.post_connection_check(host)
+ end
+
socket
end
# Merges query params if needed
def make_request_uri(uri, options)