#!/bin/bash
logger $0 called with $1 $2
#echo $0 called with#$1#$2#$3#
#exit
LOGFILE="/opt/log/heartbeat.log"
#
# Prepare arguments
#
ARG="$1"
IP=`echo "$ARG"|sed 's@/@ @g'|awk '{ print $1 }'`
MASK=`echo "$ARG"|sed 's@/@ @g'|awk '{ print $2 }'`
IFACE=`echo "$ARG"|sed 's@/@ @g'|awk '{ print $3 }'`
#
case "$2" in
start)
        echo "Removing arptables DROP rules for $IP/$MASK/$IFACE" >> "$LOGFILE"
        RET=0
        while [ $RET -eq 0 ]; do
                arptables -D HEARTBEAT_IN -i $IFACE -d $IP/$MASK -j DROP;RET=$?
        done
        RET=0
        while [ $RET -eq 0 ]; do
                arptables -D HEARTBEAT_OUT -o $IFACE -s $IP/$MASK -j DROP;RET=$?
        done
        echo "Sending gratuitous arp through $IFACE about $IP" >> "$LOGFILE"
        #/usr/lib/heartbeat/send_arp $IFACE $IP auto 0 0 &
	arping -U -I $IFACE $IP -c 1
	usleep 5000
	arping -A -I $IFACE $IP -c 1
        ;;
stop)
        echo "Adding arptables DROP rules for $IP/$MASK/$IFACE" >> "$LOGFILE"
        arptables -N HEARTBEAT_IN 2>/dev/null
        arptables -N HEARTBEAT_OUT 2>/dev/null
        arptables -A HEARTBEAT_IN -i $IFACE -d $IP/$MASK -j DROP
        arptables -A HEARTBEAT_OUT -o $IFACE -s $IP/$MASK -j DROP
        ;;
esac


