lib/active_merchant/connection.rb in activemerchant-1.79.2 vs lib/active_merchant/connection.rb in activemerchant-1.80.0
- old
+ new
@@ -12,12 +12,13 @@
OPEN_TIMEOUT = 60
READ_TIMEOUT = 60
VERIFY_PEER = true
CA_FILE = File.expand_path('../certs/cacert.pem', File.dirname(__FILE__))
CA_PATH = nil
+ MIN_VERSION = :TLS1_1
RETRY_SAFE = false
- RUBY_184_POST_HEADERS = { "Content-Type" => "application/x-www-form-urlencoded" }
+ RUBY_184_POST_HEADERS = { 'Content-Type' => 'application/x-www-form-urlencoded' }
attr_accessor :endpoint
attr_accessor :open_timeout
attr_accessor :read_timeout
attr_accessor :verify_peer
@@ -49,11 +50,11 @@
@ca_path = CA_PATH
@max_retries = MAX_RETRIES
@ignore_http_status = false
@ssl_version = nil
if Net::HTTP.instance_methods.include?(:min_version=)
- @min_version = nil
+ @min_version = MIN_VERSION
@max_version = nil
end
@ssl_connection = {}
@proxy_address = :ENV
@proxy_port = nil
@@ -63,14 +64,15 @@
raise ArgumentError, "can't wiredump to frozen #{device.class}" if device && device.frozen?
@wiredump_device = device
end
def request(method, body, headers = {})
- headers['connection'] ||= 'close'
-
request_start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
+ headers = headers.dup
+ headers['connection'] ||= 'close'
+
retry_exceptions(:max_retries => max_retries, :logger => logger, :tag => tag) do
begin
info "connection_http_method=#{method.to_s.upcase} connection_uri=#{endpoint}", tag
result = nil
@@ -80,11 +82,11 @@
@ssl_connection = http.ssl_connection
info "connection_ssl_version=#{ssl_connection[:version]} connection_ssl_cipher=#{ssl_connection[:cipher]}", tag
result = case method
when :get
- raise ArgumentError, "GET requests do not support a request body" if body
+ raise ArgumentError, 'GET requests do not support a request body' if body
http.get(endpoint.request_uri, headers)
when :post
debug body
http.post(endpoint.request_uri, body, RUBY_184_POST_HEADERS.merge(headers))
when :put
@@ -108,18 +110,18 @@
else
raise ArgumentError, "Unsupported request method #{method.to_s.upcase}"
end
end
- info "--> %d %s (%d %.4fs)" % [result.code, result.message, result.body ? result.body.length : 0, realtime], tag
+ info '--> %d %s (%d %.4fs)' % [result.code, result.message, result.body ? result.body.length : 0, realtime], tag
debug result.body
result
end
end
ensure
- info "connection_request_total_time=%.4fs" % [Process.clock_gettime(Process::CLOCK_MONOTONIC) - request_start], tag
+ info 'connection_request_total_time=%.4fs' % [Process.clock_gettime(Process::CLOCK_MONOTONIC) - request_start], tag
http.finish if http.started?
end
private
@@ -142,10 +144,10 @@
http.open_timeout = open_timeout
http.read_timeout = read_timeout
end
def configure_ssl(http)
- return unless endpoint.scheme == "https"
+ return unless endpoint.scheme == 'https'
http.use_ssl = true
http.ssl_version = ssl_version if ssl_version
if http.respond_to?(:min_version=)
http.min_version = min_version if min_version