#!/bin/sh
#
# connection check for broken dhcp or firewall hoops ;) (iptables -F INPUT)
# Restart networking and firewall if connection is broken, if on next check
# is still broken wait next 4 checks 
# (c) Wiro Wire, wire@cypherpunk.cz


HOST=147.32.89.1	# gw for connection test
LIMIT=1 		# number of pings 
TIMEOUT=5 		# minutes to next networking restart
PINGOUT=1		# number of seconds for ping timeout

if [ -f /var/run/check-conn ]; then		# if we are runnig test, exit imidiately
        echo Connection test already running?
        exit 1
fi

touch /var/run/check-conn

test=$(ping -w $PINGOUT -c $LIMIT $HOST | grep "icmp_seq")

if [ "$test" = "" ]; then
#	echo Connection is down
	if [ -f /var/run/check-number ]; then
	number=$(cat /var/run/check-number)
		if [ $number -ge $TIMEOUT ]; then
		echo Connection is down
		echo Restarting network
		/etc/init.d/networking restart
		echo Restarting firewall
		/etc/init.d/firewall restart
		echo 1 > /var/run/check-number
		else
		let "number++" && echo $number > /var/run/check-number
		fi
	else
	   echo Connection is down
           echo Restarting network
          /etc/init.d/networking restart
           echo Restarting firewall
          /etc/init.d/firewall restart
	echo 1 > /var/run/check-number
	fi
else
rm /var/run/check-number 2> /dev/null
fi

rm /var/run/check-conn





