Jump to content

madf

Сitizens
  • Content Count

    4,122
  • Joined

  • Last visited

  • Days Won

    22

Everything posted by madf

  1. Это уже исправлено, спасибо. У меня база сохранилась, ночью подкину базу и выхлоп появиться... Нужно? Да, если не сложно.
  2. Выяснил сам, благодаря madf и gdb Причина в сообщениях когда-то посланных всем пользователям, в т.ч. и всегда Online. Их много накопилось. Вычистил старые сообщения в базе - все наладилось... Позже вышлю выхлоп, если нужно, сейчас не могу остановить сервер. Откуда ж выхлоп возьмется, если оно падать перестало... У нас тоже много сообщений накопилось, но стартует нормально, не падает. К стати, я недавно внес изменения позволяющие автоматически удалять сообщения. В rc3 будет.
  3. Хм. Отчего-то падает. Попробуйте собрать в режиме отладки (./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
  4. Может это он просто долго базу вычитывает? Приведите пожалйста полный лог запуска из stargazer.log и список используемых плагинов. И ps ax | grep stargazer дословно.
  5. Отметил в багтреккере. Скорее всего проблема в том что перед шифрованием копируется только значащая часть строки, без символа \0 в конце.
  6. Так должно найти: $ CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/include ./build
  7. Подготовили с коллегой перевод конфигов. Местами, возможно, коряво, по этому буду рад принять любые правки. Конфиги в приложении и в git. stg_confs.tar
  8. Я так понимаю, в какой-то момент обновилась libc а Stargazer не был пересобран. Просто нужно пересобрать Stargazer. Ну или sgconf.
  9. Возможно, madf обратит на это внимание. Давно пора, IMHO, открыть сайт проекта на каком-нибудь бесплатном проект-хостинге - code.google.com, sourceforge.net, ... Отличная доступность и платить не надо. Может и да, но этот вопрос надо согласовывать с Борисом. Все таки он изначальный автор проекта и владелец сайта.
  10. На сайте stg.dp.ua выкладываются релизы и патчи. А в этой теме я выкладываю alpha-, beta- и rc*-версии.
  11. Самое простое решение: в OnConnect создавать файлик /var/stargazer/online-users/$IP а в OnDisconnect его удалять.
  12. Очень хочется свалить вину на MySQL но совесть не позволяет. А можешь по шагам описать все свои действия после которых воспроизводится проблема? Особенно что касается создания тарифа. В таблице tariffs поле user_choose - в новой нет ( или не создается ) !?! Подставляем старую базу -> меняем тарифы -> капець Это что еще за такое новое поле? Почему я о нем ничего не знаю? В стандартном stg таких полей нет и небыло.
  13. В принципе, quick&dirty - сделать как в mod_remote_script. Там с определенным интервалом происходит синхронизация состояния абонента на NAS'е - плагин смотрит IsInetable и шлет соответствующий пакет.
  14. Мда, действительно. Надо, наверное, подписку на connected вынести наружу. На выходных посмотрю что можно сделать.
  15. Угу. По идее, повисшие сессии должны были оборваться сами по прошествии keepalivetimeout * 2 секунд. Любопытно, что удаление сокета помогло. У меня не получилось удалением сокета сбросить повисших юзверей. А по-хорошему, нужно делать нормальный двунаправленный обмен событиями между старгейзером и pppd, чтобы инициировать события мог не только pppd, но и старгейзер. А для этого, было бы неплохо в плагине старгейзера подписываться на изменение статуса пользователя IsInetable() как, скажем, на изменение настроек. Вообщем, я ещё подумаю в эту сторону. Можно подписаться на currIP. Пот
  16. Угу. Я думал про new/delete, но у меня там ещё realloc, а в "man realloc" написано, что Поэтому я испугался и заюзал malloc и free. Впрочем, можно переехать на std::vector. А, я вспомнил, почему не выбрал std::vector. Массив struct pollfd* connections потом уходит в функцию poll, которая ждет на вход обычный СИ массив и с std::vector работать не умеет. Впрочем, в других местах можно и std::vector использовать. Из std::vector можно взять указатель на первый элемент и передать его в poll. Он в памяти хранится как обычный массив. А чем лучше? Меньше вероятность ошибиться с т
  17. Вопрос на самом деле достаточно сложный. Например, у нас на одном из серверов примерно 7500 абонов всего, из которых пиковый онлайн составляет 2800. При этом у анлимщиков отключен подсчет детальной статистики. Основная нагрузка вызвана работой с сообщениями абоненту в авторизатор (плохо реализована работа с сообщениями в Stargazer, а их накопилось аж с 2006-го года если не ранее). Сервачок старый и не очень мощный, база на файлах. Рядом стоит тестовый сервер с около 7000 абонентов с alwaysOnline, полным подсчетом трафика и базой в PostgreSQL. База специальным образом настроена на работу с боль
  18. Неплохо! Замечания по коду плагина к Stargazer'у (бегло посмотрел): он написан больше на C чем на C++. В C++ не стоит использовать malloc/free, вместо него есть new/delete. И вместо strtol лучше использовать str2x. Собрать не смог пока из-за проблем с заголовочными файлами Stargazer'а. Видимо пора делать то что нужно было сделать давно: выделить интерфейс плагина в абстрактные классы и вынести их в include. Тогда можно будет без проблем сделать dev-пакет для Stargazer'а.
  19. /projects/stargazer/Makefile строка 59 $(CC) $^ $(LDFLAGS) $(LIBS) -o $(PROG) меняем на $(CXX) $^ $(LDFLAGS) $(LIBS) -o $(PROG) и все собирается В rc2 вроде-бы уже исправлено.
  20. Да, так і є. На відміну від інших параметрів напрямки передаються звичайним масивом, тому їх треба передавати повністю, навіть якщо частина із них не використовується.
  21. Я б із радістю, та нема коли - робота...
  22. print_r(__call('stargazer.chg_tariff', array($cookie, 'tariff', array('traffType' => 1)))); Без проблем встановило traffType в 1. З приводу першого - можеш надати мінімальний код на якому це можна побачити?
  23. Налаштування напрямків тарифікації передаються у вигляді масиву із 10 елементів типу dirprice що сам по собі є асоціативним масивом з полями mday, hday, mnight, hnight, pricedaya, pricedayb, pricenighta, pricenightb, threshold, singleprice, nodiscount. Як це виглядає - можна подивитись через stargazer.get_tariff. Передаються усі напрямки, навіть ті що не використовуються. Відповідність назв та номерів напрямків вказується як і раніше - у stargazer.conf
  24. Дякую, додав у багтреккер.
×
×
  • Create New...