-
Всього повідомлень
4 122 -
Приєднався
-
Останній візит
-
Дней в лидерах
22
Тип контенту
Профили
Форум
Календарь
Все, що було написано madf
-
root@serv:/home/soft/stg-2.408/stg-2.408/projects/stargazer# ldd /usr/lib/stg/mod_store_firebird.so linux-vdso.so.1 => (0x00007fff8b1ff000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007effaf51a000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007effaf298000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007effaf081000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007effaecfa000) /lib64/ld-linux-x86-64.so.2 (0x00007effafb16000) root@serv:/home/soft/stg-2.408/stg-2.408/projects/stargazer# Приношу свои извинения. В процессе перехода на сборку со статическими библиотеками потерялась зависимость от libfbclient.so. Вот патч: diff --git a/projects/stargazer/plugins/store/firebird/Makefile b/projects/stargazer/plugins/store/firebird/Makefile index b4cce92..be9b437 100644 --- a/projects/stargazer/plugins/store/firebird/Makefile +++ b/projects/stargazer/plugins/store/firebird/Makefile @@ -22,5 +22,11 @@ STGLIBS = ibpp locker crypto +FB_CFLAGS = $(shell fb_config --cflags) +FB_LDFLAGS = $(shell fb_config --libs) + +CXXFLAGS += $(FB_CFLAGS) +LDFLAGS += $(FB_LDFLAGS) + include ../../Makefile.in
-
Т.е. ну читывать кредит? Можно. Как-то так: diff --git a/projects/stargazer/settings_impl.cpp b/projects/stargazer/settings_impl.cpp index 2bf8d08..16a2ac4 100644 --- a/projects/stargazer/settings_impl.cpp +++ b/projects/stargazer/settings_impl.cpp @@ -375,7 +375,7 @@ while (node) if (strcasecmp(node->getName(), "FeeChargeType") == 0) { - if (ParseUnsignedInRange(node->getValue(0), 0, 2, &feeChargeType) != 0) + if (ParseUnsignedInRange(node->getValue(0), 0, 3, &feeChargeType) != 0) { strError = "Incorrect FeeChargeType value: '" + string(node->getValue(0)) + "'"; return -1; diff --git a/projects/stargazer/user_impl.cpp b/projects/stargazer/user_impl.cpp index 733e625..fcea0b9 100644 --- a/projects/stargazer/user_impl.cpp +++ b/projects/stargazer/user_impl.cpp @@ -1250,6 +1250,10 @@ switch (settings->GetFeeChargeType()) if (c + credit >= fee) property.cash.Set(c - fee, sysAdmin, login, store, "Subscriber fee charge"); break; + case 3: + if (c >= 0) + property.cash.Set(c - fee, sysAdmin, login, store, "Subscriber fee charge"); + break; } ResetPassiveTime(); } @@ -1312,6 +1316,13 @@ switch (settings->GetFeeChargeType()) SetPrepaidTraff(); } break; + case 3: + if (c >= 0) + { + property.cash.Set(c - fee, sysAdmin, login, store, "Subscriber fee charge"); + SetPrepaidTraff(); + } + break; } } //----------------------------------------------------------------------------- - и указать в конфиге FeeChargeType = 3
-
Интересно. Покажите, пожалуйста, вывод команды ldd /usr/lib/stg/mod_store_firebird.so
-
1. Нужно убедиться что в конфиге указано: DisableWeb = no. Web-интерфейс доступен по адресу http://localhost:5580 2. Stargazer "заточен" под учет объема. По этому для учета скорости нужно утанавливать цены тарфика в 0 и хранить значения скорости либо в отдельных таблицах либо в полях userdata для каждого абонента. В первом случае они не будут доступны через конфигуратор, во втором - будут. Так же можно "кодировать" значения скорости в названиях тарифов, например: unlim512. В любом случае требуется дополнительная поддержка со стороны скриптов для управления шейпером. По вопросу: как было откорректировано количество направлений?
-
Нету. Но если на андроиде есть gcc то можно собрать консольный sgauth.
-
У вас не определено ни одного направления в конфигурационном файле Stargazer'а.
-
У меня все прекрасно добавляется. Возможно, значение все-таки неверное? Хотя по коду это сообщение может быть только для величины кредита, суммы на счету и значений статистики.
-
1. То что у вас два раза останавливаются плагины однозначно говорит о том что запущено было два экземпляра. Ну или что у вас они все в конфиге задублированны. 2. Локализовать не требуется, проблема известна - плагин авторизатора не может занять свой порт потому что он уже кем-то занят. Что еще раз говорит в пользу старта двух экземпляров Stargazer.
-
Начнем с того что версия старовата А закончим тем что вы пытались запустить два stargazer'а одновременно А долгий старт - да, есть такая проблема. Это когда он уже успел сделать fork, но потом что-то пошло не так (как в приведенном примере) и форкнутый процесс умер, а родительский ждет от него уведомления об успешном запуске.
-
Он сокет не закрывает никогда. Один сокет на всех юзеров. Ноги у проблемы растут из phase time.
-
Единственный случай или проявляется регулярно? Я встречался с похожей ситуацией, но в других условиях. Пока вылечить не могу.
-
Ссылка для скачивания: stg-2.408.tar.gz ChangeLog (от версии 2.407-p1): General: Стандартизован стиль именования параметров: CamelCase. В документации к XML-RPC API добавлено пропущенное поле 'password' для метода chg_admin. Приведена в порядок работа с сигналами. Теперь сигналы перехватываются только из основного потока и перехватываются корректно, в отличие от старых версий. Для остановки плагинов больше не используется pthread_kill, т.к. плагины его все равно теперь игнорируют. Устаревшая функция usleep заменена на более продвинутую функцию nanosleep в соответствии с POSIX.1-2008. Удалены странные, непонятные и ненужные комментарии в коде. Некоторые типы данных сделаны более "строгими". Добавлено несколько дополнительных проверочных утверждений. Упрощено API плагинов. Удален странный код. Большая часть кода приведена в соответствие с рекомендациями Скотта Мейерса. Вычищена куча кода. Но это еще не конец. Исправлена ошибка установки в случае наличия предыдущей установки. Добавлена поддержка FreeBSD9. Структура базы для Firebird больше не создается автоматически при make install-data, нужно создавать вручную. Compilation: При проверке условий сборки теперь используются переменные CC и CXX вместо явного вызова gcc/g++. Если переменные CC и CXX не определены то используются gcc и g++ по умолчанию. Добавлено разделение флагов на CFLAGS и CXXFLAGS. Теперь релиз рекомендуется собирать так: $ CFLAGS="-O2" CXXFLAGS="${CFLAGS}" ./build Флаг компиляторы -g3 заменен на -ggdb3 (все равно его поддерживает и gcc, и clang, и ekopath). Существенно переработана система сборки. Теперь она не сорит заголовочными файлами и библотеками там где не нужно. Убрана зависимость от bash. Libraries: Использование динамических внутренних библиотек признано нецелесообразным, возвращены старые-добрые a-файлы (последний раз они были в версии 2.401). Добавлена специализация x2str для беззнаковых типов. Библиотеки crypto.lib и scriptexecuter.lib теперь содержат 100% кода на языке C! Исправлена работа библиотеки ia.lib на платформах с Big Endian. 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 при останове! [*]Плагин remote_script больше не сообщает об ошибке и позволяет системе запуститься если файл привязки подсетей пуст. [*]Пересмотрен порядок загрузки плагинов. stargazer: Исправлена ошибка приводящая к неправильному сообщению о причине отключения. Убрано бесполезное изменение значения nice для процесса. Добавлены три возможных сценария снятия абонплаты: обычный; не снимать абонплату при отрицательном балансе; не снимать абонплату ели баланс при этом станет отрицательным. [*]Добавлен параметр ReconnectOnTariffChange указывающий системе выполнять переподключение абонента при изменении тарифа. [*]Добавлена "подписка" на добавление и удаление тарифов. [*]Управление авторизацией абонентов перемещено из класса USER в класс USERS что позволило избавиться от дедлока в определенных условиях. [*]Устранена возможность выгрузки активного плагина. Минус одно потенциальное падение с SIGSEGV и General Protection Fault! ChangeLog практически полностью повторяет 2.408-rc1, я не стал в него включать исправления ошибок привнесенных этой версией, но могу вас заверить - они там все (исправления, не ошибки ) есть. Обращаю внимание тех кто уже использует плагин SMUX - изменился STG-MIB. Добавлен еще один параметр - activeUsers - количество абонентов с ненулевым трафиком за текущую сессию. Он более корректно отображает тех кто сейчас действительно использует услугу. Для остальных же в документации есть раздел по настройке плагина и snmpd. stg-2.408.tar.gz stargazer_help_v2.17.pdf
-
Аппаратный роутер, домашняя сеть и авторизатор InetAccess
тема ответил в Vi$0R пользователя madf в Питання по Stargazer
Не могли пожалуйста какие такие мотивы например могут быть, что - то в голову нечего налезет. Просто интересно что это может быть. Например, мониторинг активности по OnConnect/OnDisconnet. Или алергия на код mod_auth_ao. Мало ли причин можно придумать? -
Аппаратный роутер, домашняя сеть и авторизатор InetAccess
тема ответил в Vi$0R пользователя madf в Питання по Stargazer
Это звучит глупо. Скорее всего у провайдера свои мотивы которые он не хочет раскрывать. Или ТП совсем тупая и не понимает что и как работает. -
В rscriptd.conf UserTimeout можно смело поднимать в 2-3 раза. Если абонов много - возможно придется поднимать SendPeriod. А так вроде все нормально.
-
Какие точные значения UserTimeout и SendPeriod сейчас? Есть ли потери пакетов между биллинговым сервером и NAS? Какая версия Stargazer?
-
Да, еще как правильно заметил nightfly, в случае "тяжелых" скриптов имеет смысл увеличить ExecutersNum до 2-3. Ну или даже больше - тут надо мониторить ситуацию.
-
Тогда проблем нет - увеличивайте UserTimeout, уменьшайте SendPreriod (тут осторожно) и проверяйте канал связи между NAS и биллингом на потери.
-
UserTimeout - время через которое абон будет отключен если по нему не приходит alive-пакетов. SendPeriod - периодичность отсылки alive-пакетов. В общем случае увеличение UserTimeout и уменьшение SendPeriod должно помочь, но судя по вашей симптоматике у вас проблема в другом месте.На сколько я понял, после отключения они назад сами не подключаются?
-
- это как понимать? Какая из версий запускается? Похоже что обе... В 2.408 библиотеки компонуются статически, обновлять нечего. Разве что плагины.
-
Отображение RealName в менеджере клиентов Stargazer
тема ответил в tima19 пользователя madf в Питання по Stargazer
Кратко на этот вопрос не ответишь. Изменения нужно вносить в файл MainUnit.cpp в методы SetUserDataGrid, UsersGridMouseDown; в файл DrawGridUnit.cpp в методы DrawCell, DrawGridCaption, DrawGridData. Возможно еще в файл UserUnit.h и UserUnit.cpp в методы Sort и Filter если необходима поддержка сортировки и фильтрации. Это то что я бегло "накопал", возможно изменений надо сделать больше. -
Технически - должен. Но я не успеваю за ними детектилку версии менять. Надо будет подправить скрипт build.
-
Оптимальный способ получения данных о пользователе
тема ответил в dummy пользователя madf в Питання по Stargazer
вопрос снят. К стати, увеличение ExecutersNum должно было помочь в вашем случае без внедрения этого "ручного управления доступом". -
Оптимальный способ получения данных о пользователе
тема ответил в dummy пользователя madf в Питання по Stargazer
Да. А с текущими цифрами возможны какие-то грабли ? Мне казалось я всё предусмотрел. Из моих соображений как недостаток можно рассматривать большое число опросов состояния очереди на медленно выполняемых скриптах, мне не известно насколько ресурсо-ёмкая эта операция т.е. возможна доп. нагрузка на систему заметная на слабых машинах хотя у себя я пока такого не заметил. Пауза слишком маленькая - повышение нагрузки на процессор (не забываем что при msgctl происходит переключение контекста!). Пауза слишком большая - увеличение латентности системы при реакции на события. Максимальный размер очереди слишком мал - неэффективно используется очередь (простои в работе системы). Максимальный размер очереди слишком велик - вероятность блокировки при переполнении. Даже 1 может быть слишком много - в скрипте можно изменить тысячу параметров и получить дедлок. Тут нужно искать другое решение проблемы.
