Интеграция с Carbon Billing 4

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

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

просмотр истории страницы
DATA=$@


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

LOG INFO "$SENDER $EVENT $DATA"

if [ "$nas_ip" == "0.0.0.0" ]; then
exit 0
fi

user_refresh(){
accept=1
elif [ "$EVENT" = "user_data_changed" ]; then
user_data_changed
elif [ "$EVENT" = "radius_update_err" ]; then
user_disconnect
elif [ "$EVENT" = "rad_acc_timeout" ]; then
user_disconnect
elif [ "$EVENT" = "try_double_login" ]; then
user_disconnect
elif [ "$EVENT" = "user_info" ]; then
user_info 2>&1 > /tmp/${id}_user_info
output="$(cat /tmp/${id}_user_info | head -c 8000 | iconv -f koi8-r -t cp1251)"
rm -f /tmp/${id}_user_info
{
. /etc/ics/ics.conf
echo -e "SET SQL DIALECT 3;\n"
echo -e "SET NAMES WIN1251;\n"
echo -e "CONNECT '127.0.0.1:/var/db/ics_main.gdb' USER '$ISC_USER' PASSWORD '$ISC_PASSWORD';\n"
echo -e "DELETE FROM users_diagnostic WHERE user_id='$id';\n"
echo -e "EXECUTE PROCEDURE KNL_USR_DIAGNOSTIC_INS('$id', '$output');\n"
echo -e "commit;\n"

} >/tmp/$$.tmp
isql < /tmp/$$.tmp
rm -f /tmp/$$.tmp
else
user_refresh
user_rate_set
fi
else
mkdir -p $TMPDIR

set -x


__exit() {
local ret=$?
}

# set -eux

burst_in=''
burst_out=''
echo "Filter-Id=\"$@\"" | radclient -x $nas_ip:3799 coa $coa_psw &>$TMPDIR/radclient.$$
ret=$?
# exit 254 отложить передачу, todo возможно и другие схожие busy context и тд
grep "no response from server" $TMPDIR/radclient.$$ && exit 254
cat $TMPDIR/radclient.$$
__xge_coa_send session $ip disconnect
}

__xge_list_local(){
ipset -o save -l $4 | grep add | cut -d ' ' -f 3
chown apache:apache /tmp/${user_id}_user_info
}

user_get_mac() {
local TMPDIR=/tmp/nas_event_daemon/$nas_ip/user_get_mac/
mkdir -p $TMPDIR/

__xge_coa_send session $ip get_mac | grep "Reply-Message" | sed -e 's/Reply-Message =//g; s/^\s\+//g; s/^"//g; s/"$//g' >> ${TMPDIR}/${user_id}

chmod 777 -R /tmp/nas_event_daemon/
}

get_mac(){
res="$(echo "Filter-Id=\"session $ip get_mac\"" | radclient -x $nas_ip coa $coa_psw | grep Reply-Message)"
res=${res/*= \"/}
res=${res/\"/}
LOG INFO "SELECT * FROM KNL_USR_SETMAC('$ip', '$res')"
sqlexec "SELECT * FROM KNL_USR_SETMAC('$ip', '$res')"
}
{code}