class HTTPClient

Private Instance Methods

do_get_block(req, proxy, conn, &block) click to toggle source
# File lib/binnacle/http_logging/adapters/httpclient.rb, line 7
def do_get_block(req, proxy, conn, &block)
  url = req.header.request_uri
  log_enabled = Binnacle::HttpLogger.allow?(url)

  uri = URI(url)
  url_without_query = "#{uri.scheme}://#{uri.host}:#{uri.port}#{uri.path}"

  retryable_response = nil
  bm = Benchmark.realtime do
    begin
      orig_do_get_block(req, proxy, conn, &block)
    rescue RetryableResponse => e
      retryable_response = e
    end
  end

  if log_enabled
    res = conn.pop
    headers = res.headers

    Binnacle::HttpLogger.signal(url_without_query, req.header.request_method, @host, @port, uri.path, uri.query, res.status_code, bm, headers, res.body, headers['Content-Encoding'], headers['Content-Type'])

    conn.push(res)
  end

  raise retryable_response if retryable_response != nil
end
Also aliased as: orig_do_get_block
orig_do_get_block(req, proxy, conn, &block)
Alias for: do_get_block