class ElasticAPM::HttpAdapter

@api private

def http

def http
  return @http if @http
  http = Net::HTTP.new server_uri.host, server_uri.port
  http.use_ssl = @config.use_ssl?
  http.verify_mode = verify_mode
  http.read_timeout = @config.http_read_timeout
  http.open_timeout = @config.http_open_timeout
  if @config.debug_http
    http.set_debug_output(@config.logger)
  end
  @http = http
end

def initialize(conf)

def initialize(conf)
  @config = conf
end

def perform(req)

def perform(req)
  return DISABLED if @config.disable_send?
  http.start do |http|
    http.request req
  end
end

def post(path)

def post(path)
  req = Net::HTTP::Post.new path
  yield req if block_given?
  req
end

def server_uri

def server_uri
  @server_uri ||= URI(@config.server_url)
end

def verify_mode

def verify_mode
  if @config.use_ssl? && @config.verify_server_cert?
    OpenSSL::SSL::VERIFY_PEER
  else
    OpenSSL::SSL::VERIFY_NONE
  end
end