class Excon::Response
def self.parse_headers(socket, datum)
def self.parse_headers(socket, datum) last_key = nil until (data = socket.readline.chomp).empty? if !data.lstrip!.nil? raise Excon::Error::ResponseParse, 'malformed header' unless last_key # append to last_key's last value datum[:response][:headers][last_key] << ' ' << data.rstrip else key, value = data.split(':', 2) raise Excon::Error::ResponseParse, 'malformed header' unless value # add key/value or append value to existing values datum[:response][:headers][key] = ([datum[:response][:headers][key]] << value.strip).compact.join(', ') if key.casecmp?('Set-Cookie') datum[:response][:cookies] << value.strip end last_key = key end end end