Sha256: 14ed373ba7973d44fea28c290a2babbcf2a215f44f3046c804a71c4088f67ef8

Contents?: true

Size: 1.41 KB

Versions: 3

Compression:

Stored size: 1.41 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

module NewRelic
  module Agent
    module HTTPClients

      class CurbRequest
        CURB = 'Curb'.freeze
        LHOST = 'host'.freeze
        UHOST = 'Host'.freeze

        def initialize( curlobj )
          @curlobj = curlobj
        end

        def type
          CURB
        end

        def host_from_header
          self[LHOST] || self[UHOST]
        end

        def host
          host_from_header || self.uri.host
        end

        def method
          @curlobj._nr_http_verb
        end

        def []( key )
          @curlobj.headers[ key ]
        end

        def []=( key, value )
          @curlobj.headers[ key ] = value
        end

        def uri
          @uri ||= NewRelic::Agent::HTTPClients::URIUtil.parse_url(@curlobj.url)
        end
      end


      class CurbResponse

        def initialize(curlobj)
          @headers = {}
          @curlobj = curlobj
        end

        def [](key)
          @headers[ key.downcase ]
        end

        def to_hash
          @headers.dup
        end

        def append_header_data( data )
          key, value = data.split( /:\s*/, 2 )
          @headers[ key.downcase ] = value
          @curlobj._nr_header_str ||= ''
          @curlobj._nr_header_str << data
        end

      end

    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
newrelic_rpm-4.0.0.332 lib/new_relic/agent/http_clients/curb_wrappers.rb
newrelic_rpm-3.18.1.330 lib/new_relic/agent/http_clients/curb_wrappers.rb
newrelic_rpm-3.18.0.329 lib/new_relic/agent/http_clients/curb_wrappers.rb