Список изменений CppCMS 1.x.x
-
-
- Версия 1.2.1
- Версия 1.2.0
- Версия 1.1.1
- Версия 1.1.0
- Версия 1.0.5
- Версия 1.0.4
- Версия 1.0.3
- Версия 1.0.2
- Версия 1.0.1
- Версия 1.0.0
- Версия 0.999.1
- Версия 0.999.0
- Версия 0.99.11
- Версия 0.99.10.1
- Версия 0.99.10
- Версия 0.99.9
- Версия 0.99.8
- Версия 0.99.7
- Версия 0.99.6
- Версия 0.99.5
- Версия 0.99.4
- Версия 0.99.3
- Версия 0.99.2
- Версия 0.99.1
-
Версия 1.2.1
Выпущена: 2018-05-18
Улучшения безопасности:
- Исправлен баг безопасности в модуле парсера JSON, который мог привести к DOS
Исправления:
- Исправлены проблемы #36 - сборка с отключенным GZIP
- Исправлена проблема #150 - некорректный парсинг multipart form
Изменения:
- Теперь CppCMS по умолчанию использует OpenSSL вместо GNU-TLS если оба доступны (можете вернуть поведение обратно добавив
-DDISABLE_OPENSSL=ON
в cmake)
Особая благодарность Khaled Yakdan из code-intelligence.de за сообщение об этой проблеме безопасности
Версия 1.2.0
Выпущена: 2018-01-16
Теперь это официальная стабильная версия
Изменения:
- Лицензия сменилась на MIT вместо LGPLv3
Версия 1.1.1
Выпущена: 2017-12-03
Ночная система сборки обновлена до современных ОС/компиляторов:
- Windows XP -> Windows 7
- MSVC 2008 x86 в MSVC 2017 x86/x65
- MinGW GCC 4.5 x86 -> 7.1 x86/x64
- OpenSolars 2009 в Solaris 11
- FreeBSD 10 -> FreeBSD 11.1
- Добавлен travis.yml для сборок Mac OS X
Улучшена обработка таймаутов http на ОС отличных от Linux/Windows.
- Исправлена некорректная обработка асинхронного IO в
*cgi
API. - Добавлена поддержка
SOL_SNDBUF/SOL_RCVBUF
в конфигурацию сервиса - Добавлена обработка таймаутов HTTP на Solaris
- Исправлен #24 сбой отправки больших блоков асинхронно по FastCGI
- Исправлена проблема #21 Программа производит 100% загрузку CPU на одном ядре - из-за неправильной обработки EOF
- Исправлен backend-тест icu для ICU >= 60.1
- Исправлен отсутствующий
getenv(std::string const &)
в проблеме #16 - Исправлены проблемы с генерацией codecvt FreeBSD/clang
- Используется Windows Vista/7 API по умолчанию, т.к. XP достигла EOL.
- Исправлена некорректная обработка ошибок async-соединения
- Обновление до Boost.Locale 1.65
- Обновлены интерфейс сессий для внешних языков и unit-тесты
Версия 1.1.0
Выпущена: 2017-07-11
Основной релиз, см. Что нового в CppCMS 1.2.0
Версия 1.0.5
Выпущена: 2014-10-30
Исправлены баги:
- Исправлены 121, 98 - баг приводил к неправильному форматированию/парсингу года с помощью icu backend'а - исправлено неправильное использование года недели вместо года
- Исправлен 122 - утечка памяти в потоковой библиотеке Win32
- Исправлен 105 - в string_key.h имелся плохой оператор '!='
- Исправлен 119 - плохое форматирование html.
- Исправлен 106 - поддержка IPv6 на Windows
- Исправлен 129 - cppcms_make_key - неверное имя опции
- Исправлен 97 - невозможно использовать верхний регистр в пространстве имен
<% include %>
- Исправлен 84 - 64K fd лимит
- Исправлен 108 - сбой test_locale_boundary & booster_locale_formatting
- Исправлены различные проблемы поддержки libc++/clang
- Значительно улучшен multipart parsing, закрывающий f.r. 27
- Убрана опция сокета reuse_address, используемая в Windows
Незначительные улучшения безопасности:
- Проблема 117: возможность уязвимости Timing Attack
Поддержка платформы:
- NetBSD - поддерживаемая платформа
- FreeBSD - добавлена поддержка POSIX locale & clang/libc++
Версия 1.0.4
Выпущена: 2013-06-24
Критичные баги:
Добавлен "Expires" для управления сроком действия куки, поддерживаемого IE.
До этого релиза куки сессии cppcms использовали опцию max-age, не распознаваемую IE. Начиная с этого релиза, у сессионных кук будут обе опции Expires и Max-Age. Все браузеры, использующие Max-Age, будут игнорировать Expires в случае наличия обеих опций.
Добавлена новая опция, управляющая свойствами сессионных кук, см. expiration_method, позволяющая изменять поведение и обрабатывать возможные проблемы рассогласования времени
Версия 1.0.3
Выпущена: 2013-01-04
Баги безопасности:
- Исправлена валидация UTF-8, некоторые некорректные последовательности могли приниматься за корректные.
Баги:
- Добавлен отсутствующий header в
cppcms/http_context.h
- Исправлена опечатка (ticket 3560932)
Версия 1.0.2
Выпущена: 2012-08-14
Баги:
- Исправлена некорректная генерация HTML при использовании
as_table
- Исправлены проблемы сборки с новейшим ICU: 3540278
- Исправлены некоторые предупреждения в Boost.Locale
- Исправлен отсутствующий отчет об ошибке в случае переполнения дискового пространства при загрузке файла: 3542469
- Исправлены проблемы сборки для visual studio 11: 3527712,3527702
- Исправлена проблема при использовании автоматического определения типов в режиме C++11 для gcc: 3537374
- Исправлены баги, делающие stackstream бесполезным
- Исправлены проблемы сборки на Mac OS X: 3513865
- Исправлено обнаружение OpenSSL на Windows: 3515712
- Исправлена некорректная конфигурация scgi для nginx в
cppcms_run
Версия 1.0.1
Выпущена: 2012-03-14
Баги:
- Исправлено падение при использовании кэша, разделяемого в памяти между процессами, в случае компиляции CppCMS в Release mode с помощью gcc 4.5 и 4.6.
- Добавлена поддержка CMake-опции LIBDIR, позволяющей инсталляцию библиотек в lib64 вместо lib, как требуют дистрибутивы, основанные на Rad Had.
Версия 1.0.0
Выпущена: 2012-02-26
Лицензирование:
CppCMS теперь доступна в альтернативной Коммерческой лицензии.
Баги:
- Временное решение для проблемы компиляции, не позволяющей сборку CppCMS с помощью MSVC10 в Release mode.
Версия 0.999.1
Выпущена: 2012-02-17
Исправлены баги безопасности:
- Исправлен баг, при котором вызов
reset_session()
не производил сброса сессии, в случае, если сам контент не изменялся. - Исправлен баг, который мог приводить к бесконечному ожиданию, в случае, если данные POST содержали незавершенные составные (multi-part) данные, потенциально приводя к DOS.
Критические изменения:
Изменен протокол между клиентами cppcms_scale
и cppcms
,
нельзя использовать старый cppcms_scale
с новейшими версиями cppcms
и наоборот.
Протокол теперь использует абсолютный 64-битный time-stamp вместо относительного.
Новые возможности:
- Реализовано множество новых unit-тестов, дающих хорошее тестовое покрытие для фреймворка CppCMS.
- Добавлена поддержка протокола SCGI для
cppcms_run
при использовании веб-сервера nginx. - Добавлено множество примеров: Асинхронный ввод/вывод, Сериализация, Наследование темплейтов. Некоторые примеры обновлены для использования нового API.
Исправлены баги:
- Исправлен баг, блокирующий работу опции "Keep-Alive" с протоколом FastCGI.
- Куки сессии не удаляются по вызову очистки (clear) сессии при использовании хранилища сессий на сервере.
- Исправлен баг, приводящий к тому, что значение сессии не раскрывало что было обновлено.
- Исправлен некорректный вызов
view_builder
вместоunsafe_view_builder
при указании небезопасной опции. - Исправлена обработка статуса в соответствии со спецификациями HTTP/CGI для случая некорректного приходящего POST.
- Исправлен баг, при котором в любых ситуациях сокеты не останавливались корректно.
- Добавлено улучшенное информирование, когда используется контент некорректного типа при рендеринге представлений (view).
- Исправлен
cppcms_run
для корректной установкиPATH_INFO
nginx'а в соответствии с опциями, доступными в новейшей версии.
Версия 0.999.0
Выпущена: 2012-01-18
Изменение политики:
- Заморозка API, этим релизом отмечается, что больше не будут делаться обратно-несовместимые изменения для CppCMS 1.x.x
Новые возможности:
Улучшения движка темплейтов:
Добавлены помощники темплейтов поддерживающие функции
<% using ... %>
и<% render ... %>
позволяющие использовать другие представления (view) напрямую из кода, а не только темплейтами, как это было ранее.Добавлен новый синтаксис
<% form block foo %>...<% end %>
как лучшая альтернатива:
<% form begin foo %>...<% form end foo %>
Улучшены сообщения об ошибках в компиляторе темплейтов так, что выдается более прозрачные ошибки в случае синтаксических ошибок.
Изменена семантика функции
application::render
так, что она не перегружает приложение, назначенное контенту (если оно вообще было назначено)
Улучшения
cppcms_scale
:- Поддержа хранилища сессий в дополнении к хранилищу кэша теперь обеспечивает полную масштабируемость сервисам CppCMS.
- Теперь используется такой же метод конфигурирования, как и процесса CppCMS - JSON-файл с опциональными параметрами командной строки.
cppcms_scale
теперь может запускаться как Unix-демон и как Windows-сервис.
URL Mapper по-умолчанию не приводит к исключению, а создает недействительный URL, облегчая начальное программирование.
Событие может быть возвращено установкой в true опции
misk.invalid_url_throws
.Добавлена поддержка рекурсивного
shared_mutex
в booster.Обеспечивает экспериментальную поддержку STLPort 5.2.
Версия 0.99.11
Выпущена: 2011-12-23
Новые возможности:
Полностью переработанный код загрузки и выгрузки view. Интерфейс view теперь документирован, доступен и прозрачен.
Обновления документации, теперь у всех public-классов и функций полная справочная документация Doxygen.
Добавлено несколько примеров и создана страница примеров в справочной документации Doxygen. Теперь есть примеры:
- JSON RPC
- Чат JSON RPC
- Пример загрузки файла
Внутренние улучшения файл-сервера:
- Добавлена поддержка простой перезаписи URL
- Сокращено копирование памяти при передаче файлов
Добавлена поддержка загрузки бэкенда динамического хранения сессий плагинами, реализованными несколькими бэкендами хранения сессий в секции
contrib
:- Berkeley DB
- Sqlite3
- CppDB с серверами MySql и PostgreSQL
Убрана зависимость от pthreads-win32 в Windows 2000 и XP.
Улучшена обработка JSON-RPC - сокращено копирование json-объектов.
Добавлена поддержка пользовательской временной зоны при логировании, закрывающая #3432220, изменена временная зона по-умолчанию в лог-файле на локальную - вместо GMT.
Добавлена реализация клиента JavaScript JSON-RPC в секции
contrib
Улучшения производительности в Кэш-сервере TCP.
Баги:
- Исправлено использование устаревших функций в примерах, закрывающее #3404317
- Улучшения орфографии, закрывающие #3206151, спасибо за содействие Augustin'у.
- Исправлено поведение TLS, такое как уничтожение TLS-указателя, все еще позволяющего уничтожение локальных объектов
- Исправлена проблема #3441849, опечатка в
cppcms::http::context::complition_type
, теперь этоcppcms::http::context::completion_type
, как требует орфография. - Исправлена косметическая проблема #3460062
- Исправлена некорректная проверка условий при использовании PCRE
- Исправлен баг #3386163, установка
REMOTE_ADDR
не работала за HTTP Proxy. Синхронизация с Boost.Locale:
- исправлены проблемы сборки с clang
- исправлена обработка недопустимых символов в
MultiByteToWideChar
API в Windows
Версия 0.99.10.1
Выпущена: 2011-10-19
Это релиз исправлений критических багов, которые нельзя отложить до версии 0.99.11.
Критические баги:
- Исправлен баг, приводящий к бесконечному циклу в счетчике
shared_ptr
на Windows-платформе при использовании многоядерных машин. - Исправлен баг, препятствующий созданию файла блокировки в процессе обесценивания (регрессия в 0.99.10)
- Исправлен баг, препятствующий корректному завершению CppCMS-процесса в prefork-режиме (регрессия в 0.99.10).
- Исправлен баг, препятствующий корректной работе уведомлений JSON-RPC.
Другие баги:
- Исправлена опечатка (#3404317)
- Исправлено состояние состязания при доступе к сокету, которая могла происходить в некоторых ситуациях на многоядерных машинах.
- Исправлен
booster::nowide::fstream
для корректного следования указанным флагам открытия в некоторых случаях.
Версия 0.99.10
Выпущена: 2011-09-01
Новые возможности:
- Новые инструменты, предотвращающие подделку межсайтовых запросов.
- Множество улучшений HTTP web-сервера, теперь встроенный HTTP web-сервер полностью полезен не только для отладки, но также для использования на встраиваемых платформах или запуска за прокси:
- Полная поддержка таймаутов на всех этапах
- Улучшения файлового сервера:
- Улучшения безопасности в раздаче файлов - теперь это полезно для встраиваемых платформ.
- Полная поддержка файловых имен в кодировке unicode (UTF-8) под Windows.
- Опциональный листинг директорий.
- Поддержка псевдонимов директорий.
- Поддержка загрузки XSS-профилей из файла/json-объекта делает конфигурирование XSS-фильтров более простым и легким.
- Поддержка инсталляции, деинсталляции и запуска CppCMS как сервис Windows.
- Новый инструмент для генерации ключей HMAC/AES -
cppcms_make_key
- Поддержка числового индекса и обратной итерации в операторе foreach, закрывающего заявку #3111909
- Добавлено предупреждение об устаревании формата темплейтов
<% var %>
, замененным на<%= var %>
и оператораform + widget
, замененному наform.add(widget)
- Добавлена "заплатка" для отправки целых HTTP-заголовков некорректным SCGI-коннекторам, таким как IIS.
- Синхронизация с новейшим Boost.Locale - в основном исправление багов и улучшение тестов.
Баги:
- ошибка в некорректном ответе json::value::is_null().
- XSS фильтр - предотвращение случайного сопоставления относительного URI-фильтра с абсолютным.
Версия 0.99.9
Выпущена: 2011-08-10
Новые возможности:
Обеспечена поддержка Clang, CppCMS был протестирован с Clang 2.8.
Теперь CppCMS поддерживает 5 семейств компиляторов C++:
- GCC 3.4.x до 4.6.1
- Visual Studio 2005 - 2010
- Clang 2.8
- Intel 11
- Sun Studio 5.10
Значительные улучшения в XSS-фильтровании из-за изменения кода валидации URI при фильтрации на использование парсера C++ вместо сложных регулярных выражений.
Добавлена поддержка полностью настраиваемой валидации HTML-атрибутов с использованием в XSS-фильтре функций обратного вызова.
Значительные улучшения производительности во многих частях кода за счет устранения многократных распределений памяти:
- HTTP, SCGI и FastCGI бэкенды backends - улучшено распределение памяти CGI переменных.
- Получение значений из JSON-объектов с использованием API get(...), find(...) теперь происходит с нулевым распределением памяти.
- Различные фильтры, такие как
escape
,urlencode
и некоторые другие - теперь работают без каких-либо или малых распределений памяти.
Улучшения производительности в кешировании, заменой сбалансированного бинарного дерева на хеш-таблицу в индексе первичного ключа кеша.
Критические изменения:
json::object
изменился сstd::map<std::string,value>
наstd::map<string_key,value>
. Это должно быть полностью прозрачно почти для всех пользователей.
Баги:
- Исправлено падение в http::response при отклонениях в записи HTTP заголовков например - из-за некорректных прав доступа у файла.
- Исправлен баг в
booster::regex
, препятствующий сопоставлению некоторых валидных паттернов, в отличие от соответствующих регулярных выражений. - Исправлен баг, который мог препятствовать работе
booster::regex
на 64-битных платформах с прямым порядком байт (big endian - прим. пер.). - Добавлена начальная поддержка Python3 для компилятора темплейтов.
- Добавлена "заплатка" для систем, использующих python3 по-умолчанию.
Версия 0.99.8
Выпущена: 2011-07-11
Новые возможности:
Boost.Locale обновлен до последней версии и собирается мержится в svn-дерево Boost.
Он включает некоторые критические изменения:
Переработан интерфейс анализа граничных значений:
Вместо использования
mapping
,token_iterator
иbreak_iterator
, новые классы предоставляющие ту же функциональность ввели:segment_index
,boundary_point_index
и элементы, которые могут быть итерированыsegment
иboundary_point
.См.: http://cppcms.sourceforge.net/boost_locale/html/boundary_analysys.html
Обновился интерфейс сообщений, теперь сообщения используют тот же тип символа для ключа, что и для выходного сообщения, т.е.
std::wstring wh = translate(L"hello").str(); std::string h = translate( "hello").str();
Вместо
std::wstring wh = translate("hello").str<wchar_t>(); std::string h = translate("hello").str<char>();
Это позволяет прозрачно использовать не-US-ASCII ключи.
Обновлен интерфейс
date_time
, чтобы лучше соответствовать Boost.DateTime и Boost.Chrono. Операции теперь более типобезопасны.
Введена поддержка компилятора SunStudio на OpenSolaris.
Новые ночные тесты: Linux Armel и Solaris/SunStudio.
Баги:
- Исправлен баг, в котором виртуально отключалось gzip-сжатие в CppCMS 0.99.7
Некоторые исправления компиляции и тестирования для старых версий Mac OS X/Darwin 8.
Замечание: Darwin 8 не поддерживается из-за багов в стандартной библиотеке C, но не должно быть проблем с новейшими версиями Mac OS X.
- Исправления для поддержки ICU 4.8
- Исправления для поддержки gcc-4.6 и gcc-4.0
- Исправления для поддержки Python 2.3.5
Версия 0.99.7
Выпущена: 2011-03-26
Баги безопасности:
- Исправлен некорректный парсинг ключей, вызывающий снижение энтропии AES и HMAC ключей
- Исправлено некорректное определение HMAC ключа, при использовании раздельных ключей для CBC и MAC
Новые возможности:
URL-маппинг - создан как противоположность URL диспетчеризации, теперь каждый URL может быть легко абстрагирован от физического URL,
Это позволяет создавать иерархии приложений и ссылаться друг на друга с помощью именованных URL.
Система Кеширования:
- Добавлена поддержка зависимых триггеров записываемых с помощью класса cppcms::triggers_recorder
- Добавлена поддержка кеша на уровне темплейтов
- Добавлен фильтр "tee" для лучшей поддержки кеширования фрагментов HTML
Система Темплейтов
- Обеспечено базовое юнит-тестирование
- Обеспечен доступ к приложению, отображающему представление (renders the view - прим. пер.), что дает основу для доступа к многим возможностям, таким как сессии, кеш и т.п.
- Добавлены теги
<% url ... %>
,<% cache ...%>
,<% trigger ... %>
- Улучшены отчеты об ошибках
- Добавлен стиль отображения
<%= variable | filters%>
, чтобы переопределять зарезервированные слова и переменные
Обновлен пример Message Board с использованием url-маппинга
Возможности Boost.Locale:
- В Windows, локаль по-умолчанию - UTF-8
- Поддержка Гркгорианского календаря для не-ICU бэкендов
- Поддержка проверки на летнее время в календаре
- Оптимизация производительности в форматировании и сортировке
Переработан класс booster::socket, разделен на множество меньших классов в соответствии с их ролями
Оптимизация для встраиваемых сборок - добавлена поддержка удаления модулей, которые могут быть бесполезны для встраиваемых приложений:
- Хранилище кеша, хранилище префорка, распределенное хранилище кеша
- Сжатие GZip
Поддержка мягкой остановки fastcgi-процесса в Apache на Windows используя стиль ожидания libfastcgi
Улучшено API boost::thread api для поддержки функции-члена отсоединения
Booster: поддержка timegm, делающая booster::ptime симметричным.
Баги:
- Исправлен баг #3177531 - в CGI заголовках возвращался неверный порт/ip при использовании "списка" API
- Очищено свойство set() property, чтобы быть уверенным, что оно установлено в false только в случаях, где это действительно необходимо и включение его по-умолчанию в большинстве виджетов - исправлено F.R. #3177317
- Изменен уровень предупреждения на -Wall -Wextra, предупреждения вычищены
- Boost.Locale - обход бага обнаружения временной зоны ICU
- Исправлено некорректное отображения форм ввода, когда предполагаются указатели
- Исправлена проблема с устройством urandom при работе с ограниченными пользователями под Windows
- Исправления проблем в MSVC-2005
Версия 0.99.6
Выпущена: 2011-01-13
Баги безопасности:
- Исправлен бэкенд AES: неверный тест избыточности
- Исправлено переполнение буфера в urlencode для символов выше 127.
Баги:
- Исправлено падение при попытке использовать фильтр base64_urlencode.
Версия 0.99.5
Выпущена: 2011-01-01
Новые возможности:
Новый фильтр XSS. Это совсем новая и экспериментальная возможность. Позволяет проверять и фильтровать HTML-ввод, приходящий от ненадежного источника, обеспечивая то, что он не содержит вредоносный код. Это очень распространенный случай, когда необходима интеграция в инструменты приложений, такие как TinyMCS.
Он основан на белом списке тегов и значениях HTML-атрибутов, разрешенных для включения.
Фильтр и правила фильтрации можно найти в
cppcms::xss namespace.Сейчас XSS фильтр используется только в CppCMS's wiki. Так что можете попытаться обойти его редактируя Sandbox и если удастся - пожалуйста, немедленно сообщите мне.
Поддержка API Windows Vista/Windows 7. Это позволяет собирать CppCMS на Windows без библиотеки pthreads-win32.
Замечание: необходимо использовать опцию CMake:
-DUSE_WINDOWS6_API=ON
, т.к. по-умолчанию CppCMS нацелена на Windows XP и выше.Изменено число рабочих потоков по-умолчанию на число, зависящее от количества физических процессоров
Баги:
- Исправлена некорректная конфигурация мютексов, приводящая к дедлокам в режиме префорка
- Некоторые исправления в скриптах CMake, в связи с тем, что в некоторых ситуациях библиотеки не находились.
- Некоторые исправления, чтобы CppCMS работал с uclibc
- Исправлена проблема в диспетчеризации URL к подприложению, приводящая к невозможности переопределить его главную функцию
- Некоторые исправления багов в обработке ответа
Версия 0.99.4
Выпущена: 2010-11-30
Новые возможности:
- Добавлена поддержка OpenSSL как альтернатива библиотеки Gcrypt для шифрования AES cookies
- Добавлена поддержка усиливающих опций AES и лучшей выборки хеша для HMAC.
- Добавлена поддержка записи и показа обратной трассировки стека из исключениий - для лучшей отладочности кода.
- Добавлена поддержка демонизации - запуска сервисом под Unix, включая опции: переключение на непривилегированного пользователя и
chroot
в указанную директорию. - Добавлена поддержка функции reset_session в session_interface, что ускоряет распределение нового идентификатора сессии - используемое для предотвращения фиксации сессии.
- Добавлена поддержка подавления сообщений об ошибках по-умолчанию - информация исключения не показывается пользователю по-умолчанию.
- Улучшена безопасность генерации идентификаторов сессий.
- Улучшена производительность генерации случайных чисел под Windows
- Улучшена обработка заголовка Content-Type
Исправления багов:
- Исправлены случайные сбои вызванные повисшими ссылками.
- Исправлен баг неправильного использования не-блокирующих сокетов, вызывающий неполную запись при длинном выводе
- Исправлена утечка памяти в шифровании бэкэнда AES
- Исправлена некорректная обработка имени скрипта в сервере HTTP.
- Исправлена некорректная обработка выключения при работе в prefork-режиме, вызывающая блокировку между родителем и потомком при выходе.
- Исправлен баг в booster::streambuf, вызывающий случайные потери символов - добавлена обработка putback.
- Исправлена некорректная обработка ошибки в классе http_response, которая может привести пул потоков к выходу за пределы потоков.
- Различные исправления тестов, связанные с платформой
Версия 0.99.3
Выпущена: 2010-09-16
Баги безопасности:
- Исправление бэкэнда hmac: генерация сигнатуры со слишком малым размером блока
Новые возможности:
- Новая версия Boost.Locale
Добавлена поддержка нескольких сигнатур hmac-куки:
Встроенные: hmac-md5, hmac-sha1
С libgcrypt: hmac-sha224, hmac-sha256, hmac-sha384, hmac-sha512
Сейчас по-умолчанию hmac использует sha1 вместо менее безопасного md5
Баги:
- Исправлена утечка памяти в шифраторе сессий aes
- Исправлена некорректная проверка кодировки UTF-8, которая могла приводить допуску некоторых запрещенных последовательностей.
- Исправлены отсутствующие атрибуты некоторых виджетов форм
- Исправлена некорректная генерация кода темплейтов в цикле
foreach
- Исправлен race condition в распределении и назначении контекста, которые могли происходить не одновременно
Версия 0.99.2
Выпущена: 2010-08-04
Новые возможности:
- Значительные улучшения производительности в Booster.Aio
- Значительные улучшения производительности в бэкэнде FastCGI.
- Добавлено больше примеров
Баги:
- Исправлена обработка ответа/статуса в синхронных и асинхронных API.
- Исправлена некорректная обработка чисел в JSON.
- Различные исправления, связанные с платформой.
- Важные исправления багов в обработке загрузки файлов.
Версия 0.99.1
Выпущена: 2010-06-24
- Полная переработка ядра CppCMS, которая ввела:
- Поддержку асинхронного программирования
- Удаление сторонних библиотек из api ядра.
- Стабильный API и ABI во всех основных релизах.
- Улучшена поддержка Ajax с введением JSON-RPC
- Мощный i18n и l10n
- "Родная" поддержка Windows, включая поддержку MSVC.
- И многое другое...
← Поддерживаемые компиляторы и платформы | Наверх | Нумерация версий CppCMS →