#!/bin/sh
# Restart aiccu if connection is down

CONFIG=/etc/aiccu.conf
BINARY=/usr/sbin/aiccu
DEFAULT=/etc/default/aiccu
P6=/bin/ping6

. "${PM_FUNCTIONS}"

[ -x $BINARY ] || exit $NA
[ -f $CONFIG ] || exit $NA

# Is aiccu enabled?
[ -r $DEFAULT ] && . $DEFAULT
case "$AICCU_ENABLED" in
	[Nn]*)
		exit $NA
		;;
esac

# Is aiccu running?
invoke-rc.d --quiet aiccu status > /dev/null || exit $NA

case "$1" in
	hibernate|suspend)
		# Do nothing
		;;
	thaw|resume) 
		# Restart aiccu if ping6 does not exist
		[ -x $P6 ] || invoke-rc.d aiccu restart
	
		# Get aiccu ipv6_interface
		INT=$(grep ^ipv6_interface $CONFIG | cut -d" " -f 2)
	
		# Ping f.root-servers.net (Internet Systems Consortium; distributed using anycast)
		# Restart aiccu if ping failed
		$P6 -I $INT -c 1 f.root-servers.net >/dev/null 2>&1 || invoke-rc.d aiccu restart
		;;
	*) exit $NA
		;;
esac
