RPC-XML-0.60

Changes for version 0.60

t/00_load.t: t/01_pod.t: t/02_pod_coverage.t: t/10_data.t: t/11_base64_fh.t: t/15_serialize.t: t/20_parser.t: t/30_method.t: t/40_server.t: t/50_client.t: t/60_net_server.t: Related to the main change of RT ticket #30849, fixes potential problem in the creation of temporary file names if a test script is run directly from the "t" directory. While at it, added a line with the Subversion "Id" keyword and set the "svn:keywords" property on all test scripts. The code-fix is based on suggestions from Jörg Meltzer <joerg@joergmeltzer.de>.

lib/RPC/XML/Server.pm: Applied a modified form of a patch submitted by Mike Rylander <miker@n2bb.com> to make things work under SSL.

lib/RPC/XML/Server.pm: t/41_server_hang.t: Fixed the bug in RPC::XML::Server::process_request() could lead to an infinite loop if the client shuts down the socket before the full request is sent. Added a test script specific to this bug, to catch it if it reappears.

lib/RPC/XML.pm: t/10_data.t: Per RT ticket #30042, made a do-nothing branch in RPC::XML::smart_encode actually die with an error when a reference-type is passed in that cannot be converted. Added two tests to cover this, and took the opportunity to convert 10_data.t to Test::More.

t/40_server.t: t/50_client.t: Applied a patch from Chris Darroch to make the spawning of servers work in some corner-cases that were failing. All that was required was explicit specification of 'localhost' in the instantiation.

lib/RPC/XML/Parser.pm: t/20_parser.t: Applied a patch from Masatake Daimon (大門正岳) to improve the performance of the parser by reducing the (vast) number of string-concat operations. During this change, re-wrote the parser tests to use Test::More and have better diagnostics.

lib/RPC/XML/Server.pm: t/40_server.t: Per RT ticket #29351, fixed a bug that caused a server to incorrectly report the location and cause of an XML parsing error in the request. The actual bug and solution were different than initially reported in the ticket.

lib/RPC/XML.pm: t/10_data.t: Per RT ticket #31818, fix to the XML serialization of double values to conform to the XML-RPC spec, as it does not allow for exponential notation. This also required changes to the tests, as values were no longer being auto-truncated at 5 decimal places. Also finished cleaning up the t/10_data.t test suite with diagnostic messages on the tests that had not previously gotten them.

lib/RPC/XML.pm: t/20_parser.t: In response to concerns raised by a report of parsing problems, added XML entity encoding for ' and " (&apos; and &quot;) to the base RPC::XML module, and added a test to the parser suite to make sure it is correctly turning all core XML entities back into characters during the parsing process.

lib/Apache/RPC/Server.pm: lib/RPC/XML/Server.pm: t/40_server.t: RT ticket #34557: Provide access to client-side connection info to methods called on the server, by placing the data from get_peeraddr() (as abstracted through existing methods in HTTP::Daemon::ClientConn and Apache::Connection) into localized keys on the server object, as is already done with the method_name and signature pseudo-keys. Tests added to 40_server.t and docs updated.