Jump to content

почему не отрабатывает OnDisconnect ?


Guest malivan

Recommended Posts

При отключении юзера не во всех случаях отрабатывает скрипт OnDisconnect. Т.е. иногда срабатывает, а иногда нет, и в правилах файрволла остаются строки, разрешающие юзеру работать. При этом старгейзер траффик не считает и пишет что юзер в офф-лайне. В логах - всё ок ( пишет disconnect ). Куда копать ?

Link to post
Share on other sites

Вот подробности :

 

# tail /var/log/stargazer.log

 

2005-02-24 16:16:54 -- User user3 10.2.0.3 connected.

2005-02-24 16:16:59 -- User user3 disconnected.

 

# tail /var/stargazer/users/user3/connect.log

 

C 2005.02.24-16.16.55 10.2.0.3 9.986512

D 2005.02.24-16.16.59 10.2.0.3 9.986512

 

# iptables -L -v -n|grep 10.2.0.3

 

2 152 ACCEPT all -- * * 10.2.0.3 0.0.0.0/0

1 76 ACCEPT all -- * * 0.0.0.0/0 10.2.0.3

0 0 ACCEPT all -- * * 10.2.0.3 0.0.0.0/0

0 0 ACCEPT all -- * * 0.0.0.0/0 10.2.0.3

 

И сам скрипт :

 

# Login

LOGIN=$1

 

#user IP

IP=$2

 

#cash

CASH=$3

 

#user ID

ID=$4

 

echo "D `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log

 

iptables -D INPUT -s $IP -j ACCEPT

while [ $? -eq 0 ]

do

iptables -D INPUT -s $IP -j ACCEPT

done

 

 

iptables -D FORWARD -s $IP -j ACCEPT

while [ $? -eq 0 ]

do

iptables -D FORWARD -s $IP -j ACCEPT

done

 

iptables -D FORWARD -d $IP -j ACCEPT

while [ $? -eq 0 ]

do

iptables -D FORWARD -d $IP -j ACCEPT

done

Link to post
Share on other sites

два варианта ....

1) переписать скрипт на перле или на чем нить еще

2) попробывать понять почему скрипт не исполняется ...... меток внутрь цикла понаставить ....

 

З. Ы. со скриптами была проблема - Борис об этом знает, но она была другого характера

 

и еще скажи как мне как долго по времени исплняется скипт диссконеткта у тебя ?

 

если машинка не очень быстрая то возможно СТГ виновен в прерывании скрипта ..

Link to post
Share on other sites

Вот именно. Машинка быстрая. ОС- линух. Скрипт обрывается на первом неотработанном iptables. Причем запущенный вручную скрипт отрабатывает на ура. Права доступа на скрипт -rwxr-x---, старгейзер запускается от рута. Ща попробую перловый скрипт наваять ...

Link to post
Share on other sites
  • 1 year later...

Была такая бага. Началась после того, как скачал и установил с сайта разработчика более свежую версию авторизатора (от 22 ФЕВРАЛЯ 2006). После этого, когда просто закрываешь окно авторизатора, Интернет есть некоторое время, которое равно величине интервала опроса клиента на "жив-мёртв". Затем Интернет всё равно рубится Старгейзером. Но всё же это неприятно. Похоже - эта версия авторизатора просто не даёт команду серверу - выполнить OnDisconnect, если не жать кнопку "отключить", а просто закрыть окно.

 

Решение:

Когда поставил прежнюю версию авторизатора, которая была в пакете инсталляции - проблема исчезла сама собой.

Link to post
Share on other sites

Уменя была проблема с убиранием правил с FORWARD

сделал так.

 

##################################

 

iptables -t filter -D FORWARD -s $ip -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D FORWARD -s $ip -j ACCEPT

done

sleep 1

##################################

 

iptables -t filter -D FORWARD -d $ip -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D FORWARD -d $ip -j ACCEPT

done

sleep 1

##################################

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...