class Aws::Plugins::S3Dualstack::DualstackHandler

@api private

def apply_dualstack_endpoint(context)

def apply_dualstack_endpoint(context)
  bucket_name = context.params[:bucket]
  region = context.config.region
  force_path_style = context.config.force_path_style
  dns_suffix = EndpointProvider.dns_suffix_for(region)
  if use_bucket_dns?(bucket_name, context)
    host = "#{bucket_name}.s3.dualstack.#{region}.#{dns_suffix}"
  else
    host = "s3.dualstack.#{region}.#{dns_suffix}"
  end
  endpoint = URI.parse(context.http_request.endpoint.to_s)
  endpoint.scheme = context.http_request.endpoint.scheme
  endpoint.port = context.http_request.endpoint.port
  endpoint.host = host
  context.http_request.endpoint = endpoint.to_s
end

def call(context)

def call(context)
  apply_dualstack_endpoint(context) if use_dualstack_endpoint?(context)
  @handler.call(context)
end

def use_bucket_dns?(bucket_name, context)

def use_bucket_dns?(bucket_name, context)
  ssl = context.http_request.endpoint.scheme == "https"
  bucket_name && S3BucketDns.dns_compatible?(bucket_name, ssl) &&
    !context.config.force_path_style
end

def use_dualstack_endpoint?(context)

def use_dualstack_endpoint?(context)
  context[:use_dualstack_endpoint] && !context[:use_accelerate_endpoint]
end