X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/5278c7fdee4b579b8fc526d05f91a119a61ae2df..3f65f48338f94ea450701d55e7d0fe61826680b8:/ChangeLog diff --git a/ChangeLog b/ChangeLog index df054715..0879a49e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,101 +1,107 @@ General: - * В init.d-скрипт для Gentoo добавлено явное указание PID-файла. - * Исправлена синтаксическая ошибка в примере скрипта OnDisconnect для - реализации связки шейпера, VPN и FreeRADIUS (спасибо Алексею Осипову - за патч). - * В каталоге conf-enabled.d симлинки теперь ссылаются по относительному - пути (спасибо Алексею Осипову за патч). - * Конфигурационные файлы переведены на английский язык. - * В примеры скриптов добавлен шабанг. + * Стандартизован стиль именования параметров: CamelCase. + * В документации к XML-RPC API добавлено пропущенное поле 'password' для + метода chg_admin. + * Приведена в порядок работа с сигналами. Теперь сигналы перехватываются + только из основного потока и перехватываются корректно, в отличие от + старых версий. Для остановки плагинов больше не используется pthread_kill, + т.к. плагины его все равно теперь игнорируют. + * Устаревшая функция usleep заменена на более продвинутую функцию + nanosleep в соответствии с POSIX.1-2008. + * Удалены странные, непонятные и ненужные комментарии в коде. + * Некоторые типы данных сделаны более "строгими". + * Добавлено несколько дополнительных проверочных утверждений. + * Упрощено API плагинов. + * Удален странный код. + * Большая часть кода приведена в соответствие с рекомендациями Скотта + Мейерса. + * Вычищена куча кода. Но это еще не конец. + * Исправлена ошибка установки в случае наличия предыдущей установки. + * Добавлена поддержка FreeBSD9. + * Структура базы для Firebird больше не создается при make install-data, + нужно создавать вручную. Compilation: - * При создании каталогов в процессе установки для них теперь вместо - переменной BIN_MODE используется переменная DIR_MODE с правами на - каталог. - * Добавлены проверки наличия компилятора в системе. - * При построении зависимостей больше не используется флаг -MG. + * При проверке условий сборки теперь используются переменные CC и CXX + вместо явного вызова gcc/g++. + * Если переменные CC и CXX не определены то используются gcc и g++ по + умолчанию. + * Добавлено разделение флагов на CFLAGS и CXXFLAGS. Теперь релиз + рекомендуется собирать так: + $ CFLAGS="-O2" CXXFLAGS="${CFLAGS}" ./build + * Флаг компиляторы -g3 заменен на -ggdb3 (все равно его поддерживает + и gcc, и clang и ekopath). + * Существенно переработана система сборки. Теперь она не сорит + заголовочными файлами и библотеками там где не нужно. + * Убрана зависимость от bash. Libraries: - * В библиотеке dotconfpp убрана глобальная зависимость от заголовочного - файла mempool.h. Теперь для использования этой библиотеки этот - заголовочный файл не требуется. - * Удалены неиспользуемые библиотеки hostallow и common_settings. - * Из названий некоторых библиотек убран префикс stg. - * В библиотеке dotconfpp исправлен механизм сообщения об ошибках. - * В библиотеке common исправлена ошибка в функции Encode12 которая - приводила к неполному кодированию данных если в них встречаются нулевые - байты. + * Использование динамических внутренних библиотек признано + нецелесообразным, возвращены старые-добрые a-файлы (последний раз они были + в версии 2.401). + * Добавлена специализация x2str для беззнаковых типов. + * Библиотеки crypto.lib и scriptexecuter.lib теперь содержат 100% кода на + языке C! + * Исправлена работа библиотеки ia.lib на платформах с Big Endian. Plugins: - * Убрана лишняя зависимость у плагина для MySQL. - * В плагине файлового хранилища добавлен расширенный формат помесячной - статистики (включены все поля из обычной статистики). Классический формат - оставлен для совместимости. - * В плагине XML-RPC API исправлено название поля (disabledetailstat -> - disableddetailstat). - * В плагине XML-RPC API исправлено название поля (tariff -> name). - * В плагине XML-RPC API исправлена ошибка приводящая к невозможности - удаления пользователя. - * Переименованы некоторые методы в XML-RPC API: - tariff_change -> chg_user_tariff; - send_message -> send_user_message; - add_cash -> add_user_cash; - set_cash -> set_user_cash. - * В методе info плагина XML-RPC API убрано кодирование названий полей - dirNames. - * В плагине XML-RPC API добавлено преобразование в юникод полей note, - address, email, group и массива dirNames. + * В плагин для 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 при останове! + * Плагин remote_script больше не сообщает об ошибке и позволяет системе + запуститься если файл привязки подсетей пуст. + * Пересмотрен порядок загрузки плагинов. stargazer: - * Изменен механизм работы с сообщениями пользователям. Теперь Staragzer не - обращается постоянно к базе за списком сообщений перед попыткой отправки, - а читает их при авторизации абонента и далее поддерживает у себя в памяти - актуальный список. - * Исправлена ошибка которая приводила к падению при попытке пользователя - авторизоваться через FreeRADIUS с неправильным логином. - * Исправлена ошибка которая приводила к неправильной передаче параметра - "id" в rscriptd. - * Добавлена возможность удаления из БД сообщений которые не были - отправлены более указанного промежутка времени. - * Исправлена ошибка которая приводила к массовым отключениям в rscriptd - после массовых включений. - * Исправлено преобразование кодировки (добавлена поддержка Украинского и - Белорусского языков). - * Исправлена дата старта таймера в режиме отладки. - * Вызов localtime заменен на реэнтерабельный вызов localtime_r (устраняет - потенциальные проблемы с многопоточностью). - * Внутренние классы разделены на "интерфейсы" (абстрактные базовые классы) - и реализацию. Теперь возможна сборка плагинов out of the box (вне дерева - исходников Stargazer). - * Из имен интерфейсных классов убран префикс BASE_. Так же переименованы - заголовочные файлы с их определением. - * Начат процесс замены usleep на nanosleep. usleep помечена как устаревшая - в POSIX.2001. - * Исправлена ошибка которая иногда приводила к тому что некоторые - подсистемы стартовали до запуска внутреннего таймера, что могло привести - к "зависанию" детальной статистики некоторых пользователей и "утечке" - памяти. - * Добавлена возможность отслеживать состояние поля connected класса USER - посредством нотификаторов. - * Общие заголовочные файлы перемещенны в подкаталог stg и добавлена их - установка в /usr/include/stg. - -rscriptd: - * Исправлена ошибка которая могла привести к "гонкам" (race conditions). - * Удалено ожидание после перехода в режим дэмона. - * Добавлено ожидание освобождения очереди сообщений при останове. - -sgauth: - * Исправлена ошибка из-за которой авторизатор не стартовал (спасибо - Алексею Осипову за патч). - * Исправлено чтение конфигурационного файла по умолчанию (спасибо - Алексею Осипову за патч). - * Добавлена инициализация статистики нулями (если подключиться не удалось - в таблице теперь выводятся нули вместо мусора). - * Исправлено значение параметра ListenWebIP по умолчанию в - конфигурационном файле. - -sgconf: - * Исправлено преобразование кодировки (добавлена поддержка Украинского и - Белорусского языков). - * Добавлен флаг -E для управления тайм-аутом кредита. + * Исправлена ошибка приводящая к неправильному сообщению о причине + отключения. + * Убрано бесполезное изменение значения nice для процесса. + * Добавлены три возможных сценария снятия абонплаты: + - обычный; + - не снимать абонплату при отрицательном балансе; + - не снимать абонплату ели баланс при этом станет отрицательным. + * Добавлен параметр ReconnectOnTariffChange указывающий системе выполнять + переподключение абонента при изменении тарифа. + * Добавлена "подписка" на добавление и удаление тарифов. + * Управление авторизацией абонентов перемещено из класса USER в класс + USERS что позволило избавиться от дедлока в определенных условиях. + * Устранена возможность выгрузки активного плагина. Минус одно + потенциальное падение с SIGSEGV и General Protection Fault!