From: zdennis Date: 2007-02-17T00:33:42+09:00 Subject: Re: Trouble with xmlrpc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 According to HTTP1.1 RFC Section 4.4... "If a Content-Length header field (section 14.13) is present, its decimal value in OCTETs represents both the entity-length and the transfer-length. The Content-Length header field MUST NOT be sent if these two lengths are different (i.e., if a Transfer-Encoding header field is present). If a message is received with both a Transfer-Encoding header field and a Content-Length header field, the latter MUST be ignored." ... "For compatibility with HTTP/1.0 applications, HTTP/1.1 requests containing a message-body MUST include a valid Content-Length header field unless the server is known to be HTTP/1.1 compliant." Section 14.13... "Applications SHOULD use this field to indicate the transfer-length of the message-body, unless this is prohibited by the rules in section 4.4." I don't know if this helps, but it seems in most cases the Content-Length *should* be there unless Transfer-Encoding header exists, then it could be ignored or ommitted. Zach Dennis Market Technologies Inc. office: 616-827-9543 xt. 1222 fax: 616-827-9573 cell: 616-318-6739 http://www.mktec.com James Edward Gray II wrote: > On Feb 15, 2007, at 1:33 PM, James Edward Gray II wrote: > >> On Feb 15, 2007, at 1:29 PM, Berger, Daniel wrote: >> >>>> -----Original Message----- >>>> From: James Edward Gray II [mailto:james@grayproductions.net] >>>> Sent: Thursday, February 15, 2007 12:19 PM >>>> To: Ruby Core >>>> Subject: Trouble with xmlrpc >>>> >>>> >>>> Some of the Ruby code used by TextMate makes use of xmlrpc/ >>>> client.rb. We are now getting bug reports from users and have >>>> tracked the issue back to this bit of code in that file: >>>> >>>> http://pastie.textmate.org/39421 >>>> >>>> This code throws an error if the response does not have a Content- >>>> Length header, but our understanding is that this header is not >>>> mandatory. Could anyone please explain to me why this limitation is >>>> in place? >>> >>> My *guess* is that this: >>> >>> elsif expected.to_i != data.size and resp["Transfer-Encoding"].nil? >>> >>> Should be: >>> >>> elsif expected != '' and expected.to_i != data.size and >>> resp["Transfer-Encoding"].nil? >> >> That makes a lot more sense to me, since the code goes through the >> trouble of setting "" in the first place. > > Since no one seems to be claiming this is expected behavior, can we > please fix it? > > Below I will provide a patch against the ruby_1_8 branch. It should > also be applied to trunk and I can provide that patch if needed. > > CHANGELOG: > > Making the Content-Length parameter optional for responses in > xmlrpc/client.rb. > > James Edward Gray II > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFF1c8rMyx0fW1d8G0RAle9AJ9zZFae+7SVE5MLyVUqcHLUjcDrqgCbBzzY PThL48W6XH01GanDVb0WTKI= =PR7U -----END PGP SIGNATURE-----