#!/bin/sh
#
# ping proxy redirect restart script
#
UNDO_FILE="/var/run/pproxy_stop.sh"

pp_ipt() {
    opt=$1; shift
    echo "/usr/sbin/iptables -D $*" >> $UNDO_FILE
    /usr/sbin/iptables $opt $*
}


if [ -e "$UNDO_FILE" ]; then
logger -p user.info -t network "removing existing ping proxy rules by calling $UNDO_FILE"
/bin/sh $UNDO_FILE
rm -f $UNDO_FILE
fi


eth_ports=`/sbin/ip addr show | grep inet | grep eth | awk '{print $7}'`
if [ "$eth_ports" = "" ]; then
    logger -p user.info -t network "no ethernet port IP address configured?"
    return 0
fi
echo $eth_ports
for pproxy_addr in "$@"; do
    echo $pproxy_addr
    if [ "$pproxy_addr" != "" ]; then
        for k in $eth_ports; do
                echo $k
                port_ip=`/sbin/ifconfig $k | grep "inet " | awk '{print $2}' | tr -d '\n'`
                echo $port_ip
                logger -p user.info -t network "redirecting ICMP to $pproxy_addr on port $k to $port_ip"
                #echo $pproxy_addr $k $port_ip
                pp_ipt -A zone_lan_prerouting -t nat -p icmp -d $pproxy_addr -i $k -j DNAT --to-destination $port_ip
        done
    fi
done
/usr/sbin/conntrack -D -p icmp
