]> git.stg.codes - stg.git/blobdiff - stargazer/scripts/shaper_vpn_radius/stargazer/OnDisconnect
Port to CMake, get rid of os_int.h.
[stg.git] / stargazer / scripts / shaper_vpn_radius / stargazer / OnDisconnect
diff --git a/stargazer/scripts/shaper_vpn_radius/stargazer/OnDisconnect b/stargazer/scripts/shaper_vpn_radius/stargazer/OnDisconnect
new file mode 100755 (executable)
index 0000000..482e926
--- /dev/null
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+# Этот скрипт вызывается в момент, когда пользователь
+# желает отключится от интернета или вышел таймаут у пользователя
+# и сервер сам отключает пользователя
+# Задача скрипта подобна задаче скрипта OnConnect - перестроить 
+# файрвол так, что бы пользователю закрыть доступ в интернет
+
+# Login
+LOGIN=$1
+
+#user IP
+IP=$2
+
+#cash
+CASH=$3
+
+#user ID
+ID=$4
+
+#Selected dirs to disconnect
+DIRS=$4
+
+#echo "D `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log
+
+iptables -D INPUT -s $IP -j QUEUE
+while [ $? == 0 ]
+do
+    iptables -D INPUT -s $IP -j QUEUE
+done
+
+iptables -D OUTPUT -d $IP -j QUEUE
+while [ $? == 0 ]
+do
+    iptables -D OUTPUT -d $IP -j QUEUE
+done
+
+iptables -D FORWARD -s $IP -j QUEUE
+while [ $? == 0 ]
+do
+    iptables -D FORWARD -s $IP -j QUEUE
+done
+
+iptables -D FORWARD -d $IP -j QUEUE
+while [ $? == 0 ]
+do
+    iptables -D FORWARD -d $IP -j QUEUE
+done
+
+
+
+declare -i mark=$ID+1
+
+iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark
+while [ $? == 0 ]
+do
+    iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark
+done
+
+
+if [ -f /var/stargazer/ifaces/$IP ]
+then
+    ppp_iface=$(cat /var/stargazer/ifaces/$IP)
+else
+    exit 0
+fi
+
+tc qdisc del dev $ppp_iface root
+
+