-
Всього повідомлень
4 122 -
Приєднався
-
Останній візит
-
Дней в лидерах
22
Тип контенту
Профили
Форум
Календарь
Все, що було написано madf
-
Как проверить состояние пользователя online ?
тема ответил в dummy пользователя madf в Питання по Stargazer
Вообще говоря, пару раз наблюдал странный баг: если авторизованному абоненту сменить IP то он иногда так и остается авторизованным навсегда. Но до причин пока не докопался. Такого плана проблемы? -
Как проверить состояние пользователя online ?
тема ответил в dummy пользователя madf в Питання по Stargazer
Впервые слышу о таком. Это на stg-2.407-rc2? -
Это уже исправлено, спасибо. У меня база сохранилась, ночью подкину базу и выхлоп появиться... Нужно? Да, если не сложно.
-
Выяснил сам, благодаря madf и gdb Причина в сообщениях когда-то посланных всем пользователям, в т.ч. и всегда Online. Их много накопилось. Вычистил старые сообщения в базе - все наладилось... Позже вышлю выхлоп, если нужно, сейчас не могу остановить сервер. Откуда ж выхлоп возьмется, если оно падать перестало... У нас тоже много сообщений накопилось, но стартует нормально, не падает. К стати, я недавно внес изменения позволяющие автоматически удалять сообщения. В rc3 будет.
-
Хм. Отчего-то падает. Попробуйте собрать в режиме отладки (./build debug), запустить из-под gdb и получить stack trace: $ gdb /path/to/stargazer (gdb) r /etc/stargazer ... (gdb) thread apply all bt Выхлоп или сюда или мне на почту: faust@stg.dp.ua PS: после ./build debug файлы нужно раскидать вручную, не через make install-bin
-
Может это он просто долго базу вычитывает? Приведите пожалйста полный лог запуска из stargazer.log и список используемых плагинов. И ps ax | grep stargazer дословно.
-
Отметил в багтреккере. Скорее всего проблема в том что перед шифрованием копируется только значащая часть строки, без символа \0 в конце.
-
Так должно найти: $ CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/include ./build
-
Подготовили с коллегой перевод конфигов. Местами, возможно, коряво, по этому буду рад принять любые правки. Конфиги в приложении и в git. stg_confs.tar
-
Я так понимаю, в какой-то момент обновилась libc а Stargazer не был пересобран. Просто нужно пересобрать Stargazer. Ну или sgconf.
-
Возможно, madf обратит на это внимание. Давно пора, IMHO, открыть сайт проекта на каком-нибудь бесплатном проект-хостинге - code.google.com, sourceforge.net, ... Отличная доступность и платить не надо. Может и да, но этот вопрос надо согласовывать с Борисом. Все таки он изначальный автор проекта и владелец сайта.
-
На сайте stg.dp.ua выкладываются релизы и патчи. А в этой теме я выкладываю alpha-, beta- и rc*-версии.
-
Как проверить состояние пользователя online ?
тема ответил в dummy пользователя madf в Питання по Stargazer
Самое простое решение: в OnConnect создавать файлик /var/stargazer/online-users/$IP а в OnDisconnect его удалять. -
Stg 2.407-rc2 + конфигуратор 1.91.9 незапуск после создания тарифа.
тема ответил в Zhmak пользователя madf в Питання по Stargazer
Очень хочется свалить вину на MySQL но совесть не позволяет. А можешь по шагам описать все свои действия после которых воспроизводится проблема? Особенно что касается создания тарифа. В таблице tariffs поле user_choose - в новой нет ( или не создается ) !?! Подставляем старую базу -> меняем тарифы -> капець Это что еще за такое новое поле? Почему я о нем ничего не знаю? В стандартном stg таких полей нет и небыло. -
В принципе, quick&dirty - сделать как в mod_remote_script. Там с определенным интервалом происходит синхронизация состояния абонента на NAS'е - плагин смотрит IsInetable и шлет соответствующий пакет.
-
Мда, действительно. Надо, наверное, подписку на connected вынести наружу. На выходных посмотрю что можно сделать.
-
Угу. По идее, повисшие сессии должны были оборваться сами по прошествии keepalivetimeout * 2 секунд. Любопытно, что удаление сокета помогло. У меня не получилось удалением сокета сбросить повисших юзверей. А по-хорошему, нужно делать нормальный двунаправленный обмен событиями между старгейзером и pppd, чтобы инициировать события мог не только pppd, но и старгейзер. А для этого, было бы неплохо в плагине старгейзера подписываться на изменение статуса пользователя IsInetable() как, скажем, на изменение настроек. Вообщем, я ещё подумаю в эту сторону. Можно подписаться на currIP. Пот
-
Угу. Я думал про new/delete, но у меня там ещё realloc, а в "man realloc" написано, что Поэтому я испугался и заюзал malloc и free. Впрочем, можно переехать на std::vector. А, я вспомнил, почему не выбрал std::vector. Массив struct pollfd* connections потом уходит в функцию poll, которая ждет на вход обычный СИ массив и с std::vector работать не умеет. Впрочем, в других местах можно и std::vector использовать. Из std::vector можно взять указатель на первый элемент и передать его в poll. Он в памяти хранится как обычный массив. А чем лучше? Меньше вероятность ошибиться с т
-
Максимальное колмчество клиентов.
тема ответил в Pegas12345 пользователя madf в Питання по Stargazer
Вопрос на самом деле достаточно сложный. Например, у нас на одном из серверов примерно 7500 абонов всего, из которых пиковый онлайн составляет 2800. При этом у анлимщиков отключен подсчет детальной статистики. Основная нагрузка вызвана работой с сообщениями абоненту в авторизатор (плохо реализована работа с сообщениями в Stargazer, а их накопилось аж с 2006-го года если не ранее). Сервачок старый и не очень мощный, база на файлах. Рядом стоит тестовый сервер с около 7000 абонентов с alwaysOnline, полным подсчетом трафика и базой в PostgreSQL. База специальным образом настроена на работу с боль -
Неплохо! Замечания по коду плагина к Stargazer'у (бегло посмотрел): он написан больше на C чем на C++. В C++ не стоит использовать malloc/free, вместо него есть new/delete. И вместо strtol лучше использовать str2x. Собрать не смог пока из-за проблем с заголовочными файлами Stargazer'а. Видимо пора делать то что нужно было сделать давно: выделить интерфейс плагина в абстрактные классы и вынести их в include. Тогда можно будет без проблем сделать dev-пакет для Stargazer'а.
-
Решение для stg-2.407-rc1 на Fedora 14
тема ответил в rem_lex пользователя madf в Розробка Stargazer
/projects/stargazer/Makefile строка 59 $(CC) $^ $(LDFLAGS) $(LIBS) -o $(PROG) меняем на $(CXX) $^ $(LDFLAGS) $(LIBS) -o $(PROG) и все собирается В rc2 вроде-бы уже исправлено. -
Да, так і є. На відміну від інших параметрів напрямки передаються звичайним масивом, тому їх треба передавати повністю, навіть якщо частина із них не використовується.
-
Я б із радістю, та нема коли - робота...
-
print_r(__call('stargazer.chg_tariff', array($cookie, 'tariff', array('traffType' => 1)))); Без проблем встановило traffType в 1. З приводу першого - можеш надати мінімальний код на якому це можна побачити?
-
Налаштування напрямків тарифікації передаються у вигляді масиву із 10 елементів типу dirprice що сам по собі є асоціативним масивом з полями mday, hday, mnight, hnight, pricedaya, pricedayb, pricenighta, pricenightb, threshold, singleprice, nodiscount. Як це виглядає - можна подивитись через stargazer.get_tariff. Передаються усі напрямки, навіть ті що не використовуються. Відповідність назв та номерів напрямків вказується як і раніше - у stargazer.conf