X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/f9d2f1ad361cab122f01ff5b1d0c537c327f8427..581728513ab4c81fd2943f3ee6f43d8f8682e4e7:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 567a76a3..971c2f2e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,80 +1,101 @@ General: - * Уменьшена зависимость между заголовочными файлами. - * Проведен рефакторинг некоторых центральных классов. - * Добавлены unit-тесты. - * Добавлена документация на API XML-RPC. - * Добавлены диаграммы взаимодействия клиента и сервера в протоколе - авторизатора. - * В примеры скриптов добавлен shabang. - * Добавлена сторонняя утилита sgconf_xml для непосредственного доступа - к протоколу XML конфигуратора. - * Чистка кода. + * Стандартизован стиль именования параметров: SnakeCase. + * В документации к XML-RPC API добавлено пропущенное поле 'password' для + метода chg_admin. + * Приведена в порядок работа с сигналами. Теперь сигналы перехватываются + только из основного потока и перехватываются корректно, в отличие от + старых версий. Для остановки плагинов больше не используется pthread_kill, + т.к. плагины его все равно теперь игнорируют. + * Устаревшая функция usleep заменена на более продвинутую функцию + nanosleep в соответствии с POSIX.1-2008. + * Удалены странные, непонятные и ненужные комментарии в коде. + * Некоторые типы данных сделаны более "строгими". + * Добавлено несколько дополнительных проверочных утверждений. + * Упрощено API плагинов. + * Удален странный код. + * Большая часть кода приведена в соответствие с рекомендациями Скотта + Мейерса. + * Вычищена куча кода. Но это еще не конец. Compilation: - * Для компоновки теперь используется переменная $(CXX). - * При сборке библиотек DEFS теперь добавляются к CXXFLAGS. - * Убрана не используемая при сборке библиотек переменная - ADD_CXXFLAGS_1. - * Переменная ADD_DEFS_1 переименована в ADD_DEFS. - * Чистка кода системы сборки. - + * При проверке условий сборки теперь используются переменные CC и CXX + вместо явного вызова gcc/g++. + * Если переменные CC и CXX не определены то используются gcc и g++ по + умолчанию. + * Добавлено разделение флагов на CFLAGS и CXXFLAGS. Теперь релиз + рекомендуется собирать так: + $ CFLAGS="-O2" CXXFLAGS="${CFLAGS}" ./build + * Флаг компиляторы -g3 заменен на -ggdb3 (все равно его поддерживает + и gcc, и clang и ekopath). + * Существенно переработана система сборки. Теперь она не сорит + заголовочными файлами и библотеками там где не нужно. Libraries: - * Искуственные "падения" в библиотеке ia_auth_c заменены на - проверочные утверждения. - * Добавлена специализация функций x2str для типа unsigned long - (актуально для 64-битных систем). + * Использование динамических внутренних библиотек признано + нецелесообразным, возвращены старые-добрые a-файлы (последний раз они были + в версии 2.401). + * Добавлена специализация x2str для беззнаковых типов. + * Библиотеки crypto.lib и scriptexecuter.lib теперь содержат 100% кода на + языке C! Plugins: - * Исправлено изменение параметра passive через XML RPC. - * Добавлена возможность менять кредит и тариф пользователя через XML - RPC при изменении его параметров. - * При записи IP-адреса админа который произвел изменение в плагине для - PostgreSQL исправлена маска: была /24 стала /32. - * Исправлено неэффективное вычитываение данных о трафике по - направлениям в плагинах БД для файлов и MySQL. - * Исправлены зависимости по библиотекам для разных плагинов (ошибка - возникла после разделения common.lib и crypto.lib). - * Исправлены ошибки приводящая к неработоспособности плагина БД для - PostgreSQL пр работе с последней версией БД. - * В плагине файловой БД изменен принцип записи новых данных. Теперь - запись производится в новый файл, а после ее успешного завершения - происходит быстрое переименование. Это позволит снизить вероятность - "порчи" базы при нештатном останове сервера. - * Исправлена ошибка приводящая к неправильному подсчету трафика при - использовании плагина для перехвата трафика через divert-сокеты. Ранее - решалась непонятным мне шаманством, но все оказалось очень банально. - -rlm_stg: - * Модифицирован для работы с FreeRADIUS 2.*. + * В плагин для PostgreSQL добавлен параметр retries указывающий количество + повторных попыток установить соединение с БД. + * Оптимизирована логика работы RemoveDir - теперь он удаляет ваши каталоги + на 50% быстрее! + * Унифицированы имена параметров плагинов для работы с БД: Server, + Database, User, Password. Старые имена поддерживаются, но объявлены + устаревшими. В будущем будут удалены. + * Добавлен плагин для работы с snmpd по протоколу SMUX. Позволяет + производить мониторинг некоторых параметров системы: + - общее количество абонентов; + - количество абонентов online; + - количество авторизованных абонентов; + - количество абонентов с флагом alwaysOnline; + - количество абонентов с отрицательным балансом; + - количество абонентов с отключенной детальной статистикой; + - количество отключенных ("disabled") абонентов; + - количество "замороженных" ("passive") абонентов; + - количество абонентов с положительным кредитом; + - количество абонентов с положительным предоплаченным трафиком; + - количество абонентов меняющих тарифный план в следующем месяце; + - общее количество тарифов; + - количество абонентов потарифно; + - общее количество админов; + - общее количество сервисов; + - общее количество корпораций; + - общее количество правил классификации трафика. + * Добавлен шаблонный класс PLUGIN_CREATOR для универсального удобного + порождения плагинов. + * При немедленном изменении тарифа через XML-RPC API добавлен "сброс" + отложенного тарифа. + * Возможно исправлена ошибка приводящая к "зависаниям" плагина + конфигуратора. + * Исправлена утечка ресурсов (файловых дескрипторов) в плагине файлового + хранилища. + * Улучшены сообщения об ошибках авторизации, теперь в них на 73.1% больше + информации! + * В плагине для XML-RPC API вынужденно используется внешний сокет для + корректной остановки плагина. Привет мейнтейнерам Debian которые до сих + пор не обновили xmlrpc-c! Зато минус одно падение с SIGSEGV и General + Protection Fault при останове! stargazer: - * Исправлена ошибка приводящая к "перепутыванию" полей userdata. - * Исправлена ошибка приводящая к тому что при вызове OnChange в него - не попадали IP-адрес и логин админа по инициативе которого было - проведено изменение. - * Исправлена ошибка приводящая к кратковременному подключению - пользователя при изменении его IP-адреса в случае если он до этого не - был подключен. - * Исправлена проблема приводящая к не сниманию абонплаты у - пользователя если он был "заморожен" ранее. - * Исправлена ошибка приводящая к появлению сообщения о "заморозке" - пользователя при старте Stargazer'а. Ну и снятию с него денег если так - прописано в тарифе. - * Исправлена ошибка приводящая к не обновлению данных о cash и - freeMb в конфигураторе. - * Изменен принцип хранения детальной статистики внутри системы. - * Изменен способ доступа к полям заголовка IP-пакета (он стал более - безопасным и очевидным). - * При получении списка админов из БД добавлено игнорирование - "@stargazer". - * Оптимизирована работа классификатора трафика на случай массивного - port-scan (ну и вобще для подобного вида трафика). - * В скрипт создания структуры БД для PostgreSQL добавлен "системный" - админ с логином "@stargazer" без возможности доступа извне и без прав. - Необходим для журналирования изменений инициированных системой. - * Конфигурационный файл разбит на основной конфиг и конфиги модулей с - использованием диррективы IncludeFile (а-ля Apache). Старый формат - тоже поддерживается. - * Обновлен init.d-файл для Gentoo. - * Изменена версия дабі не вводить в заблуждение пользователей :). + * Исправлена ошибка приводящая к неправильному сообщению о причине + отключения. + * Убрано бесполезное изменение значения nice для процесса. + * Добавлены три возможных сценария снятия абонплаты: + - обычный; + - не снимать абонплату при отрицательном балансе; + - не снимать абонплату ели баланс при этом станет отрицательным. + * Добавлен параметр ReconnectOnTariffChange указывающий системе выполнять + переподключение абонента при изменении тарифа. + * Добавлена "подписка" на добавление и удаление тарифов. + * Управление авторизацией абонентов перемещено из класса USER в класс + USERS что позволило избавиться от дедлока в определенных условиях. + * Устранена возможность выгрузки активного плагина. Минус одно + потенциальное падение с SIGSEGV и General Protection Fault! + +rscriptd: + * В примере конфигурационного файла для rscriptd путь /etc/rscriptd + заменен на /etc/stargazer.