Perl Module RPC::XML Change History Revision history for the Perl extension module RPC::XML. This is an implementation of the XML-RPC standard as described at This implementation also permits some minor extensions to the base protocol in terms of supporting HTTP/1.1 and allowing choice of character-set encodings for XML messages. 0.78 Thursday February 6, 2014, 08:00:00 PM -0800 * lib/RPC/ A patch to loop detection in smart_encode from Dag-Erling Smørgrav. Some other minor bits. * lib/RPC/XML/ RT #83108: Fixed a spelling error. Some other fixes, too. * lib/RPC/ RT #86187: Force key-ordering in struct as_string and serialize. Was getting some intermittent bug reports of failures in t/15_serialize.t that amounted to the keys in a fault struct not being in consistent order. * lib/RPC/ * t/15_serialize.t Undo the previous change and fix the test. The previous change didn't feel right, so this rolls it back and fixes the problem at the level of the test, instead. * Makefile.PL * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ Replace direct evals for loading optional modules with Module::Load. Required adding this to Makefile.PL because Module::Load is not core in 5.8.8. Also did some slight doc tweaking. * lib/RPC/ * lib/RPC/XML/ Merge pull request #5 from alexrj/utf8-encode. Use utf8::encode() instead of utf8::downgrade(). * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ Finish the uft8 encode vs. downgrade change from the previous commit. Changed in places that were overlooked, and adjusted the version number in all three modules. * lib/RPC/ * lib/RPC/XML/Parser/ Merge pull request #6 from dctabuyz/master. Added 'no_blanks' libxml option to skip blank XML::LibXML::Text nodes. * lib/RPC/XML/ Merge pull request #7 from kvar/master. Initialize $do_compress in RPC::XML::Server between requests. * lib/RPC/ * lib/RPC/XML/Parser/ * lib/RPC/XML/ Bump version numbers on modules changed in github pulls. 0.77 Monday September 3, 2012, 12:00:00 PM -0700 * t/15_serialize.t Fix a test failure on Windows. * lib/RPC/ RT #70408: Fix spelling error in man page, reported by Debian group. * t/90_rt54183_sigpipe.t Fix to handle cases where server creation fails. Now skips the tests rather than dying. * lib/RPC/XML/ RT #67486: Add port to Host header in client requests. * lib/RPC/XML/ RT #65341: Added "use" of forgotten library File::Temp. This was causing failure when "message_file_thresh" kicked in. * t/10_data.t RT #78602: Changed 64-bit test from use64bitint to longsize. On some systems (such as OS X), use64bitint can be true even when in 32-bit mode. * t/21_xml_libxml.t Fix from Christian Walde, skip passed test on Windows. * lib/RPC/XML/ * t/40_server.t Checkpoint refactoring and additional tests. Work is not complete here, but the Net::Server changes demand immediate attention * t/20_xml_parser.t RT #72780: Check for a possible parser failure. One instance of XML::Parser failing to parse the extern entities test. Cannot reproduce, so wrap it in a "skip" block for now. * lib/RPC/XML/ * t/30_method.t RT #71452: Correct handling of dateTime parameters. Existing code in lib/RPC/XML/ did not properly handle parameters of the dateTime.iso8601 type. Also, there were no tests for these. * MANIFEST * t/30_method.t (deleted) * t/30_proceudre.t (added) Renamed t/30_method.t to t/30_procedure.t. * lib/RPC/XML/ RT #77992: Make RPC::XML::Server work with Net::Server again, after the API changes of Net::Server 2.x. 0.76 Saturday August 20, 2011, 06:30:00 PM -0700 * etc/make_method * lib/RPC/XML/ RT #70258: Fixed typos in docs pointed out by Debian team. * lib/Apache/RPC/ Better version of the fix for infinite loops. This is the patch originally suggested by Eric Cholet, who found the bug. * t/00_load.t RT #70280: This test was still testing RPC/XML/ Rewrote to remove that but include the (forgotten) module. That test has to be conditional on the presence of XML::LibXML. * Makefile.PL * t/51_client_with_host_header.t Clean up test suite to work with older Test::More. Also specify a minimum Test::More that supports subtest(). This is also a part of RT #70280. * t/11_base64_fh.t * t/20_xml_parser.t * t/21_xml_libxml.t * t/40_server.t These tests had failures when run as root. Permissions-based negative tests were incorrectly passing. * t/10_data.t Moved the 64-bit "TODO" tests to a SKIP block. Non-64-bit systems will skip, rather than fail, these tests. * lib/RPC/XML/ RT #65616: Fix for slow methods killing servers. Applied and modified patch from person who opened the ticket. * MANIFEST * lib/RPC/ * t/10_data.t * t/14_datetime_iso8601.t (added) RT #55628: Improve flexibility of date parsing. This adds the ability to pass any ISO 8601 string to the RPC::XML::datetime_iso8601 constructor. 0.75 Saturday August 13, 2011, 05:30:00 PM -0700 * MANIFEST Somehow, t/13_no_deep_recursion.t never got added to MANIFEST. * lib/RPC/XML/Parser/ RT #65154: Fixed a cut/paste error in an error message. * lib/RPC/XML/ * t/51_client_with_host_header.t (added) RT #68792: Merge pull request #2 from dragon3/master ( Allow setting of "Host" header, and test suite for it. * MANIFEST * t/51_client_with_host_header.t Added new test suite to MANIFEST, fixed spelling. Also added "plan tests" line to the test suite. * lib/RPC/XML/Parser/ * t/20_xml_parser.t * t/21_xml_libxml.t * t/41_server_hang.t Merge pull request #3 from yannk/master ( Expat parser subclass is protected against ext ent attack, libxml isn't. * t/41_server_hang.t Undo a change to this suite from yannk's pull. * etc/make_method * lib/Apache/RPC/ * lib/Apache/RPC/ * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/Parser/ * lib/RPC/XML/Parser/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ More perlcritic-driven clean-up. This is mostly POD sections, but also includes heavy re-working of etc/make_method and parts of lib/RPC/ * lib/RPC/XML/Parser/ * t/21_xml_libxml.t Fixed external entity handling on MacOS. Also made small change to the test suite to be cleaner. * lib/RPC/XML/Parser/ * lib/RPC/XML/Parser/ Took out warnings on external entities blocking. Now it blocks silently. Also cleaned up some docs. * t/15_serialize.t Additions to increase code coverage in * lib/RPC/ Turns out this wasn't exporting RPC_I8. * lib/Apache/RPC/ * lib/Apache/RPC/ * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/Parser/ * lib/RPC/XML/Parser/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * xt/02_pod_coverage.t Made 5.8.8 the new minimum-required perl. Also dropped the utf8_downgrade hack, which affected an xt test. * lib/RPC/XML/ Improved arguments-checking in send_request. * lib/RPC/XML/ * lib/RPC/XML/Parser/ * lib/RPC/XML/Parser/ * lib/RPC/XML/ Fixed error-cases in usage of File::Temp->new(). File::Temp::new croaks on errors, doesn't return undef like I thought. * MANIFEST * lib/RPC/XML/ (deleted) * lib/RPC/XML/ (deleted) * lib/RPC/XML/ Roll and into Remove and from distro. * lib/RPC/XML/Parser/ Fixed regexp for methodName validation. * t/10_data.t * t/11_base64_fh.t * t/12_nil.t * t/15_serialize.t * t/20_xml_parser.t * t/21_xml_libxml.t * t/25_parser_negative.t (added) * t/29_parserfactory.t * t/30_method.t * t/40_server.t * t/40_server_xmllibxml.t * t/50_client.t * t/ (added) * t/meth_good_1.xpl * t/namespace3.xpl * t/svsm_text.b64 (added) * t/ First round of Devel::Cover-inspired improvements. These are the changes to the test suites to increase coverage of the code. * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ Fixes and such from Devel::Cover analysis. * lib/RPC/XML/ * lib/RPC/XML/ * t/30_method.t * t/meth_good_1.xpl * t/meth_good_2.xpl (added) * t/meth_good_3.xpl (added) Fixes for file-based method loading/reloading. New tests in the suite, and re-working of the ugliest hacky part of this package. * lib/RPC/XML/ * lib/RPC/XML/ * t/30_method.t * t/meth_good_3.xpl RPC::XML::Procedure test-coverage improvement. Also removed some unneeded code. * lib/RPC/XML/ * lib/RPC/XML/ * t/30_method.t * t/40_server.t Last round of RPC::XML::Procedure test coverage. This is mostly in t/40_server.t, though some bugs were found and addressed in the modules and in t/30_method.t. * lib/Apache/RPC/ * lib/Apache/RPC/ * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/Parser/ * lib/RPC/XML/Parser/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ Documentation clean-up and update. * lib/Apache/RPC/ * lib/Apache/RPC/ * lib/RPC/XML/ * lib/RPC/XML/Parser/ * lib/RPC/XML/Parser/ * lib/RPC/XML/ * lib/RPC/XML/ Changes from new Perl::Critic::Bangs policies. * xt/01_pod.t * xt/02_pod_coverage.t * xt/03_meta.t * xt/04_minimumversion.t * xt/05_critic.t Adjustments to reflect moving from t to xt. Also made changes to xt/02_pod_coverage.t to reflect changes to modules. * lib/RPC/XML/ Removed some error checks that can never fail. * lib/RPC/XML/ * t/40_server.t Code-coverage-driven changes and added tests. * etc/make_method Fixes from new Perl::Critic::Bangs policies. * lib/RPC/XML/ Removed usage of AutoLoader completely. * lib/RPC/XML/ * t/40_server.t * xt/02_pod_coverage.t Removed some dead code and better did the aliases. This required a change in t/40_server.t for a private sub that no longer exists. Also updated xt/02_pod_coverage.t for private subs that have no pod. * lib/Apache/RPC/ RT #67694: Fix a potential infinite-loop condition. 0.74 Sunday January 23, 2011, 12:50:00 PM -0800 * t/90_rt54183_sigpipe.t RT #56800: Make this suite skip all tests on Windows platforms. * lib/Apache/RPC/ Clean up some run-time "use of undefined value" messages. * lib/RPC/XML/Parser/ * lib/RPC/XML/Parser/ * t/90_rt58323_push_parser.t (added) RT #58323: Started as making the parser interfaces correctly report errors when passed null-length strings or "0" values. Turned out that the error return interface from was not consistent with the rest of the system, so fixed that as well. * lib/RPC/XML/ * t/40_server.t RT #58240: Applied a patch from Martijn van de Streek that adds access to the HTTP::Request object to called method code. * lib/RPC/ * lib/RPC/XML/Parser/ * lib/RPC/XML/Parser/ * t/90_rt58065_allow_nil.t (added) RT #58065: Allow the parsing of tags when they are encountered, even if $RPC::XML::ALLOW_NIL is not set. Only limit the generation of these tags. * lib/RPC/XML/ * t/41_server_hang.t This test sporadically fails, so enhance the error message for more info. Also alter the test slightly, hoping it fixes the random failures. * etc/make_method Applied perlcritic to the make_method tool. * lib/XML/ * t/10_data.t * t/20_xml_parser.t * t/21_xml_libxml.t RT #62916: Previous adjustments to the dateTime.iso8601 stringification caused it to no longer fit the XML-RPC spec. Fixed. * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/Parser/ * lib/RPC/XML/ * lib/RPC/XML/ Used warnings::unused to find unused variables not found by Perl::Critic. * t/10_data.t Realized I had no boundary-tests for ints in smart_encode(). This revealed some problems with i8 values on my 32-bit system. Don't want to introduce dependency on BigInt right now, so marked those tests "TODO". 0.73 Tuesday March 16, 2010, 10:45:00 PM -0700 * MANIFEST * t/28_parser_bugs_50013.t (deleted) * t/90_rt50013_parser_bugs.t (added) Rename of t/28_parser_bugs_50013.t to fit more universal scheme for test suites that directly address specific RT bugs. * lib/RPC/XML/ * t/90_rt54183_sigpipe.t (added) RT #54183: Provide handling of SIGPIPE when sending the response to the client, in case they've terminated the connection. * MANIFEST Forgot to add the new test suite to MANIFEST. * lib/RPC/XML/ Forgot to update the module version number. * lib/RPC/ Fix typo in reftype() call. * lib/RPC/ * t/90_rt54494_blessed_refs.t (added) RT #54494: Fix handling of blessed references in smart_encode(). * lib/Apache/RPC/ * lib/Apache/RPC/ * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/Parser/ * lib/RPC/XML/Parser/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ Large-scale code clean-up driven by Perl::Critic. All critic flags down to severity 1 now removed. * MANIFEST Forgot to add t/90_rt54494_blessed_refs.t when it was created. 0.72 Sunday December 13, 2009, 09:45:00 PM -0800 * Makefile.PL * t/40_server_xmllibxml.t RT #52662: Fix requirement specification for XML::LibXML. * lib/RPC/ Some more clean-up of the docs, removing a redundant section. 0.71 Monday December 7, 2009, 08:00:00 PM -0800 * MANIFEST * t/01_pod.t (deleted) * t/02_pod_coverage.t (deleted) * t/03_meta.t (deleted) * t/04_minimumversion.t (deleted) * t/05_critic.t (deleted) * xt/01_pod.t (added) * xt/02_pod_coverage.t (added) * xt/03_meta.t (added) * xt/04_minimumversion.t (added) * xt/05_critic.t (added) Moved author-only tests to xt/, updated MANIFEST. * MANIFEST Add test suite t/28_parser_bugs_50013.t, which was omitted from last release. * xt/01_pod.t * xt/02_pod_coverage.t * xt/03_meta.t * xt/04_minimumversion.t * xt/05_critic.t Re-engineered the author-only/release tests, since they're no longer in the t/ directory and thus should not interfere. 0.70 Sunday December 6, 2009, 10:00:00 PM -0800 * lib/RPC/ * t/10_data.t RT #49406: Make Base64 data-type allow zero-length data. * lib/RPC/ * t/10_data.t Hand-applied a patch (most likely from Bill Moseley) to extend the construction of dateTime.iso8601 data-types. * t/40_server.t Fixed another corner-case for the url() test. * lib/RPC/ Fixed a case from previous work that caused "undef" warnings. * lib/RPC/ * lib/RPC/XML/ * t/28_parser_bugs_50013.t RT #50013: Restore backwards-compatibility for projects that use RPC::XML::Parser directly. * lib/RPC/XML/ RT #50143: Incorrectly called server_fault() as if it were a coderef. * lib/Apache/RPC/ Applied patch from Frank Wiegand to fix a POD problem. * lib/RPC/ Some additional regexp issues on dateTime.iso8601, to handle backwards-compatibility. * lib/RPC/XML/ Fixed some minor doc errors. * lib/RPC/XML/Parser/ Moved the 'require' of some libraries to the point where they are first needed, to delay loading until/unless necessary. * lib/RPC/XML/Parser/ (added) * t/21_xml_libxml.t (added) * t/29_parserfactory.t * t/40_server_xmllibxml.t (added) Implement support for XML::LibXML in the parser-factory. 0.69 Thursday September 3, 2009, 10:25:00 AM -0700 * t/00_load.t * t/01_pod.t * t/02_pod_coverage.t * t/10_data.t * t/11_base64_fh.t * t/12_nil.t * t/15_serialize.t * t/20_parser.t * t/50_client.t Minor clean-up of old CVS/SVN keyword references. * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/Parser/ (added) * lib/RPC/XML/ (added) * lib/RPC/XML/ * t/20_parser.t (deleted) * t/20_xml_parser.t (added) * t/29_parserfactory.t (added) * t/40_server.t * t/ Converted parsing to be from a specific class to a parser-factory style. This included renaming the existing parser class and shuffling tests around. * t/70_compression_detect.t Cleaner approach to scrubbing symbol tables. * t/00_load.t * t/01_pod.t * t/02_pod_coverage.t * t/03_meta.t (added) * t/04_minimumversion.t (added) * t/05_critic.t (added) New tests, and developer-specific tests changed to only run in my copy. * lib/RPC/XML/ * lib/RPC/XML/Parser/ * lib/RPC/XML/ * t/11_base64_fh.t * t/15_serialize.t * t/20_xml_parser.t * t/30_method.t * t/35_namespaces.t * t/40_server.t * t/41_server_hang.t * t/50_client.t RT #47806: One more patch for Windows compatibility with temp-files. * lib/Apache/RPC/ * lib/Apache/RPC/ * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/Parser/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ Fixes based on Perl::Critic and other best-practices techniques. * etc/make_method Also made changes based on Perl::Critic. * MANIFEST * lib/RPC/XML/ * lib/RPC/XML/Parser/ Expanded definition of the interface to include push-parsing methods. Documented these and added stubs to RPC::XML::Parser::XMLParser that throw exceptions when called by a non-push-parser instance. Reflected changes to test suite in MANIFEST. * lib/RPC/XML/Parser/ Slight tweak to make this 5.6.1-compatible. * lib/RPC/XML/ * lib/RPC/XML/ RT #42736: Support user-adjustment of server-based faults, and normalize the existing faults. * lib/RPC/XML/ Fix encoding of return values from call() when the method called is of type Function (and thus has no strict signatures). * lib/RPC/ * t/13_no_deep_recursion.t (added) RT #41063: Re-visit how arrays and structs are smart-encoded and constructed, so as to avoid cyclical data structure references. 0.67 Friday July 10, 2009, 01:30:00 AM -0700 * lib/RPC/XML/ * lib/RPC/XML/ * t/70_compression_detect.t (added) RT #47219: Mis-read the patch from previous fix, this actually fixes it. Also added a test suite to check for compression-detection. 0.66 Thursday July 9, 2009, 07:36:15 AM -0700 * lib/RPC/XML/ * lib/RPC/XML/ RT #47219: Re-did the detection of compression availability (testing for the Compress::Zlib module) based on comments in this bug. * t/60_net_server.t RT #47220: Net::Server tests are not (currently) viable on Windows. Also made script taint-safe. * t/40_server.t * t/50_client.t * t/ RT #47221: Applied a patch from, for better Windows testing. * lib/Apache/RPC/ * lib/Apache/RPC/ * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ All modules now use the "warnings" pragma. 0.65 Wednesday June 17, 2009, 06:00:00 AM -0700 * etc/make_method * etc/rpc-method.dtd * lib/RPC/XML/ * t/30_method.t * t/35_namespaces.t (added) * t/namespace1.xpl (added) * t/namespace2.xpl (added) * t/namespace3.xpl (added) Support for declaration of namespaces in XPL code. Adds a new test suite and includes a rewrite/update of the method tests. Change also covers the make_method tool and the DTD for XPL files. * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ * t/02_pod_coverage.t Interim fix for encoding issues, prior to the mega-encoding work. This makes the library correctly create octet-based messages, rather than letting UTF-8 leak in if it was passed in initially. * lib/Apache/RPC/ * lib/RPC/ * lib/RPC/XML/ Follow-up to previous commit, some serialization-related problems. Not all instances of bytelength() had been removed after the previous slate of changes, and once that was done some tests in 15_serialize.t broke. * lib/RPC/ * lib/RPC/XML/ * t/12_nil.t (added) * t/30_method.t RT #34132: Based on a patch from the requestor, added support for . Documentation and tests are present, but a little sparse. This change also incorporates a small add to lib/RPC/XML/ to address RT #42033. * t/40_server.t * t/41_server_hang.t RT #27778: Fix problems with child-process management on Windows that was causing t/40_server.t to hang during test runs. Also put skip-clause into t/41_server_hang.t, as according to the person reporting, it doesn't work at all on MSWin (the network code is very UNIX-y). * lib/RPC/ * t/10_data.t Applied a regexp-fix from Joakim Mared for stringification of doubles. * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * t/10_data.t RT ticket #35106: Make the behavior of RPC::XML::array constructor work as expected. This led to adding use of Scalar::Util and cleaning up the places where I was still doing "UNIVERSAL::isa(...)" hacks to test refs without the risk of directly calling ->isa() on a potentially-unblessed ref. * lib/Apache/RPC/ * lib/Apache/RPC/ * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ Update the copyright year and license information, and add contact data to all POD sections for RT, AnnoCPAN, GitHub, etc. * lib/RPC/XML/ * t/50_client.t RT ticket #34559: Allow control of LWP::UA timeouts from within client class. * lib/RPC/XML/ RT ticket #43019: Small hack to the existing SSL hack for Socket6 problems. * lib/Apache/RPC/ * lib/Apache/RPC/ * lib/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ Since Scalar::Util requires 5.006, make that (5.006001, actually) the base required Perl version. 0.64 Monday September 29, 2008, 04:15:00 AM -0700 * t/40_server.t, revision 361 Further flexibility on the test of $srv->url(). This should (finally) catch any variation of 127.* address and/or host/domain naming that aliases to "localhost". * lib/RPC/XML/, revision 363 * t/20_parser.t, revision 363 Lingering problem from RT ticket #30354, RPC::XML::Parser did not get the change committed that included parser-level support for . Also added tests for parsing RPC::XML::request objects and all the data-type objects to the parser test suite (had they been there before, I would have caught this myself). 0.63 Friday September 19, 2008, 02:23:12 AM -0700 * lib/RPC/, revision 359 Forgot to increment $VERSION before the previous commit. Won't show up in CPAN as an available update otherwise. 0.62 Friday September 19, 2008, 02:12:02 AM -0700 * t/40_server.t, revision 355 Extended the die message when $srv fails to allocate. Some testers are getting a failure here but I have no idea how or why. * lib/RPC/, revision 356 Testers-service reports showed that the new i8 type was not auto-boxing correctly on true 64-bit machines. Turns out I had bogus values for the maximums and minimums, not just for 8-byte ints but also for plain 4-byte ones as well. 0.61 Monday September 15, 2008, 01:38:44 AM -0700 * t/00_load.t, revision 346 Converted to Test::More due to some cpan-testers reports that showed test 2 failing. Hoping this might provide better feedback if it continues to fail. * t/40_server.t, revision 347 Changed a test for "localhost:$port" in the server URL method to optionally allow localhost.localdomain, for those systems whose /etc/hosts cause the former to convert to the latter. Was causing false failures. * t/40_server.t, revision 348 * t/50_client.t, revision 348 * t/60_net_server.t, revision 348 Test suites armored against server processes that die as a result of croak() or other calls within 3rd-party modules. The client and net_server suites were also converted to Test::More at this time. * t/40_server.t, revision 349 Fix for RT ticket #36078, fix the URL testing on the server object to be less strict. Instead of only allowing "localhost", now also allows "localhost.localdomain" and does a look-up of "localhost" for the 127.* IP address and permits that as well. In essence, this extends and supercedes the second change listed above after more invariant cases were discovered. * lib/RPC/, revision 350 * t/10_data.t, revision 350 Per RT ticket #30354 and specific request from a large agency using this package, implemented an "i8" type as an extension to the official XML-RPC specification. Documentation and tests included. * t/40_server.t, revision 352 * t/60_net_server.t, revision 352 Some of the work in armoring the test suites against server-death changed the counts on tests and on call-counts in the system.status method. Some explicit re-starts didn't help. 0.60 Wednesday April 9, 2008, 03:01:07 AM -0700 * t/00_load.t, revision 328 * t/01_pod.t, revision 328 * t/02_pod_coverage.t, revision 328 * t/10_data.t, revision 328 * t/11_base64_fh.t, revision 328 * t/15_serialize.t, revision 328 * t/20_parser.t, revision 328 * t/30_method.t, revision 328 * t/40_server.t, revision 328 * t/50_client.t, revision 328 * t/60_net_server.t, revision 328 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 . * lib/RPC/XML/, revision 329 Per RT ticket #30849, fix problem caused by having colons in temp-file names. Fix largely from patch suggested by Jörg Meltzer . * lib/RPC/XML/, revision 331 Applied a modified form of a patch submitted by Mike Rylander to make things work under SSL. * lib/RPC/XML/, revision 332 * t/41_server_hang.t, revision 332 (added) 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/, revision 333 * t/10_data.t, revision 333 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, revision 334 * t/50_client.t, revision 334 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/, revision 336 * t/20_parser.t, revision 336 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/, revision 337 * t/40_server.t, revision 337 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/, revision 338 * t/10_data.t, revision 338 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/, revision 339 * t/20_parser.t, revision 339 In response to concerns raised by a report of parsing problems, added XML entity encoding for ' and " (' and ") 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/, revision 341 * lib/RPC/XML/, revision 341 * t/40_server.t, revision 341 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. * etc/make_method, revision 343 * lib/Apache/RPC/, revision 343 * lib/Apache/RPC/, revision 343 * lib/RPC/, revision 343 * lib/RPC/XML/, revision 343 * lib/RPC/XML/, revision 343 * lib/RPC/XML/, revision 343 * lib/RPC/XML/, revision 343 * lib/RPC/XML/, revision 343 * lib/RPC/XML/, revision 343 Updated all copyright/redistribution information with current year and correct/current URLs for Artistic and LGPL licenses. 0.59 Friday June 30, 2006, 01:48:37 AM -0600 * t/10_data.t, revision 1.10 Eliminated the source of some "Modification of a read-only value..." errors. Patch from Juan Camacho. * t/01_pod.t, revision 1.1 (added) * t/02_pod_coverage.t, revision 1.1 (added) Two new unit-test suites added; the first checks the validity of the POD docs in each module (correctness tests), the other checks that POD covers all the publically-visible API routines (coverage tests). * lib/Apache/RPC/, revision 1.28 * lib/Apache/RPC/, revision 1.6 * lib/RPC/XML/, revision 1.4 * lib/RPC/XML/, revision 1.13 * lib/RPC/XML/, revision 1.44 Fixes to POD documentation (and/or inline comments) as uncovered by the added POD-oriented unit tests. * MANIFEST, revision 1.17 * README.apache (deleted) The README.apache file is no longer relevant. * lib/Apache/RPC/, revision 1.29 Fixed the logic around the setting of $no_def in new(); it was handling the no_default method-argument backwards. Found by Eric Cholet. * lib/RPC/, revision 1.36 * t/10_data.t, revision 1.11 Applied a patch from Jos Boumans to add flexibility to the smart_encode() hack that tries to match bare Perl data to RPC classes. At the same time, added documentation of the $ENCODE global variable in the documentation. 0.58 Thursday May 12, 2005, 03:24:23 AM -0700 * lib/RPC/, revision 1.35 * t/10_data.t, revision 1.9 Applied patches from Stephen Veiss to fix a small bug in the encoding method of RPC::XML::string. Trying to encode the literal string "0" would result in a null string. The patches provided the fix and a specific test-case for the related suite. * lib/RPC/XML/, revision 1.13 * lib/RPC/XML/, revision 1.43 Applied a patch from Mike Pomraning to allow user-level functions to return RPC::XML::fault objects directly without them being further wrapped by intermediate layers. * lib/RPC/XML/, revision 1.14 Implemented a modified version of a patch from Lubomir Host that addresses an intermittent IOCTL problem when reading XPL files. * Makefile.PL, revision 1.38 Incremented package version number and put in warning of the impending move to XML::LibXML. 0.57 Friday December 24, 2004, 03:02:48 AM -0800 * lib/Apache/RPC/, revision 1.27 Some minor changes to how values are read from the configuration, to reduce "use of uninitialized value" warnings in regex operations. * lib/RPC/, revision 1.34 * t/10_data.t, revision 1.8 Based on a report from Brian Phillips, made adjustments in the smart_encode helper-routine to deal with blessed references. Anything that is derived from HASH or ARRAY is encoded as a struct or array, respectively. Anything derived from SCALAR is dereferenced and encoded as per usual. Carried this over to the class constructors, with special attention to the RPC::XML::simple_type class. Added tests to the suite for all of this, as well. * lib/Apache/RPC/status.base, revision 1.5 * lib/Apache/RPC/status.code, revision 1.4 * lib/Apache/RPC/, revision 1.2 * lib/RPC/XML/, revision 1.12 * lib/RPC/XML/, revision 1.42 * methods/status.base, revision 1.6 * methods/status.code, revision 1.4 * methods/, revision 1.2 * t/40_server.t, revision 1.8 The "system.status" method (both the general one and the one that is specific to Apache) now recognizes an optional boolean parameter that can keep the status call from counting against the "total_requests" struct value. This is to allow external monitors (status, health, etc.) to use that call without running up the value of that field needlessly. 0.56 Thursday December 9, 2004, 01:07:00 AM -0800 * etc/make_method, revision 1.10 Small change to the generated XML, to add an "encoding" setting to the XML preamble. * t/10_data.t, revision 1.7 * t/60_net_server.t, revision 1.4 Very minor changes, to make the test work with older Perls and/or Test modules. * lib/RPC/, revision 1.31 Add "encoding" settings to all XML preambles, and make the scalar variable "$RPC::XML::ENCODING" an importable symbol, should users want to change the default encoding. Not currently documented, since this is technically a break from the XML-RPC spec. * Makefile.PL, revision 1.35 * t/50_client.t, revision 1.8 Traced a bug that was causing test failures in 50_client.t to a bug in version 5.800 of the LWP package. Now, Makefile.PL explicitly requires 5.801 or higher, and the test suite skips the two tests that are broken by it, in cases where the system is still at 5.800 or older. * lib/RPC/XML/, revision 1.21 Tightened some numeric comparisons (for deciding to compress and/or spool to a file), and corrected a typo in an error message. * lib/RPC/, revision 1.32 Adding the encoding to the request and response blocks messed up some of the tests in the 10_data.t and 15_serialize.t suites. Fixed. * README, revision 1.24 * etc/make_method, revision 1.11 * etc/rpc-method.dtd, revision 1.7 * lib/Apache/RPC/, revision 1.26 * lib/Apache/RPC/, revision 1.5 * lib/RPC/, revision 1.33 * lib/RPC/XML/, revision 1.22 * lib/RPC/XML/, revision 1.3 * lib/RPC/XML/, revision 1.8 * lib/RPC/XML/, revision 1.12 * lib/RPC/XML/, revision 1.11 * lib/RPC/XML/, revision 1.41 Changed all URL references to the Artistic License from the (no longer valid) version to the (current, working) one. * ChangeLog, revision 1.26 * ChangeLog.xml, revision 1.2 * Makefile.PL, revision 1.36 * README, revision 1.25 Admin files prepped for 0.56 release (also, the ChangeLog.xml file was modified to reflect tuning of the schema). 0.55 Tuesday November 30, 2004, 01:16:57 AM -0800 * lib/RPC/XML/, revision 1.39 Fix from Thomax G. to the loop-invariance near line 1403, for a bug that mostly appears with openACS-based clients. * t/60_net_server.t, revision 1.3 Clarify in the message emitted why the tests are skipped when Net::Server is not available. * lib/RPC/XML/, revision 1.40 Fix based on input from several sources: The Content-Encoding header was not being set correctly for responses when compression was applied to the response message. * lib/RPC/XML/, revision 1.10 Applied a fix from the Debian maintainer of this package for their distribution, David Parrish: auto-reloading of methods was not actually stuffing the new data into the calling object. * lib/Apache/RPC/, revision 1.25 Applied a patch from a user to fix a problem with reading PerlSetVar values withing a block (worked fine in blocks), as well as a small addition to the examples in the docs. * ChangeLog.xml, revision 1.1 (added) * MANIFEST, revision 1.16 Added this file (ChangeLog.xml) to the distribution. 0.54 Wednesday April 14, 2004, 04:43:56 AM -0700 * Makefile.PL, revision 1.33 Extended $CLEAN to also remove *.ppd files, and bumped the package version to 0.54. * lib/RPC/, revision 1.30 * lib/RPC/XML/, revision 1.9 Applied a patch from Tim Peoples that does three things: the 301 error code in RPC::XML::Procedure::call now includes signature info when a signature mismatch occurs. RPC::XML::smart_encode turns undef values into zero-length RPC::XML::string objects. Lastly, the RPC::XML::string::as_string method turns undef into null values as well. * lib/RPC/, revision 1.28 * t/10_data.t, revision 1.6 Small change to the XML character-escaping in RPC::XML::string's as_string method, so that a lookup-table is used. The same table is now used to escape keys in structs, as well. Added tests to cover this. This was suggested by Johnathan Kupferer. * t/20_parser.t, revision 1.3 Made a small change for the sake of syntax pedantry. * lib/RPC/XML/, revision 1.20 Fix to the error-handling for a failed LWP::UserAgent->request call send_request (thanks to Jasper Cramwinckel). Also got a small glitch covered in one of the calls to the inflate() method in Compress::Zlib. Thanks to John Tobing for that one. * lib/RPC/XML/, revision 1.11 Dropped a regex-compare in favor of a string-compare for the special case of the XML tag being dateTime.iso8601. In some locales, the 'lc' caused problems. This is near line 288. * lib/Apache/RPC/, revision 1.23 Applied a patch to Apache::RPC::Server (supplied by Tim Peoples) to support "NoCompression" as a PerlSetVar directive, the function of which is to disable compression support upon demand. * lib/Apache/RPC/, revision 1.24 Fixed two minor typo errors in the docs, the names of two of the PerlSetVar directives. * lib/RPC/, revision 1.29 Added to the docs the fact that struct keys are now escaped. Also put some coverage in the docs on the two ways of initializing a struct object. * lib/RPC/XML/, revision 1.38 Applied a patch from Chris Darroch to allow better handling of arguments in RPC::XML::Server::server_loop. While the HTTP::Daemon portion was fine with collapsing the arg list into a hash, the Net::Server portion actually has documented behavior when it sees the same argument more than once, and collapsing to a hash caused these extra arguments to be lost. 0.53 Tuesday February 25, 2003, 01:12:11 AM -0800 * t/40_server.t, revision 1.7 Eliminate a warning under 5.00503. * lib/RPC/, revision 1.25 * lib/RPC/XML/, revision 1.19 * lib/RPC/XML/, revision 1.10 * t/50_client.t, revision 1.7 Changes to the opening of files for base64 data. The existing method didn't work under 5.00503. * t/15_serialize.t, revision 1.3 Added consideration to the filehandle-length tests for Win-ish offsets. * lib/RPC/, revision 1.26 Added a forgotten binmode() call to an just-opened filehandle in the base64-to-file support. 0.52 Monday February 10, 2003, 01:37:05 AM -0800 * lib/RPC/XML/, revision 1.37 Really got the warning in this time. Really. Also got some potential errors that seem to be overlooked under auto-loading but appear when auto-loading is disabled. * lib/RPC/XML/, revision 1.18 Fixed a potentially-confusing problem in the example code within the RPC::XML::Client man page, just under "SYNOPSIS". *, revision 1.4 More work to the RPM specfile template. The Provides/Requires list should be a lot cleaner now, and it also builds packages under rpm 4.1, now. * lib/Apache/RPC/, revision 1.22 Fixed a lurking bug in the Apache::RPC::Server class that was not setting the headers properly on responses. Probably lived this long because no one else but me was using it, and my client is lax enough to ignore it. 0.51 Thursday January 30, 2003, 12:49:07 AM -0800 * t/11_base64_fh.t, revision 1.4 Removed an extraneous print line in t/11_base64_fh that caused a warning on some systems. * t/11_base64_fh.t, revision 1.5 * t/50_client.t, revision 1.6 Fixed calls to skip() in the test suites so that they work with older versions of the Test module. * lib/RPC/, revision 1.24 * t/10_data.t, revision 1.5 * t/11_base64_fh.t, revision 1.6 Calls to the encode_base64 routine from MIME::Base64 now pass a zero- length second argument, to suppress newlines between Base64 lines when stringifying the RPC::XML::base64 objects. This is to accomodate a broken Java XML-RPC package. * lib/RPC/XML/, revision 1.36 Force a default value for the compress_re attribute in RPC::XML::Server when none is otherwise present. All my tests have had Compress::Zlib available, but when it isn't the compress_re attribute was triggering warnings when used in a regex. 0.50 Monday January 27, 2003, 03:24:45 AM -0800 * lib/RPC/XML/ Changed the usage of =head3 directives in the manual page for RPC::XML::Procedure to a =over/=back block instead. The =head3 directive requires a newer set of pod utilities, and would mean the package had trouble building on 5.005 installations. * lib/RPC/ * t/11_base64_fh.t Extended the RPC::XML::base64 class to allow for and handle being given a filehandle object instead of straight data. The object is kept as an open filehandle, and the buffer position is always noted and reset when operated on, so that other parts of the process using the handle don't get surprised. Added tests in t/11_base64_fh.t to exercise this. * lib/RPC/ * t/15_serialize.t Added a serialize() method to all the data classes in preparation for changing the client and server modules to stream XML over the line rather than print it using in-memory strings. Added test suite t/15_serialize.t to exercise this. * lib/RPC/XML/ * t/20_parser.t Modified RPC::XML::Parser to accept arguments to new() that instruct it to spool Base64 data to a filehandle, using the new capabilities of the base64 class described previously. Added tests to t/20_parser.t and support for the parameters to the constructors of the client and base server classes. Documented all around. * lib/RPC/ Re-engineered the test for the "bytes" pragma in RPC::XML, so that it now works with Perl 5.005. * lib/RPC/XML/ Fixed the credentials() method in RPC::XML::Client. * lib/Apache/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ All the internal use of object attributes in RPC::XML::Client now use accessors instead of the hash keys directly, to make it easier to sub-class the package. The same was done in RPC::XML::Server and to some degree in Apache::RPC::Server. The server classes are more likely to have problems, though. * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ The parsing of incoming data in the client and both server classes is now done to a streaming XML parser, eliminating the need for the full message to ever be in memory at once. Likewise, the client and server classes have new attributes and accessor methods to allow them to spool outgoing messages to files if the messages threaten to be too large to keep in memory (this is best used when dealing with a lot of Base64 data that is being dealt with directly on disk as well). 0.46 Sunday December 29, 2002, 11:39:05 PM -0800 * lib/RPC/XML/ Applied a patch from Andrew Langmead to fix a bug in the uri() method of RPC::XML::Client. Prior, retrieving the value could accidentally reset it. Applied another fix from him to prevent a possible warning. * lib/RPC/XML/ Applied another patch to better handle testing of the availability of compression in the client. * Makefile.PL Moving around some of the RPM spec-file generation caused problems with some people trying to build the package if was missing. Fixed this in Makefile.PL. * lib/RPC/XML/ Fix to RPC::XML::Procedure per tip from Stig Porsgaard, to fix the reading of 'signature' arguments to new() when providing all the proc data directly. Reported by others as well, but Stig nailed it down to a specific line. 0.45 Tuesday October 29, 2002, 09:06:00 PM -0800 * lib/RPC/ Fixed a problem in the test-usage of the bytes pragma in RPC::XML, reported by Marc Jauvin. * lib/RPC/XML/ Closed a potential security hole in the parsing of external entities, pointed out by Gregory Steuck. 0.43 Sunday August 18, 2002, 10:19:30 PM -0700 * methods/methodSignature.code * t/40_server.t * t/60_net_server.t Changed methods/methodSignature.code, t/40_server.t and t/60_net_server.t so that the provided system.methodSignature follows the accepted API (returns a list of lists, rather than list of strings). Pointed out by Bjoern Stierand. * lib/RPC/ Added a missing helper (RPC_I4) to * lib/Apache/RPC/ Fixed a bad bug with the newly-added compression support in Apache::RPC::Server::handler. Because $self was defined earlier, strict failed to point out that my object in that scope was called $srv, rather than $self. And $self->compress didn't work, amazingly enough. Found and reported by Scott Fagg. * lib/RPC/XML/ Added a credentials() method to the RPC::XML::Client class to set Basic Authentication credentials on the underlying LWP::UserAgent object. Per suggestion and sample implementation from Stuart Clark. * lib/RPC/ * lib/RPC/XML/ Fixed a docs-nit in RPC::XML::Server, and did some major clean-up in the docs for RPC::XML. In particular, added documentation for one of the data class methods that had been overlooked ("type"). 0.42 Thursday August 1, 2002, 12:51:12 AM -0700 * lib/Apache/RPC/ Changed the test in Apache::RPC::Server of the Content-type header so that it accepts a header that contains "text/xml", as opposed to only accepting a header that exactly equalled that string. Allows for things like SOAP::Lite's XMLRPC::Lite which include a charset in the header. * lib/RPC/ time2iso8601() in the RPC::XML module now allows defaulting of the $time argument to time() (which means no timezone specification). * lib/RPC/XML/ Found a bug in RPC::XML::Parser where base64 data being parsed in a request/response message wasn't being properly passed to the c'tor for RPC::XML::base64. Reported by Chris Brierley. * lib/Apache/RPC/ Added a line in Apache::RPC::Server to set the Content-Type header on HEAD responses. Apache won't take this from the usual header() method, it has to be explicitly set with content_type(). * t/40_server.t Two of the tests in t/40_server.t could cause fatal errors since a return value wasn't tested for ref-ness before having a method called on it. Fixed. * lib/Apache/RPC/ * lib/RPC/XML/ * lib/RPC/XML/ Compress::Zlib-based compression is now supported in RPC::XML::Server, RPC::XML::Client and Apache::RPC::Server. It should be compatible with the XMLRPC::Lite package's compression. 0.41 Wednesday May 22, 2002, 02:50:47 AM -0700 * lib/RPC/XML/ Wrapped the call to XML::Parser::parse (lib/RPC/XML/ in an eval {} so that parse failures don't kill a server or client. Reported by Kevin Greene. * lib/RPC/ An intended clone-operation in RPC::XML::response::new (lib/RPC/ was never actually written, which allowed for a corner case that could result in new() return undef when it shouldn't. Related to the bug reported by Sergey Scherbinin. * lib/RPC/XML/ The RPC::XML::Procedure::call method (lib/RPC/XML/ had one error-check loop that was returning a full RPC::XML::response object, instead of just a RPC::XML::fault. Reported by Sergey Scherbinin. 0.40 Saturday May 4, 2002, 12:42:18 AM -0700 * * Fixed some grammar problems in error messages, and some formatting. * lib/Apache/RPC/ Fixed a bug in the new() method of Apache::RPC::Server where it was expecting the value of the "apache" key to be an object of the Apache::Server class, but it was actually getting an object of the Apache class. * etc/make_method * etc/rpc-method.dtd * lib/RPC/XML/ (added) Created RPC::XML::Function class, which is a type of server-side encapsulator that doesn't bother with signature tests of any kind. The DTD and make_method tool support the new type. * etc/make_method Changed the encoding of the Perl code in etc/make_method as follows: If the code does not already contain either of the two sequences, ']]>' or '__DATA__', then the code is wrapped in a section, with #!/usr/bin/perl (actually, $Config{startperl}) at the head and __DATA__ at the end. Besides leaving the Perl code readable, the *.xpl files can now be syntax-checked with "perl -cx". Thanks to the mod_perl guys for this idea, cribbed from their manual page. * lib/RPC/XML/ * lib/RPC/XML/ Abstracted some of the invocation code out of the server class and into the RPC::XML::Procedure class, where it really belonged. This aided in further eliminating redundancy in the server class in the same general area. I may yet want to tune this area, but I'm a good deal happier with the reduction in complexity and repetition. 0.44 Tuesday April 30, 2002, 11:44:08 PM -0700 * lib/RPC/ Cleaned up the exports list in, which still had remnants from when this package was intended to extend XML-RPC. There were no routines to match the symbols, but the potential for error was there. * lib/RPC/XML/ * lib/RPC/XML/ * lib/RPC/XML/ Fixed a typo in the docs for RPC::XML::Client, and some documentation goofs in RPC::XML::Server (regarding the timeout method/option). A few doc fixes in RPC::XML::Procedure, for good measure. * lib/RPC/ Implemented two fixes sent in by Marc Liyanage: a fix for setting the Content-Length headers on messages that takes the length in bytes rather than characters; the second is a fix around the compression support that makes certain an undef isn't evaluated against the regex. * lib/RPC/ The above added an exported function to RPC::XML, so that got documented. In the process, it occurred to me to document the helper functions like RPC_BOOLEAN, RPC_DOUBLE, etc. 0.37 Friday March 22, 2002, 10:16:08 PM -0800 * lib/RPC/XML/ Applied a patch to RPC::XML::Server from Tino Wuensche () that fixed some of the signal-handling and exit-case-handling in server_loop(). * lib/RPC/XML/ Fixed a bug in RPC::XML::Procedure found by a user (a former co-worker from my Denver days, coincidentally enough) that would trigger when auto_methods was set to 1 on a server object, but the request had no matching file anywhere in the search path. 0.36 Tuesday January 29, 2002, 12:11:30 PM -0800 * MANIFEST The file in the t directory was accidentally omitted from the 0.35 release. This release is meant only to correct that oversight. 0.35 Sunday January 27, 2002, 04:29:19 PM -0800 * etc/make_method Fixed a small bug in make_method that would have caused a failure if anyone used the command-line switches to specify data, rather than a base-file (specifically, the handling of the --code argument). Also clarified a few places in the man page. * lib/Apache/RPC/status.code * methods/methodHelp.code * methods/status.code Found bugs in both versions of the system.status server method (both the basic and the Apache flavor). Both were neglecting to set the "methods_known" value. Also found a bug in system.methodHelp. Amazing what writing the regression tests can uncover. * lib/RPC/XML/ * lib/RPC/XML/ (added) RPC::XML::Method is now a skeleton file, slated to be removed by or before 1.0. It has been renamed to RPC::XML::Procedure, and the RPC::XML::Method class is declared as an empty subclass of the RPC::XML::Procedure class. Procedures differ from methods in that they do not get the server object instance as a first parameter in the list that gets passed in. * etc/make_method * etc/rpc-method.dtd * ex/linux.proc.cpuinfo.code * ex/linux.proc.meminfo.code Support for RPC::XML::Procedure (and general procedure vs. method) added to the DTD and the make_method tool. All the routines in the ex/ directory are declared as procedures, to further illustrate the concept. * lib/RPC/XML/ * lib/RPC/XML/ When code blocks for XPL files are eval'd, they are given a "package" statement to force subsequent calls to be in the RPC::XML::Procedure namespace, rather than defaulting to main (a potentially dangerous assumption). The docs on routine-calling in RPC::XML::Server have been updated to discuss this. * t/40_server.t Many more tests added to the suite for RPC::XML::Server. * t/50_client.t (added) Created the test suite for RPC::XML::Client. * lib/RPC/ * lib/RPC/XML/ RPC::XML::Client no longer returns a full RPC::XML::response object from any of its routines. Rather, simple_request still does what it always has, and send_request now returns a data-type value. All the data-type classes have a method called "is_fault" that returns false for all except (of course) RPC::XML::fault. This lets callers of send_request test the return value to see if it is a fault. * lib/RPC/XML/ * t/50_client.t Added callback support for errors and faults to the RPC::XML::Client class. This allows programmers to tie specific actions to cases where a call returns a RPC::XML::fault object, or an outright error. * t/60_net_server.t (added) Created a separate test suite for RPC::XML::Server when used in conjunction with the Net::Server package (it skips if the latter is not installed on the system). * lib/RPC/XML/ Almost all of the method-manipulation routines in RPC::XML::Server (all but add_default_methods()) now have counterparts called by the same name after s/method/proc/. This is purely for syntactical sugar and symmetry. Except in the case of add_proc(), where it actually ensures that a hash-reference calling convention is geared correctly to add a RPC::XML::Procedure object rather than RPC::XML::Method. 0.30 Thursday January 3, 2002, 01:57:29 AM -0800 * lib/Apache/RPC/ Apache::RPC::Server::list_servers no longer sorts the list before returning it. No reason to assume it matters, or to levy that tax against those who don't care. * lib/RPC/XML/ RPC::XML::Server::url now constructs saner strings for HTTPS and for HTTP on port 80. * lib/RPC/XML/ The new() method in RPC::XML::Server wasn't quite handling the "host" and "port" arguments that Apache::RPC::Server sent it correctly. * lib/RPC/XML/ Added a patch to the RPC::XML::Server class from Christopher Blizzard ( to allow control over the timeout interval that HTTP::Daemon uses in answering new connections. * Makefile.PL Replaced a GNU Make-centric dependancy rule for the XPL files with a more portable .SUFFIXES-based one. This is unfortunate, as the % syntax of GNU make is much cleaner. But GNU Make isn't universal. Yet. * lib/Apache/RPC/ (added) This release marks the debut of Apache::RPC::Status, a monitor similar in nature and design to Apache::Status, for running RPC servers under Apache/mod_perl. See the manual page for details. * lib/Apache/RPC/ Documentation for Apache::RPC::Server was updated based on trials and travails in trying to actually set up a configuration inside blocks. This isn't very clear in the mod_perl documentation, but at least the docs for this module reflect exactly what I have configured on my development box, so I know it works. 0.29 Sunday December 2, 2001, 10:41:39 PM -0800 * lib/RPC/XML/ Added share_methods(), copy_methods() and delete_method() calls to the RPC::XML::Server class (and thus to the Apache class as well). Had already added an INSTALL_DIR method to retrieve the class-specific installation dir to the Apache class, so mirrored it here, as well. * lib/Apache/RPC/ Added list_servers() static method to Apache::RPC::Server, to allow for abstract retrieval of the ID-tags of the current known servers. This is mainly so Apache::RPC::Status can use it in conjunction with get_server() to examine the server objects for the sake of stats and such. * lib/RPC/XML/ Added list_methods() to RPC::XML::Server, to list the object's known (published) methods by name. Mainly for use in the regression suites, but worth documenting in the API in case someone else finds it useful. * methods/introspection.code * methods/listMethods.code * methods/methodHelp.code * methods/methodSignature.code Four of the provided methods in the introspection API (system.introspection, system.listMethods, system.methodHelp and system.methodSignature) needed to be updated to use the newer API for the XML::RPC::Method class when retrieving information from the server. * t/30_method.t (added) * t/40_server.t (added) Started the test suites for RPC::XML::Method and RPC::XML::Server. The tests that are delivered as part of this build are not fully complete, but should be a reasonable start. 0.28 Sunday October 7, 2001, 09:27:39 PM -0700 * lib/RPC/ Found a subtle-but-nasty bug in the handling of RPC::XML::string objects. Thanks to Dominic Mitchell for pointing me in the right direction. * lib/RPC/ Started down the path of making the suite as a whole geared more towards real use than illustrative example. The XML data-classes now no longer use indention (or any superfluous whitespace) in their stringification. This shortened the code quite a bit, and will also mean shorter messages. This could not have been done cleanly without the tests in t/10_data.t. * lib/Apache/RPC/ * lib/RPC/XML/ (added) * lib/RPC/XML/ Extracted the method-manipulation code into a new class, called RPC::XML::Method. This should make method-sharing easier, and pull a lot of method-specific code out of RPC::XML::Server and Apache::RPC::Server. * lib/Apache/RPC/ Clarified some issues in the new() constructor of the Apache::RPC::Server class, and also changed the calling convention. It no longer treats the first few arguments in any special way at all. The arguments are all consistently taken as option/value pairs, just as with RPC::XML::Server. The documentation reflects this. This may break things built on the old style, but in the long run it should prove much better. 0.27 Sunday July 8, 2001, 04:25:51 PM -0700 * lib/RPC/ Removed a -w warning from RPC/ Fixed some cases in the new() method of RPC::XML::boolean that would have permitted invalid data. Added two convenience methods to RPC::XML::fault, called code() and string(), that fetch the faultCode and faultString member values as native Perl values. The RPC::XML::base64 class was using the wrong container tags in the as_string method. * lib/RPC/XML/ Clarified and expanded some of the documentation in RPC/XML/ * Makefile.PL Adjusted the PREREQ_PM hash in Makefile.PL so that it correctly looks for LWP, and also looks for File::Spec 0.8 or newer (needed to ensure that the splitpath() method is available). * t/00_load.t * t/10_data.t * t/20_parser.t Cleaned up the load-tests (t/00_load.t) to use the Test harnessing package. Added test suites for the RPC::XML data classes (t/10_data.t, 96 tests) and the RPC::XML::Parser container-class (t/20_parser.t, 7 tests). 0.26 Monday June 25, 2001, 10:30:18 PM -0700 * lib/RPC/XML/ Fixed some doc errors in RPC::XML::Server. Mainly things I had simplified, but not updated the docs to reflect. * lib/Apache/RPC/ Added a fair amount to the docs in Apache::RPC::Server. In particular, a new section was added that illustrates using configuration sections to create the server objects in the master Apache process, so that they are automatically inherited by children. 0.25 Tuesday June 12, 2001, 10:35:09 PM -0700 * * All files are tracked from this point forward. # Generated on Thursday February 6, 2014, 07:59:57 PM -0800 # Using changelog2x/0.11, App::Changelog2x/0.11, XML::LibXML/2.0108, # XML::LibXSLT/1.80, libxml/2.7.8, libxslt/1.1.24 (with exslt) # XSLT sources: # $Id: changelog2text.xslt 8 2009-01-19 06:46:50Z rjray $ # $Id: common-text.xslt 8 2009-01-19 06:46:50Z rjray $ # $Id: common.xslt 4 2009-01-07 13:02:06Z rjray $