tcalmant / jsonrpclib

A Python (2 & 3) JSON-RPC over HTTP that mirrors the syntax of xmlrpclib (aka jsonrpclib-pelix)
https://jsonrpclib-pelix.readthedocs.io/
Apache License 2.0
53 stars 24 forks source link

jsonrpclib: Fix TransportMixin implementation. #26

Closed mschmitzer closed 8 years ago

mschmitzer commented 8 years ago

The send_request implementation in TransportMixin erroneously sent the request body (it is only supposed to send the "POST" line and headers). This is not a problem with py2.7, because there the XMLTransport class from xmlrpclib invokes single_request, which is implemented in jsonrpclib and expects this wrong behavior. The py2.6 xmlrpc lib instead invokes send_request, emits some more headers and then invokes sent content. As the bad send_request already sent the content, the attempt to add more headers afterwards failed.

This patch removes the send_content call from send_request and adds it in single_request instead.

tcalmant commented 8 years ago

The behaviour doesn't change on Py2.7/3+, so the pull request is accepted. Thanks for your contribution :+1: