Revision history and release notes for Event::RPC: 1.10 Wed Jun 27, 2018, joern Bugfixes: - Test suite failed on newer Perl versions which do not have . in @INC anymore. 1.09 Mon Jun 25, 2018, joern Features: - Event::RPC::Server->prepare() to support having control over the Event loop yourself. Bugfixes: - SSL tests failed due to expired CA certificate. Just created new certificates with 30 year expiration and put a gen.sh script inside to easily generate new certificates after that period ;) - Removed unused code. Thanks for the hint to ppisar AT redhat.com. 1.08 Sun Sep 26, 2015, joern Notes: - Just a stable release without changes. 1.08_01 Sat Sep 26, 2015, joern Features: - Support for multiple serialisers: Sereal, CBOR::XS, JSON::XS and Storable. That's because Storable is known to be insecure, so this module should not rely on it. Great care has been taken to make these changes up- and downwards compatible, so old clients still can connect to new servers and vice versa. Check documentation chapters MESSAGE FORMAT OPTIONS in Event::RPC, Event::RPC::Server and Event::RPC::Client manpages for details. Thanks to mala <mala AT ma.la> for his hint about the security issues of Storable. You find more details in this article: http://www.masteringperl.org/2012/12/the-storable-security-problem/ Bugfixes: - Proper handling of exceptions which occur at the server before a remote method is really executed, e.g. when lookup of the class failed due to incorrect @INC path. - Fixed encoding of source files and corrected the year of all Copyright notices. 1.07 Mon Sep 21, 2015, joern Features: - New method return type '_singleton'. Objects created this way are never destroyed on the server. 1.06 Sun Sep 20, 2015, joern Features: - New 'ssl_opts' attribute for Server and Client to give more control over the SSL connection. Bugfixes: - Some tests failed due to stronger hostname verifcation in IO::Socket:SSL >= 2.017. Fixed that by adding proper certificates with cn 'localhost' and a test which verifies the failing connection with wrong hostname. Thanks to ppisar AT redhat.com. This fixes rt #106874. 1.05 Tue Feb 28, 2014, joern Features: - New Method set_max_packet_size (Client and Server) to change the default value of 2 GB up to 4 GB (or less). Bugfixes - Increased default maximum packet size from 4 MB to 2 GB. - Fixed test suite for parallel execution by using different port numbers for the test server. Thanks for the report to Andreas König. - Applied a patch from Salvatore Bonaccorso which fixes missing encoding declarations in POD. Thanks! - Fixed some POD typos. Thanks for the report to Xavier Guimard. 1.04 Fri Feb 24, 2014, joern Bugfixes - Under certain infrequently conditions it could happen that the server process blocked when sending a response packet to a client. - Event::RPC::Client failed loading when no IO::Socket::SSL is installed. 1.03 Sat Feb 2, 2013, joern Features: - Added options 'ssl_ca_file and 'ssl_ca_path' options to Event::RPC::Client, which enable SSL peer verifcation on the client. Thanks for the report about a security warning of IO::Socket::SSL to Moritz Bunkus. 1.02 Tue Mar 8, 2011, joern Features: - Added AnyEvent mainloop implementation. 1.01 Sat Oct 25, 2008, joern Bugfixes: - Even objects returned by methods not declared as an "object returner" where turned into Event::RPC object handles instead of copying the complete data structure to the client. Thanks for the report to Alex <alex AT lokku.com>. 1.00 Sat Jun 21, 2008, joern Notes: - Time for version 1.00 ;) Features: - load_modules option added to Event::RPC::Server. - timeout option added to Event::RPC::Client. Patch by Strzelecki Lukasz <strzelec AT rswsystems.pl>. 0.90 Sun Apr 23, 2006, joern Notes: - Just a change to the license, switched from LGPL to Perl Artistic + GPL. Thanks for the hint about the bad wording in the old license text to Gregor Herrmann. 0.89 Mon Mar 27, 2006, joern Features: - New class_map attribute for Event::RPC::Client to be able to use classes locally which are imported from the server as well, by giving the server classes a different name on the client. - Turn execptions of unregistered object access into warnings, which makes client / server communication more robust and debugging easier. Bugfixes: - Fixed crashing when a method declared as an object returner returned undef, which should be absolutely legal. - Fixed client side exceptions if server connection is unexpectedly interrupted during a remote method call. - Exceptions are now stringified before send to the client, otherwise Storable may complain on exception objects which can't be freezed e.g. due to embedded code refs. 0.88 Sat Dec 24, 2005, joern Bugfixes: - Use Storable::nfreeze() to pack network messages, so Event::RPC works with mixed endian architectures as well. Patch by Rolf Grossmann <rg AT PROGTECH.net>. 0.87 Sun Dec 18, 2005, joern Features: - Delegation of authentication resp. user/password check to an external module via Event::RPC::Server attribute "auth_module". Old passwd hash based model is implemented in Event::RPC::AuthPasswdHash. - Fixed a typo in Event::RPC::Looger manpage. Thanks to Sean <soso AT kol.co.nz> for the report. - Cleaned up examples/: server.pl and client.pl now both accept -h option for binding/connecting to a specific host, not just localhost. - Makefile.PL tuning: add detected optional modules to PREREQ_PM to get their version numbers added to CPAN Testers reports. Bugfixes: - ChangeLog entry 0.86 was wrong regarding the SSL stuff. 0.86 Sat Dec 17, 2005, joern Features: - added Event::RPC::Server->get_active_connection - documented Event::RPC::Connection->get_client_oids - added Event::RPC::Connection->get_client_object Bugfixes: - Added missing documentation for Event::RPC::Client's error_cb attribute, which was just mentioned in the SYNPOSIS. - Fixed an incompatability with IO::Socket::SSL 0.97, which doesn't return different sysread() states for error and eof anymore which confused Event::RPC. 0.85 Sun Aug 28, 2005, joern Bugfixes: - Make server more bullet proof: handle log connections even if no logger is set, but a log listener was started. - Event::RPC::Server->new didn't recognize the 'connection_hook' parameter. - Try making the testsuite more stable with Win32. 0.84 Mon Jul 25, 2005, joern Bugfixes: - Buffering for big incoming RPC requests (> 64KB) didn't work properly 0.83 Fri Apr 15, 2005, joern Features: - Made more parts of the API public by documenting them. - New server option "connection_hook" for accessing Event::RPC::Connection objects during connecting and disconnecting. - New server option "auto_reload_modules" to control the server's auto reloading facility, which was activated by default up to now. - New server option "host" to bind the listener to a specific address. Default is to bind to all addresses. - Increased connect performance by reducing the number of messages exchanged between client and server. - Client may request a subset of exported server classes. Default is still to import all classes exported by the server. - Client checks Event::RPC version and used protocol version on connect and warns different software versions but dies on incompatible protocol versions. Naturally it's recommended to use the same Event::RPC version on server and client. - Methods for getting client and server (after connecting) software and protocol version numbers. Bugfixes: - Missed ReuseAddr on listener sockets. - Made testsuite more robust - Network logging clients could block the server by sending data to it. - Renamed client option 'server' to 'host', which is more adequate. 'server' is still allowed but deprecated and using it triggers a warning. 0.82 Sun Apr 10, 2005, joern Notes: - First public release. API is fairly stable. Features: - User/password based authentication added. - Full documentation added. - Test suite added which covers all connection types and the most important features. 0.81 Sun Mar 13, 2005, joern Notes: - Still an internal release, incomplete documentation, no test suite. Features: - Support for SSL encryption added using IO::Socket::SSL. - Event loop abstraction. Event::RPC now works with Event and Glib and can be easily extended for other event loop frameworks. Thanks to Rocco Caputo for the suggestion. 0.80 Sun Mar 13, 2005, joern Notes: - A non public release. Only announced on the perl-loop mailing list for the namespace request and to get comments. Module is fully working but API isn't documented yet very well. Security stuff (SSL encryption, some password authentication) is missing also a complete test suite.