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
CppDB 0.0.4 Released
CppDB 0.0.4 Released
This release mostly includes multiple bug fixes and few new features:
Features:
- Added
empty()
andclear()
members forcppdb::statement
- Added an option to provide default value when the value is NULL in
result::get()
instead of throwing an exception. Thanks to Krzysztof Wrzalik.
Bugs:
- Switched to using ODBC as internal backend by default due to multiple issues with dynamic unloading of ODBC backend. Now if you want to use it dynamically you must sed the build option
-DODBC_BACKEND_INTERNAL=OFF
- Build issue of PostgreSQL with MSVC compiler.
- Various fixes for FreeBSD, Solaris and Darwin
- Fixed bug #3317277: a exception is not thrown when connection to PostgreSQL server could not be established.
- Fixed bug #3439445: added search path to PostgreSQL headers for some Linux distributions.
The release is fully backward compatible (API and ABI) with previous release.
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.
CppCMS 0.99.10 Released
I'd like to summarize this release that makes:
- CppCMS more secure platform for web development.
- CppCMS more windows friendly
- Much closer to the Release Candidate 1...
As a part of security improvements new page was added to the CppCMS wiki:
It is still work in progress but it shows some important tools that would help you to develop safer web applications. I'd recommend every one to read it, especially the sections about XSS and CSRF
Now about the changes CppCMS itself.
New features:
New Cross Site Request Forgery prevention tools.
Support loading XSS profiles from file/json object making XSS filters configuration much easier and simpler. A new example of using XSS filter with can be found under
/examples/xss
subdirectory in the CppCMS sources.Full support of timeouts in HTTP web server and other improvements.
Now built in HTTP web severer is fully useful not only for debugging but also for using on embedded platforms.
File server improvements:
- Security improvements - in file serving - now it is useful for embedded platforms.
- Full Unicode file names support under Windows (UTF-8).
- Optional directory listing support.
- Added support of alias in the file server
Support of installing, uninstalling and running CppCMS as windows service.
New tool for generation of HMAC/AES keys
cppcms_make_key
Support of numeric index and reverse iteration in foreach statement, closing issue #3111909
Added deprecation warning of
<% var %>
templates format in flavor of<%= var %>
andform + widget
operator in flavor ofform.add(widget)
Added workaround for sending full HTTP headers for broken SCGI connectors like IIS's one using.
Bugs:
- a bug in json::value::is_null() incorrect answer.
- Security fix: prevent from relative URI filter to match absolute ones in XSS filter.