class Aws::Plugins::HelpfulSocketErrors::Handler

Public Instance Methods

call(context) click to toggle source

Wrap `SocketError` errors with `Aws::Errors::NoSuchEndpointError`

# File lib/aws-sdk-core/plugins/helpful_socket_errors.rb, line 11
def call(context)
  response = @handler.call(context)
  response.context.http_response.on_error do |error|
    if socket_endpoint_error?(error)
      response.error = no_such_endpoint_error(context, error)
    end
  end
  response
end

Private Instance Methods

no_such_endpoint_error(context, error) click to toggle source
# File lib/aws-sdk-core/plugins/helpful_socket_errors.rb, line 30
def no_such_endpoint_error(context, error)
  Errors::NoSuchEndpointError.new({
    context: context,
    original_error: error.original_error,
  })
end
socket_endpoint_error?(error) click to toggle source
# File lib/aws-sdk-core/plugins/helpful_socket_errors.rb, line 23
def socket_endpoint_error?(error)
  Seahorse::Client::NetworkingError === error &&
  SocketError === error.original_error &&
  error.original_error.message.match(/failed to open tcp connection/i) &&
  error.original_error.message.match(/getaddrinfo: nodename nor servname provided, or not known/i)
end