<!--toc--> |
### Версия 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: неверный [тест избыточности](http://art-blog.no-ip.info/cppcms/blog/post/74) |
- Исправлено переполнение буфера в urlencode для символов |
выше 127. |
|
Баги: |
|
- Исправлено падение при попытке использовать фильтр base64_urlencode. |
|
### Версия 0.99.5 |
|
_Выпущена:_ 2011-01-01 |
|
|
Новые возможности: |
|
- Новый фильтр [XSS](http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B6%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B8%D0%BD%D0%B3). Это совсем новая и экспериментальная возможность. Позволяет проверять и фильтровать HTML-ввод, приходящий от ненадежного источника, обеспечивая то, что он не содержит вредоносный код. |
Это очень распространенный случай, когда необходима интеграция в инструменты приложений, такие как TinyMCS. |
|
Он основан на белом списке тегов и значениях HTML-атрибутов, разрешенных для включения. |
|
Фильтр и правила фильтрации можно найти в |
[cppcms::xss](/cppcms_ref_v0_99/namespacecppcms_1_1xss.html) namespace. |
|
Сейчас XSS фильтр используется только в CppCMS's wiki. |
Так что можете попытаться обойти его редактируя [Sandbox](http://art-blog.no-ip.info/wikipp/en/page/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. |
- И многое другое... |
|