#!/bin/bash

iptables-restore < /opt/perfsonar_ps/toolkit/etc/firewall.conf


bwctlparams=("iperf_port" "nuttcp_port" "peer_port")
owampparams=("testports")

bwctlfile="/etc/bwctld/bwctld.conf"
owampfile="/etc/owampd/owampd.conf"

addPortRuleFromFile(){
	file=$1
	params=("${!2}")
	for i in "${params[@]}"
	do
		portrange=`awk -v search="^$i" '$0 ~ search {$1=""; print $0}' $file | sed s/-/:/g`
		cmd0="iptables -I INPUT 1 -m udp -p udp --dport $portrange -j ACCEPT"
		cmd1="iptables -I INPUT 1 -m udp -p udp --sport $portrange -j ACCEPT"
		cmd2="iptables -I OUTPUT 1 -m udp -p udp --sport $portrange -j ACCEPT"
		cmd3="iptables -I OUTPUT 1 -m udp -p udp --dport $portrange -j ACCEPT"
		cmd4="iptables -I INPUT 1 -m state --state NEW,ESTABLISHED -m tcp -p tcp --sport $portrange -j ACCEPT"
		cmd5="iptables -I OUTPUT 1 -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport $portrange -j ACCEPT"
		cmd6="iptables -I OUTPUT 1 -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport $portrange -j ACCEPT"
		cmd7="iptables -I INPUT 1 -m state --state ESTABLISHED -m tcp -p tcp --sport $portrange -j ACCEPT"
		echo $cmd0
		echo $cmd1
		echo $cmd2
		echo $cmd3
		echo $cmd4
		echo $cmd5
		echo $cmd6
		echo $cmd7
		$cmd0
		$cmd1
		$cmd2
		$cmd3
		$cmd4
		$cmd5
		$cmd6
		$cmd7	
	done 
}

addPortRuleFromFile $bwctlfile $bwctlparams
addPortRuleFromFile $owampfile $owampparams

iptables-save