Sha256: 2a3e53c411cda2abf46fa8bbf208e8244c5605f851e6ea10863d7cabd10ef422
Contents?: true
Size: 1.81 KB
Versions: 2
Compression:
Stored size: 1.81 KB
Contents
# frozen_string_literal: true if defined?(::HTTPClient) class HTTPClient private alias orig_do_get_block do_get_block def do_get_block(req, proxy, conn, &block) retryable_response = nil bm = Benchmark.realtime do begin orig_do_get_block(req, proxy, conn, &block) rescue RetryableResponse => e retryable_response = e end end request_uri = req.header.request_uri if HttpLog.url_approved?(request_uri) res = conn.pop headers = res.headers.transform_keys(&:downcase) HttpLog.call( method: req.header.request_method, url: request_uri, request_body: req.body, request_headers: req.headers, response_code: res.status_code, response_body: res.body, response_headers: headers, benchmark: bm, encoding: headers['content-encoding'], content_type: headers['content-type'], mask_body: HttpLog.masked_body_url?(request_uri) ) conn.push(res) end raise retryable_response unless retryable_response.nil? end class Session alias orig_create_socket create_socket # up to version 2.6, the method signature is `create_socket(site)`; after that, # it's `create_socket(host, port)` if instance_method(:create_socket).arity == 1 def create_socket(site) if HttpLog.url_approved?("#{site.host}:#{site.port}") HttpLog.log_connection(site.host, site.port) end orig_create_socket(site) end else def create_socket(host, port) if HttpLog.url_approved?("#{host}:#{port}") HttpLog.log_connection(host, port) end orig_create_socket(host, port) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
httplog-1.7.0 | lib/httplog/adapters/httpclient.rb |
httplog-1.6.3 | lib/httplog/adapters/httpclient.rb |