#!/bin/bash
int_iface=eth1
# Login
LOGIN=$1
#user IP
IP=$2
#cash
CASH=$3
#user ID
ID=$4
#Selected dirs to connect
DIRS=$5
default_speed=32kbit
# =========== shaping by tariff ===========
#tariff=$(grep -i "^tariff=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")
#echo "tariff=$tariff" > /var/stargazer/users/$LOGIN/connect.log
#case $tariff in
# minimum) speedkb=128kbit;; # 128 kbit
# middle) speedkb=256kbit;; # 256 kbi
# maximum) speedkb=512kbit;; # 512 kbit
# *) speedkb=$default_speed;; # default speed
#esac
# ========= shaping by tariff end =========
# ========= shaping by userdata0 ==========
speedR=$(grep -i "^Userdata0=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")
speed=$(echo $speedR | grep "^[0-9]*[0-9]$")
if [ -z "$speed" ]
then
speedkb=$default_speed
else
speedkb="$speed"kbit
fi
# ======= shaping by userdata0 end ========
declare -i mark=$ID+10
echo "$mark" > /var/stargazer/users/$LOGIN/shaper_mark
echo "$speedkb" > /var/stargazer/users/$LOGIN/shaper_rate
iptables -t mangle -A FORWARD -d $IP -j MARK --set-mark $mark
tc class add dev $int_iface parent 1:1 classid 1:$mark htb rate $speedkb burst 40k
tc filter add dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark