madf 279 Опубликовано: 2011-09-20 15:02:55 Share Опубликовано: 2011-09-20 15:02:55 (відредаговано) Ссылка для скачивания: stg-2.408-rc1.tar.gz ChangeLog: General: Стандартизован стиль именования параметров: SnakeCase. В документации к XML-RPC API добавлено пропущенное поле 'password' для метода chg_admin. Приведена в порядок работа с сигналами. Теперь сигналы перехватываются только из основного потока и перехватываются корректно, в отличие от старых версий. Для остановки плагинов больше не используется pthread_kill, т.к. плагины его все равно теперь игнорируют. Устаревшая функция usleep заменена на более продвинутую функцию nanosleep в соответствии с POSIX.1-2008. Удалены странные, непонятные и ненужные комментарии в коде. Некоторые типы данных сделаны более "строгими". Добавлено несколько дополнительных проверочных утверждений. Упрощено API плагинов. Удален странный код. Большая часть кода приведена в соответствие с рекомендациями Скотта Мейерса. Вычищена куча кода. Но это еще не конец. Compilation: При проверке условий сборки теперь используются переменные CC и CXX вместо явного вызова gcc/g++. Если переменные CC и CXX не определены то используются gcc и g++ по умолчанию. Добавлено разделение флагов на CFLAGS и CXXFLAGS. Теперь релиз рекомендуется собирать так: $ CFLAGS="-O2" CXXFLAGS="${CFLAGS}" ./build Флаг компиляторы -g3 заменен на -ggdb3 (все равно его поддерживает и gcc, и clang, и ekopath). Существенно переработана система сборки. Теперь она не сорит заголовочными файлами и библотеками там где не нужно. Libraries: Использование динамических внутренних библиотек признано нецелесообразным, возвращены старые-добрые a-файлы (последний раз они были в версии 2.401). Добавлена специализация x2str для беззнаковых типов. Библиотеки crypto.lib и scriptexecuter.lib теперь содержат 100% кода на языке C! Plugins: В плагин для 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 при останове! stargazer: Исправлена ошибка приводящая к неправильному сообщению о причине отключения. Убрано бесполезное изменение значения nice для процесса. Добавлены три возможных сценария снятия абонплаты:обычный; не снимать абонплату при отрицательном балансе; не снимать абонплату ели баланс при этом станет отрицательным. [*]Добавлен параметр ReconnectOnTariffChange указывающий системе выполнять переподключение абонента при изменении тарифа. [*]Добавлена "подписка" на добавление и удаление тарифов. [*]Управление авторизацией абонентов перемещено из класса USER в класс USERS что позволило избавиться от дедлока в определенных условиях. [*]Устранена возможность выгрузки активного плагина. Минус одно потенциальное падение с SIGSEGV и General Protection Fault! rscriptd: В примере конфигурационного файла для rscriptd путь /etc/rscriptd заменен на /etc/stargazer. Happy testing! PS: проверял сборку с clang и ekopath - все собирается, все работает. Патчи: fix-libs-install-patch.diff, fix-libs-order-patch.diff, fix-radius-authorization-patch.diff stg-2.408-rc1.tar.gz fix-libs-install-patch.diff.txt fix-libs-order-patch.diff.txt fix-radius-authorization-patch.diff.txt Відредаговано 2011-09-21 16:39:24 madf Опечатка Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2011-09-20 17:53:04 Share Опубліковано: 2011-09-20 17:53:04 Добавлены три возможных сценария снятия абонплаты: обычный; не снимать абонплату при отрицательном балансе; не снимать абонплату если баланс при этом станет отрицательным. Ура, долой скриптовые заплатки! Ссылка на сообщение Поделиться на других сайтах
yKpon 8 Опубліковано: 2011-09-21 06:44:31 Share Опубліковано: 2011-09-21 06:44:31 madf, огромное спасибо за проделанную работу! начинаем тест Ссылка на сообщение Поделиться на других сайтах
Roman Pogosyan 3 Опубліковано: 2011-09-21 06:48:03 Share Опубліковано: 2011-09-21 06:48:03 Грациес сейсчас заценим кстате "не снимать абонплату при отрицательном балансе." с нулем разобрался ? Ссылка на сообщение Поделиться на других сайтах
Небесный 26 Опубліковано: 2011-09-21 07:01:59 Share Опубліковано: 2011-09-21 07:01:59 кстате "не снимать абонплату при отрицательном балансе." с нулем разобрался ? http://local.com.ua/forum/topic/29846-stg-2408-alpha/page__view__findpost__p__245069 Ссылка на сообщение Поделиться на других сайтах
Roman Pogosyan 3 Опубліковано: 2011-09-21 07:23:05 Share Опубліковано: 2011-09-21 07:23:05 mkdir -m 0755 -p /usr/include/stg install -m 0644 -o root logger.h /usr/include/stg/ install: cannot stat `logger.h': No such file or directory make[2]: *** [install] Error 1 make[2]: Leaving directory `/home/roman/stg-2.408-rc1/stglibs/logger.lib' make[1]: *** [logger.lib] Error 2 make[1]: Leaving directory `/home/roman/stg-2.408-rc1/stglibs' make: *** [install-bin] Error 2 Ссылка на сообщение Поделиться на других сайтах
Roman Pogosyan 3 Опубліковано: 2011-09-21 07:37:48 Share Опубліковано: 2011-09-21 07:37:48 ищет h файлыш папке самого плугина а не в папке инклуд/стг Ссылка на сообщение Поделиться на других сайтах
Roman Pogosyan 3 Опубліковано: 2011-09-21 07:50:24 Share Опубліковано: 2011-09-21 07:50:24 первые ощущения : все подключилось нормально, и вроде производительности добавилось Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2011-09-21 08:27:13 Автор Share Опубліковано: 2011-09-21 08:27:13 Грациес сейсчас заценим кстате "не снимать абонплату при отрицательном балансе." с нулем разобрался ? Просто включил 0 и fee в интервалы. Т.е. оно все равно будет в "минус" уводить, но не сильно, не более чем на fee. Неправильно, конечно, но переписывать stg с нуля - это куча времени. mkdir -m 0755 -p /usr/include/stg install -m 0644 -o root logger.h /usr/include/stg/ install: cannot stat `logger.h': No such file or directory make[2]: *** [install] Error 1 make[2]: Leaving directory `/home/roman/stg-2.408-rc1/stglibs/logger.lib' make[1]: *** [logger.lib] Error 2 make[1]: Leaving directory `/home/roman/stg-2.408-rc1/stglibs' make: *** [install-bin] Error 2 Опа! Все проверил, а инсталл не проверил! Спасибо, исправим. На то оно и rc. первые ощущения : все подключилось нормально, и вроде производительности добавилось А в чем это ощущается? Ссылка на сообщение Поделиться на других сайтах
nightfly 1 241 Опубліковано: 2011-09-21 08:30:02 Share Опубліковано: 2011-09-21 08:30:02 ReconnectOnTariffChange фуф, конец подпоркам на похапе Ссылка на сообщение Поделиться на других сайтах
Roman Pogosyan 3 Опубліковано: 2011-09-21 08:31:59 Share Опубліковано: 2011-09-21 08:31:59 подключении клиента, админки, запускас/стопа старгайзера .. rlm_stg не троганный опять сигфаулт Ссылка на сообщение Поделиться на других сайтах
Roman Pogosyan 3 Опубліковано: 2011-09-21 08:34:30 Share Опубліковано: 2011-09-21 08:34:30 Просто включил 0 и fee в интервалы. Т.е. оно все равно будет в "минус" уводить, но не сильно, не более чем на fee. Неправильно, конечно, но переписывать stg с нуля - это куча времени. конечно , лучше маленький минус чем большой Ссылка на сообщение Поделиться на других сайтах
S_ergey 21 Опубліковано: 2011-09-21 08:56:41 Share Опубліковано: 2011-09-21 08:56:41 sgсonf не собирается куда копать ? ../../stglibs/srvconf.lib/libstgsrvconf.a(servconf.o): In function `AnsRecv(void*, std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)': servconf.cpp:(.text+0x4c): undefined reference to `XML_ParserReset' servconf.cpp:(.text+0x71): undefined reference to `XML_SetElementHandler' servconf.cpp:(.text+0x89): undefined reference to `XML_SetUserData' servconf.cpp:(.text+0x14a): undefined reference to `XML_Parse' servconf.cpp:(.text+0x164): undefined reference to `XML_GetErrorCode' servconf.cpp:(.text+0x16c): undefined reference to `XML_ErrorString' servconf.cpp:(.text+0x17f): undefined reference to `XML_GetCurrentLineNumber' ../../stglibs/srvconf.lib/libstgsrvconf.a(servconf.o): In function `SERVCONF::SERVCONF()': servconf.cpp:(.text+0x3ca): undefined reference to `XML_ParserCreate' collect2: ld returned 1 exit status make: *** [sgconf] Error 1 Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2011-09-21 09:00:42 Автор Share Опубліковано: 2011-09-21 09:00:42 sgсonf не собирается куда копать ? ../../stglibs/srvconf.lib/libstgsrvconf.a(servconf.o): In function `AnsRecv(void*, std::list<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)': servconf.cpp:(.text+0x4c): undefined reference to `XML_ParserReset' servconf.cpp:(.text+0x71): undefined reference to `XML_SetElementHandler' servconf.cpp:(.text+0x89): undefined reference to `XML_SetUserData' servconf.cpp:(.text+0x14a): undefined reference to `XML_Parse' servconf.cpp:(.text+0x164): undefined reference to `XML_GetErrorCode' servconf.cpp:(.text+0x16c): undefined reference to `XML_ErrorString' servconf.cpp:(.text+0x17f): undefined reference to `XML_GetCurrentLineNumber' ../../stglibs/srvconf.lib/libstgsrvconf.a(servconf.o): In function `SERVCONF::SERVCONF()': servconf.cpp:(.text+0x3ca): undefined reference to `XML_ParserCreate' collect2: ld returned 1 exit status make: *** [sgconf] Error 1 Можно полный лог сборки и указать ОС на которой она проводилась? Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2011-09-21 09:01:50 Автор Share Опубліковано: 2011-09-21 09:01:50 подключении клиента, админки, запускас/стопа старгайзера .. rlm_stg не троганный опять сигфаулт Да, я там ничего не менял. Нужно разобраться откуда ростут ноги у проблемы а не заменять заголовочные файлы. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2011-09-21 09:03:03 Автор Share Опубліковано: 2011-09-21 09:03:03 подключении клиента, админки, запускас/стопа старгайзера .. ... Авторизации и работа конфигуратора - может быть. А вот старт/стоп вряд ли. Там основной тормоз i/o. Ссылка на сообщение Поделиться на других сайтах
Roman Pogosyan 3 Опубліковано: 2011-09-21 09:25:18 Share Опубліковано: 2011-09-21 09:25:18 ну говорю то что заметил, может это из за того что с модулями стал легче управляться Ссылка на сообщение Поделиться на других сайтах
Roman Pogosyan 3 Опубліковано: 2011-09-21 09:28:06 Share Опубліковано: 2011-09-21 09:28:06 кстате когда дойдут руки до радиуса , добавь в него приписывания IP если стоит '*' Ссылка на сообщение Поделиться на других сайтах
S_ergey 21 Опубліковано: 2011-09-21 09:45:56 Share Опубліковано: 2011-09-21 09:45:56 Можно полный лог сборки и указать ОС на которой она проводилась? OS ALT Linux (p6) sgconf-log.txt Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2011-09-21 09:52:07 Автор Share Опубліковано: 2011-09-21 09:52:07 Можно полный лог сборки и указать ОС на которой она проводилась? OS ALT Linux (p6) Спасибо! Я уже сам вспомнил про Альт и --as-needed. Сейчас все поправим. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2011-09-21 10:17:53 Автор Share Опубліковано: 2011-09-21 10:17:53 Патчи: fix-libs-install-patch.diff (исправляет установку), fix-libs-order-patch.diff (исправляет сборку с --as-needed). Ссылка на сообщение Поделиться на других сайтах
S_ergey 21 Опубліковано: 2011-09-21 10:53:13 Share Опубліковано: 2011-09-21 10:53:13 Все собралось тестим дальше. Ссылка на сообщение Поделиться на других сайтах
Roman Pogosyan 3 Опубліковано: 2011-09-21 13:54:35 Share Опубліковано: 2011-09-21 13:54:35 у меня опять проблема с радиусом а именно с этой строчкой if (users->Authorize(ui->GetLogin(), ips[0].ip, 0xffFFffFF, this)) { если стоит * авторизация проходит аккаунтинг вроде тоже, но клиент в биллинге не становится "online" и IP ему не прописывается. если сделать по старинке if (users->Authorize(ui->GetLogin(),packet->ip, 0xffFFffFF, this)), то статус меняется на онлайн, ип прописывается, но аккаунтинг возвращает ошибку Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2011-09-21 15:01:15 Автор Share Опубліковано: 2011-09-21 15:01:15 у меня опять проблема с радиусом а именно с этой строчкой if (users->Authorize(ui->GetLogin(), ips[0].ip, 0xffFFffFF, this)) { если стоит * авторизация проходит аккаунтинг вроде тоже, но клиент в биллинге не становится "online" и IP ему не прописывается. если сделать по старинке if (users->Authorize(ui->GetLogin(),packet->ip, 0xffFFffFF, this)), то статус меняется на онлайн, ип прописывается, но аккаунтинг возвращает ошибку Если стоит * то IP у юзера нету и делать вот так: ips[0].ip - потенциально небезопасно. Чревато сегфолтом. А какую ошибку аккаунтинг возвращает? Ссылка на сообщение Поделиться на других сайтах
Roman Pogosyan 3 Опубліковано: 2011-09-21 15:23:08 Share Опубліковано: 2011-09-21 15:23:08 он никогда не возвращал текст ошибки (в 407 тоже) просто ковычки Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения