17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/active_merchant/network_connection_retries.rb', line 17
def retry_exceptions(options={})
connection_errors = DEFAULT_CONNECTION_ERRORS.merge(options[:connection_exceptions] || {})
retry_network_exceptions(options) do
begin
yield
rescue Errno::ECONNREFUSED => e
raise ActiveMerchant::RetriableConnectionError.new("The remote server refused the connection", e)
rescue OpenSSL::X509::CertificateError => e
NetworkConnectionRetries.log(options[:logger], :error, e.message, options[:tag])
raise ActiveMerchant::ClientCertificateError, "The remote server did not accept the provided SSL certificate"
rescue Zlib::BufError => e
raise ActiveMerchant::InvalidResponseError, "The remote server replied with an invalid response"
rescue *connection_errors.keys => e
raise ActiveMerchant::ConnectionError.new(derived_error_message(connection_errors, e.class), e)
end
end
end
|