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

diff --git a/ChangeLog b/ChangeLog
index a8920223..567a76a3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,93 +1,80 @@
 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.
+	* Изменена версия дабі не вводить в заблуждение пользователей :).