#!/bin/sh

#Check and fix Redundant device IP in case of incorrect configuration
# Get Redundant device Hostname
MAIN_HOSTNAME=$(cat /mnt/factory/factorysafedir/hostname)
MAIN_HOSTNAME=$(echo ${MAIN_HOSTNAME%-r*})
CURRENT_HOSTNAME=$(cat /mnt/factory/factorysafedir/hostname)

SUBSTR="-r1"
if [[ "$CURRENT_HOSTNAME" == *"$SUBSTR"* ]]; then
	REDUNDANT_HOSTNAME="$MAIN_HOSTNAME"-r2
else
	REDUNDANT_HOSTNAME="$MAIN_HOSTNAME"-r1
fi

REDUNDANT_FQDN=$REDUNDANT_HOSTNAME".epygicloud.com"

# Get Redundant device router IP addresses
REDUNDANT_DEVICE_IP=$(ping -c1 -t1 -W0 $REDUNDANT_FQDN 2>&1 | tr -d '():' | awk '/^PING/{print $3}')

if [ "$REDUNDANT_DEVICE_IP" == "" ]; then
	logger -s "updateRedundantIP: Problem resolving Redundant device FQDN"
	exit 1
fi

FINDREDUNDANTIP=$(cat /mnt/flashfs/configs/current/rsyncd.conf | grep $REDUNDANT_DEVICE_IP)
if [ "$FINDREDUNDANTIP" == "" ]; then
	PREVIOUS_REDUNDANT_IP=$(cat /mnt/flashfs/configs/current/rsyncd.conf | grep -m1 allow | cut -d= -f2)
	if [ "$PREVIOUS_REDUNDANT_IP" != "" ]; then
# Update Firewall Allowed IP list
		SED_CMD=$(echo "s/$PREVIOUS_REDUNDANT_IP/"$REDUNDANT_DEVICE_IP"/")
		/bin/sed -i $SED_CMD /mnt/flashfs/configs/current/firewall/fw.serports
# Update hosts_allow in rsyncd.conf
		SED_CMD=$(echo "s/allow=.*/allow="$REDUNDANT_DEVICE_IP"/")
		/bin/sed -i $SED_CMD /mnt/flashfs/configs/current/rsyncd.conf
		exit 1
	fi
fi
exit 0
 