]> git.stg.codes - stg.git/blobdiff - ChangeLog
Fix build on Darwin.
[stg.git] / ChangeLog
index 567a76a39a786b5db909c7d0139531cb7ec88c4d..0879a49eeea84ed259105023a2e9751f9c67f615 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 General:
-       * Уменьшена зависимость между заголовочными файлами.
-       * Проведен рефакторинг некоторых центральных классов.
-       * Добавлены unit-тесты.
-       * Добавлена документация на API XML-RPC.
-       * Добавлены диаграммы взаимодействия клиента и сервера в протоколе
-       авторизатора.
-       * В примеры скриптов добавлен shabang.
-       * Добавлена сторонняя утилита sgconf_xml для непосредственного доступа
-       к протоколу XML конфигуратора.
-       * Чистка кода.
+    * Стандартизован стиль именования параметров: CamelCase.
+    * В документации к XML-RPC API добавлено пропущенное поле 'password' для
+    метода chg_admin.
+    * Приведена в порядок работа с сигналами. Теперь сигналы перехватываются
+    только из основного потока и перехватываются корректно, в отличие от
+    старых версий. Для остановки плагинов больше не используется pthread_kill,
+    т.к. плагины его все равно теперь игнорируют.
+    * Устаревшая функция usleep заменена на более продвинутую функцию
+    nanosleep в соответствии с POSIX.1-2008.
+    * Удалены странные, непонятные и ненужные комментарии в коде.
+    * Некоторые типы данных сделаны более "строгими".
+    * Добавлено несколько дополнительных проверочных утверждений.
+    * Упрощено API плагинов.
+    * Удален странный код.
+    * Большая часть кода приведена в соответствие с рекомендациями Скотта
+    Мейерса.
+    * Вычищена куча кода. Но это еще не конец.
+    * Исправлена ошибка установки в случае наличия предыдущей установки.
+    * Добавлена поддержка FreeBSD9.
+    * Структура базы для Firebird больше не создается при make install-data,
+    нужно создавать вручную.
 
 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!