#!/bin/bash


WORKING_DIR="/var/lib/ddnss/"
LOG_FILE=/var/log/ddnss/ddnss-update.log
. /etc/ddnss/ddnss-update.rc

if [ -z "$FORCE_UPDATE" ];then
  FORCE_UPDATE=86400
fi

function logmsg {
  echo "$CURRENT_DATE - $@" >> $LOG_FILE
}

CURRENT_DATE=`date +%Y-%m-%d\ %H:%M:%S`

IP6=`curl https://ip6.ddnss.de/meineip.php 2>/dev/null| grep -o '[0-9a-z]\{1,4\}\:[0-9a-z]\{1,4\}\:[0-9a-z]\{1,4\}\:[0-9a-z]\{1,4\}\:[0-9a-z]\{1,4\}\:[0-9a-z]\{1,4\}\:[0-9a-z]\{1,4\}\:[0-9a-z]\{1,4\}'`
IP=`curl https://ip4.ddnss.de/meineip.php 2>/dev/null| grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'`

UPDIP=`cat $WORKING_DIR/last.ip 2>/dev/null||echo -en ''`
UPDIP6=`cat $WORKING_DIR/last.ip6 2>/dev/null||echo -en ''`

logmsg "Current IP=$UPDIP"
logmsg "Current IP=$UPDIP6"

NOW=`date +%s`
LAST_UPDATE=`stat -c %Y $WORKING_DIR/last.ip`
NEXT_UPDATE=$(( $LAST_UPDATE + $FORCE_UPDATE ))

[ $NOW -lt $NEXT_UPDATE ]
UPDATE_NOW=$?

[ "$IP" == "$UPDIP" -a "$IP6" == "$UPDIP6" ]
IP_SAME=$?


if [ $IP_SAME == 0 -a $UPDATE_NOW == 0 ]; then

   logmsg "IP is the same - NO UPDATE"

else
   logmsg "New IP: $IP / Old IP: $UPDIP - UPDATE!"
   logmsg "New IP6: $IP6 / Old IP6: $UPDIP6 - UPDATE!"

   echo $IP > $WORKING_DIR/last.ip
   echo $IP6 > $WORKING_DIR/last.ip6

   curl 'https://ddnss.de/upd.php?key='$KEYAUTH'&host='$HOSTNAME'&ip='$IP'&ip6='$IP6 >> $LOG_FILE

   echo "Update ... ($IP)"
   echo "Update ... ($IP6)"
fi
