General:
- * В init.d-скрипт для Gentoo добавлено явное указание PID-файла.
- * Исправлена синтаксическая ошибка в примере скрипта OnDisconnect для
- реализации связки шейпера, VPN и FreeRADIUS (спасибо Алексею Осипову
- за патч).
- * В каталоге conf-enabled.d симлинки теперь ссылаются по относительному
- пути (спасибо Алексею Осипову за патч).
- * Конфигурационные файлы переведены на английский язык.
- * В примеры скриптов добавлен шабанг.
+ * Стандартизован стиль именования параметров: SnakeCase.
+ * В документации к XML-RPC API добавлено пропущенное поле 'password' для
+ метода chg_admin.
+ * Приведена в порядок работа с сигналами. Теперь сигналы перехватываются
+ только из основного потока и перехватываются корректно, в отличие от
+ старых версий. Для остановки плагинов больше не используется pthread_kill,
+ т.к. плагины его все равно теперь игнорируют.
+ * Устаревшая функция usleep заменена на более продвинутую функцию
+ nanosleep в соответствии с POSIX.1-2008.
+ * Удалены странные, непонятные и ненужные комментарии в коде.
+ * Некоторые типы данных сделаны более "строгими".
+ * Добавлено несколько дополнительных проверочных утверждений.
+ * Упрощено API плагинов.
+ * Удален странный код.
+ * Большая часть кода приведена в соответствие с рекомендациями Скотта
+ Мейерса.
+ * Вычищена куча кода. Но это еще не конец.
+ * Исправлена ошибка установки в случае наличия предыдущей установки.
+ * Добавлена поддержка FreeBSD9.
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!