Перейти до

napTu

Сitizens
  • Всього повідомлень

    231
  • Приєднався

  • Останній візит

Все, що було написано napTu

  1. napTu

    Inet_ntoa Error

    спасибо, реализовал.
  2. napTu

    Inet_ntoa Error

    Я так понял что inet_ntoa переводит четырехбайтное значение в пямяти в стринговое "хх.хх.хх.хх". Если это так, то такое преобразование можно наваять и без использования внешних функций. В этом случае это будет threadsafe?
  3. napTu

    Inet_ntoa Error

    Снимаю шляпу, извиняюсь за безграмотность в данном вопросе. Дк может просто переписать inet_ntostr без использования inet_ntoa. Я так понял inet_ntoa это не встроенная функция...
  4. napTu

    Inet_ntoa Error

    а компилятор только предупреждает о неопределонном поведении: user.cpp: In member function 'void USER::Connect(bool)': user.cpp:594: warning: comparison with string literal results in unspecified behaviour user.cpp:634: warning: comparison with string literal results in unspecified behaviour похоже что это условие игнорируется, три случая сообщений [inet_ntoa error] за сегодня. про указатели прочел, но куда их пхать в данном случае не понял. вот так прокатило без ворнингов: string err="[inet_ntoa error]"; if (!fakeConnect && currIP > 0 && inet_ntostr(currIP)
  5. napTu

    Inet_ntoa Error

    глянул общий лог на предмет подобных ошибок, стало страшно - с десяток за день набежало, но абоненты в большинстве случаев нормально потом отключались и подключались заново. в user.cpp внес поправки чтобы не коннектилось с ip==0 и при конвертации с вышеприведенной ошибкой. завтра посмотрим. STG_LOCKER lock(&mutex, __FILE__, __LINE__); if (!fakeConnect && currIP > 0 && inet_ntostr(currIP) != "[inet_ntoa error]" ) { string scriptOnConnect = settings->GetConfDir() + "/OnConnect"; string scriptOnConnectParams;
  6. napTu

    Inet_ntoa Error

    про консольный лог я проигнорировал, ибо это гемор. будет время, займусь. а из выдержка из /var/log/stargazer.log - ответ на вопрос "какая версия, какие модули?"
  7. napTu

    Inet_ntoa Error

    mysql тут не при чем - используется файловая(текстовая) база данных айпи не вбит криво, ибо оно работало нормально до того, и работает нормально после перезапуска. Возможно что происходит накладка в момент записи в базу данных и одновременного чтения для выполнения процедуры подключения. Кстати, используется три вспомогательных процесса: версия stg-2.405.9.8, хотя в стартапе пишет 2.404 2008-12-10 19:44:53 -- Stg started successfully. 2008-12-10 19:44:53 -- Module: 'Stg configurator v.0.07'. Start successfull. 220 2008-12-10 19:44:53 -- Module: 'Always Online authori
  8. napTu

    Inet_ntoa Error

    хм... - не мешает - мне проще самому найти ошибку в сервере, чем его кроном ребутить псевдослучайным образом в такт когда у одного из тысячи абонентов случается трабл - этим человеком я и есть, траблу давно порешали. это я сделал в первую очередь
  9. napTu

    Inet_ntoa Error

    еще пару наблюдений: у проблемного абонента похоже не меняется статус в конфигураторе - постоянно висит онлайн (не уверен, пронаблюдаю в след.раз если нужно); сервер не убивается быстро (как обычно менее минуты) по killall stargazer, а висит дольше обычного. Я его добиваю по kill -12
  10. Периодически поступают жалобы на невозможность пользоваться интернетом. Авторизатор нормально подключается и отключается, но скрипты не отрабатываются. Лог подключений абонента не меняется и выглядит так: ... D 2008.12.08-19.30.03 192.168.8.231 29.032278 C 2008.12.08-19.30.08 192.168.8.231 29.032278 D 2008.12.08-22.54.43 192.168.8.231 29.032278 C 2008.12.10-15.05.08 192.168.8.231 22.580666 D 2008.12.10-16.45.45 192.168.8.231 22.580666 C 2008.12.10-19.23.34 [inet_ntoa error] 22.580666 Последняя строка сигнализирует об ошибке, которая лечится только перезапуском сервера. Есть лекарст
  11. в конечном итоге я пришел к следующему пути решения задач снятия АП: отказатся полностью от снятия АП настройкой тарифов и снимать своими скриптами, в нужное время, нужным пользователям, по нужным условиям.
  12. хороший вопрос. я его решил так: $uid=0; @ul=`ls -lf /usr/stg/var/users/ | grep drw `; foreach $line (@ul) { ... print UNM "$line---$uid\n"; $uid=$uid + 1; } этот перл скрип создает файл с именами и номерами пользователей, а впоследствии такой файл используется в других скриптах. ИД пользователя меняется лишь в случае удаления других пользователей. Как можно заметить, ИД есть последовательный номер папки в файловой системе
  13. еще момент(немного не по теме): если FullFee=yes , то абонка снимается невзирая на заморозку
  14. ...при наличии более чем одного направления, вариант с мегабайтами уже не работает, нужно иметь количество абонплат по количеству направлений...
  15. прикольный вариант с мегабайтами! а со скриптами всё же неувязочка выходит: когда пользователя заморозит, то он не сможет подключится и увидеть сколько он должен (при наличии кредита), так что вариант с unixway тут не катит
  16. napTu

    Access violation

    такая же байда у абонента. Тоже сталкивался, но оч.давно. Возможно вирус в код внедряется? Мысли есть?
  17. Привет всем. После моего костыля наблюдаю что абонент не может теперь отключиться. В конфигураторе подключен, в фаерволе открыт, а подключить авторизатор не может. Блин, я уже готов 2.405 попробовать, а патч не становится, грит # patch < patch1 Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |Index: projects/stargazer/plugins/authorization/inetaccess/inetaccess.cpp |=================================================================== |RCS file: /cvsroot/stargazer/stargazer/plugins/authorization/inetaccess/inetaccess.cpp,v |re
  18. непонятная ситуация у меня. добавил второй сенсор, изменил конфиг <Module cap_netflow> #UseTcp=0 UseUdp=1 #TcpPort=9996 UdpPort=4440 SensorIP=127.0.0.1 SensorIP=192.168.10.5 </Module> фаервол открыт, пакеты на входе идут Source Destination Protocol Size CPS ───────────────────────────────────────────────────────────────────────────────────────────────── 192.168.10.4,54754 192.168.10.5,4440 udp 40K 5944 старгез считает на 127.0.0.1 и не считает на 192.168.10.5
  19. после того как я себя пропатчил, а это уже больше 10 дней, проблема встретилась один раз, тогда как ранее это повторялось как минимум раз в 3-4 дня. всё же мой костыль, по моему, решает траблу в большей части. Поживем, посмотрим... Кстати у меня 2.404, мож в этом дело?
  20. да, точно, ситуация повторяется...
  21. действительно, интересно... еслибы раз залип, то надолго... тут такое дело - этот юзер вообще не подключается, ему похоже фаервол мешает. у нас много меньше за последние несколько дней я так спокойно еще никогда себя не чувствовал простой патч для исправления этого бага - вписать в ...argazer/plugins/authorization/inetaccess/inetaccess.cpp в процедуру ::Timeouter строчку int AUTH_IA::Timeouter() { STG_LOCKER lock(&mutex, __FILE__, __LINE__); map<uint32_t, IA_USER>::iterator it; it = ip2user.begin(); uint32_t sip; //UTIME rz; //printfd(__FILE__, "ip2user.size=%
  22. насчет include/utime.h у него размер 3144байт, идет в дистрибутивах, которые я качаю уже не одну версию. Сомневаюсь чтобы мне "достался непофикшенный вариант", хотя... да вот собственно и он: # cat utime.h #ifndef UTIME_H #define UTIME_H /* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY W
  23. дело в том что я сижу уже на немного измененном таймаутере, исходя из предположения что сбивается временная метка: if (it->second.phase == 2) { rz= currTime - it->second.phaseTime; printfd(__FILE__, "Phase2.user %s curtime-2ndtime %d, udelay %d \n" , it->second.user->GetLogin().c_str() , rz.tv_sec , iaSettings.GetUserDelay() ); if ( (currTime - it->second.phaseTime) > iaSettings.GetUserDelay() || (currTime - it->second.phaseTime) < 0 ) { if ((currTime - it->second.phaseTime) < 0 )
  24. в таймаутере всё в порядке. принимаем пакет от пользователя, переводим в фазу 2 и отправляем пакет: inetaccess.cpp > 20:46:25 > recv from 192.168.10.217 5554 len=64 inetaccess.cpp > 20:46:25 > User Plan FOUND! inetaccess.cpp > 20:46:25 > ======================> InitEncrypt dont needed inetaccess.cpp > 20:46:25 > User Plan phase changed from 1 to 2 inetaccess.cpp > 20:46:25 > Phase changed from 1 to 2 inetaccess.cpp > 20:46:25 > 1215884811.7439 192 bytes sent to 192.168.10.217:5555 len=192 далее таймаутер отсчитывает
×
×
  • Створити нове...