diff options
author | jeg2 <jeg2@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-10-24 23:04:42 +0000 |
---|---|---|
committer | jeg2 <jeg2@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-10-24 23:04:42 +0000 |
commit | ae8bb3a00c73431e240d6319ac22b161a8ac245b (patch) | |
tree | 8ac37ab4ec57ba6fbbca81764548a93569a266d4 /lib/xmlrpc | |
parent | 238815c3b2fc6ab08d686a95c48df08c8477521c (diff) |
Merged 13767, 13768, 13769, and 13770 from trunk.
* lib/xmlrpc/parser.rb (XMLRPC::Convert::dateTime): Fixing a bug that
caused time zone conversion to fail for some ISO 8601 date formats.
[ruby-Bugs-12677]
* lib/xmlrpc/client.rb (XMLRPC::Client#do_rpc): Explicitly start
the HTTP connection to support keepalive requests. [ruby-Bugs-9353]
* lib/xmlrpc/client.rb (XMLRPC::Client#do_rpc): Improving the error
message for Content-Type check failures. [ruby-core:12163]
* lib/xmlrpc/utils.rb (XMLRPC::ParseContentType#parse_content_type):
Making Content-Type checks case insensitive. [ruby-Bugs-3367]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@13771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/xmlrpc')
-rw-r--r-- | lib/xmlrpc/client.rb | 7 | ||||
-rw-r--r-- | lib/xmlrpc/parser.rb | 4 | ||||
-rw-r--r-- | lib/xmlrpc/utils.rb | 2 |
3 files changed, 8 insertions, 5 deletions
diff --git a/lib/xmlrpc/client.rb b/lib/xmlrpc/client.rb index 10f547b632..726945ea39 100644 --- a/lib/xmlrpc/client.rb +++ b/lib/xmlrpc/client.rb @@ -530,6 +530,9 @@ module XMLRPC } else # reuse the HTTP object for each call => connection alive is possible + # we must start connection explicitely first time so that http.request + # does not assume that we don't want keepalive + @http.start if not @http.started? # post request resp = @http.post2(@path, request, header) @@ -549,9 +552,9 @@ module XMLRPC ct = parse_content_type(resp["Content-Type"]).first if ct != "text/xml" if ct == "text/html" - raise "Wrong content-type: \n#{data}" + raise "Wrong content-type (received '#{ct}' but expected 'text/xml'): \n#{data}" else - raise "Wrong content-type" + raise "Wrong content-type (received '#{ct}' but expected 'text/xml')" end end diff --git a/lib/xmlrpc/parser.rb b/lib/xmlrpc/parser.rb index d27d7c3827..6d10fde9d9 100644 --- a/lib/xmlrpc/parser.rb +++ b/lib/xmlrpc/parser.rb @@ -92,7 +92,7 @@ module XMLRPC if $7 ofs = $8.to_i*3600 + $9.to_i*60 ofs = -ofs if $7=='+' - utc = Time.utc(a.reverse) + ofs + utc = Time.utc(*a) + ofs a = [ utc.year, utc.month, utc.day, utc.hour, utc.min, utc.sec ] end XMLRPC::DateTime.new(*a) @@ -106,7 +106,7 @@ module XMLRPC if $7 ofs = $8.to_i*3600 + $9.to_i*60 ofs = -ofs if $7=='+' - utc = Time.utc(a.reverse) + ofs + utc = Time.utc(*a) + ofs a = [ utc.year, utc.month, utc.day, utc.hour, utc.min, utc.sec ] end XMLRPC::DateTime.new(*a) diff --git a/lib/xmlrpc/utils.rb b/lib/xmlrpc/utils.rb index 85c6bba372..f0966fee40 100644 --- a/lib/xmlrpc/utils.rb +++ b/lib/xmlrpc/utils.rb @@ -157,7 +157,7 @@ module XMLRPC module ParseContentType def parse_content_type(str) a, *b = str.split(";") - return a.strip, *b + return a.strip.downcase, *b end end |