Интеграция с ASR4

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (4)

просмотр истории страницы
# Указать IP адрес XGE
# Указать "Указать Имя скрипта событий" - xge_router.sh
# Скопировать скрипты событий
{code}
cp /var/lib/event/examples/xge_router.sh /var/lib/event/xge_router.sh
cp /var/lib/event/examples/event_inc.sh /var/lib/event/event_inc.sh
{code}
При отсутствии скриптов в каталоге /var/lib/event/examples, нужно создать новые одноименные файлы и скопировать в них соответствующий текст скрипта, который опубликован в примечании данной статьи.
# Выполнить в командной строке ASR два запроса
{code}

После указанных настроек XGE должен заработать.

h3. Примечание

*xge_router.sh*:
{code}
LOG_LEVEL=ALL

SENDER=$1; shift
EVENT=$1; shift
DATA=$@

for VAR in $DATA; do
[[ "$VAR" = *"="* ]] && eval ${VAR%%=*}=\'${VAR#*=}\'
done

LOG INFO "$SENDER $EVENT $DATA"

user_refresh(){
accept=1
[ "$logged" = "-1" ] && accept=0
[ "$enabled" = "0" ] && accept=0
[ "$deleted" = "1" ] && accept=0
[ "$own_disabled_end" != -1 ] && accept=0
redirect=0
[ "$over_limit" = "1" ] && redirect=1

[ "$accept" = "1" ] && user_accept
[ "$redirect" = "0" ] && user_redirect_cancel
[ "$redirect" = "1" ] && user_redirect
[ "$accept" = "0" ] && user_drop
}

user_data_changed(){
if [ -f /var/lib/event/before/$id.before ]; then
changed=0
for VAR in $(</var/lib/event/before/$id.before); do
[[ "$VAR" = *"="* ]] && eval ${VAR%%=*}=\'${VAR#*=}\'
done
for val in ip mac server enabled deleted auth_type nas_ip router_ip router_vlan router_port opt82 limit_ip acl; do
old_val="old_$val"
[ "${!val}" != "${!old_val}" ] && changed=1;
done
else
changed=1
fi

if [ "$changed" = "1" ]; then
(
DATA_BEFORE=$(</var/lib/event/before/$id.before)
DATA_BEFORE="${DATA_BEFORE// old_/ }"
DATA=$DATA_BEFORE
for VAR in $DATA_BEFORE; do
[[ "$VAR" = *"="* ]] && eval ${VAR%%=*}=\'${VAR#*=}\'
done
user_del
)
user_del
user_add
user_refresh
user_rate_set
fi
}


if [ -f /var/lib/event/$script_name ]; then
source /var/lib/event/$script_name
if [ "$EVENT" = "rate_set" ]; then
user_rate_set
elif [ "$EVENT" = "user_disconnect" ]; then
user_disconnect
elif [ "$EVENT" = "user_add" ]; then
user_add
user_refresh
elif [ "$EVENT" = "user_del" ]; then
user_del
elif [ "$EVENT" = "user_data_changed_before" ]; then
echo "${DATA// / old_}" >/var/lib/event/before/$id.before
elif [ "$EVENT" = "user_data_changed" ]; then
user_data_changed
else
user_refresh
fi
else
echo "NO SCRIPT FOUND!!!"
fi
{code}