class Bundler::Fetcher

def connection

def connection
  return @connection if @connection
  needs_ssl = @remote_uri.scheme == "https" ||
    Bundler.settings[:ssl_verify_mode] ||
    Bundler.settings[:ssl_client_cert]
  raise SSLError if needs_ssl && !defined?(OpenSSL)
  @connection = Net::HTTP::Persistent.new 'bundler', :ENV
  if @remote_uri.scheme == "https"
    @connection.verify_mode = (Bundler.settings[:ssl_verify_mode] ||
      OpenSSL::SSL::VERIFY_PEER)
    @connection.cert_store = bundler_cert_store
  end
  if Bundler.settings[:ssl_client_cert]
    pem = File.read(Bundler.settings[:ssl_client_cert])
    @connection.cert = OpenSSL::X509::Certificate.new(pem)
    @connection.key  = OpenSSL::PKey::RSA.new(pem)
  end
  @connection.read_timeout = @api_timeout
  @connection.override_headers["User-Agent"] = self.class.user_agent
  @connection
end