General: * Чистка кода. Compilation: * Флаги -W и -Wall добавляются при компиляции в отладочном режиме. В релизном режиме эти флаги не добавляются. * Развязаны зависимости библиотек - поддерживается параллельная компиляция (make -j2 и более). * Добавлена поддержка FreeBSD 8. Libraries: * При сборке библиотеки авторизатора ia_auth_c используется корректная библиотека потоков (определенная скриптом build) вместо жестко прописанной -lpthread. * Исправлена ошибка приводящая к Segmentation fault при использовании библиотеки авторизатора ia_auth_c без указания всех callback-ов. 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). stargazer: * Исправлена работа параметра FullFee для "замороженных" пользователей. * Исправлена ошибка приводящая (в некоторых случаях) к обнулению полей статистики пользователя при изменении параметров посредством sgconf/sgconfig. * Поля cash и freeMb теперь используются напрямую при подсчете трафика (вместо интерфейса свойств), что позволяет немного уменьшить нагрузку на процессор и исправить неприятный баг (обновление времени последнего изменения счета при подсчете трафика). * Начаты работы по изменению подсистемы событий. В частности, реализованы асинхронные вызовы нотификаторов что позволяет избежать deadlock в некоторых ситуациях. Создан обобщенный интерфейс отложенного вызова методов классов. * В файл stargazer.conf для FreeBSD добавлены параметры FullFee и ShowFeeInCash с описанием. * При отключении пользователя в лог теперь пишется состояние параметра freeMb и причина отключения (поддерживается файловой БД и PostgreSQL с обновлением структуры базы). * Увеличена точность подсчета стоимости трафика на границе порога и бесплатных мегабайт. Ранее трафик на граниче порога и бесплатных мегабайт считался по цене допорогового, теперь он делится на 2 допороговый и послепороговый. Это особенно ощутимо при использовании NetFlow. * В файле конфигурации обнаружена (!) поддержка директивы IncludeFile.