#!/bin/sh /etc/rc.common
# Copyright (C) 2008 OpenWrt.org

START=45

IPTABLES=iptables
config_load ddos_sw

fw_dos()
{
	local bcast
	local mcast
	local unucast
	local unmcast
	local rate
	
	config_get bcast $1 bcast
	config_get mcast $1 mcast
	config_get unucast $1 unucast
	config_get unmcast $1 unmcast
	config_get rate $1 rate
	model=$(head -n 1 /etc/version)
	switch_model=$(/sbin/mtd fw_printenv 1|grep switch_model|awk -F = '{print $2}')
	echo DOS > /tmp/dos.tmp
	if [ "enable" = "$bcast" ] ;then
		echo 1 >> /tmp/dos.tmp
	else
		echo 0 >> /tmp/dos.tmp
	fi
	if [ "enable" = "$mcast" ] ;then
		echo 1 >> /tmp/dos.tmp
	else
		echo 0 >> /tmp/dos.tmp
	fi
	if [ "enable" = "$unucast" ] ;then
		echo 1 >> /tmp/dos.tmp
	else
		echo 0 >> /tmp/dos.tmp
	fi
	if [ "enable" = "$unmcast" ] ;then
		echo 1 >> /tmp/dos.tmp
	else
		echo 0 >> /tmp/dos.tmp
	fi

	echo $(expr $rate - 1) >> /tmp/dos.tmp
	
	if [ "$model" = "Vigor3900" -a  "$switch_model" -ne "1" ] ;then
		cat /tmp/dos.tmp > /proc/rtk8366
	else	    
        /sbin/switch_queue_sender DDOS_SW $rate $bcast $mcast $unucast $unmcast	
	fi	
	
	
	rm -rf /tmp/dos.tmp
		
}

start()
{
	config_foreach fw_dos profile
}
apply()
{
	start
	uci commit ddos_sw
}
