On Jul 06, 2009 at 23:16, Ra?l Alexis Betancor Santana <rabs(a)dimension-virtual.com>
wrote:
On Monday 06 July 2009 22:50:38 Andrei
Pelinescu-Onciul wrote:
On Jul 06, 2009 at 22:37, Ra?l Alexis Betancor
Santana
<rabs(a)dimension-virtual.com> wrote:
On Monday
06 July 2009 21:41:40 Juha Heinanen wrote:
i may be wrong, but it is hard for me to believe
that python xmlrpclib
would be badly broken, because it is very widely used.
I also doub that xmlrpclib it's the problem
Being standard HTTP, the xmlrpc client should close the connection after
receiving the answer (if it doesn't want a connection persistent mode)
and not the reverse.
But server is sending a response not ended by CR+LF, so client doesn't know
that it must close the connection and also as serving HTTP/1.0 resquest
server MUST close the connection when it send its response.
AFAIK the request does not have to end in anything specific. The
headers end with a double CRLF and then there are Content-Lenght bytes
of the body.
What I see is that server is sending out HTTP/1.0 responses so you could NEVER
have a client that could wait for persistent connections because if it does,
it will be breaking HTTP/1.0 RFC
The server server sends exactly the same HTTP version in the reponse
that it has received in the request (if the request is HTTP/1.1 the
reply is HTTP/1.1).
Juha meant only the xml body. All the HTTP header
lines are CRLF
terminated.
And boundary between headers and body ?
It's ok (or else the body would not be at all parse-able and no xmlrpc
client would work).
It's true only for the headers. How the body
looks depends on what does
it carry. For the case of xmlrpc it's xml which is quite free-form (you
can have the whole xml part on one line if you want to).
Yes, but I was not telling that body must follow cr+lf spec .. I told that
response should be:
HTTP/1.0
header: value<cr><lf>
<cr><lf>
{xml response(no matter if one line or more)}<cr><lf>
<cr><lf>
It should be easy to check, I don't use xmlrpc on s-r so I could not check it
It is. The problem is the python xmlrpc client waits for the server to
close the connection. It might be related to the fact that it uses
http/1.0 by default (but I don't know how can that be easily changed).
However the perl client works, the python client works with a transport
class and the latest sr version has support for closing the connection
after sending a reply if one really wants to and prefer this rather
then updating his python/php program.
Andrei