X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/5d0c56f2bac80277823ad7a6e9b668a1cfb17aee..63a2f64ceecf37a319d20c4125f5f80483e013e8:/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!