X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/5d0c56f2bac80277823ad7a6e9b668a1cfb17aee..c02633d77cb05a5deb05440d77b12ccc5bc19b85:/ChangeLog

diff --git a/ChangeLog b/ChangeLog
index a8920223..0879a49e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,93 +1,107 @@
 General:
-	* Чистка кода.
+    * Стандартизован стиль именования параметров: CamelCase.
+    * В документации к XML-RPC API добавлено пропущенное поле 'password' для
+    метода chg_admin.
+    * Приведена в порядок работа с сигналами. Теперь сигналы перехватываются
+    только из основного потока и перехватываются корректно, в отличие от
+    старых версий. Для остановки плагинов больше не используется pthread_kill,
+    т.к. плагины его все равно теперь игнорируют.
+    * Устаревшая функция usleep заменена на более продвинутую функцию
+    nanosleep в соответствии с POSIX.1-2008.
+    * Удалены странные, непонятные и ненужные комментарии в коде.
+    * Некоторые типы данных сделаны более "строгими".
+    * Добавлено несколько дополнительных проверочных утверждений.
+    * Упрощено API плагинов.
+    * Удален странный код.
+    * Большая часть кода приведена в соответствие с рекомендациями Скотта
+    Мейерса.
+    * Вычищена куча кода. Но это еще не конец.
+    * Исправлена ошибка установки в случае наличия предыдущей установки.
+    * Добавлена поддержка FreeBSD9.
+    * Структура базы для Firebird больше не создается при make install-data,
+    нужно создавать вручную.
 
 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).
+    * Существенно переработана система сборки. Теперь она не сорит
+    заголовочными файлами и библотеками там где не нужно.
+    * Убрана зависимость от bash.
 
 Libraries:
-	* При сборке библиотеки авторизатора ia_auth_c используется корректная
-	библиотека потоков (определенная скриптом build) вместо жестко
-	прописанной -lpthread.
-	* Исправлена ошибка приводящая к Segmentation fault при использовании
-	библиотеки авторизатора ia_auth_c без указания всех callback-ов.
+    * Использование динамических внутренних библиотек признано
+    нецелесообразным, возвращены старые-добрые a-файлы (последний раз они были
+    в версии 2.401).
+    * Добавлена специализация x2str для беззнаковых типов.
+    * Библиотеки crypto.lib и scriptexecuter.lib теперь содержат 100% кода на
+    языке C!
+    * Исправлена работа библиотеки ia.lib на платформах с Big Endian.
 
 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 при
-	подключении к СУБД.
-
-rlm_stg:
-	* Исправлена ошибка сборки на FreeBSD 4.6 с gcc-2.95.3.
-	* Исправлена ошибка сборки на FreeBSD 8.0 с gcc-4.2.1.
-
-rscriptd:
-	* Добавлено создание и удаление pid-файла.
-	* Обновлен протокол работы с mod_remote_script.
-	* Оптимизация (без потерь отрабатывает одновременное подключение 3000
-		пользователей).
-
-sgauth:
-	* Исправлена ошибка сборки на FreeBSD 4 (использование библиотеки
-		потоков -lc_r).
-	* Исправлена ошибка генерации css-файла.
-
-sgconf:
-	* Исправлена ошибка сборки на FreeBSD (добавлены пути поиска
-		заголовочных файлов /usr/local/include и библиотек
-		/usr/local/lib).
+    * В плагин для 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:
-	* Исправлена работа параметра FullFee для "замороженных"
-	пользователей.
-	* Исправлена ошибка приводящая (в некоторых случаях) к обнулению полей
-	статистики пользователя при изменении параметров посредством
-	sgconf/sgconfig.
-	* Поля cash и freeMb теперь используются напрямую при подсчете трафика
-	(вместо интерфейса свойств), что позволяет немного уменьшить нагрузку
-	на процессор и исправить неприятный баг (обновление времени последнего
-		изменения счета при подсчете трафика).
-	* Начаты работы по изменению подсистемы событий. В частности,
-	реализованы асинхронные вызовы нотификаторов что позволяет избежать
-	deadlock в некоторых ситуациях. Создан обобщенный интерфейс
-	отложенного вызова методов классов.
-	* В файл stargazer.conf для FreeBSD добавлены параметры FullFee и
-	ShowFeeInCash с описанием.
-	* При отключении пользователя в лог теперь пишется состояние параметра
-	freeMb и причина отключения (поддерживается файловой БД и PostgreSQL с
-		обновлением структуры базы).
-	* Увеличена точность подсчета стоимости трафика на границе порога и
-	бесплатных мегабайт. Ранее трафик на граниче порога и бесплатных
-	мегабайт считался по цене допорогового, теперь он делится на 2
-	допороговый и послепороговый. Это особенно ощутимо при использовании
-	NetFlow.
-	* В файле конфигурации обнаружена (!) поддержка директивы IncludeFile.
+    * Исправлена ошибка приводящая к неправильному сообщению о причине
+    отключения.
+    * Убрано бесполезное изменение значения nice для процесса.
+    * Добавлены три возможных сценария снятия абонплаты:
+    	- обычный;
+	- не снимать абонплату при отрицательном балансе;
+	- не снимать абонплату ели баланс при этом станет отрицательным.
+    * Добавлен параметр ReconnectOnTariffChange указывающий системе выполнять
+    переподключение абонента при изменении тарифа.
+    * Добавлена "подписка" на добавление и удаление тарифов.
+    * Управление авторизацией абонентов перемещено из класса USER в класс
+    USERS что позволило избавиться от дедлока в определенных условиях.
+    * Устранена возможность выгрузки активного плагина. Минус одно
+    потенциальное падение с SIGSEGV и General Protection Fault!