--- client.rb.old 2009-10-02 13:04:38 +0200 +++ client.rb 2011-12-18 03:45:15 +0100 @@ -298,6 +298,7 @@ @http_header_extra = nil @http_last_response = nil @cookie = nil + @cookies_hash = {} @host = host || "localhost" @path = path || "/RPC2" @@ -564,14 +565,24 @@ elsif expected != "" and expected.to_i != data.size and resp["Transfer-Encoding"].nil? raise "Wrong size. Was #{data.size}, should be #{expected}" end + + set_cookies = resp.get_fields("Set-Cookie") if set_cookies and !set_cookies.empty? + require 'webrick/cookie' - @cookie = set_cookies.collect do |set_cookie| + set_cookies.collect do |set_cookie| cookie = WEBrick::Cookie.parse_set_cookie(set_cookie) - WEBrick::Cookie.new(cookie.name, cookie.value).to_s - end.join("; ") + @cookies_hash[cookie.name]=cookie.value + end + + cookies_arr = [] + @cookies_hash.each do |key,val| + cookies_arr.push(WEBrick::Cookie.new(key, val).to_s) + end + + @cookie=cookies_arr.join("; ") end return data