X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/5d0c56f2bac80277823ad7a6e9b668a1cfb17aee..daded9039931526b36f5794ae7ea4f8536ccbec6:/ChangeLog?ds=sidebyside diff --git a/ChangeLog b/ChangeLog index a8920223..567a76a3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,93 +1,80 @@ General: + * Уменьшена зависимость между заголовочными файлами. + * Проведен рефакторинг некоторых центральных классов. + * Добавлены unit-тесты. + * Добавлена документация на API XML-RPC. + * Добавлены диаграммы взаимодействия клиента и сервера в протоколе + авторизатора. + * В примеры скриптов добавлен shabang. + * Добавлена сторонняя утилита sgconf_xml для непосредственного доступа + к протоколу XML конфигуратора. * Чистка кода. Compilation: - * Флаги -W и -Wall добавляются при компиляции в отладочном режиме. В - релизном режиме эти флаги не добавляются. - * Развязаны зависимости библиотек - поддерживается параллельная - компиляция (make -j2 и более). - * Добавлена поддержка FreeBSD 8. + * Для компоновки теперь используется переменная $(CXX). + * При сборке библиотек DEFS теперь добавляются к CXXFLAGS. + * Убрана не используемая при сборке библиотек переменная + ADD_CXXFLAGS_1. + * Переменная ADD_DEFS_1 переименована в ADD_DEFS. + * Чистка кода системы сборки. + Libraries: - * При сборке библиотеки авторизатора ia_auth_c используется корректная - библиотека потоков (определенная скриптом build) вместо жестко - прописанной -lpthread. - * Исправлена ошибка приводящая к Segmentation fault при использовании - библиотеки авторизатора ia_auth_c без указания всех callback-ов. + * Искуственные "падения" в библиотеке ia_auth_c заменены на + проверочные утверждения. + * Добавлена специализация функций x2str для типа unsigned long + (актуально для 64-битных систем). Plugins: - * В mod_auth_ia исправлена ошибка приводящая к некорректному - определению длины текста сообщения на платформах с Big Endian. - * В плагинах mod_auth_ia, mod_conf_sg, mod_cap_ether, mod_cap_nf, - mod_radius, mod_remote_script оптимизирована логика работы с сетью. - Используется select с блокирующим чтением, что позволяет более - аккуратно останавливать работу плагинов. - * В mod_conf_sg исправлена ошибка обработки XML содержащего - незакодированные символы кирилицы (например в логине пользователя). - Это приводило к необычным эффектам при работе с модулем пополнения по - картам, но никаких разрушительных действий при этом не происходило. - * В mod_remote_script обновлена версия протокола для работы с - rscriptd. - * В mod_remote_script добавлена поддержка работы с множеством роутеров - для одной сети. В файле с описанием они разделяются пробелами. - * Исправлена работа с мьютексами в mod_ping (ранее они просто не - работали). - * В mod_store_files добавлен пользовательский log2 который дублирует - log но дополнительно журналирует параметр freeMb и причину отключения - при отключении пользователя. - * В mod_store_files исправлена ошибка разбора структуры файлов - приводящая к краху без сообщения об ошибке при отсутствии символа '=' - в строке с параметром. Теперь при этом выводится сообщение об ошибке. - * В mod_store_postgresql добавлена поддержка журналирования freeMb и - причины отключения. Обратная совместимость со старой базой сохранена. - * В mod_store_postgresql исправлена ошибка сохранения поля phone. - * В mod_store_postgresql исправлена ошибка приводящая к обнулению - данных статистики при переходе на новый месяц. - * В mod_store_firebird добавлена установка client encoding при - подключении к СУБД. + * Исправлено изменение параметра passive через XML RPC. + * Добавлена возможность менять кредит и тариф пользователя через XML + RPC при изменении его параметров. + * При записи IP-адреса админа который произвел изменение в плагине для + PostgreSQL исправлена маска: была /24 стала /32. + * Исправлено неэффективное вычитываение данных о трафике по + направлениям в плагинах БД для файлов и MySQL. + * Исправлены зависимости по библиотекам для разных плагинов (ошибка + возникла после разделения common.lib и crypto.lib). + * Исправлены ошибки приводящая к неработоспособности плагина БД для + PostgreSQL пр работе с последней версией БД. + * В плагине файловой БД изменен принцип записи новых данных. Теперь + запись производится в новый файл, а после ее успешного завершения + происходит быстрое переименование. Это позволит снизить вероятность + "порчи" базы при нештатном останове сервера. + * Исправлена ошибка приводящая к неправильному подсчету трафика при + использовании плагина для перехвата трафика через divert-сокеты. Ранее + решалась непонятным мне шаманством, но все оказалось очень банально. rlm_stg: - * Исправлена ошибка сборки на FreeBSD 4.6 с gcc-2.95.3. - * Исправлена ошибка сборки на FreeBSD 8.0 с gcc-4.2.1. - -rscriptd: - * Добавлено создание и удаление pid-файла. - * Обновлен протокол работы с mod_remote_script. - * Оптимизация (без потерь отрабатывает одновременное подключение 3000 - пользователей). - -sgauth: - * Исправлена ошибка сборки на FreeBSD 4 (использование библиотеки - потоков -lc_r). - * Исправлена ошибка генерации css-файла. - -sgconf: - * Исправлена ошибка сборки на FreeBSD (добавлены пути поиска - заголовочных файлов /usr/local/include и библиотек - /usr/local/lib). + * Модифицирован для работы с FreeRADIUS 2.*. stargazer: - * Исправлена работа параметра FullFee для "замороженных" - пользователей. - * Исправлена ошибка приводящая (в некоторых случаях) к обнулению полей - статистики пользователя при изменении параметров посредством - sgconf/sgconfig. - * Поля cash и freeMb теперь используются напрямую при подсчете трафика - (вместо интерфейса свойств), что позволяет немного уменьшить нагрузку - на процессор и исправить неприятный баг (обновление времени последнего - изменения счета при подсчете трафика). - * Начаты работы по изменению подсистемы событий. В частности, - реализованы асинхронные вызовы нотификаторов что позволяет избежать - deadlock в некоторых ситуациях. Создан обобщенный интерфейс - отложенного вызова методов классов. - * В файл stargazer.conf для FreeBSD добавлены параметры FullFee и - ShowFeeInCash с описанием. - * При отключении пользователя в лог теперь пишется состояние параметра - freeMb и причина отключения (поддерживается файловой БД и PostgreSQL с - обновлением структуры базы). - * Увеличена точность подсчета стоимости трафика на границе порога и - бесплатных мегабайт. Ранее трафик на граниче порога и бесплатных - мегабайт считался по цене допорогового, теперь он делится на 2 - допороговый и послепороговый. Это особенно ощутимо при использовании - NetFlow. - * В файле конфигурации обнаружена (!) поддержка директивы IncludeFile. + * Исправлена ошибка приводящая к "перепутыванию" полей userdata. + * Исправлена ошибка приводящая к тому что при вызове OnChange в него + не попадали IP-адрес и логин админа по инициативе которого было + проведено изменение. + * Исправлена ошибка приводящая к кратковременному подключению + пользователя при изменении его IP-адреса в случае если он до этого не + был подключен. + * Исправлена проблема приводящая к не сниманию абонплаты у + пользователя если он был "заморожен" ранее. + * Исправлена ошибка приводящая к появлению сообщения о "заморозке" + пользователя при старте Stargazer'а. Ну и снятию с него денег если так + прописано в тарифе. + * Исправлена ошибка приводящая к не обновлению данных о cash и + freeMb в конфигураторе. + * Изменен принцип хранения детальной статистики внутри системы. + * Изменен способ доступа к полям заголовка IP-пакета (он стал более + безопасным и очевидным). + * При получении списка админов из БД добавлено игнорирование + "@stargazer". + * Оптимизирована работа классификатора трафика на случай массивного + port-scan (ну и вобще для подобного вида трафика). + * В скрипт создания структуры БД для PostgreSQL добавлен "системный" + админ с логином "@stargazer" без возможности доступа извне и без прав. + Необходим для журналирования изменений инициированных системой. + * Конфигурационный файл разбит на основной конфиг и конфиги модулей с + использованием диррективы IncludeFile (а-ля Apache). Старый формат + тоже поддерживается. + * Обновлен init.d-файл для Gentoo. + * Изменена версия дабі не вводить в заблуждение пользователей :).