PrevUpHomeNext

Appendix - Release Notes

RCF 2.0.0.2683 - 2013-06-18
RCF 2.0.0.2682 - 2013-06-01
RCF 2.0.0.2679 - 2013-03-27
RCF 2.0.0.2678 - 2013-03-07
RCF 2.0.0.2675 - 2013-01-03
RCF 2.0.0.2673 - 2012-10-28
RCF 2.0.0.2672 - 2012-10-23
RCF 2.0.0.2670 - 2012-10-16
RCF 2.0.0.2668 - 2012-10-15
RCF 2.0.0.2665 - 2012-09-29
RCF 2.0.0.2664 - 2012-09-24
RCF 2.0.0.2661 - 2012-09-02
RCF 2.0.0.2648 - 2012-08-19
RCF 1.3.1
RCF 1.3
RCF 1.2
RCF 1.1
RCF 1.0
RCF 0.9d
RCF 0.9c
  • Fix potential order of destruction problem in SessionTimeoutService.
  • Fix bool conversion compiler error in RcfSession::hasDefaultServerStub() (reported on gcc 4.6.3) .
  • Accumulate multiple ByteBuffer's in SSPI filter, to prevent potential fragmentation of network send operations.
  • ThreadPool refactored, with simpler constructors and get / set methods.
  • Classes renamed: I_Endpoint to Endpoint, I_ServerTransport to ServerTransport, I_ClientTransport to ClientTransport, I_SessionState to SessionState, I_RemoteAddress to RemoteAddress.
  • Removed NamedPipeEndpoint class. Code using NamedPipeEndpoint should use Win32NamedPipeEndpoint or UnixLocalEndpoint instead.
  • Refactoring and simplifications to SSL functionality:
    • Added RCF::setSslImplementation(), RcfServer::setSslImplementation() and ClientStub::setSslImplementation() , to configure whether RCF uses Schannel or OpenSSL.
    • Renamed setSslCertificate() to setCertificate(), and setSslCaCertificate() to setCaCertificate().
    • Merged certificate validation callback signature, from boost::function<bool(OpenSslEncryptionFilter &)> and boost::function<bool(SspiFilter &)> , to boost::function<bool(I_Certificate *)>.
    • Merged setSchannelCertificateValidationCb() and setOpenSslCertificateValidationCb() , to setCertificateValidationCallback().
    • Renamed setSchannelDefaultCertificateValidation() to setEnableSchannelCertificateValidation().
    • Added Win32Certificate::getCertificateName(), Win32Certificate::getIssuerName(), X509Certificate::getCertificateName(), and X509Certificate::getIssuerName() functions.
    • Referencing arbitrary Windows stores from PfxCertificate::addToStore() and StoreCertificate::StoreCertificate() , using the Win32CertificateLocation and Win32CertificateStore enums.
    • Added StoreCertificateIterator class, for iterating through certificates in a Windows store.
  • Downloads:
  • Add dummy parameters to RCF::init() and RCF::RcfInitDeinit::RcfInitDeinit(), to trap compiler define mismatches when building RCF as a DLL.
  • Server throws an exception immediately, if a client specifies a ping-back interval that is less than the minimum ping-back interval of the server.
  • Downloads:
  • Fix compatibility with Boost 1.53.0, by removing usages of boost::shared_static_cast<>.
  • Increase the maximum number of RCF methods in a RCF interface, from 100 to 200. If you need more than 100 methods, define RCF_MAX_METHOD_COUNT=200 in your build.
  • zlib and OpenSSL libraries are now loaded dynamically at runtime, rather than linked. This means that if you are building RCF with RCF_USE_ZLIB or RCF_USE_OPENSSL, you no longer need to link to zlib and OpenSSL. RCF will load the zlib and OpenSSL libraries at runtime, on the first execution of any compression code, or OpenSSL-based encryption code.
  • Changed Visual Studio demo solution, to build and use a RCF DLL.
  • Changed cmake demo projects, to link against pthread and dl on non-Windows platforms.
  • Downloads:
  • Trigger compiler error if user defines UNICODE or _UNICODE when building RCF on non-Windows platforms.
  • Fix compiler error when using RCF_USE_BOOST_FILESYSTEM together with RCF_USE_BOOST_SERIALIZATION.
  • Downloads:
  • Fix compiler error when RCF_USE_BOOST_SERIALIZATION is defined but not RCF_USE_SF_SERIALIZATION.
  • Improve JSON-RPC response message from server, when server fails to parse JSON-RPC request.
  • Downloads:
  • Reinstate support for UNIX domain socket transports.
  • Preserve last file modification timestamps, when transferring files.
  • Add I_ServerTransport::getInitialNumberOfCOnnections() / I_ServerTransport::setInitialNumberOfCOnnections() to get and set the initial number of listening connections that are created when a server transport starts. Default value is 1.
  • Fix Winsock compiler errors in Visual Studio 2003 demo projects, by defining WIN32_LEAN_AND_MEAN.
  • Downloads:
  • Introduce RCF_USE_BOOST_ASIO configuration macro, to build RCF against the version of Asio that is in Boost. If RCF_USE_BOOST_ASIO is not defined, RCF will be built against the version of Asio that is included in RCF.
  • Fix compiler errors when building on Cygwin. For Cygwin builds, RCF_USE_BOOST_ASIO is defined automatically.
  • Fix bug with asynchronous call dispatching, when used with oneway calls.
  • Fix possible busy loop in RCF_VERIFY() macro.
  • Downloads:
  • This is a bug-fix release for RCF 1.3.
  • Fix for compiler error when using signed char in RCF method signatures.
  • Fix performance problem when using RCF::SspiFilter. Multiple small message chunks are now merged into a single larger chunk to improve network performance.
  • Improve SF serialization performance. Only call typeid() when necessary.
  • Reduced SF archive sizes. Encode small integers using a single byte rather than 4 bytes.
  • Fix excessive CPU usage when using multithreaded thread pools with Boost.Asio based transports.
  • Fix for boost::any serialization. Empty boost::any instances were causing an exception to be thrown.
  • Fix bug in client-side timeout logic when polling network connection using Windows MsgWaitForMultipleObjects() function.
  • Services can no longer be added or removed while an RcfServer is running.
  • Fix potential null pointer crash in marshaling logic.
  • Rename variables named signals and slots in order not to interfere with QT preprocessor.
  • Fix preprocessor redefinition which was causing a compiler warning on OSX.
  • Downloads:
  • Support for IPv6.
  • IP-based access rules, to grant or deny access to IP-based servers.
  • IP-based client transports able to bind to a specific local interface.
  • Client able to query for size of its latest request and response messages.
  • User data fields in request and response headers.
  • Running multiple server transports on the same thread pool.
  • Server-side caching of application objects.
  • Default max max message length changed from 10Kb to 1Mb.
  • Maximum number of methods in an RCF interface increased from 35 to 100.
  • Extended auto-versioning to negotiate archive version as well as runtime version.
  • SF serialization
    • Support for tr1 containers and tr1 smart pointers.
    • Support for boost::intrusive_ptr<>.
    • Serialization of std::wstring changed, to use UTF-8.
  • Boost.Serialization serialization of RCF::Exception now includes error arguments as well as the error message.
  • Fix byte ordering of fast vector serialization, for big-endian platforms.
  • Improved efficiency of Boost.Asio based server transports - no memory allocations when reading or writing network data.
  • For Boost.Asio based server transports, added AsioServerTransport::getIoService() to expose the internal boost::asio::io_service object.
  • Added complete example of server-to-client callbacks, to User Guide.
  • Added FAQ on server-side detection of client disconnection.
  • Compatibility
    • Support for Visual Studio 2010 compiler.
    • Dropped support for mingw gcc 3.2 & 3.3.
    • Dropped support for Borland C++ Builder 2006.
    • Tested against Boost versions up to 1.45.0.
  • Downloads:
  • Support use of Protocol Buffers-generated classes, in RCF interfaces.
  • Support Protocol Buffers-based marshaling protocol.
  • Support for batched oneway calls.
  • Improved error messages, with context-specific arguments.
  • Improvements to versioning - SF archive version now passed in message header.
  • Signature of SF serialization functions changed, to remove redundant version parameter.
  • Calling serializeParent() no longer requires type registration.
  • serializeParent() moved into SF namespace.
  • Added configuration macro to control behavior on assert (RCF_ALWAYS_ABORT_ON_ASSERT).
  • Fix serialization of RemoteException, when using Boost.Serialization.
  • Fix several regressions introduced in 1.1.
    • Fix for thread-safety issue with pingback functionality.
    • Fix for subsecond timeouts on Unix platforms.
    • Fix compilation errors on Windows, if _WIN32_WINNT <= 0x0500.
  • Tested against Boost versions up to 1.42.0.
  • Dropped support for gcc 2.95.
  • Updates to the RCF User Guide:
    • Added documentation for publish/subscribe topics.
    • Added documentation for Protocol Buffer support.
    • Rewrote section on Versioning.
    • Documented workaround for internal compiler error with Borland C++Builder 2007.
    • Added release notes.
  • Downloads:
  • Ping function added to RCF::ClientStub.
  • Server-to-client pingbacks, for maintaining connectivity during long-running calls (RCF::PingBackService).
  • Server-to-client callbacks.
  • Dynamic thread pool grows and shrinks, to accommodate client load. User level code no longer needs to call ThreadManager::notifyBusy().
  • Progress callbacks on all transports.
  • Schannel-based transport filter, for SSL encryption on Windows platforms (RCF::SchannelFilter).
  • Support for __attribute__(visibility()) when exporting RCF from shared libraries with GCC 4.x.
  • Memory usage optimizations.
  • Tested against Boost versions up to 1.39.0.
  • Downloads:
  • Support for more compilers (Intel C++ 9 and 10.1 for Windows, GCC 4.3)
  • Support for more platforms (FreeBSD and OS X).
  • Supports use of UNIX domain sockets as transport (RCF::UnixLocalEndpoint).
  • Tested against Boost versions up to 1.37.0.
  • Downloads:
  • Win32 named pipe transport implementations (RCF::Win32NamedPipeEndpoint).
  • Boost.Thread no longer required.
  • UDP multicasting and broadcasting.
  • SF serialization for boost::tuple, boost::variant, and boost::any.
  • Support for exporting RCF from a DLL.
  • Tested against Boost versions up to 1.35.0 and Boost.Asio versions from 0.3.8.
  • Downloads:
  • Zero-copy, zero-heap allocation core for fast and scalable performance.
  • Kerberos and NTLM authentication and encryption on Windows platforms.
  • OpenSSL filter, for SSL authentication and encryption.
  • Server-side multithreading.
  • Server-side session objects.
  • Built-in runtime versioning, for backward and forward runtime compatibility.
  • Robust publish/subscribe functionality.
  • Support for legacy compilers, in particular, Visual C++ 6, Borland C++ Builder 6, and GCC 2.95.
  • Support for 64-bit compilers.

PrevUpHomeNext