#!/bin/bash

#Этот скрипт вызывается в момент, когда пользователь
#успешно прошел авторизацию на сервере. Задача скрипта - перестроить 
#файрвол так, что бы пользователь получил доступ в интернет

# Login
LOGIN=$1

#user IP
IP=$2

#cash
CASH=$3

#user ID
ID=$4

#Selected dirs to connect
DIRS=$5

iptables -A INPUT -s $IP -j QUEUE
iptables -A OUTPUT -d $IP -j QUEUE
iptables -A FORWARD -s $IP -j QUEUE
iptables -A FORWARD -d $IP -j QUEUE

# shaper

default_speed=32

speedR=$(grep -i "^Userdata0=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")
#echo "speedR=$speedR" >> /var/stargazer/users/$LOGIN/connect.log
speed=$(echo $speedR | grep "^[0-9]*[0-9]$")

if [ -z "$speed" ] 
then
    speed=$default_speed
fi

speedkbit=$speed"kbit"

#echo "speed=$speedkbit" >> /var/stargazer/users/$LOGIN/connect.log
declare -i mark=$ID+1

iptables -t mangle -A FORWARD -d $IP -j MARK --set-mark $mark

sleep 1

if [ -f "/var/stargazer/ifaces/$IP" ]
then
    #echo "1" >> /var/stargazer/users/$LOGIN/connect.log
    ppp_iface=$(cat /var/stargazer/ifaces/$IP)
else
    #echo "2" >> /var/stargazer/users/$LOGIN/connect.log
    exit 0
fi

tc qdisc add dev $ppp_iface root handle 1: htb
tc class add dev $ppp_iface parent 1: classid 1:1 htb rate 100mbit ceil 100mbit burst 200k
tc class add dev $ppp_iface parent 1:1 classid 1:10 htb rate $speedkbit burst 20k
tc filter add dev $ppp_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:10

#echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH $ID $mark $speed $ppp_iface" >> /var/stargazer/users/$LOGIN/connect.log