#!/bin/sh

# This script brings the tuntap interface up and routes the
# Z-Wave PAN via the Z-Wave gateway's IP address.

ZIPGATEWAY_PID=$PPID

ROUTING_PID="/tmp/zipgateway.routing.pid"

case "$1" in
  up)
    ip link set dev $TUNDEV up
    ip addr add fd00:aaaa::2 dev $TUNDEV

    if [ -f $ROUTING_PID ]; then
      kill -9 $(cat $ROUTING_PID)
      rm -f $ROUTING_PID
    fi

    sh -c "for i in 1 2 3 4 5 6; do
               if [ \$i -gt 5 ]; then
                 echo \"Failed to start tunnel script\"
                 kill -9 \$ZIPGATEWAY_PID
                 exit 1
               fi;

               ip -6 route del $HANPREFIX > /dev/null 2>&1
               ip -6 route add $HANPREFIX via $LANIP dev $TUNDEV > /dev/null 2>&1

               if [ \$? -eq 2 ]; then
                   echo \"Failed adding tunnel routes. Attempt \$i\"
                   sleep 2;
                   continue;
               else
                   break;
               fi;
               done;" &

    echo $! > $ROUTING_PID

    exit 0
    ;;
  down)
    ip -6 route del $HANPREFIX via $LANIP
    ;;
esac
