]> git.stg.codes - stg.git/blobdiff - ChangeLog
Add instrumentation.
[stg.git] / ChangeLog
index 5ff160f0d7367e9151f750fb34c9a2cbce8e68b4..0879a49eeea84ed259105023a2e9751f9c67f615 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 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!