General:
+ * Уменьшена зависимость между заголовочными файлами.
+ * Проведен рефакторинг некоторых центральных классов.
+ * Добавлены unit-тесты.
+ * Добавлена документация на API XML-RPC.
+ * Добавлены диаграммы взаимодействия клиента и сервера в протоколе
+ авторизатора.
+ * В примеры скриптов добавлен shabang.
+ * Добавлена сторонняя утилита sgconf_xml для непосредственного доступа
+ к протоколу XML конфигуратора.
* Чистка кода.
Compilation:
- * Флаги -W и -Wall добавляются при компиляции в отладочном режиме. В
- релизном режиме эти флаги не добавляются.
- * Развязаны зависимости библиотек - поддерживается параллельная
- компиляция (make -j2 и более).
- * Добавлена поддержка FreeBSD 8.
+ * Для компоновки теперь используется переменная $(CXX).
+ * При сборке библиотек DEFS теперь добавляются к CXXFLAGS.
+ * Убрана не используемая при сборке библиотек переменная
+ ADD_CXXFLAGS_1.
+ * Переменная ADD_DEFS_1 переименована в ADD_DEFS.
+ * Чистка кода системы сборки.
+
Libraries:
- * При сборке библиотеки авторизатора ia_auth_c используется корректная
- библиотека потоков (определенная скриптом build) вместо жестко
- прописанной -lpthread.
- * Исправлена ошибка приводящая к Segmentation fault при использовании
- библиотеки авторизатора ia_auth_c без указания всех callback-ов.
+ * Искуственные "падения" в библиотеке ia_auth_c заменены на
+ проверочные утверждения.
+ * Добавлена специализация функций x2str для типа unsigned long
+ (актуально для 64-битных систем).
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 при
- подключении к СУБД.
+ * Исправлено изменение параметра passive через XML RPC.
+ * Добавлена возможность менять кредит и тариф пользователя через XML
+ RPC при изменении его параметров.
+ * При записи IP-адреса админа который произвел изменение в плагине для
+ PostgreSQL исправлена маска: была /24 стала /32.
+ * Исправлено неэффективное вычитываение данных о трафике по
+ направлениям в плагинах БД для файлов и MySQL.
+ * Исправлены зависимости по библиотекам для разных плагинов (ошибка
+ возникла после разделения common.lib и crypto.lib).
+ * Исправлены ошибки приводящая к неработоспособности плагина БД для
+ PostgreSQL пр работе с последней версией БД.
+ * В плагине файловой БД изменен принцип записи новых данных. Теперь
+ запись производится в новый файл, а после ее успешного завершения
+ происходит быстрое переименование. Это позволит снизить вероятность
+ "порчи" базы при нештатном останове сервера.
+ * Исправлена ошибка приводящая к неправильному подсчету трафика при
+ использовании плагина для перехвата трафика через divert-сокеты. Ранее
+ решалась непонятным мне шаманством, но все оказалось очень банально.
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).
+ * Модифицирован для работы с FreeRADIUS 2.*.
stargazer:
- * Исправлена работа параметра FullFee для "замороженных"
- пользователей.
- * Исправлена ошибка приводящая (в некоторых случаях) к обнулению полей
- статистики пользователя при изменении параметров посредством
- sgconf/sgconfig.
- * Поля cash и freeMb теперь используются напрямую при подсчете трафика
- (вместо интерфейса свойств), что позволяет немного уменьшить нагрузку
- на процессор и исправить неприятный баг (обновление времени последнего
- изменения счета при подсчете трафика).
- * Начаты работы по изменению подсистемы событий. В частности,
- реализованы асинхронные вызовы нотификаторов что позволяет избежать
- deadlock в некоторых ситуациях. Создан обобщенный интерфейс
- отложенного вызова методов классов.
- * В файл stargazer.conf для FreeBSD добавлены параметры FullFee и
- ShowFeeInCash с описанием.
- * При отключении пользователя в лог теперь пишется состояние параметра
- freeMb и причина отключения (поддерживается файловой БД и PostgreSQL с
- обновлением структуры базы).
- * Увеличена точность подсчета стоимости трафика на границе порога и
- бесплатных мегабайт. Ранее трафик на граниче порога и бесплатных
- мегабайт считался по цене допорогового, теперь он делится на 2
- допороговый и послепороговый. Это особенно ощутимо при использовании
- NetFlow.
- * В файле конфигурации обнаружена (!) поддержка директивы IncludeFile.
+ * Исправлена ошибка приводящая к "перепутыванию" полей userdata.
+ * Исправлена ошибка приводящая к тому что при вызове OnChange в него
+ не попадали IP-адрес и логин админа по инициативе которого было
+ проведено изменение.
+ * Исправлена ошибка приводящая к кратковременному подключению
+ пользователя при изменении его IP-адреса в случае если он до этого не
+ был подключен.
+ * Исправлена проблема приводящая к не сниманию абонплаты у
+ пользователя если он был "заморожен" ранее.
+ * Исправлена ошибка приводящая к появлению сообщения о "заморозке"
+ пользователя при старте Stargazer'а. Ну и снятию с него денег если так
+ прописано в тарифе.
+ * Исправлена ошибка приводящая к не обновлению данных о cash и
+ freeMb в конфигураторе.
+ * Изменен принцип хранения детальной статистики внутри системы.
+ * Изменен способ доступа к полям заголовка IP-пакета (он стал более
+ безопасным и очевидным).
+ * При получении списка админов из БД добавлено игнорирование
+ "@stargazer".
+ * Оптимизирована работа классификатора трафика на случай массивного
+ port-scan (ну и вобще для подобного вида трафика).
+ * В скрипт создания структуры БД для PostgreSQL добавлен "системный"
+ админ с логином "@stargazer" без возможности доступа извне и без прав.
+ Необходим для журналирования изменений инициированных системой.
+ * Конфигурационный файл разбит на основной конфиг и конфиги модулей с
+ использованием диррективы IncludeFile (а-ля Apache). Старый формат
+ тоже поддерживается.
+ * Обновлен init.d-файл для Gentoo.
+ * Изменена версия дабі не вводить в заблуждение пользователей :).