General:
- * Уменьшена зависимость между заголовочными файлами.
- * Проведен рефакторинг некоторых центральных классов.
- * Добавлены unit-тесты.
- * Добавлена документация на API XML-RPC.
- * Добавлены диаграммы взаимодействия клиента и сервера в протоколе
- авторизатора.
- * В примеры скриптов добавлен shabang.
- * Добавлена сторонняя утилита sgconf_xml для непосредственного доступа
- к протоколу XML конфигуратора.
- * Чистка кода.
+ * Стандартизован стиль именования параметров: SnakeCase.
+ * В документации к XML-RPC API добавлено пропущенное поле 'password' для
+ метода chg_admin.
+ * Приведена в порядок работа с сигналами. Теперь сигналы перехватываются
+ только из основного потока и перехватываются корректно, в отличие от
+ старых версий. Для остановки плагинов больше не используется pthread_kill,
+ т.к. плагины его все равно теперь игнорируют.
+ * Устаревшая функция usleep заменена на более продвинутую функцию
+ nanosleep в соответствии с POSIX.1-2008.
+ * Удалены странные, непонятные и ненужные комментарии в коде.
+ * Некоторые типы данных сделаны более "строгими".
+ * Добавлено несколько дополнительных проверочных утверждений.
+ * Упрощено API плагинов.
+ * Удален странный код.
+ * Большая часть кода приведена в соответствие с рекомендациями Скотта
+ Мейерса.
+ * Вычищена куча кода. Но это еще не конец.
+ * Исправлена ошибка установки в случае наличия предыдущей установки.
+ * Добавлена поддержка FreeBSD9.
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).
+ * Существенно переработана система сборки. Теперь она не сорит
+ заголовочными файлами и библотеками там где не нужно.
+ * Убрана зависимость от bash.
Libraries:
- * Искуственные "падения" в библиотеке ia_auth_c заменены на
- проверочные утверждения.
- * Добавлена специализация функций x2str для типа unsigned long
- (актуально для 64-битных систем).
+ * Использование динамических внутренних библиотек признано
+ нецелесообразным, возвращены старые-добрые a-файлы (последний раз они были
+ в версии 2.401).
+ * Добавлена специализация x2str для беззнаковых типов.
+ * Библиотеки crypto.lib и scriptexecuter.lib теперь содержат 100% кода на
+ языке C!
+ * Исправлена работа библиотеки ia.lib на платформах с Big Endian.
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 при останове!
+ * Плагин remote_script больше не сообщает об ошибке и позволяет системе
+ запуститься если файл привязки подсетей пуст.
+ * Пересмотрен порядок загрузки плагинов.
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!