Files
dPWR/dPWR/bin/ix_setDDNS
Philip Smart 47b56628c5 Added jDPWR
2019-11-15 20:24:25 +00:00

121 lines
3.3 KiB
Bash
Executable File

#!/bin/sh
##########################################################################################################
##
## Name: ix_setDDNS
## Created: September 2015
## Author(s): Philip Smart
## Description: A shell script helper program for the dPWR program.
## This script is executed by the dPWR program to setup the Dynamic DNS server to
## configure an external DYNDNS provider with our current public IP address.
## Credits:
## Copyright: (c) 2015-2019 Philip Smart <philip.smart@net2net.org>
##
## History: September 2015 - Initial module written.
##
#########################################################################################################
## This source file is free software: you can redistribute it and#or modify
## it under the terms of the GNU General Public License as published
## by the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This source file is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
#########################################################################################################
trap exit 15
# Get the parameters for the NTP server.
#
if [ $# != 8 ]; then
# Error exit
exit 255
fi
ENABLED=$1
SERVER=$2
CLIENT_DOMAIN=$3
CLIENT_USERNAME=$4
CLIENT_PASSWORD=$5
PROXY_ENABLE=$6
PROXY_IP=$7
PROXY_PORT=$8
# Kill the service if running.
#
PID=`${PS} | grep "ddclient" |grep -v grep | grep -v gvim | grep -v vi | awk '{print $2}'`
if test "$PID" != ""
then
kill -1 $PID
if [ $? -ne 0 ]; then
echo kill $PID ERROR
fi
sleep 2
PID=`${PS} | grep "ddclient" |grep -v grep | grep -v gvim | grep -v vi | awk '{print $2}'`
if test "$PID" != ""
then
kill -9 $PID
fi
fi
# Only update the config and start the server if DDNS is enabled.
#
if [ "$ENABLED" = "ENABLED" ]; then
# If a previous backup exists, remove it and copy current config to backup.
#
if [ -f ${ETCDIR}/ddns.conf.bak ]; then
rm -f ${ETCDIR}/ddns.conf.bak
fi
if [ ! -f ${ETCDIR}/ddns.conf ]; then
#
# Exit as no DDNS configuration exists.
#
exit 254
fi
mv ${ETCDIR}/ddns.conf ${ETCDIR}/ddns.conf.bak
# Now create configuration file
#
cat > ${ETCDIR}/ddns.conf <<-EOF
protocol=dyndns2
use=web
login=$CLIENT_USERNAME
password=$CLIENT_PASSWORD
EOF
#
# Add in proxy if enabled.
#
if [ "${PROXY_ENABLE}" = "ENABLED" ]; then
cat >> ${ETCDIR}/ddns.conf <<-EOF
proxy=$PROXY_IP
EOF
fi
#
# Finally the server information.
#
echo "$SERVER" >> ${ETCDIR}/ddns.conf
chmod 700 ${ETCDIR}/ddns.conf
#
# If required ddclient directories dont exist, create.
#
if [ ! -d /var/cache/ddclient ]; then
mkdir /var/cache/ddclient
fi
#
# Start DDCLIENT to update the Dynamic DNS host with out IP.
#
${BINDIR}/ddclient -file ${ETCDIR}/ddns.conf -daemon 300 -syslog &
fi
# All done, exit.
#
exit 0