General:
- * Чистка кода.
+ * Стандартизован стиль именования параметров: SnakeCase.
+ * В документации к XML-RPC API добавлено пропущенное поле 'password' для
+ метода chg_admin.
+ * Приведена в порядок работа с сигналами. Теперь сигналы перехватываются
+ только из основного потока и перехватываются корректно, в отличие от
+ старых версий. Для остановки плагинов больше не используется pthread_kill,
+ т.к. плагины его все равно теперь игнорируют.
+ * Устаревшая функция usleep заменена на более подвинутую функцию nanosleep
+ в соответствии с POSIX.1-2008.
+ * Удалены странные, непонятные и ненужные комментарии в коде.
+ * Некоторые типы данных сделаны более "строгими".
+ * Добавлено несколько дополнительных проверочных утверждений.
+ * Упрощено API плагинов.
+ * Удален странный код.
+ * Большая часть кода приведена в соответствие с рекомендациями Скотта
+ Мейерса.
+ * Вычищена куча кода. Но это еще не конец.
Compilation:
- * Флаги -W и -Wall добавляются при компиляции в отладочном режиме. В
- релизном режиме эти флаги не добавляются.
- * Развязаны зависимости библиотек - поддерживается параллельная
- компиляция (make -j2 и более).
- * Добавлена поддержка FreeBSD 8.
+ * При проверке условий сборки теперь используются переменные CC и CXX
+ вместо явного вызова gcc/g++.
+ * Если переменные CC и CXX не определены то используются gcc и g++ по
+ умолчанию.
+ * Добавлено разделение флагов на CFLAGS и CXXFLAGS. Теперь релиз
+ рекомендуется собирать так:
+ $ CFLAGS="-O2" CXXFLAGS="${CFLAGS}" ./build
+ * Флаг компиляторы -g3 заменен на -ggdb3 (все равно его поддерживает и gcc
+ и clang и ekopath).
+ * Существенно переработана система сборки. Теперь она не сорит
+ заголовочными файлами и библотеками там где не нужно.
Libraries:
- * При сборке библиотеки авторизатора ia_auth_c используется корректная
- библиотека потоков (определенная скриптом build) вместо жестко
- прописанной -lpthread.
- * Исправлена ошибка приводящая к Segmentation fault при использовании
- библиотеки авторизатора ia_auth_c без указания всех callback-ов.
+ * Использование динамических внутренних библиотек признано
+ нецелесообразным, возвращены старые-добрые a-файлы (последний раз они были
+ в версии 2.401).
+ * Добавлена специализация x2str для беззнаковых типов.
+ * Библиотеки crypto.lib и scriptexecuter.lib теперь содержат 100% кода на
+ языке C!
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 при
- подключении к СУБД.
+ * В плагин для 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 при останове!
-rlm_stg:
- * Исправлена ошибка сборки на FreeBSD 4.6 с gcc-2.95.3.
- * Исправлена ошибка сборки на FreeBSD 8.0 с gcc-4.2.1.
+stargazer:
+ * Исправлена ошибка приводящая к неправильному сообщению о причине
+ отключения.
+ * Убрано бесполезное изменение значения nice для процесса.
+ * Добавлены три возможных сценария снятия абонплаты:
+ - обычный;
+ - не снимать абонплату при отрицательном балансе;
+ - не снимать абонплату ели баланс при этом станет отрицательным.
+ * Добавлен параметр ReconnectOnTariffChange указывающий системе выполнять
+ переподключение абонента при изменении тарифа.
+ * Добавлена "подписка" на добавление и удаление тарифов.
+ * Управление авторизацией абонентов перемещено из класса USER в класс
+ USERS что позволило избавиться от дедлока в определенных условиях.
+ * Устранена возможность выгрузки активного плагина. Минус одно
+ потенциальное падение с SIGSEGV и General Protection Fault!
rscriptd:
- * Добавлено создание и удаление pid-файла.
- * Обновлен протокол работы с mod_remote_script.
- * Оптимизация (без потерь отрабатывает одновременное подключение 3000
- пользователей).
-
-sgauth:
- * Исправлена ошибка сборки на FreeBSD 4 (использование библиотеки
- потоков -lc_r).
- * Исправлена ошибка генерации css-файла.
-
-sgconf:
- * Исправлена ошибка сборки на FreeBSD (добавлены пути поиска
- заголовочных файлов /usr/local/include и библиотек
- /usr/local/lib).
-
-stargazer:
- * Исправлена работа параметра FullFee для "замороженных"
- пользователей.
- * Исправлена ошибка приводящая (в некоторых случаях) к обнулению полей
- статистики пользователя при изменении параметров посредством
- sgconf/sgconfig.
- * Поля cash и freeMb теперь используются напрямую при подсчете трафика
- (вместо интерфейса свойств), что позволяет немного уменьшить нагрузку
- на процессор и исправить неприятный баг (обновление времени последнего
- изменения счета при подсчете трафика).
- * Начаты работы по изменению подсистемы событий. В частности,
- реализованы асинхронные вызовы нотификаторов что позволяет избежать
- deadlock в некоторых ситуациях. Создан обобщенный интерфейс
- отложенного вызова методов классов.
- * В файл stargazer.conf для FreeBSD добавлены параметры FullFee и
- ShowFeeInCash с описанием.
- * При отключении пользователя в лог теперь пишется состояние параметра
- freeMb и причина отключения (поддерживается файловой БД и PostgreSQL с
- обновлением структуры базы).
- * Увеличена точность подсчета стоимости трафика на границе порога и
- бесплатных мегабайт. Ранее трафик на граниче порога и бесплатных
- мегабайт считался по цене допорогового, теперь он делится на 2
- допороговый и послепороговый. Это особенно ощутимо при использовании
- NetFlow.
- * В файле конфигурации обнаружена (!) поддержка директивы IncludeFile.
+ * В примере конфигурационного файла для rscriptd путь /etc/rscriptd
+ заменен на /etc/stargazer.