Posts in category ‘Progress’.
CppCMS 0.999.1 - Release Candidate 2
All CppCMS 1.0.0 milestone tasks had completed and thus the second release candidate was released. It contains mostly bug fixes including several security bug fixes. It is expected to be the last RC before the stable version would be delivered.
All CppCMS users please download the RC2 and test it. If no critical problems would be found the stable version would be announced in a week or two.
Whats New?
Security Bug Fixes:
- Fixed a bug when calling
reset_session()
would not reset it when session content itself was not changed. - Fixed a bug that could cause infinite waiting when POST data contained incomplete multi-part data potentially causing DOS.
Breaking Changes:
The protocol between cppcms_scale
and cppcms
clients had changed,
you can't use old cppcms_scale
with newer versions of cppcms
and vise versa.
The protocol now uses absolute 64 bit time-stamp rather then relative one.
New Features:
- Many new unit tests implemented giving good test coverage for the CppCMS framework.
- Added support of nginx with SCGI protocol to
cppcms_run
- Many examples added: Asynchronous I/O, Serialization, Templates Inheritance. Some examples updated to use moder API.
Bug Fixes:
- Fixed a bug that prevented "Keep-Alive" option to work with FastCGI protocol.
- Session cookie was not delete on clear session call with server side session storage.
- Fixed a bug that caused a session value to be unexposed what it was updated.
- Fixed incorrect call of
view_builder
instead ofunsafe_view_builder
when unsefe option was given - Fixed status handling according to HTTP/CGI specifications in case of invalid POST input.
- Fixed a bug when in certain situations sockets were not shutdown properly.
- Added better error reporting when the content of invalid type was used during view rendering.
- Fixed
cppcms_run
to setup nginx'sPATH_INFO
correctly according to the options available in the latest version.
CppCMS 0.999.0 - Release Candidate 1
The first release candidate of the next version of CppCMS is available - the API can be considered stable from this point and would not be changed in backward incompatible way.
New Features:
Templates engine improvements:
Added template helpers support functions
<% using ... %>
and<% render ... %>
that allow using other views directly from the code and not just templates as it was done before.Added new syntax
<% form block foo %>...<% end %>
as better alternative to:
<% form begin foo %>...<% form end foo %>
Improved error messages in templates compiler such that it gives more clear errors in case of syntax error.
Changed semantics of
application::render
function such that it would not override an application that was assigned to the contend (if it was assigned at all)
cppcms_scale
improvements:- Support of session storage in addition to cache storage now providing full scalability of CppCMS services.
- Now it uses same configuration method as CppCMS process - JSON file with optional command line parameters.
cppcms_scale
now can run as Unix deamon and as Windows service.
URL Mapper does not throws by default, but rather create an invalid URL making initial programming easier.
The behavior can be reverted back by setting
misk.invalid_url_throws
option to true.Added recursive
shared_mutex
support to booster.Provided an experimental support of STLPort 5.2.
CppCMS 0.99.11 Released
New Features:
Fully refactored views loading and unloading code. The views interface now is documented, public and clear.
Documentation updates, now all public classes and functions have full Doxygen reference documentation.
Added multiple examples and created examples page in Doxygen reference documentation. New examples are:
- JSON RPC
- JSON RPC Chat
- File Upload Example
Internal File Server Improvements:
- Added support of simple URL rewriting
- Reduced memory copying in sending files
Added support of dynamic session storage backend loading as plugins, implemented several session storage backends under
contrib
section:- Berkeley DB
- Sqlite3
- CppDB with MySql and PostgreSQL servers
Removed dependency on pthreads-win32 under Windows 2000 and XP.
Improved JSON-RPC handling - reduced copying of json objects.
Added support of custom timezone for logging closing #3432220, changed default time zone in the log file to local time rather then GMT.
Added JavaScript JSON-RPC Client implementation under
contrib
sectionPerformance improvements in TCP Cahce Server.
Bugs:
- Fixed use of deprecated functions in examples, closing #3404317
- Spelling improvements, closing #3206151, thanks Augustin for the contribution.
- Fixed TLS behavior such that TLS pointer destruction, still allows destruction of local objects
- Fixed issue #3441849, Typo in
cppcms::http::context::complition_type
, now it iscppcms::http::context::completion_type
, as correct spelling requires. - Fixed cosmetic issue #3460062
- Fix incorrect condition check in PCRE using
- Fixed bug #3386163, setting
REMOTE_ADDR
behind HTTP Proxy feature was not working. Lineup with Boost.Locale:
- fixed problems with build with clang
- fixed handing of invalid characters in
MultiByteToWideChar
API on windows
CppDB 0.3.0 Released
New Features:
- Added session specific storage for custom data
- Added support of one time initialization
- Added version number API
- Added an option to clear the connections pool
- Added busy_timeout option to sqlite3 backend.
Changed library version format to Major.Minor.Patch
Major
is updated when the library breaks its ABI or API, should not happen often.Minor
is updated when new features or new API is introduced, The library remains fully backward compatiblePatch
- maintenance bug fix release, no changes in public API.
Bugs:
- Fixed bug #3451653 - disconnected connections are recycled to the pool
- Fixed issue #3439445 - build problem on some distributions
CppCMS 0.99.10.1 - bug fix release
CppCMS 0.99.10.1 was released today. It is a bug fix release that includes fixes for several critical bugs that could not wait for 0.99.11 version.
Critical Bugs:
- Fixed a bug that caused an infinite loop in
shared_ptr
counter on Windows platform when multi-core machines are used. - Fixed a bug that prevented from lock file to be created in demonetization process (regression in 0.99.10)
- Fixed a bug that prevented CppCMS process to shutdown properly when running in prefork mode (regression in 0.99.10).
- Fixed a bug that prevented from JSON-RPC notifications work properly.
Other bugs:
- Fixed typo (#3404317)
- Fixed a race condition in access to socket that may occur in some situations on multi-core machines.
- Fixed
booster::nowide::fstream
to follow open flags specifications properly in some cases.
All CppCMS users are encouraged to upgrade to this version - especially windows users.