module Excon::Utils
def headers_hash_to_s(headers)
def headers_hash_to_s(headers) headers_str = String.new headers.each do |key, values| if key.to_s.match(/[\r\n]/) raise Excon::Errors::InvalidHeaderKey.new(key.to_s.inspect + ' contains forbidden "\r" or "\n"') end [values].flatten.each do |value| if value.to_s.match(/[\r\n]/) # Don't include the potentially sensitive header value (i.e. authorization token) in the message raise Excon::Errors::InvalidHeaderValue.new(key.to_s + ' header value contains forbidden "\r" or "\n"') end headers_str << key.to_s << ': ' << value.to_s << CR_NL end end headers_str end